mysql进阶:企业数据库安全防护方案
0.引言
數(shù)據(jù)庫安全是系統(tǒng)安全的重中之重,做好數(shù)據(jù)庫安全防護及規(guī)范,是系統(tǒng)建設的基礎。
今天我們來看看企業(yè)生產(chǎn)如何落地數(shù)據(jù)庫安全防護機制。
1. 數(shù)據(jù)庫安全問題
最好數(shù)據(jù)庫安全,我們首先要了解能夠威脅數(shù)據(jù)庫安全的問題有哪些:
-
1、基礎設施薄弱
作為數(shù)據(jù)庫的第一層防護,我們的防火墻、網(wǎng)絡設備、服務器等基礎設施的防護如果不足,那么黑客則能夠利用這些薄弱點,來攻擊服務器,以獲取數(shù)據(jù)庫數(shù)據(jù)。甚至如果系統(tǒng)的硬盤存在問題,都不需要外部攻擊,可能內(nèi)部使用時就會導致數(shù)據(jù)損壞。
-
2、弱認證
數(shù)據(jù)庫訪問請求在經(jīng)過網(wǎng)絡層、硬件層的校驗后,進入到數(shù)據(jù)庫本身的認證校驗中時,如果數(shù)據(jù)庫本身的密碼防護不足,也會導致安全問題。這一點也是很多初學者容易出現(xiàn)的問題, -
3、用戶權(quán)限未隔離
用戶權(quán)限不做層級劃分,不進行嚴格的權(quán)限分配,這是很多企業(yè)內(nèi)部容易出現(xiàn)的安全問題。有的數(shù)據(jù)庫管理員為了圖方便,給每一個開發(fā)者都分配了一個最高權(quán)限的管理員賬號,開發(fā)者能夠隨意更改表結(jié)構(gòu),調(diào)整庫信息,這是非常危險的行為。從數(shù)據(jù)庫管理員的職責出發(fā),這樣的做法是對企業(yè)生產(chǎn)極大的不負責。
-
4、SQL注入
SQL注入是我們老生常談的問題了,這一點我們一般在開發(fā)層進行防護。隨著開發(fā)者安全意識的提高以及各類持久層的完備,這類問題倒是越來越少,但并不意味著我們可以不重視它,越是熟悉的地方,反而越容易馬虎。 -
5、數(shù)據(jù)庫備份弱加密
數(shù)據(jù)庫連接加密是很多人都會完善的,但是較多企業(yè)缺會忽略備份數(shù)據(jù)的加密或者加密等級不足,也會導致數(shù)據(jù)的二次泄漏。安全防護在哪一層都容不得馬虎。 -
6、數(shù)據(jù)庫未做審計
針對數(shù)據(jù)庫搭建審計系統(tǒng),這一點依然是不可或缺的。使用審計系統(tǒng),我們可以監(jiān)控執(zhí)行的數(shù)據(jù)庫更新語句,能夠在數(shù)據(jù)更改中加上一層防護。最后一層防止職權(quán)的濫用以及針對SQL的檢驗。很多企業(yè)覺得我們企業(yè)小,沒必要花錢搭建數(shù)據(jù)庫審計系統(tǒng),但生產(chǎn)數(shù)據(jù)的安全防護,真的不能有一點馬虎,如果企業(yè)在這一塊的投入有限,但至少將生產(chǎn)環(huán)境保護起來,同時現(xiàn)在開源免費的數(shù)據(jù)庫審計軟件有很多,所需要投入的無非就是服務器成本和運維成本。如果連這一點都舍不得,那么數(shù)據(jù)安全的風險你也需要硬著頭皮承擔。
2. 安全防護措施
在我們了解了數(shù)據(jù)庫安全的風險點后,我們再一一針對這些問題點,來提出我們的防護方案:
2.1 網(wǎng)絡硬件安全防護
針對基礎硬件的安全防護,這一點不是開發(fā)能夠關(guān)注得到的,一般是由硬件供應商來提供。因此我們就需要關(guān)注我們能夠觸及到的網(wǎng)絡層安全防護了。
1、對外暴露時不要使用默認的數(shù)據(jù)庫端口
比如3306,建立內(nèi)外網(wǎng)端口映射。這樣能夠降低惡意程序?qū)?shù)據(jù)庫的攻擊準度。
2、網(wǎng)絡隔離
通過VLAN、防火墻建立網(wǎng)絡環(huán)境隔離,將開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境區(qū)分開來,防止一個環(huán)境產(chǎn)生問題而導致的事故蔓延。
針對開發(fā)者需要連接上企業(yè)服務器進行某些環(huán)境部署或者生產(chǎn)排錯的,需要搭建堡壘機,并且指定用戶禁用某些敏感指令,比如rm,reboot,chown等指令。從根本上扼殺“刪庫跑路”的可能。
3、防病毒系統(tǒng)
如果你不想讓你的服務器裸奔,那么安裝防病毒系統(tǒng)必不可少,而選擇哪些防病毒系統(tǒng)呢,最方便的解決方案就是聯(lián)系你的服務器供應商,讓他們給你提供完備的解決方案吧。
如果實在預算有限,那么就做好其他方便的防控,嚴格把控端口開放、權(quán)限釋放。
4、監(jiān)控系統(tǒng)
我們需要一個監(jiān)控系統(tǒng)來幫助我們?nèi)毂O(jiān)控服務器情況,發(fā)現(xiàn)異常情況馬上告知我們,比較早期的zabbix和現(xiàn)在流行的k8s都是不錯的選擇。
2.2 連接加密
除了網(wǎng)絡和硬件層外,連接加密是數(shù)據(jù)庫內(nèi)部最頂層的保護措施了,設置用戶連接數(shù)據(jù)庫的賬號及密碼,注意密碼不可設置的過于簡單,最好包含大小寫字母、數(shù)字、特殊字符,長度不小于8位
針對書寫在配置文件中的連接密碼,要設置加密,防止二次暴露
2.3 用戶權(quán)限隔離
這一點是重中之重,權(quán)限分層管理,不同的用戶、角色設置不同的權(quán)限,普通開發(fā)人員不給予DDL權(quán)限,選擇性開放DML權(quán)限。
不需要的絕不多開一點權(quán)限,權(quán)限開通嚴格執(zhí)行審批流程。
2.4 視圖保護
雖然現(xiàn)在已經(jīng)不太建議采用視圖了,但是針對一些內(nèi)部對接或者特殊要求,視圖依然是一種選擇,通過視圖可以嚴格把控輸出哪些字段數(shù)據(jù),并且針對視圖進行賦權(quán),把控哪些用戶能夠訪問哪些視圖。以此保障數(shù)據(jù)安全
2.5 審計系統(tǒng)
審計系統(tǒng)的搭建是小型企業(yè)實際生產(chǎn)容易忽略的問題,但是數(shù)據(jù)庫審計系統(tǒng)卻是數(shù)據(jù)安全防護至關(guān)重要的一環(huán)。除了完備的商業(yè)數(shù)據(jù)庫審計軟件外,我們還可以選擇一些開源的數(shù)據(jù)庫審計軟件或插件,比如通過數(shù)據(jù)庫審計插件:Percona Audit Log Plugin、MariaDB Audit Plugin、McAfee MySQL Audit Plugin、htp_audit,還有開源或免費審計軟件:yearning、CloudQuery
2.6 防SQL注入
如今多數(shù)的web防火墻、數(shù)據(jù)庫防火墻或者一些防護軟件能夠有效防護SQL注入,但是我們在實際的開發(fā)過程中依然要養(yǎng)成避免SQL注入的習慣,比如mybatis中書寫中慎用${},在程序中書寫特殊字符過濾器等。
2.7 數(shù)據(jù)庫備份加密
數(shù)據(jù)庫備份是必不可少的操作,一般我們可以采用mysqldump指令實現(xiàn)。但是備份的數(shù)據(jù)文件如果不加以嚴格管理,反而成為一個安全隱患。
針對備份的數(shù)據(jù),做好異地儲存,同時也要做好儲存文件的加密,加密密碼不可過于簡單。守好安全防護的最后一關(guān)。
總結(jié)
本期針對數(shù)據(jù)庫安全防護的講解就到此結(jié)束了,本期先針對防護概念做出梳理,下一期我們將講講其中一些措施的具體實施
總結(jié)
以上是生活随笔為你收集整理的mysql进阶:企业数据库安全防护方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果Mac电脑文件夹路径怎么看?“访达”
- 下一篇: 瀚高数据库安全配置要求