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