資料庫審計為何淪為殭屍級應用?

danny_2018發表於2018-07-30

目前,資料庫審計是資料庫安全市場中接受度最高的產品,但即使該產品幾乎是資料庫安全的首選,但它被真正用起來的機率卻並不樂觀,不少已經淪為殭屍應用,更多時候只是為了應付檢查,滿足合規。其最根本的風險監控預警能力根本沒有得到有效釋放。

怪使用者安全意識不強?當然不完全是。我們經手的不少審計專案並非沒上資料庫審計系統,而是原品牌替換,詢問原因常聽到這樣的回答:

產品不好用。該風險告警的時候不報,正常操作卻沒完沒了的報,真要是天天開著,光是處理誤報就要耗費很大精力。

為什麼會有這麼多誤報?SQ語句解析是關鍵!

目前市面上的資料庫審計產品按照解析方式的不同主要有兩類,一類是基於語法語義進行協議解析的審計技術;一類是基於正規表示式匹配的審計技術,大多數採用後者。而在實際測試中,後者的準確率明顯低於前者。原理是什麼?我們簡單分析:

基於語法語義的解析技術

這種解析技術採用的是“智慧”理解的方式,不受限於SQL語句長度、複雜度等影響,能夠精確定義每一條SQL語句,準確理解其真正的含義,從而實現精準告警。

基於正規表示式的解析技術

正規表示式是一種“傻瓜式”的通用字串匹配的方法,通常用於簡單的場景匹配指定字元。對於超長的、多層巢狀、多表關聯等複雜的SQL語句,使用正規表示式很容易造成誤識別或漏識別。

有點聽不懂?舉個例子:

你希望的安全策略是:僅對b表插入資料的SQL操作定義為風險。

語法語義解析的思路:語句操作關鍵字為insert into並且作用表物件為b。

正規表示式配置規則思路:語句中包含insert into、b等關鍵字。

這時候,資料庫接收到這樣一條訪問請求:

insert intoaselect * fromb;

識別結果將會是這樣:

語法語義解析後:識別該語句將test b中的所有資料插入到a中,準確判定為非風險操作——不予告警

正規表示式匹配SQL後:發現該語句中包括inster into和b關鍵字,識別為風險操作——進行告警

除了SQL語句解析能力,透過在應用系統中部署agent,可以準確將應用會話與資料庫會話做唯一的組合匹配,有了唯一的組合匹配即可實現百分百的資訊關聯。而傳統資料庫審計通常是透過同時映象應用前端的流量做透過時間戳的匹配關聯,此種做法往往會在高壓、高併發的場景中造成“張冠李戴”的錯審現象。

審計產品如果連基本的準確性都沒辦法保障,要它何用呢?以上僅從技術視角做兩種審計產品的對比科普,如何讓產品價值完美匹配使用者需求,請諸君巧思量。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2168637/,如需轉載,請註明出處,否則將追究法律責任。

相關文章