操作系統(tǒng)/虛擬化安全知識(shí)域:操作系統(tǒng) 、 虛擬機(jī)管理程序
?操作系統(tǒng) 、 虛擬機(jī)管理程序
我們?cè)诓僮飨到y(tǒng)和虛擬機(jī)管理程序級(jí)別遇到的問(wèn)題在其他系統(tǒng)領(lǐng)域重新出現(xiàn),解決方案有時(shí)是相似的。在本節(jié)中,我們將簡(jiǎn)要討論數(shù)據(jù)庫(kù),作為操作系統(tǒng)安全原則,問(wèn)題和解決方案如何應(yīng)用于其他領(lǐng)域的一個(gè)例子[77]。數(shù)據(jù)庫(kù)系統(tǒng)的安全性遵循與操作系統(tǒng)中類似的原則,主要關(guān)注的是身份驗(yàn)證、特權(quán)、訪問(wèn)控制等。訪問(wèn)控制也是如此,其中許多數(shù)據(jù)庫(kù)默認(rèn)提供自由訪問(wèn)控制,以及基于角色的強(qiáng)制訪問(wèn)控制,以便對(duì)更敏感的數(shù)據(jù)進(jìn)行更嚴(yán)格的控制。
將每個(gè)用戶表示為一個(gè)安全域,我們需要 回答的問(wèn)題涉及,例如,用戶的權(quán)限、應(yīng)記錄以進(jìn)行審核的操作以及磁盤配額、CPU 等資源限制處理時(shí)間等用戶的權(quán)限包括連接到數(shù)據(jù)庫(kù)、創(chuàng)建表、在表中插入行或從其他用戶的表中檢索信息的權(quán)限,等等。請(qǐng)注意,有時(shí),除非通過(guò)特定的SQL查詢,否則無(wú)法訪問(wèn)數(shù)據(jù)庫(kù)的用戶可能會(huì)在所謂的SQL注入攻擊中制作惡意輸入以提升其權(quán)限。
雖然數(shù)據(jù)庫(kù)級(jí) 訪問(wèn)控制限制誰(shuí)可以訪問(wèn)數(shù)據(jù)庫(kù)的哪些元素,但它不會(huì)阻止在操作系統(tǒng)級(jí)別訪問(wèn)磁盤上的數(shù)據(jù)。因此,許多數(shù)據(jù)庫(kù)支持對(duì)磁盤上的敏感表列進(jìn)行透明數(shù)據(jù)加密,通常將加密密鑰存儲(chǔ)在數(shù)據(jù)庫(kù)外部的模塊中。在極端情況下,數(shù)據(jù)庫(kù)中的數(shù)據(jù)可能會(huì)被加密,而只有客戶端持有密鑰。
查詢此類加密數(shù)據(jù)并非易事。雖然存在復(fù)雜的加密解決方案(例如同態(tài)加密),但它們非常昂貴且通常使用更簡(jiǎn)單的解決方案。例如,有時(shí)存儲(chǔ)信用卡號(hào) 的哈希值而不是實(shí)際號(hào)碼就足夠了,然后在數(shù)據(jù)庫(kù)中查詢哈希值。當(dāng)然, 在這種情況下,只能進(jìn)行完全匹配 — 因?yàn)槲覀儫o(wú)法查詢數(shù)據(jù)庫(kù)中的值是否大于、小于或類似于其他值(平均值或總和等聚合值也是如此)。可能)。查詢加密數(shù)據(jù)庫(kù) 的問(wèn)題是一個(gè)活躍的研究領(lǐng)域,超出了本知識(shí)領(lǐng)域的范圍。
雖然 常規(guī)數(shù)據(jù)庫(kù)中的安全性和訪問(wèn)控制已經(jīng)不平凡,但在外包數(shù)據(jù)庫(kù)(ODB)的情況下,事情變得更加復(fù)雜,組織將其數(shù)據(jù)外包對(duì)外部服務(wù)提供商的管理。具體而言,數(shù)據(jù) 所有者在外部數(shù)據(jù)庫(kù)提供程序創(chuàng)建和更新數(shù)據(jù),然后處理客戶端的查詢。除了我們之前對(duì)機(jī)密性和加密的擔(dān)憂之外,出現(xiàn)的問(wèn)題還涉及對(duì)提供商的信任程度。數(shù)據(jù)所有者或查詢客戶端是否可以信任提供程序向查詢提供由原始數(shù)據(jù)所有者創(chuàng)建的數(shù)據(jù)(真實(shí)性)、未修改(完整性)和新結(jié)果?
從概念上講,可以通過(guò)簽名來(lái)保證完整性和真實(shí)性。例如,數(shù)據(jù)所有者可以對(duì)整個(gè)表、表中的行/記錄甚至行中的單個(gè)屬性進(jìn)行簽名,具體取決于 所需的粒度和開(kāi)銷。通常還提倡基于經(jīng)過(guò)身份驗(yàn)證的數(shù)據(jù)結(jié)構(gòu)的更高級(jí)解決方案,例如Merkle哈希樹(shù)。在最初用于分發(fā)經(jīng)過(guò)身份驗(yàn)證的公鑰的 Merkle 哈希樹(shù)中,樹(shù)中的葉節(jié)點(diǎn)包含其數(shù)據(jù)值的哈希(數(shù)據(jù)庫(kù)記錄),每個(gè)非葉節(jié)點(diǎn)包含 其子節(jié)點(diǎn)的哈希,以及根節(jié)點(diǎn)的哈希已簽名并發(fā)布。驗(yàn)證葉節(jié)點(diǎn) 中的值是否確實(shí)是原始簽名哈希樹(shù)的一部分所需要的只是中間哈希節(jié)點(diǎn), 客戶端可以使用 與樹(shù)大小的對(duì)數(shù)成比例的哈希數(shù)快速驗(yàn)證。當(dāng)然,范圍查詢和聚合涉及更多,研究人員提出了比默克爾哈希樹(shù)更復(fù)雜的方案,但這些都超出了此知識(shí)領(lǐng)域的范圍。要傳達(dá)的信息是,通過(guò)一些努力,我們可以保證真實(shí)性、完整性和新鮮度,即使在 ODB 中也是如此。