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