如何評(píng)估數(shù)據(jù)庫(kù)的安全風(fēng)險(xiǎn)
數(shù)據(jù)如今已經(jīng)成為企業(yè)最重要的資產(chǎn)之一。企業(yè)通常將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,因此了解如何保護(hù)這些數(shù)據(jù)至關(guān)重要。
本文將介紹從1到10的等級(jí)范圍內(nèi)量化數(shù)據(jù)庫(kù)的安全級(jí)別。首席信息安全官和數(shù)據(jù)庫(kù)管理員(DBA)可以使用它來(lái)確定他們的安全成熟度等級(jí),并確定進(jìn)一步改進(jìn)的步驟。
查找數(shù)據(jù)庫(kù)安全等級(jí)
1到10級(jí)的安全等級(jí),1級(jí)是最低安全等級(jí),10級(jí)是最高安全等級(jí)。所有安全等級(jí)的內(nèi)容都是累積的,因此每個(gè)等級(jí)都包含先前評(píng)等級(jí)的所有要求。
安全等級(jí)的順序反映了安全性的增加以及成本和復(fù)雜性的增加。雖然無(wú)需額外軟件即可實(shí)現(xiàn)較低等級(jí),但實(shí)現(xiàn)更高的安全等級(jí)變得越來(lái)越困難,并且需要合適的產(chǎn)品。
1.沒有額外的安全措施
等級(jí)1適用于不安全的數(shù)據(jù)庫(kù)。這些數(shù)據(jù)庫(kù)都提供了固有的安全級(jí)別,沒有額外的安全措施。例如,他們需要憑據(jù)才能連接并擁有角色和特權(quán)。管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)是確保數(shù)據(jù)安全的第一步。
2.標(biāo)準(zhǔn)安全和最低權(quán)限
等級(jí)2適用于數(shù)據(jù)庫(kù)和操作系統(tǒng)均按照行業(yè)標(biāo)準(zhǔn)和最佳實(shí)踐進(jìn)行配置的數(shù)據(jù)庫(kù)。
這個(gè)等級(jí)還要求所有數(shù)據(jù)庫(kù)帳戶的權(quán)限最低,這意味著授予帳戶的權(quán)限是履行其職責(zé)所需的最低權(quán)限。
作為等級(jí)2要求的一部分,應(yīng)該努力消除共享帳戶。如果存在共享帳戶,則不應(yīng)經(jīng)常使用它們,并且它們的憑據(jù)應(yīng)保密。
對(duì)于內(nèi)置于數(shù)據(jù)庫(kù)中的特權(quán)共享帳戶,限制使用尤其如此。Oracle公司中的SYS和SYSTEM或SQL-Server中的SA等數(shù)據(jù)庫(kù)帳戶不應(yīng)經(jīng)常使用,它們的密碼應(yīng)安全保存并限制訪問。
例如,當(dāng)應(yīng)用程序使用特權(quán)帳戶或共享帳戶是企業(yè)運(yùn)營(yíng)方式的一部分時(shí),這一要求可能具有挑戰(zhàn)性。減少和控制這些帳戶的使用對(duì)于安全至關(guān)重要。
3.變更控制和元數(shù)據(jù)快照
等級(jí)3適用于受變更控制的數(shù)據(jù)庫(kù)。這意味著對(duì)元數(shù)據(jù)(例如用戶、權(quán)限、配置和對(duì)象)的任何更改都應(yīng)經(jīng)過(guò)更改控制批準(zhǔn)流程。
作為等級(jí)3要求的一部分,需要制作配置、用戶、權(quán)限和對(duì)象元數(shù)據(jù)的每日快照。應(yīng)及時(shí)調(diào)查和批準(zhǔn)快照之間的更改。
此外建議將這些快照與類似數(shù)據(jù)庫(kù)進(jìn)行交叉比較,以確保一致且統(tǒng)一的配置、用戶、權(quán)限等。
變更控制的挑戰(zhàn)在于它可能很麻煩并且被視為無(wú)用的繁文縟節(jié)。然而,缺乏對(duì)元數(shù)據(jù)更改的控制很快就會(huì)變成對(duì)數(shù)據(jù)的缺乏控制。
4.會(huì)話監(jiān)控和審查
等級(jí)4適用于所有登錄都受到監(jiān)控和定期審查的數(shù)據(jù)庫(kù)。企業(yè)應(yīng)該及時(shí)調(diào)查來(lái)自意外用戶、程序或機(jī)器的登錄。
破壞數(shù)據(jù)庫(kù)安全的最簡(jiǎn)單方法之一是竊取憑證。例如,竊取數(shù)據(jù)庫(kù)管理員(DBA)用戶名和密碼將授予攻擊者對(duì)數(shù)據(jù)的無(wú)限制訪問權(quán)限。監(jiān)控登錄可以降低這種風(fēng)險(xiǎn)。
大多數(shù)數(shù)據(jù)庫(kù)允許以最小的開銷審計(jì)登錄和失敗的登錄。實(shí)施挑戰(zhàn)是通過(guò)報(bào)告提供對(duì)信息的有效審查。
5.基本的SQL審計(jì)(DDL&DML)
等級(jí)5適用于定期記錄、報(bào)告和審查高風(fēng)險(xiǎn)SQL活動(dòng)的數(shù)據(jù)庫(kù)。
高風(fēng)險(xiǎn)SQL活動(dòng)包括:
- 所有DDL(包括DCL)——修改數(shù)據(jù)庫(kù)配置、對(duì)象、用戶、權(quán)限等的SQL。
- 來(lái)自意外來(lái)源的DML,例如特權(quán)用戶和特定程序。
該要求的目的是對(duì)不頻繁和高風(fēng)險(xiǎn)的活動(dòng)實(shí)施控制。審核罕見的活動(dòng)通常不會(huì)產(chǎn)生性能開銷,并且需要最少的時(shí)間投入。實(shí)施方面的挑戰(zhàn)是允許對(duì)活動(dòng)進(jìn)行及時(shí)有效的審查。
6.完整的SQL審計(jì)和網(wǎng)絡(luò)加密
等級(jí)6適用于接受全面SQL審計(jì)的數(shù)據(jù)庫(kù),其中所有具有潛在風(fēng)險(xiǎn)的SQL活動(dòng)都會(huì)定期記錄、報(bào)告和審查。
這將轉(zhuǎn)化為審計(jì)大量活動(dòng),包括查詢。例如:
- 使用查詢和DML訪問敏感表。
- 所有的數(shù)據(jù)庫(kù)管理員(DBA)和特權(quán)用戶活動(dòng)。
- 來(lái)自高風(fēng)險(xiǎn)程序(例如SQL Plus、Management Studio等)的所有活動(dòng)。
- 不是來(lái)自應(yīng)用程序服務(wù)器的應(yīng)用程序帳戶的活動(dòng)。
- 即使在數(shù)據(jù)庫(kù)內(nèi)部由存儲(chǔ)過(guò)程或觸發(fā)器執(zhí)行的敏感活動(dòng)。
等級(jí)6還要求所有數(shù)據(jù)庫(kù)網(wǎng)絡(luò)活動(dòng)完全加密,以防止網(wǎng)絡(luò)嗅探和欺騙。這一要求的目的是開始對(duì)SQL活動(dòng)應(yīng)用嚴(yán)格的安全措施,并防止許多網(wǎng)絡(luò)攻擊。
在大多數(shù)數(shù)據(jù)庫(kù)中,網(wǎng)絡(luò)活動(dòng)的加密措施是免費(fèi)內(nèi)置的,并且很容易開啟。這一要求中的主要實(shí)施挑戰(zhàn)是在沒有適當(dāng)解決方案的情況下審計(jì)過(guò)多活動(dòng),這可能會(huì)對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生重大影響。第二個(gè)挑戰(zhàn)是實(shí)現(xiàn)高效的報(bào)告,以最少的時(shí)間投入及時(shí)審查信息。
在搜索審計(jì)解決方案時(shí),需要注意某些產(chǎn)品沒有避免數(shù)據(jù)庫(kù)性能開銷,而其他產(chǎn)品不支持網(wǎng)絡(luò)加密。
7.會(huì)話異常檢測(cè)和告警
等級(jí)7適用于對(duì)異常活動(dòng)源進(jìn)行自動(dòng)檢測(cè)和警報(bào)的數(shù)據(jù)庫(kù)。與等級(jí)4中執(zhí)行的人工會(huì)話審查不同,這一等級(jí)需要能夠檢測(cè)活動(dòng)源配置文件變化并發(fā)出警報(bào)的自動(dòng)化。
其中包括:
- 對(duì)連接到數(shù)據(jù)庫(kù)的新用戶、程序、機(jī)器或它們的組合發(fā)出警報(bào)。
- 檢測(cè)共享帳戶(多個(gè)個(gè)人使用的帳戶)以及使用多個(gè)帳戶的個(gè)人。
這個(gè)要求的目的是通過(guò)自動(dòng)化來(lái)補(bǔ)充人工審查,以注意到并突出異?;顒?dòng)。這有助于避免意外疏忽,并確??焖贆z測(cè)和響應(yīng)。實(shí)施需要適當(dāng)?shù)慕鉀Q方案來(lái)執(zhí)行分析。
8.SQL異常檢測(cè)與告警
等級(jí)8適用于對(duì)異常SQL活動(dòng)進(jìn)行自動(dòng)檢測(cè)和警報(bào)的數(shù)據(jù)庫(kù)。與等級(jí)5和等級(jí)6中的人工SQL審查不同,等級(jí)8需要能夠分析數(shù)據(jù)庫(kù)中所有SQL活動(dòng)(包括應(yīng)用程序活動(dòng))的自動(dòng)化。
其中包括:
- 異常的應(yīng)用程序行為,例如潛在的SQL注入。
- 異?;顒?dòng)水平。例如,執(zhí)行的SQL數(shù)或訪問的行數(shù)異常多。
- 在一天中的奇數(shù)時(shí)間進(jìn)行活動(dòng)。
- 涉及敏感表新的SQL。
這一要求的目標(biāo)遠(yuǎn)遠(yuǎn)超出了避免意外疏忽和改進(jìn)檢測(cè)時(shí)間的范圍。其目的是對(duì)無(wú)法接受人工審查的數(shù)據(jù)庫(kù)中不可能高的活動(dòng)量進(jìn)行控制。
即使是低活動(dòng)的數(shù)據(jù)庫(kù)每天也可能執(zhí)行數(shù)百萬(wàn)次SQL查詢,如果沒有實(shí)現(xiàn)自動(dòng)化,就不可能對(duì)它們應(yīng)用任何級(jí)別的控制。實(shí)施需要能夠以低開銷捕獲所有活動(dòng)并執(zhí)行分析的軟件。
9.主動(dòng)取證審查
等級(jí)9適用于定期進(jìn)行主動(dòng)活動(dòng)審查的數(shù)據(jù)庫(kù)。這意味著熟悉數(shù)據(jù)庫(kù)活動(dòng)概況的人員會(huì)定期檢查活動(dòng)(例如每月一次)。
取證審查的目的是識(shí)別可能未被發(fā)現(xiàn)的行為,包括內(nèi)部濫用和外部攻擊。此外還可以突出控制、風(fēng)險(xiǎn)做法等方面的差距。
實(shí)施取證審查需要一個(gè)解決方案,能夠以最小的開銷捕獲所有活動(dòng),減少并將其存儲(chǔ)在合理數(shù)量的磁盤空間中,并提供取證工具來(lái)分析和審查它。
10.限制對(duì)DBA和應(yīng)用程序的訪問
等級(jí)10適用于限制訪問帳戶的數(shù)據(jù)庫(kù),否則對(duì)數(shù)據(jù)的訪問不受限制,例如數(shù)據(jù)庫(kù)管理員(DBA)帳戶、特權(quán)帳戶和應(yīng)用程序帳戶。
此類限制通常不是原生數(shù)據(jù)庫(kù)功能的一部分,可能包括:
- 防止特權(quán)帳戶訪問他們不應(yīng)訪問的模式、表或?qū)ο蟆@纾瑪?shù)據(jù)庫(kù)管理員(DBA)帳戶通常不應(yīng)訪問數(shù)據(jù)。
- 防止不應(yīng)訪問的程序或機(jī)器訪問該帳戶。例如,只有應(yīng)用程序和應(yīng)用服務(wù)器才能訪問應(yīng)用帳號(hào)。
- 防止在不應(yīng)該使用帳戶的日子和時(shí)間訪問帳戶。
- 防止帳戶訪問超出預(yù)期的數(shù)據(jù)(速率限制)。
- 通過(guò)要求安全人員預(yù)先授權(quán)某些特權(quán)活動(dòng)來(lái)強(qiáng)制分離職責(zé)。
這個(gè)要求需要一個(gè)解決方案來(lái)實(shí)施,因?yàn)樗隽藘?nèi)置的數(shù)據(jù)庫(kù)預(yù)防控制。對(duì)數(shù)據(jù)庫(kù)應(yīng)用預(yù)防控制會(huì)帶來(lái)阻止合法活動(dòng)的操作風(fēng)險(xiǎn)。因此,必須按照適當(dāng)?shù)淖罴褜?shí)踐謹(jǐn)慎地部署此類措施,以最大程度地減少中斷的可能性。
結(jié)語(yǔ)
如果企業(yè)的安全等級(jí)沒有想象的那么高,那么不要擔(dān)心,繼續(xù)加強(qiáng)。而保持?jǐn)?shù)據(jù)庫(kù)安全需要堅(jiān)持不懈的追求,這將逐漸提高企業(yè)的安全等級(jí)。
數(shù)據(jù)庫(kù)安全是一項(xiàng)必不可少的投資,它將讓企業(yè)確信其數(shù)據(jù)是安全和可靠的。