MySQL的安全加固方法
本文轉(zhuǎn)載自微信公眾號(hào)「MySQL技術(shù)」,作者M(jìn)ySQL技術(shù)。轉(zhuǎn)載本文請(qǐng)聯(lián)系MySQL技術(shù)公眾號(hào)。
前言
數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)的載體,在程序開發(fā)中承擔(dān)著至關(guān)重要的作用。近些年,隨著各種安全事故的發(fā)生,數(shù)據(jù)安全性逐漸得到重視。等保評(píng)測(cè)或各類系統(tǒng)安全評(píng)測(cè)中也都有增加數(shù)據(jù)庫(kù)安全相關(guān)要求,本篇文章將以 MySQL 為例,分享幾點(diǎn)數(shù)據(jù)庫(kù)安全加固方法。
1.數(shù)據(jù)安全重要性
數(shù)據(jù)安全性是指保護(hù)數(shù)據(jù)免受未經(jīng)許可而故意或偶然的傳送、泄露、破壞、修改,是標(biāo)志程序和數(shù)據(jù)等信息的安全程度的重要指標(biāo)。即保護(hù)數(shù)據(jù)不被破壞或泄露,不準(zhǔn)非法修改,防止不合法的訪問。
從理論上看,數(shù)據(jù)安全是信息系統(tǒng)建設(shè)的基石,數(shù)據(jù)是信息系統(tǒng)保護(hù)的首要目標(biāo)。數(shù)據(jù)失去保護(hù),信息系統(tǒng)也就失去了應(yīng)有的意義。數(shù)據(jù)因?yàn)槠鋬r(jià)值的巨大和變現(xiàn)的便捷性,已成為黑客直接攻擊的首要目標(biāo)。近期,也發(fā)生過很多數(shù)據(jù)庫(kù)系統(tǒng)中勒索病毒或被挖礦的案例。
數(shù)據(jù)安全有三個(gè)特性,分別是保密性、完整性、可用性:
- 保密性:指對(duì)數(shù)據(jù)進(jìn)行加密,只有授權(quán)者方可使用,并保證數(shù)據(jù)在流通環(huán)節(jié)不被竊取。包括網(wǎng)絡(luò)傳輸保密和數(shù)據(jù)存儲(chǔ)保密。
- 完整性:指數(shù)據(jù)未經(jīng)授權(quán)不得進(jìn)行修改,確保數(shù)據(jù)在存儲(chǔ)和傳輸過程中不被篡改、破壞、盜用、丟失。
- 可用性:指經(jīng)授權(quán)的合法用戶必須得到系統(tǒng)和網(wǎng)絡(luò)提供的正常服務(wù)。不可因?yàn)楸Wo(hù)數(shù)據(jù)泄露而拒合法使用者于千里之外。
國(guó)家對(duì)于數(shù)據(jù)安全也很重視,2021 年 6 月 10 日,第十三屆全國(guó)人民代表大會(huì)常務(wù)委員會(huì)第二十九次會(huì)議通過《中華人民共和國(guó)數(shù)據(jù)安全法》,自 2021 年 9 月 1 日起施行。自此之后,數(shù)據(jù)安全問題也做到了有法可依。
2.安全加固方法
那么我們應(yīng)該怎么來做數(shù)據(jù)庫(kù)安全加固呢?從數(shù)據(jù)安全的三個(gè)特性出發(fā),或許可以找到新的思路,即要保證數(shù)據(jù)的保密性、完整性、可用性。一切對(duì)這三個(gè)特性有利的方法都可作為安全加固的方法。
筆者認(rèn)為,安全是多個(gè)環(huán)節(jié)層層防護(hù)、共同配合的結(jié)果。數(shù)據(jù)安全加固并不只是數(shù)據(jù)庫(kù)單一層面的問題,還需考慮操作系統(tǒng)、底層存儲(chǔ)、程序端等多個(gè)層面。下面筆者將從這幾個(gè)層面來分享幾點(diǎn)數(shù)據(jù)庫(kù)安全加固的方法,當(dāng)然,筆者并不是安全相關(guān)專業(yè)人事,幾點(diǎn)建議僅供參考。
操作系統(tǒng)層面(主機(jī)層):
- 做好系統(tǒng)用戶身份鑒別,不使用弱密碼并定期更換。
- 啟用登錄失敗處理功能,限制 ip 重復(fù)登錄。
- 做好訪問控制,制定安全策略,控制用戶對(duì)資源的訪問。
- 配置防火墻策略,做好安全審計(jì)并保留審計(jì)日志記錄。
存儲(chǔ)層:
- 有存儲(chǔ)冗余策略。
- 選擇合適的磁盤陣列技術(shù)。
- 定期檢查存儲(chǔ),避免磁盤壞道。
數(shù)據(jù)庫(kù)層:
- 以獨(dú)立的系統(tǒng)用戶運(yùn)行 mysql 服務(wù)。
- 及時(shí)發(fā)現(xiàn)新的安全風(fēng)險(xiǎn),打補(bǔ)丁或升級(jí)版本。
- 配置數(shù)據(jù)庫(kù)賬號(hào)密碼策略,不使用弱密碼。
- 數(shù)據(jù)庫(kù)賬號(hào)權(quán)限盡可能小,做好權(quán)限分離。
- 禁止數(shù)據(jù)庫(kù)外網(wǎng)訪問,限制數(shù)據(jù)庫(kù)賬號(hào) ip 登錄。
- 竭力完善數(shù)據(jù)庫(kù)高可用架構(gòu),最好能做到多活。
- 有完整的周期性備份策略,備份文件可在異地保留一份。
- 增加數(shù)據(jù)庫(kù)審計(jì),對(duì)數(shù)據(jù)庫(kù)流量或日志審計(jì),設(shè)定告警通知機(jī)制。
程序?qū)樱?/p>
- 敏感數(shù)據(jù)進(jìn)行加密存儲(chǔ)和傳輸。
- 做好代碼安全檢測(cè),防止惡意傳參及 SQL 注入。
- 應(yīng)用系統(tǒng)不使用常見的管理員賬號(hào)及密碼。
總結(jié):
人類已進(jìn)入大數(shù)據(jù)時(shí)代,數(shù)據(jù)的重要性無需贅言,特別是金融、政府、醫(yī)療等系統(tǒng)。本篇文章從幾個(gè)層面出發(fā),分享了幾點(diǎn)數(shù)據(jù)庫(kù)安全加固建議,希望大家能夠?qū)?shù)據(jù)安全性有些基本的認(rèn)識(shí),數(shù)據(jù)安全要重視起來了。