縱論數據庫安全審計產品的三代演進
當前,數據庫審計產品無疑已成為政企事業(yè)單位在信息安全方面的新寵,信息安全建設的標配,幾乎所有的安全集成中都有它的身影。在市面上存在著幾十種數據庫安全審計產品,這些產品集中起來大約可分四種類型:
1、在網絡審計產品的基礎上經過簡單包裝推出數據庫審計產品
2、針對數據庫通訊協(xié)議的特點開發(fā)出專門的數據庫審計產品
3、國外的數據庫審計產品,比如Imperva、Guardium等;
4、OEM第三方的數據庫審計產品,OEM對象可能來自國內,也可能來自國外,比如Imperva或韓國的DBInsight。
追溯淵源,我們可以把數據庫安全審計產品劃為三代:
***代是入門級數據庫安全審計,這代產品解決的是有和無的問題;
第二代是專業(yè)型數據庫安全審計,這代產品解決的是準確性和易用性問題;
第三代是業(yè)務型數據庫安全審計,這代產品解決的是數據價值問題。
一代入門級數據庫安全審計產品
我們將一代定義成入門級,這是在數據庫安全審計產品在國外取得成功、外商進入中國推行這個概念之后,一些傳統(tǒng)網絡安全企業(yè)迅速跟進,基于傳統(tǒng)的網絡審計產品簡單改造或產品都未經改造只是概念包裝后就推向市場的產品。
這一代產品的典型特征為“三不管”:
(1) 不管審的準不準,先審下來再說
(2) 不管審的全不全,先有了再說
(3) 不管好不好理解,有數據再說
這一代產品本質就是使用傳統(tǒng)的網絡審計能力,再加上一些正則匹配能力,一些簡單的特征追蹤,基本上數據庫安全審計的管理就是融入到原有的網絡管理界面中。這一代產品的主要缺陷,簡單列出如下:
(1)長SQL語句漏審
(2)多語句無法有效分割
(3)復雜語句對象解析錯誤
(4)參數值與SQL語句匹配錯誤
(5)錯誤的應答結果,特別是影響行數解析不正確
(6)充滿失真率的應用用戶關聯(lián)
(7)未專業(yè)化的審計界面
(8)過度冗余的審計信息存儲
其中,以上缺陷的前六條都與準確性和全面性有關,用戶很難進行驗證;要判斷是否屬于這種產品,一般可以通過兩個簡單的方式進行判定:一個方法就是界面。如果在界面上有很多種協(xié)議,數據庫只是其中一種,往往就是網絡審計改換的產品;另一個方法就是招標參數?,F(xiàn)在一個很奇怪的現(xiàn)象就是,招標數據庫安全審計產品,結果列出一堆網絡審計產品要求。以下是一個典型招標案例:
與數據庫審計產品不相干的參數
二代專業(yè)型數據庫安全審計產品
二代數據庫安全審計產品主要是由新興安全廠商研發(fā),在研發(fā)過程中多少會參考一些國外數據庫安全產品的設計理念、產品界面,再加上自己的創(chuàng)新,生產出一款純粹的數據庫安全審計產品。這一代產品的典型特征有三個:
(1)產品概念高度聚焦
產品替除傳統(tǒng)網絡審計的概念,不會出現(xiàn)類似于MAIL、FTP、Telnet等協(xié)議,用戶很容易地找到數據庫審計信息。
(2)數據庫包深度解析和SQL語法解析
二代數據庫安全審計產品的基本功在于對數據庫的包能夠進行精確分析,并且根據上下文語境進行追蹤(這需要模擬數據庫的行為)。
(3)數據庫化的界面組織清晰
完全采用了面向數據庫化的界面組織,比如:數據庫、會話、語句、表、存儲過程等;這樣的產品概念,對于數據庫審計產品的直接使用者,一般是運維人員和安全管理人員,就很清晰,對問題的定位的線索組織也非常清晰。下面是兩代數據庫審計產品的一個對比:
一代數據庫審計產品典型界面示例1
一代數據庫審計產品典型界面示例2
由圖不難看出,界面菜單組織結構中,很難找到數據庫的信息,在審計記錄中也很難看到數據庫的SQL語句、數據庫用戶、數據庫會話等信息。
二代數據庫審計的典型界面組織
對比得出,二代數據庫安全審計產品界面,具有強烈的數據庫元素;以“數據庫”為最基本信息組織單元,以“會話”、“語句”等數據庫中的基本元素為線索;在審計記錄中,直觀的SQL語句、數據庫用戶、會話信息等,立刻將單調的網絡協(xié)議還原為數據庫信息。
在第二代代產品中也有高下之分,主要體現(xiàn)在三個方面:
(1) DDPI技術的精準度
由于數據庫通訊包的復雜度,即使按照一種深度包解析思路也不能保證解析的完全精準,能否對通訊包作到高精度高兼容性,這就要看各個廠商的功力了。解析不準,要么丟數據,要么審計錯誤。
(2)協(xié)議識別的智能化
正是由于這種包解析技術的復雜性,為了能準確識別協(xié)議類型,一些產品往往需要人工進行一些輔助,幫助輸入說明數據庫的版本、操作系統(tǒng)的類型、編碼方式等。二代產品中,哪家廠商能夠實現(xiàn)對數據庫協(xié)議的智能化識別,將是產品易用性的另一個重要考量指標。
(3) 三層關聯(lián)的準確度
從審計的角度,由于一個業(yè)務系統(tǒng)往往公用一個數據庫用戶,因此無法區(qū)分哪個業(yè)務人員觸發(fā)了哪些數據庫操作,因此不能真正地滿足追查的需要。為了滿足這個需要,啟明星辰最早注冊了通過http協(xié)議與數據庫協(xié)議進行關聯(lián)的專利;后來安恒也實現(xiàn)了類似的技術。但是由于鏈接池的存在,在高并發(fā)的情況下,這種技術的正確率不超過50%,作為審計這是無法忍受的。新興數據庫安全廠商安華金和,在國內率先推出了基于在web上安裝插件的方式,利用這種方式實現(xiàn)100%審計的準確性
(4) 數據的關聯(lián)分析
第二代數據庫安全審計產品中,很多依然是單個數據庫訪問信息的展示風格, 但是在實際的使用中,用戶往往需要了解發(fā)現(xiàn)某類高危的風險,需要知道IP來源,什么用戶登錄,登錄后在整個會話中都執(zhí)行了什么語句。發(fā)現(xiàn)一個峰值性能瓶頸的時候,能同時知道當時的會話量,語句量,對于這些會話都來自于什么IP,主要是什么語句的性能消耗占比***,在這些消耗占比***的語句使用的是什么樣的參數。
綜上,二代數據庫安全審計產品具有這樣的特點:
(1) 以數據庫原生概念組織軟件的界面框架和界面元素,大幅提升“數據庫”的專業(yè)性;
(2) 通過 ‘會話’、‘語句’、‘風險’之間的內在聯(lián)系實現(xiàn)界面交互和線索關聯(lián),大幅提升“審計追蹤”的能力和便利性;
(3) 通過對數據庫訪問的IP、用戶、語句(操作)、對象、響應等不同維度的統(tǒng)計,完成了數據庫運行狀況的梳理,從而大幅提升對數據庫運行狀況和性能的掌握能力。
當前,考核數據庫審計產品的好壞,最重點的就是看以上三點。這三點使數據庫審計產品實現(xiàn)了審計功能高度專業(yè)化,同時延展了其使用價值,成為數據庫運維與管理人員進行數據庫狀態(tài)監(jiān)控和性能優(yōu)化的重要工具。
三代業(yè)務型數據庫安全審計產品
二代數據庫審計產品的專業(yè)度勿用置疑,但依然是一個技術型產品,是DBA和運維人員的好幫手,但與管理人員、業(yè)務人員保持著一定的距離。大量的數據庫審計產品上線以后,無法向管理人員和業(yè)務人員闡述清楚產品的價值,這其中一個重要的原因就是數據庫是一個后臺的服務,數據庫的SQL語言是個專業(yè)化程度很高的語言,數據庫對象無法與直接的業(yè)務發(fā)生映射。因此,DBA和運維人員生成的報告,無法讓管理者和業(yè)務部門看懂;從而使很多的數據庫審計產品成為了擺設,或者只發(fā)揮了其應有價值的10%。
三代數據庫安全審計產品的關鍵就是,如何通過業(yè)務化的語言呈現(xiàn)出對數據庫的訪問行為;將傳統(tǒng)數據庫中的要素客戶端IP、數據庫用戶、SQL 操作類型、數據庫表名稱、列名稱、過濾條件變成業(yè)務人員熟悉的要素:辦公地點、工作人員名稱、業(yè)務操作、業(yè)務對象、業(yè)務元素、某種類別的業(yè)務信息。為了更清楚的說名這個問題,我們對比看看三代演進前后數據庫安全的審計記錄:
圖 3.1 三代以前數據庫安全審計記錄
三代數據庫安全審計記錄
三代數據庫安全審計,不僅僅是審計記錄的展現(xiàn),還包括數據的組織,如何把這些分散的SQL語句,再組織成一個個業(yè)務操作,這個時候給業(yè)務人員展現(xiàn)的就不是每秒有多少個SQL操作,而是每秒有多少個業(yè)務操作。如圖3.3位當前一個會話中的多條審計記錄,組織成一個業(yè)務操作后,如圖3.4,不僅僅是審計記錄的展現(xiàn),同時包括性能、類型統(tǒng)計、成功與失敗、檢索條件、報表都是基于業(yè)務操作為單位。
多條審計記錄
業(yè)務操作示例
二代數據庫安全審計產品的統(tǒng)計和追蹤根據SQL語言類型進行劃分,可以看到一些管理人員和業(yè)務人員很難懂的SQL語句。三代數據庫安全審計產品統(tǒng)計和追蹤按照業(yè)務的行為和分類來進行信息的組織和展現(xiàn),而查詢到的語句也是業(yè)務化的語言展現(xiàn)。當達到這樣的程度,數據庫安全審計產品對于業(yè)務人員和管理人員的價值將大大提升。但要達到這樣的程度,需要依賴很好的數據分析處理,在這一階段能否完成一個好的業(yè)務化產品的關鍵在于大數據的分析處理能力,特別是對數據流的處理能力。
當前,至少國內所有的數據庫安全審計產品距離三代數據庫審計產品的目標差距甚遠;只有真正掌握數據庫核心技術能力的安全廠商,真正具有用戶意識的安全廠商,才能生產出三代產品,讓我們拭目以待。