

摘要:MySQL數據庫是當前最流行的關系型數據庫系統,被廣泛應用到各企業中小型網站中。當前,日益增長的網絡攻擊已嚴重威脅到了數據庫安全,提高數據庫的安全性已成為網絡安全建設的最重要任務之一。該文從物理安全、網絡安全、主機安全、運行安全等四個方面對MySQL數據庫面臨的問題進行了詳細分析與研究,并針對性地提出了相應解決方案。
關鍵詞:MySQL數據庫;物理安全;網絡安全;主機安全;運行安全
中國分類號:TP309.2 文獻標識碼:A
文章編號:1009-3044(2020)09-0003-02
1 引言
MySQL是一個輕量級關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。MySQL由于其開源、免費,維護簡單,使用成本低等特點被越來越多地應用到web類服務器中。作為web應用核心組成部分,MySQL數據庫的安全直接關系到整個應用系統的安全,企業必須投入更多精力關注數據庫面臨的安全威脅,并制定相應解決方案。
2 數據庫安全加固
2.1 物理安全保證數據庫安全,首先要保證數據庫服務器設備安全。數據庫服務器硬件的可靠性直接決定了整個數據庫系統的可靠性。因服務器磁盤數量較多,為了提高其可靠性通常不會直接采用直通模式,而是通過raid控制器將物理卷組合成一個或多個邏輯卷,不同的raid級別帶來完全不一樣的性能,常見的組合方式及性能如表1所示。
數據庫管理員應在對成本、性能、可靠性進行綜合考慮后選擇最為合適生產環境的raid方案。
2.2 網絡安全
為充分保障數據庫服務器所在網絡的安全,企業內網中應配備以下幾種設備:
a)安全設備
主要包括IDS、IPS、防病毒網關等;
b)邊界網絡設備
主要包括路由器、防火墻、認證網關和準入控制設備等;
c)其他網絡設備
主要包括接人交換機、匯聚交換機、核心交換機、負載均衡等。
網絡層的訪問控制主要由防火墻來實現,管理員可以通過防火墻設備對訪問數據庫服務器的源地址和端口進行控制,應當只允許相關用戶IP地址訪問該數據庫服務器,訪問端口控制到3306,并對該條策略啟用防火墻日志記錄功能。訪問控制策略的設置應遵循權限最小化原則。
2.3 主機安全
2.3.1 系統安全
為了提高數據庫的可靠性,必須提高操作系統的可靠性。如果使用linux作為數據庫服務器操作系統,則應在安裝數據庫服務器操作系統過程中啟用lvm管理,lvm提供了邏輯卷快照功能,它允許管理員創建一個新的塊設備來呈現一個邏輯卷的精確副本,在某個時間凍結,管理員可以及時備份指定一致狀態下的數據,當需要恢復刪除的數據時可以通過掛在快照卷迅速恢復。
2.3.2 身份鑒別
缺省安裝的MySQL的root用戶是空密碼的,必須修改默認的密碼策略。
可以使用以下命令查看MySQL當前密碼策略:
show variables like' validate_password%;
為提高數據庫安全性,我們必須將其設置為強密碼策略:口令長度需要至少八位,并包括數字、字母和特殊符號四類中,且五次以內不得設置相同的口令。密碼應至少每90天進行一次更換??梢酝ㄟ^修改以下幾個參數實現:
validate_password_length:密碼最少長度
validate_password_mixed_c ase_count:大小寫字符長度,至少1個
validate_password_number_count:數字至少1個
validate_password_special_char_count:特殊字符至少1個
default_password_lifetime:密碼過期時間
2.3.3 訪問控制
訪問控制是安全防護的主要手段之一,它不僅應用于網絡層面,同樣適用于主機層面,它的主要目的是限制特定用戶對特定資源的訪問,防止對系統資源的非法訪問和使用。數據庫系統訪問控制主要分為以下幾點:
a)操作系統和數據庫系統管理員權限分離
數據庫服務器操作系統管理員和數據庫管理員不得兼任;
b)禁止MySQL以管理員賬戶運行
以普通賬戶安全運行MySQL服務,禁止以管理員賬號權限運行MySQL服務。在/etc/my.cnf'配置文件中進行以下設置。
[mysqld]
user=mysql
c)刪除MySQL數據庫多余賬戶
DROP USER語句可用于刪除一個或多個MySQL賬戶。使用DROP USER命令時,必須確保當前賬號擁有MySQL數據庫的全局CREATE USER權限或DELETE權限。賬戶名稱的用戶和主機部分分別與用戶表記錄的User和Host列值相對應。
執行DROP USER user;語句,您可以取消一個賬戶和其權限,并刪除來自所有授權表的賬戶權限記錄。
d)刪除默認數據庫
MySQL初始化后會自動生成test庫以進行安裝的測試,這會對數據庫的安全構成威脅,有必要予以刪除,只保留必需的系統數據庫即可,以后可以根據需要增加數據庫。
2.3.4 安全審計
安全審計主要是通過系統日志功能實現。
數據庫應配置并開啟日志功能,便于記錄運行狀況和操作行為。MySQL服務有以下幾種日志類型:
錯誤日志:-log-err
查詢日志:-log(可選)
慢查詢日志:-log-slow-queries(可選)
更新日志:-log-update
二進制日志:-log-bin
找到MySQL的安裝目錄,在my.1m配置文件中增加上述所需的日志類型參數,保存配置文件后,重啟MySQL服務即可啟用日志功能。
2.4 運行安全
2.4.1 系統漏洞分析
在企業內部網絡環境中,可以配備數據庫漏洞掃描系統,綜合分析數據庫訪問控制、數據庫審計、資源管理、數據庫加密以及數據庫系統本身安全機制。漏洞掃描系統可以讀取數據庫的信息與安全策略并進行綜合分析,在查出數據庫中存在的漏洞后自動給出詳細的漏洞描述、漏洞來源及修復建議、并提供完整的數據庫漏洞報告、數據庫安全評估報告。數據庫管理員應據此報告及時下載相應補丁對數據庫進行漏洞修復,沒有補丁的應及時修改安全策略,最大限度地保護數據庫的安全。
2.4.2 備份與恢復
MySQL數據庫作為應用系統的核心促成部分,為其制定一個合適的、可操作的備份和恢復計劃至關重要。
數據庫備份可以分為物理備份和邏輯備份兩類。
物理備份是在操作系統層面上對數據庫的數據文件進行備份,物理備份分為冷備份和熱備份兩種。冷備份是將數據庫正常關閉,在停止狀態下將數據庫的文件全部備份下來。熱備份分為兩種方式,一種是不關閉數據庫,將數據庫中需要備份的數據文件依次置于備份狀態,相對保持靜止,然后再將數據庫的文件備份下來,備份完畢后再將數據文件恢復為正常狀態;另一種方式是利用備份軟件(如IBM公司的TSM)在數據庫正常運行的狀態下,將數據庫中的數據文件備份出來。
為了提高物理備份的效率,通常將完全、差異、增量三種備份方式相組合。完全備份是將數據庫的內容全部備份,作為增量、累積的基礎;差異備份是只備份上次完全備份以來修改的數據;增量備份是備份自上次備份以來修改過的數據。一個備份周期通常由一個完全備份和多個增量、差異備份組成。
邏輯備份是指利用數據庫系統自帶的工具軟件備份和恢復數據庫的內容。MySQL數據庫可以使用以下命令進行邏輯備份:
mysqldump AE> /dbbackuphuysqldump.、date +%u'
在數據庫容量不大的情況下可以選擇邏輯備份,針對大型數據庫則可結合磁帶庫采用物理的完全、增量、累積三種備份方式相組合來進行備份。
2.4.3 MySQL復制
復制是備份的一項技術補充,但復制既不是備份也不能夠取代備份。它夠幫助應用程序避免MySQL單點失敗,一個包含復制的設計良好的故障切換系統能夠顯著地縮短宕機時間。
MySQL復制有三個步驟:
a)在主庫上把數據更改記錄到二進制文件(Binarylog)中;
b)備庫將主庫上的日志文件復制到自己的中繼日志( Re-lay log);
c)備庫讀取中繼日志中的事件,將其重放到備庫數據上。
復制細節如下圖所示:
重要業務系統的數據庫應啟用MySQL復制功能,增加系統整體可靠性。
3 結束語
本文從物理安全、網絡安全、主機安全和運行安全等四個方面詳細分析了MySQL數據庫面臨的安全問題及相應加固措施。在實際生產環境中,企業應結合自身業務工作,制定出切實可行的數據庫系統安全保密工作方案,保障數據庫及應用系統安全。
參考文獻:
[1]HarmeetKaurKhanuja. Database Securitv Threats and Challeng-es in Database Forensic:A Survey[A]. The proceedings of 2011International Conference on Advancements in InformationTechnology。2011:6.
[2]馮娜,韓淑芹.計算機網絡數據庫的安全管理技術研討[J].通訊世界,2017(3):112.
[3]宣振國.基于Mysql的數據庫集群設計與實現[D].北京:北京郵電大學,2013.
[4]程文迪.計算機網絡安全技術探析[J].技術與市場,2016,23 (4):119.
[5]嚴磊.高校教務管理系統中的數據庫安全問題與策略研究[Jl.信息技術與信息化,2016 (8):76-78.
【通聯編輯:王力】
作者簡介:蔣睿,工程師。