互聯網就像空氣,徹底的融入我們的生活之中。因此我們愈發習慣把越來越多的數據保存在網上以換取更便捷的服務。不過,隨之而來的安全事件無不讓人觸目驚心。
安華金和數據庫安全攻防實驗室(DBSecLabs )回憶2015年整年發生的數據泄露事件,2015年一月機鋒論壇包括用戶名、郵箱、加密密碼的2300萬用戶信息泄漏。隨后國內10多家酒店大量客戶開房信息泄漏、中國廣東人壽10W保單泄漏、大麥網600萬用戶信息和網易郵箱過億用戶信息泄漏……一連串的信息泄漏事件無不令人提心吊膽。覆巢之下安有完卵,全球第二大比特幣交易網站Bitstamp遭到黑客入侵,新型銀行木馬Emotet盜取德國國民網銀證書,就連一直以安全著稱的瑞士銀行在互聯網的世界也難逃被黑客入侵的噩夢。
數據庫漏洞研究起源
大數據時代的來臨,各個行業數據量成 BT 級增長。 數據庫被廣泛使用在各種新的場景中,在某些場景下面臨的安全威脅是數據庫現有安全機制無法防護的。可以看到的是:數據庫的優良性能和落后的安全機制成為鮮明的對比。
雖然數據庫安全設計最初是按照美國國防部的標準制定而成,不過那些安全標準與現實安全的意義有著很大的差別。縱然大部分商用數據庫都通過了安全標準檢驗,但隨著功能的開發和部署在危險的網絡環境中,安全短板就成為其“阿克琉斯之踵”。
1996年開始數據庫安全進入安全團隊視野,同年4月份Oracle被披露出第一個安全漏洞開始,隨著新版本和新功能的出現漏洞呈震蕩增長趨勢。2014年當年被披露的各大數據庫漏洞高達129個。
2011-2015主流數據庫漏洞數量
今年截止到2015 年12 月份初被確認數據庫漏洞一共 76個,比2014年下降了 53 個,減幅達到41%。這與各大數據庫公司開發自己的代碼審計工具有著密不可分的聯系。
2015年漏洞分布
2015年數據庫漏洞分布
今年曝出的76個數據庫漏洞中,MySQL漏洞數占據全年漏洞總數的62%,共計47個。漏洞主要集中在5.5 和5.6 這兩個主流版本中。
安華金和數據庫安全攻防實驗室通過分析發現MySQL 的47 個漏洞散落在12個MySQL 組件和一個未知組件上。眾所周知MySQL 是一款易拆合的輕量級數據庫,因此12 個組件中有很多是非必備組件。舉個例子來說innoDB存在的6 個漏洞,如果您的業務不需要 innoDB,則建議禁止innoDB的使用。
MySQL漏洞分布組件
因此,安華金和數據庫安全攻防實驗室建議使用 MySQL 的公司、團體和個人及時對自己的 MySQL 數據庫進行補丁升級。有研發能力的單位最好對MySQL源碼進行審計,修復其中的問題。關閉與自己業務無關的組件,編譯出適合自己應用需求的定制化MySQL。
同樣Oracle數據庫也被爆出 14 個漏洞,位居其次。這些漏洞集中于 java vm、XDB 和Core RDBMS中。Core RDBMS 是Oracle數據庫的最核心組件,在 windows下以一個Oracle.exe進程出現,而Linux下則是分成多個進程,這些進程負責著不同的功能,以此保證 Oracle 數據庫的正常運行。Java VM是java 虛擬機負責運行 Oracle中的Java 代碼,例如 Oracle圖形化安裝程序。 XDB 的漏洞往往來自于 XDB, 是負責處理 XML 的組件。 XDB 有2 個對外端口是HTTP和 FTP。這2個端口經常會給數據庫帶來緩沖區溢出漏洞—一種無需身份驗證的高危漏洞。
Oracle漏洞分布組件
不過Oracle數據庫漏洞常年居高不下與其自身復雜的邏輯密不可分。
2015年數據庫漏洞—按廠商分類
2015年Oracle漏洞數占了總漏洞數的83%。這與它旗下兩款數據庫占據的市場份額和支持的功能復雜度有著密切關系。我們應該知道,各廠商產品的漏洞數量不僅與產品自身的安全性有關,而且也和廠商的產品數量、產品的復雜度、受研究者關注程度等多種因素有關。因此,我們不能簡單地認為公開漏洞數量越多的廠商產品越不安全。其實 Oracle無論是性能還是安全性在同業者中都處于前列。
2015年數據庫漏洞威脅類型
將漏洞按照其危害程度分為:高危漏洞,中危漏洞,低危漏洞三大類。2015年7大主流數據庫中均存在高危漏洞。
2015年數據庫漏洞—按威脅程度分類
其中高危漏洞占漏洞總數的12%,中危漏洞數量最多占據了58%,低威脅漏洞占30%。
威脅等級比例
12%的高危漏洞將是安華金和關注的重點。因此建議:高危漏洞必須及時處理。在某些特定情況下低危、中危漏洞也會達到高危漏洞的危害程度,所以對于低危漏洞也要及時修復。
2015年數據庫漏洞利用趨勢
數據庫安全發展到現在,繞過身份驗證依舊是對數據庫安全最大的威脅。今年的 9個高危漏洞中的 3 個是針對身份驗證繞過的。它們分別采用的是緩沖區溢出、通訊協議破解和默認口令三張種方式。雖然緩沖區溢出和通訊協議破解的漏洞越來越少,一旦出現將是數據庫的噩夢。
2015年SQL 注入依舊是漏洞中的主流,80%以上的漏洞都屬于SQL注入范疇,利用數據庫系統 SQL 語言漏洞,通過對低權限用戶進行升級權限來獲取更多數據庫內的敏感信息。作為數據庫管理員應嚴格分配用戶權限,防止分配給用戶過高權限,對非必要服務請進行禁用或卸載,防止其中存在的漏洞被黑客利用,對數據庫造成入侵。
2016年數據庫安全建議
面對日益嚴峻的數據庫安全形式,數據庫加固應該從三個方面進行:嚴格限制弱口令、及時排出配置問題、定期升級補丁。也可以從時間節點上劃分為三個階段:入侵前的檢查防護,事中的防御阻斷,入侵事后審計追蹤。事前防護階段的重點在于排查,定期對整個網絡環境進行弱點掃描,網絡中任何一點的漏洞都可能導致最后的數據泄露。可以定期請專人對整個網絡做滲透測試,同時通過數據庫漏洞掃描器等相關產品對整個環境進行安全檢查。
在事中阻斷防御時,防御的重點在于準確判斷哪些語句屬于入侵語句。推薦在 Web 前端部署 WAF 來解決大部分針對 Web 的入侵行為,同時數據庫前部署專業的數據庫防火墻。
在事后通過對用戶訪問數據庫行為的記錄、審計分析,幫助用戶事后進行數據泄密行為的追根溯源,提高數據資產安全。
結束語
回顧近年來安華金和數據庫安全攻防實驗室(DBSecLabs )對數據庫漏洞的研究,我們發現任何一款數據庫漏洞的出現和防治都會遵循某些特定的規律。雖然每年漏洞出現的數量并非穩定下降,但數據庫自身出現漏洞的幾率越來越低。漏洞數量不能穩定下降主要有兩方面的原因:
1.很多數據庫為了方便用戶擴展了大量接口和功能,新功能在最初的版本總是受到自身漏洞和兼容性漏洞的雙重困擾。
2.黑客利用漏洞的能力越來越強,以前很多被發現的漏洞其實是無法被利用的,黑客逐漸把其中一些無法利用的漏洞變成可利用。同時黑客也會特別關注與某些行業,數據庫漏洞攻擊往往也集中在這些行業領域。
最后,也是最重要的,大部分數據庫漏洞攻擊者依然是以獲利為目的。數據庫跟隨業務逐漸從后臺走向前臺;從內外走向外網;從實體走向虛擬(云)。部署環境的發展給了黑客更多入侵數據庫的機會。