如何避免數據庫行為監控系統部署問題
在部署數據庫行為監控(DAM)系統時有兩個最常見的問題:數據采集的準確性問題和DAM系統的性能問題。這篇文章,我們將討論如何避免掉入DAM的上述陷進中。
不當的監控方式會影響審計的準確性
DAM產品一個經常被忽視的缺點就是網絡監視。對于非關鍵的數據庫基礎設施,通過網絡監視采集SQL行為是可行的。但如果出于合規需要,則最好選擇代理型的DAM產品。這類產品通過在數據庫平臺上安裝代理來檢測所有的數據庫連接,包括管理員的行為。
上述兩種采集方式都能夠收集各種原始SQL語句,包括嵌入在查詢中的變量,而這是系統自帶的審計以及大部分其他采集方式所無法做到的。然而,對于網絡流量檢測和基于代理的檢測兩種部署方式而言,在數據收集的準確性和完整性方面有著很大的差別。在高負載的情況下,某些方法就會丟失數據包。由于丟失查詢語句很少被注意到,通常不會引起什么抱怨。但是如果正在對一組事務(譯注:事務即Transaction,屬于數據庫管理系統的術語,相當于一組數據庫操作的集合)進行SOX合規審計,那么丟失的事務記錄將導致審計報告失效。
第二個不易察覺的嚴重問題是DAM系統收集SQL語句返回信息的能力很弱。所有的查詢都會產生響應,一般是一組數據,有時候則僅僅是一個標志成功或者失敗的返回碼。如果一個查詢失敗,查詢沒有被真正執行,這就意味著數據庫沒有發生變化。最近我做的一項非正式的調查顯示某個產品僅僅能夠收集45%的微軟SQL Server數據庫的返回信息,以及15%的Oracle返回信息。僅僅因為一條查詢請求被收集到了,并不意味著它就能夠成為審計線索的合法部分,還要看這個查詢請求的響應信息。
正是由于這些原因,在合規審計的背景下,最好的部署方式是將網絡代理方式或者內存掃描器方式與系統自身的審計數據收集方式結合起來。將系統自身的審計信息與(通過網絡檢測或者代理檢測等方式獲得的)包含在原始查詢中的數據結合起來,提供了一種兩全其美的確保數據準確性的方法。
策略過載和性能過載
性能依然是數據庫行為監控系統需要關注的一個問題。對于任何一款安全產品,隨著在產品中生效的策略數量的增長,行為分析所需的整體計算開銷會出現超負荷。每條收集到的查詢語句或者事務執行語句都要匹配所有的策略,策略數量從20條增長到40條與每天分析的事務數從200萬條到400萬一樣,都會對性能產生影響。因此,DAM產品的性能極限既取決于分析的事務數,也取決于生效的策略數。
要使得DAM產品性能維持在可接受的水平,可以遵循以下幾條指南:
1)行為分析策略會使得行為資料數據隨行為分析的進行而增長。應該盡量保持行為資料數據最小化,因為對這些資料的分析更加復雜。
2)要決定DAM系統何時匹配這些策略。在收集到記錄(即行為資料數據)后進行策略匹配,還是在將記錄存儲到DAM產品后再進行策略匹配?存儲延遲和對收集到的記錄的再查詢都會造成額外的計算開銷,顯然對產品提供商而言不是一個好的選擇?! ?/P>
3)要對策略進行優化,盡量使得策略匹配過程中最快和最簡單的部分被首先執行。這就跟查詢語句的優化是一個道理,策略的規則表達方式對于性能會產生戲劇性的影響。重新評估和優化那些策略規則,同時,必要的話,讓DAM供應商重寫那些低效的規則。
【編輯推薦】