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