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























