如何邁開MySQL數據庫的安全合規使用第一步?
本文介紹了關系型數據庫系統的定義和設計原理,目前軟件市場上主流關系型數據庫的使用情況,重點分析了數據庫安全漏洞被黑客攻擊的風險,互聯網普遍使用的開源數據庫MySQL 5.7的升級特點,數據庫漏洞掃描對這個新版本的檢查支持。
2017年6月10日,第三屆PHP全球開發者大會在京舉辦,會上,關于《MySQL 5.7優化不求人》的演講滿滿干貨,頗受好評。提到MySQL數據庫,我們過去的印象是中小企業為了節約成本會使用MySQL,但慢慢我們發現,很多大型的網站均應用了MySQL數據庫,這種開源的關系型數據庫管理系統也因其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。由此可見,其發展前景非常光明。
今天,我們沿著“關系型數據庫管理系統→主流關系型數據庫及安全漏洞→MySQL數據庫版本及特性→數據庫漏洞掃描對MySQL5.7的支持”的思路為MySQL數據庫使用者做一番淺梳理,并重點關注數據庫安全防護的事前階段——漏洞掃描,以此安全視角來談一談MySQL 5.7的安全應用第一步。
數據庫管理系統通常會選擇某種“數學模型”存儲、組織、管理數據庫中的數據,常用的數據模型包括“層次模型”、“網狀模型”、“關系模型”以及“面向對象模型”等。基于“關系模型”的數據庫管理系統稱為關系數據庫管理系統(Relational Database Management System,RDBMS)。隨著關系數據庫管理系統的日臻完善,目前關系型數據庫管理系統已占據主導地位。
為了建立冗余較小、結構合理的數據庫,設計數據庫時必須遵循一定的規則,在關系型數據庫中這種規則就稱為范式。數據庫設計的三大范式是數據庫需要滿足的規范,滿足這些規范的數據庫是簡潔的、結構明晰的,同時不會發生插入(insert)、刪除(delete)和更新(update)操作異常。第一范式(1NF)是指數據庫表的每一列都是不可分割的基本數據項[確保每列保持原子性],第二范式(2NF)屬性完全依賴于主鍵 [ 消除部分子函數依賴 ],第三范式(3NF)屬性不依賴于其它非主屬性 [ 消除傳遞依賴 ]。通常使用實體關系圖來建立數據模型,其中包含了實體(既數據對象)、關系和屬性三種基本成分。
2主流關系型數據庫及安全漏洞
通過關系數據庫管理系統,數據庫開發人員可以輕而易舉地創建關系數據庫,并在該數據庫中創建各種數據庫對象(表、索引、視圖、存儲過程、觸發器、函數等)以及維護各種數據庫對象。目前成熟的關系數據庫管理系統主要源自歐美數據庫廠商,典型的有美國微軟公司的SQL Server、美國IBM公司的DB2和Informix,德國SAP公司的Sybase,美國甲骨文公司的Oracle,然而這些數據庫都是商業數據庫,且價格昂貴。國產數據庫雖然已有核心部門(如金融銀行、移動通信、石油電力等)應用,在軟件成熟度和功能上國產數據庫尚未成為主流的應用,核心單位在“享受著”國外數據庫廠商提供服務的同時,不得不將核心部門的信息交由國外數據庫管理,企業的核心數據、核心部門的機密數據不安全因素劇增。
CVE(全球漏洞庫)和CNNVD(中國國家漏洞庫)已公布了各種數據庫漏洞總共2000多個,國外數據庫存在后門,國產數據庫也有安全漏洞,安華金和數據庫攻防實驗室已向CNNVD提交了國內外數據庫漏洞的研究成果。雖然數據庫廠商據此提供了大量補丁包,但這些補丁包所修復的漏洞數量也是有限的,同時大量的應用系統出于系統穩定性和兼容性的原因也無法實現補丁升級。同時,國外漏洞掃描滲透軟件Metasploit、Nessus工具,國內DBHacker數據庫漏洞驗證工具,使黑客利用這些漏洞對數據庫攻擊不再是難事。
3MySQL數據庫版本及特性
2001年,中國加入世貿組織(WTO)以來,中國政府越來越重視數據安全、版權制度建設以及知識產權的保護。MySQL就是一種開源數據庫軟件,而且具有功能強大等特點。很多企業將MySQL作為首選數據庫管理系統,MySQL成為了全球最受歡迎的數據庫管理系統之一。目前,淘寶、百度、新浪已經將部分業務數據遷移到MySQL數據庫中,MySQL的應用前景可觀。
MySQL數據庫常見的版本有5.0、5.6、5.7和6.0,一般大家會認為6.0版本是最新的,但是MySQL 6.0是2009年出現的版本版,2009年4月20日甲骨文收購Sun公司,現在看官網上已經不提供mysql6.0的下載,而且6.0安裝界面風格明顯要老一點,估計Sun被收購了之后,版本號重定了。
MySQL數據庫可以采用插件的方式支持不同的存儲引擎。常用的存儲引擎有兩種:MyISAM和InnoDB。從MySQL5.6版本開始,InnoDB存儲引擎的表已經支持全文索引和事務安全,既InnoDB給MySQL提供了具有事務(commit)、回滾(rollback)和崩潰修復能力的事務安全(ACID),對于大多數數據庫表而言,InnoDB存儲引擎已經夠用了,MySQL服務實例默認的存儲引擎就是InnoDB。
現在來看MySQL5.7是最新版,主要有以下幾個特性提升:
1)安全性:如從MySQL5.7開始,root用戶的密碼不再是空,而是隨機產生一個密碼,默認安裝完后是沒有test數據庫的,默認連接就采用SSL的加密方式,可以為用戶設置密碼過期策略,一定時間后,強制用戶修改密碼;
2)靈活性:提供對JSON的支持,以應對非結構化數據庫的挑戰,generated column(被生成列)數據庫中這一列由其他列計算而得;
3)易用性:小到一個客戶端快捷鍵ctrl+c的使用,大到專門提供一個系統庫(sys)來幫助DBA和開發人員使用數據庫,以前需要借助外部工具才知道的,現在直接查詢sys庫下相應的表就能得到答案:查看數據庫中的冗余索引、獲取未使用的索引、查看使用全表掃描的SQL語句;
4)可用性:在線設置復制的過濾規則不再需要重啟MySQL,只需要停止SQL thread,修改完成以后,啟動SQL thread,在線修改buffer pool的大小,支持重命名索引和修改varchar的大小等;
5)性能:包括臨時表相關的性能改進、只讀事務的性能優化、連接建立速度的優化和復制性能的改進。
4數據庫漏洞掃描對MySQL5.7的支持
安全測評機構、安服團隊、集團安全部門在信息安全等級保護的指導下,對重要的業務應用系統進行等保安全測評,數據庫的安全檢查是等保的重點要求。單純靠人工很難在短時間內全面、有效、準確的發現數據庫的安全問題,借助數據庫漏掃工具可以提高安全檢查效率。
安華金和作為專注與數據安全的產品和服務提供商,是中國當前唯一提供數據庫安全全線產品的公司,形成了一條完整的數據庫安全產品線:數據庫漏洞掃描(簡稱DBScan)、數據防火墻、數據庫加密、數據庫脫敏、數據庫監控與審計、數據庫運維管控等產品。使用DBScan與人工檢測相結合的方式,檢測數據庫的安全問題,并提出有針對性的整改措施,用來扭轉數據庫安全問題頻發的嚴峻局面,保護和促進信息化的健康發展。
在實際測評工作中測評人員面臨的問題是數據庫類型多,每個類型數據庫還可能由于版本不同,數據庫缺省賬戶、安全配置參數等也不同。Oracle各版本的缺省賬戶有700多個,達夢6和7從連接的端口號到安全配置項都有不同,互聯網企業已廣泛使用的MySQL5.7,內部系統表的結構與之前的版本不同。DBScan也與時俱進升級支持,滿足新版本的弱口令和數據庫漏洞掃描,安華金和歡迎廣大互聯網企業試用。