數據庫防火(huǒ)牆風險大(dà)?那是你還不知(zhī)道應用關聯防護

發布日期:2017-07-13首頁 > 安全資(zī)訊

近年來,作爲高效而直接的數據庫防禦工(gōng)事,數據庫防火(huǒ)牆已被越來越多的用戶關注,應用在關鍵系統的數據庫安全防護中(zhōng),以保護核心數據資(zī)産安全。要實現危險行爲的過濾,數據庫防火(huǒ)牆必需串聯部署,才能形成數據庫的安全屏障。這要求其既要發揮抵禦威脅行爲的功能,同時又(yòu)不能影響正常的應用訪問,造成業務中(zhōng)斷。
 

20170710093345620.jpg
 

  有人說:數據庫防火(huǒ)牆風險大(dà),一(yī)不小(xiǎo)心你的應用就癱瘓了!真是這樣嗎(ma)?

  事實上,滿足如此嚴苛要求的關鍵在于如何實現精準的應用關聯防護,能夠在不中(zhōng)斷業務訪問的基礎上,精準定位威脅行爲并攔截,從而達到精确而無副作用的防護效果。這也是一(yī)款數據庫防火(huǒ)牆産品是否成熟可用的必要條件。

  語句攔截——奠定應用防護的基礎

  通常來講,數據庫防火(huǒ)牆可以通過兩種方式實現威脅防禦:中(zhōng)斷會話(huà)和語句攔截。

  中(zhōng)斷會話(huà)

  直接切斷應用與數據庫的會話(huà)連接,這種方式粗暴簡單,也最易實現。這種防護方式也是很多不成熟的數據庫防火(huǒ)牆産品所提供的解決方案。我(wǒ)們知(zhī)道數據庫的訪問行爲,來自DBA等運維人員(yuán)及應用系統的訪問調用,這其中(zhōng)應用系統的訪問更爲頻(pín)繁。對于業務連續性的要求也最高,中(zhōng)斷會話(huà)等于業務癱瘓,顯然不可取。

  語句攔截

  攔截語句的方式是指在保持原有會話(huà)暢通的基礎上,精準攔截威脅語句。既不破壞業務連續性,又(yòu)能将風險語句過濾下(xià)來。這考驗數據庫防火(huǒ)牆對SQL語句的精準解析、風險策略的靈活和适用性,也是實現數據庫應用關聯防護的基礎所在。

  應用關聯審計——準确定位應用訪問信息

  接觸過數據庫審計産品的朋友應該知(zhī)道,“三層關聯審計”功能在不少數據庫審計産品中(zhōng)已經實現,即通過“時間戳”等方式從數據庫訪問信息中(zhōng)捕獲應用賬号、IP等應用關聯信息。但衆所周知(zhī),“時間戳”的方式在功能上具有極大(dà)的缺陷——關聯審計信息并不準确,即使是在旁路審計上應用,也已經廣受诟病,更何況串接部署的數據庫防火(huǒ)牆。一(yī)旦解析錯誤,将造成正常語句被攔截, 嚴重影響業務運轉。

  基于“應用插件”實現“應用關聯審計”的理念是由安華金和在國内首先提出,目前也在行業内得到更廣泛的應用。這種解析方式,是以一(yī)個簡易的jar包集成到應用系統,從而完成部署,在并發達到上千級别的連接是,仍然能實現100%準确關聯,以精确的方式捕獲到應用端相關信息。同時,這種解析能力需要具備高适用性,除了适用于Weblogic、tomcat、Websphere、Jboss等主流的應用服務器,也能支持F5等負載均衡模式下(xià)針對代理IP的關聯審計挖掘,準确定位應用訪問信息。

  具備保持會話(huà)前提下(xià)的語句攔截功能,并能提供精準應用關聯能力,如此看來,實現數據庫的應用關聯防護已經具備非常堅實的基礎。最後一(yī)步,基于多維度匹配靈活的安全策略,是實現應用關聯防護的最後一(yī)錘。

  多樣性的策略——實現細粒度行爲控制

  學習、建立數據庫行爲模型

  應用系統的訪問特點是基于固定的業務模型執行批量的SQl語句,學習應用的訪問行爲是判斷異常風險語句的關鍵。數據庫防火(huǒ)牆在正式投入串接使用之前,需要旁路部署經過一(yī)段學習期,大(dà)量學習應用側的訪問行爲,涵蓋:

  客戶端信息(客戶端IP、客戶端工(gōng)具、主機名、操作系統、登錄的數據庫用戶等)

  應用信息(應用賬号、應用IP等)

  訪問對象信息(數據庫實例、表、字段等)

  從而建立數據庫行爲模型,進一(yī)步制定全面靈活的安全策略。

  高細粒度的安全策略設定

  精細化的安全策略需要具備高細粒度,能夠基于單條策略進行多層次設定。将應用賬号、客戶端IP、SQL語句等進行綁定,實現對應用用戶進行訪問行爲控制。譬如,客服人員(yuán)(應用賬号)隻能基于指定的IP或IP端進行數據庫訪問,并且其執行的語句僅限于指定的若幹語句模闆,否則視爲風險訪問、違規操作,會直接被阻斷或被攔截。

  數據庫防火(huǒ)牆可以針對指定的訪問對象進行行爲控制,即針對某一(yī)數據庫的某表、某字段進行增、删、改、查的控制。例如,壽險賬單的用戶電(diàn)話(huà)号碼就是以數據庫的表字段進行存儲。那麽,應用關聯防護在實現上,可以限制僅某些賬戶(如:業務主管)可以進行上述數據庫字段的查詢;某些賬戶(如:業務經理)可以進行上述數據的修改。

  如果防火(huǒ)牆的防護粒度僅限于“數據庫字段”,那麽應用業務中(zhōng)更爲深入的控制是否能滿足呢?譬如,業務經理僅能查詢和自己有關的用戶電(diàn)話(huà)号碼,即數據庫“電(diàn)話(huà)号碼字段”中(zhōng)的部分(fēn)信息。在數據庫防火(huǒ)牆中(zhōng),組成一(yī)條規則的元素中(zhōng)包括“報文關鍵字”這一(yī)特性,即可以通過配置“正則表達式”匹配SQL語句中(zhōng)的關鍵字,如果命中(zhōng)即視爲風險。例如:select 賬戶,電(diàn)話(huà)号碼 from 業務表 where 賬戶=”張三”;防火(huǒ)牆可以作出如下(xià)限定:如果關聯發現執行該語句的賬戶不是“張三”,那麽執行該語句時即視爲風險語句進行攔截。

  同理,數據庫防火(huǒ)牆将行爲建模中(zhōng)捕獲到的諸多元素,通過多維度的設置、排列組合即可實現多樣性的防護規則,适用不同的訪問場景,這如同在數據庫前端織就了一(yī)張牢不可破的網。

  至此,在實現精确語句攔截、應用關聯審計的前提下(xià),賦予靈活多樣的安全策略,這才造就了一(yī)個有深度有内涵的數據庫防火(huǒ)牆産品。當然,安全策略的成熟度需要經過多個大(dà)型項目的打磨,應用程度越高的數據庫防火(huǒ)牆産品,其接觸的業務類型也就越多,能夠爲用戶提供更精細、更具參考性的策略和規則,實現更準确、高效的數據庫安全防護價值。