資料庫安全的5個基本實踐

gydtep發表於2018-10-22

一旦資料發生洩露,那麼付出的代價將是非常慘痛的。由於資料洩露而導致的業務中斷、客戶信心喪失、法律成本、監管罰款,或者是由於類似於蠕蟲病毒攻擊造成的直接損失,這些後果可能需要花費數百萬。俗話說得好,最好的防守就是發起進攻,所以讓我們來學習以下五個關鍵實踐,以確保資料庫的安全:保護、審計、管理、更新和加密。

1.使用代理保護資料庫免受攻擊
資料庫代理(或閘道器代理)位於應用程式和資料庫之間,接受來自應用程式的連線請求,然後代表這些應用程式連線到資料庫。智慧資料庫代理(如我們自己使用的MaxScale)提供了過濾器和載入模組,以提供安全性、可靠性、可伸縮性和效能優勢。

MaxScale資料庫防火牆過濾器通過過濾器解析發起的查詢,如果傳送過來的查詢不符合已經提前設定的查詢型別的白名單,那麼過濾器就會自動阻止。例如,給定的連線只能執行更新和插入,而另一個連線必須匹配某些正規表示式,等等。

像MaxScale這樣的代理也可以保護資料庫不受DDoS的攻擊:當過多的連線直接進入到資料庫伺服器時,它就會超載。但是代理會吸收一些負載來限制這種攻擊的影響。

2.建立審計和健壯的日誌記錄
審計和日誌記錄是緊密相連的,但是審計日誌比一般日誌要複雜得多。審計日誌給使用者提供了調查可疑活動所需要的全部資訊,如果確實做過違反規則的操作,還可以根據審計日誌進行根源分析。此外,審計日誌有助於確保遵守諸如GDPR、PCI、HIPPA和SOX等規則。(學習更多關於用MariaDB TX處理GDPR的資訊)

MariaDB審計外掛可以記錄大量資訊:所有傳入的連線、所有執行的查詢,甚至所有單個表的訪問記錄。使用者可以看到誰在給定的時間訪問了一個表,以及誰執行了插入或刪除資料的操作。審計外掛可以記錄到檔案或syslog,因此如果已經有了依賴於syslog的工作流,那麼就可以直接將其繫結到這些檔案中。

3.實行嚴格的使用者帳戶管理
嚴格管理資料庫使用者帳戶是非常重要的。無論對於IT生態系統的哪個方面來說,這都是一條正確的規則,因此我們不會在這裡詳細說明。相反,我們將簡單地提醒您使用者帳戶管理的幾個關鍵方面:

只允許超級管理員從本地客戶端進行訪問。
堅持使用強密碼。
每個應用程式都有單獨的資料庫使用者。
限制可以訪問資料庫伺服器的IP地址的數量。
4.保證資料庫軟體和作業系統是最新的
我們都知道讓軟體處於最新版本的原因,但還是有很多人會去執行遺留的作業系統以及舊版本的資料庫伺服器。我們時刻都要謹記,只有將版本保持為最新版本這才是保護資料不受那些最新威脅的唯一方法。

這不僅適用於伺服器軟體,也適用於作業系統。畢竟,Windows作業系統安全補丁的應用不太好,這也間接導致了蠕蟲病毒的攻擊成為了可能。

5.加密敏感資料,無論是在應用程式中,還是在資料傳輸中,甚至處於空閒時
許多組織機構都會對加密進行簡短的處理,但這麼做卻很有價值。畢竟,如果他們能在平時的工作中能夠發現密碼會被破解,那麼這就會降低黑客入侵的概率。

加密的第一階段是在應用程式裡面,此時資料還未到達資料庫。如果資料在應用程式中就已經被加密了,那麼破壞資料庫的黑客就看不出資料是什麼(不過,這隻適用於沒有金鑰的資料)。

接下來是傳輸過程中的資料加密。這意味著當資料從客戶端移動到資料庫伺服器(或在代理伺服器上)時,資料在網路上加密。這與在web瀏覽器中使用HTTPS基本相同。顯然,伺服器可以看到這些資訊,因為它需要讀取使用者填寫的表單,使用者也可以讀取資訊,因為是他們填寫的表單,但在使用者和伺服器之間沒有人能夠讀取它。

最後,我們講一下資料庫處於空閒時的資料加密。你可以使用它來加密InnoDB表空間、InnoDB redo日誌以及二進位制日誌。這意味著你可以在MariaDB伺服器上中加密幾乎所有被寫入光碟的東西。


相關文章