數(shù)據(jù)庫(kù)安全的5個(gè)基本實(shí)踐
譯者注:現(xiàn)在已經(jīng)進(jìn)入到大數(shù)據(jù)時(shí)代,因此數(shù)據(jù)和數(shù)據(jù)庫(kù)安全比以往任何時(shí)候都更加珍貴。如何確保組織機(jī)構(gòu)和用戶數(shù)據(jù)的安全性和可靠性是每個(gè)人都得掌握的一項(xiàng)技能。以下為譯文。
一旦數(shù)據(jù)發(fā)生泄露,那么付出的代價(jià)將是非常慘痛的。由于數(shù)據(jù)泄露而導(dǎo)致的業(yè)務(wù)中斷、客戶信心喪失、法律成本、監(jiān)管罰款,或者是由于類(lèi)似于蠕蟲(chóng)病毒攻擊造成的直接損失,這些后果可能需要花費(fèi)數(shù)百萬(wàn)。俗話說(shuō)得好,最好的防守就是發(fā)起進(jìn)攻,所以讓我們來(lái)學(xué)習(xí)以下五個(gè)關(guān)鍵實(shí)踐,以確保數(shù)據(jù)庫(kù)的安全:保護(hù)、審計(jì)、管理、更新和加密。
1.使用代理保護(hù)數(shù)據(jù)庫(kù)免受攻擊
數(shù)據(jù)庫(kù)代理(或網(wǎng)關(guān)代理)位于應(yīng)用程序和數(shù)據(jù)庫(kù)之間,接受來(lái)自應(yīng)用程序的連接請(qǐng)求,然后代表這些應(yīng)用程序連接到數(shù)據(jù)庫(kù)。智能數(shù)據(jù)庫(kù)代理(如我們自己使用的MaxScale)提供了過(guò)濾器和加載模塊,以提供安全性、可靠性、可伸縮性和性能優(yōu)勢(shì)。
MaxScale數(shù)據(jù)庫(kù)防火墻過(guò)濾器通過(guò)過(guò)濾器解析發(fā)起的查詢,如果發(fā)送過(guò)來(lái)的查詢不符合已經(jīng)提前設(shè)置的查詢類(lèi)型的白名單,那么過(guò)濾器就會(huì)自動(dòng)阻止。例如,給定的連接只能執(zhí)行更新和插入,而另一個(gè)連接必須匹配某些正則表達(dá)式,等等。
像MaxScale這樣的代理也可以保護(hù)數(shù)據(jù)庫(kù)不受DDoS的攻擊:當(dāng)過(guò)多的連接直接進(jìn)入到數(shù)據(jù)庫(kù)服務(wù)器時(shí),它就會(huì)超載。但是代理會(huì)吸收一些負(fù)載來(lái)限制這種攻擊的影響。
2.建立審計(jì)和健壯的日志記錄
審計(jì)和日志記錄是緊密相連的,但是審計(jì)日志比一般日志要復(fù)雜得多。審計(jì)日志給用戶提供了調(diào)查可疑活動(dòng)所需要的全部信息,如果確實(shí)做過(guò)違反規(guī)則的操作,還可以根據(jù)審計(jì)日志進(jìn)行根源分析。此外,審計(jì)日志有助于確保遵守諸如GDPR、PCI、HIPPA和SOX等規(guī)則。(學(xué)習(xí)更多關(guān)于用MariaDB TX處理GDPR的信息)
MariaDB審計(jì)插件可以記錄大量信息:所有傳入的連接、所有執(zhí)行的查詢,甚至所有單個(gè)表的訪問(wèn)記錄。用戶可以看到誰(shuí)在給定的時(shí)間訪問(wèn)了一個(gè)表,以及誰(shuí)執(zhí)行了插入或刪除數(shù)據(jù)的操作。審計(jì)插件可以記錄到文件或syslog,因此如果已經(jīng)有了依賴于syslog的工作流,那么就可以直接將其綁定到這些文件中。
3.實(shí)行嚴(yán)格的用戶帳戶管理
嚴(yán)格管理數(shù)據(jù)庫(kù)用戶帳戶是非常重要的。無(wú)論對(duì)于IT生態(tài)系統(tǒng)的哪個(gè)方面來(lái)說(shuō),這都是一條正確的規(guī)則,因此我們不會(huì)在這里詳細(xì)說(shuō)明。相反,我們將簡(jiǎn)單地提醒您用戶帳戶管理的幾個(gè)關(guān)鍵方面:
- 只允許超級(jí)管理員從本地客戶端進(jìn)行訪問(wèn)。
- 堅(jiān)持使用強(qiáng)密碼。
- 每個(gè)應(yīng)用程序都有單獨(dú)的數(shù)據(jù)庫(kù)用戶。
- 限制可以訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器的IP地址的數(shù)量。
4.保證數(shù)據(jù)庫(kù)軟件和操作系統(tǒng)是最新的
我們都知道讓軟件處于最新版本的原因,但還是有很多人會(huì)去運(yùn)行遺留的操作系統(tǒng)以及舊版本的數(shù)據(jù)庫(kù)服務(wù)器。我們時(shí)刻都要謹(jǐn)記,只有將版本保持為最新版本這才是保護(hù)數(shù)據(jù)不受那些最新威脅的唯一方法。
這不僅適用于服務(wù)器軟件,也適用于操作系統(tǒng)。畢竟,Windows操作系統(tǒng)安全補(bǔ)丁的應(yīng)用不太好,這也間接導(dǎo)致了蠕蟲(chóng)病毒的攻擊成為了可能。
5.加密敏感數(shù)據(jù),無(wú)論是在應(yīng)用程序中,還是在數(shù)據(jù)傳輸中,甚至處于空閑時(shí)
許多組織機(jī)構(gòu)都會(huì)對(duì)加密進(jìn)行簡(jiǎn)短的處理,但這么做卻很有價(jià)值。畢竟,如果他們能在平時(shí)的工作中能夠發(fā)現(xiàn)密碼會(huì)被破解,那么這就會(huì)降低黑客入侵的概率。
加密的第一階段是在應(yīng)用程序里面,此時(shí)數(shù)據(jù)還未到達(dá)數(shù)據(jù)庫(kù)。如果數(shù)據(jù)在應(yīng)用程序中就已經(jīng)被加密了,那么破壞數(shù)據(jù)庫(kù)的黑客就看不出數(shù)據(jù)是什么(不過(guò),這只適用于沒(méi)有密鑰的數(shù)據(jù))。
接下來(lái)是傳輸過(guò)程中的數(shù)據(jù)加密。這意味著當(dāng)數(shù)據(jù)從客戶端移動(dòng)到數(shù)據(jù)庫(kù)服務(wù)器(或在代理服務(wù)器上)時(shí),數(shù)據(jù)在網(wǎng)絡(luò)上加密。這與在web瀏覽器中使用HTTPS基本相同。顯然,服務(wù)器可以看到這些信息,因?yàn)樗枰x取用戶填寫(xiě)的表單,用戶也可以讀取信息,因?yàn)槭撬麄兲顚?xiě)的表單,但在用戶和服務(wù)器之間沒(méi)有人能夠讀取它。
最后,我們講一下數(shù)據(jù)庫(kù)處于空閑時(shí)的數(shù)據(jù)加密。你可以使用它來(lái)加密InnoDB表空間、InnoDB redo日志以及二進(jìn)制日志。這意味著你可以在MariaDB服務(wù)器上中加密幾乎所有被寫(xiě)入光盤(pán)的東西。