數(shù)據(jù)庫安全最佳實踐:數(shù)據(jù)庫審計工具調(diào)優(yōu)
數(shù)據(jù)庫管理員受命于創(chuàng)建審計記錄以符合安全審計和合規(guī)審計的要求,但如果他們僅僅去閱讀那些敘述如何進(jìn)行數(shù)據(jù)庫審計的標(biāo)準(zhǔn)操作手冊的話,恐怕會很失望。數(shù)據(jù)庫審計工具都有一些特殊的使用技巧,如果不花費(fèi)時間合理地規(guī)劃審計流程,使用這些工具可能會使得數(shù)據(jù)庫運(yùn)行性能遭受慘重打擊。由于進(jìn)行審計而導(dǎo)致數(shù)據(jù)庫運(yùn)行性能下降超過50%的例子并不少見。這也就意味著,看起來簡單的審計工作可能最終會導(dǎo)致數(shù)據(jù)庫變慢、表空間占滿、收集過量事件,以及給自己造成維護(hù)和報表生成方面的諸多麻煩。
相反,在開展審計工作的時候,首先應(yīng)該建立一個測試數(shù)據(jù)庫,并進(jìn)行一些基本的性能測試:先關(guān)閉審計選項,建立性能基線,然后將其與在不同審計方式、配置和過濾選項下的審計方案測試后所獲得的性能指標(biāo)進(jìn)行逐個比較。這樣做不僅有助于理解每個審計選項對性能的影響,也可以幫助識別資源瓶頸。相信我,這些信息是你在對生產(chǎn)用數(shù)據(jù)庫服務(wù)器進(jìn)行配置之前就必須清楚的。即使是你正準(zhǔn)備將數(shù)據(jù)庫日志發(fā)送給SIEM或者日志管理系統(tǒng)的時候,創(chuàng)建并維護(hù)審計追蹤策略仍然是必不可少的工作,別指望那些系統(tǒng)會去幫你優(yōu)化審計設(shè)置。
以下是一些用于審計工具優(yōu)化的數(shù)據(jù)庫安全最佳實踐:
審計方式:所有的數(shù)據(jù)庫系統(tǒng)都提供了不止一種收集審計數(shù)據(jù)的方法,因此你可以簡單地通過性能對比來比較不同的審計方式。對于IBM DB2數(shù)據(jù)庫而言,審計有時候會是一個巨大的挑戰(zhàn),但是如果你僅僅審計特定用戶的行為(事件),DB2事件監(jiān)控器的性能可能會表現(xiàn)的好一些。對于Oracle數(shù)據(jù)庫而言,細(xì)粒度的審計機(jī)制以及一些審計選項提供了很好的伸縮性,但由于它會產(chǎn)生大量審計數(shù)據(jù),同樣存在潛在地數(shù)據(jù)庫性能下降的風(fēng)險。
審計選項:試著使用不同的審計選項組合,并進(jìn)行測試。對于Oralce和DB2數(shù)據(jù)庫,可以比較一下用數(shù)據(jù)庫表存儲審計數(shù)據(jù)和使用操作系統(tǒng)文件系統(tǒng)存儲審計數(shù)據(jù)兩種方案。前一種方案有助于進(jìn)行數(shù)據(jù)檢索,而后一種方案性能更優(yōu),并且不會占滿表空間。
資源和管理:通過資源分配優(yōu)化有助于審計數(shù)據(jù)的存儲,尤其是打算將審計數(shù)據(jù)存儲到數(shù)據(jù)庫的時候,因為此時數(shù)據(jù)表很容易被寫爆。應(yīng)該創(chuàng)建一些用于歸檔審計數(shù)據(jù)和縮減事件存放庫表容量的腳本。對于SQL Trace而言,如果將事件流存儲在不同的文件中,并放到指定的驅(qū)動器下,性能將會提升。審計進(jìn)程也會占用不少的內(nèi)存。DB2的審計緩存大小對于性能會產(chǎn)生很大的負(fù)面影響,因此要增加對其所占內(nèi)存的分配。針對Sybase公司的ASE數(shù)據(jù)庫,為了在審計隊列不斷增加的時候保持處理和響應(yīng)性能,需要分配大量的內(nèi)存。為了提升寫磁盤的效率,大部分?jǐn)?shù)據(jù)庫支持?jǐn)?shù)據(jù)塊優(yōu)化,可以對只寫(write-only)進(jìn)行優(yōu)化,并設(shè)置塊大小的選項,使其大小為審計數(shù)據(jù)表行大小的整數(shù)倍。
過濾:過濾差不多是最重要的優(yōu)化步驟了。請與您的安全與合規(guī)團(tuán)隊進(jìn)行溝通,找出他們真正想要獲取哪些審計信息,而不是僅僅對他們想要的信息知道個大概。從收集到的數(shù)據(jù)流中過濾出一到兩種事件類型可以極大地降低存儲和運(yùn)算的負(fù)擔(dān)。對于像SQL Server的Trace這樣的工具而言,在收集數(shù)據(jù)的時候很好用,但是過濾數(shù)據(jù)就不是很方便。然而,在大多數(shù)情況下,所有的數(shù)據(jù)庫都提供對用戶事件、管理員事件、元數(shù)據(jù)操作事件和系統(tǒng)級事件的過濾功能。例如,對于DB2而言,如果進(jìn)行細(xì)致的過濾,性能負(fù)擔(dān)降低80%不足為奇。所以,請花時間了解你到底需要什么數(shù)據(jù),然后將你不需要的數(shù)據(jù)統(tǒng)統(tǒng)過濾掉。
在經(jīng)過性能驗證和比較之前,別輕易下結(jié)論說哪種審計方法一定就是好的。花些時間掌握那些審計選項,這樣可以大大地減輕你審計工作的負(fù)擔(dān)。
作者:Adrian Lane
【編輯推薦】