近年來,作為高效而直接的數據庫防御工事,數據庫防火墻已被越來越多的用戶關注,應用在關鍵系統的數據庫安全防護中,以保護核心數據資產安全。要實現危險行為的過濾,數據庫防火墻必需串聯部署,才能形成數據庫的安全屏障。這要求其既要發揮抵御威脅行為的功能,同時又不能影響正常的應用訪問,造成業務中斷。
有人說:數據庫防火墻風險大,荷蘭服務器 英國主機租用,一不小心你的應用就癱瘓了!真是這樣嗎?
事實上,滿足如此嚴苛要求的關鍵在于如何實現精準的應用關聯防護,能夠在不中斷業務訪問的基礎上,精準定位威脅行為并攔截,從而達到精確而無副作用的防護效果。這也是一款數據庫防火墻產品是否成熟可用的必要條件。
語句攔截——奠定應用防護的基礎
通常來講,數據庫防火墻可以通過兩種方式實現威脅防御:中斷會話和語句攔截。
1.中斷會話
直接切斷應用與數據庫的會話連接,這種方式粗暴簡單,也最易實現。這種防護方式也是很多不成熟的數據庫防火墻產品所提供的解決方案。我們知道數據庫的訪問行為,來自DBA等運維人員及應用系統的訪問調用,這其中應用系統的訪問更為頻繁。對于業務連續性的要求也最高,中斷會話等于業務癱瘓,顯然不可取。
2.語句攔截
攔截語句的方式是指在保持原有會話暢通的基礎上,精準攔截威脅語句。既不破壞業務連續性,又能將風險語句過濾下來。這考驗數據庫防火墻對SQL語句的精準解析、風險策略的靈活和適用性,也是實現數據庫應用關聯防護的基礎所在。
接觸過數據庫審計產品的朋友應該知道,“三層關聯審計”功能在不少數據庫審計產品中已經實現,即通過“時間戳”等方式從數據庫訪問信息中捕獲應用賬號、IP等應用關聯信息。但眾所周知,“時間戳”的方式在功能上具有極大的缺陷——關聯審計信息并不準確,即使是在旁路審計上應用,也已經廣受詬病,更何況串接部署的數據庫防火墻。一旦解析錯誤,將造成正常語句被攔截, 嚴重影響業務運轉。
基于“應用插件”實現“應用關聯審計”的理念是由安華金和在國內首先提出,目前也在行業內得到更廣泛的應用。這種解析方式,是以一個簡易的jar包集成到應用系統,從而完成部署,在并發達到上千級別的連接是,仍然能實現100%準確關聯,以精確的方式捕獲到應用端相關信息。同時,這種解析能力需要具備高適用性,除了適用于Weblogic、tomcat、Websphere、Jboss等主流的應用服務器,也能支持F5等負載均衡模式下針對代理IP的關聯審計挖掘,準確定位應用訪問信息。
具備保持會話前提下的語句攔截功能,并能提供精準應用關聯能力,如此看來,實現數據庫的應用關聯防護已經具備非常堅實的基礎。最后一步,基于多維度匹配靈活的安全策略,是實現應用關聯防護的最后一錘。
多樣性的策略——實現細粒度行為控制
1.學習、建立數據庫行為模型
應用系統的訪問特點是基于固定的業務模型執行批量的SQl語句,學習應用的訪問行為是判斷異常風險語句的關鍵。數據庫防火墻在正式投入串接使用之前,需要旁路部署經過一段學習期,大量學習應用側的訪問行為,涵蓋:
1)客戶端信息(客戶端IP、客戶端工具、主機名、操作系統、登錄的數據庫用戶等)
2)應用信息(應用賬號、應用IP等)
3)訪問對象信息(數據庫實例、表、字段等)
從而建立數據庫行為模型,進一步制定全面靈活的安全策略。
2.高細粒度的安全策略設定
精細化的安全策略需要具備高細粒度,能夠基于單條策略進行多層次設定。將應用賬號、客戶端IP、SQL語句等進行綁定,實現對應用用戶進行訪問行為控制。譬如,客服人員(應用賬號)只能基于指定的IP或IP端進行數據庫訪問,并且其執行的語句僅限于指定的若干語句模板,否則視為風險訪問、違規操作,會直接被阻斷或被攔截。
數據庫防火墻可以針對指定的訪問對象進行行為控制,即針對某一數據庫的某表、某字段進行增、刪、改、查的控制。例如,壽險賬單的用戶電話號碼就是以數據庫的表字段進行存儲。那么,應用關聯防護在實現上,可以限制僅某些賬戶(如:業務主管)可以進行上述數據庫字段的查詢;某些賬戶(如:業務經理)可以進行上述數據的修改。