祝賀《如何終結數據庫SQL注入攻擊》文章發表
發布時間:
2017.01.20 | 來源:
帕拉迪
由浙江景怡網絡科技有限公司副總經理李總撰寫的文章《如何終結數據庫SQL注入攻擊》發表在《互聯網安全的40個智慧洞見》一(yī)書(shū)中(zhōng)。該書(shū)作者均是在中(zhōng)國乃至全球具有重要影響力的中(zhōng)外(wài)網絡安全名家,内容不僅覆蓋Web 安全、移動安全、企業安全、電(diàn)子取證、雲與數據、軟件安全、APT 等熱點安全領域,還涉及國家網絡空間戰略、新興威脅、工(gōng)控安全、車(chē)聯網安全、信息安全立法等新興安全領域。
文章從DT時代面臨的數據庫安全威脅、優雅而堅定的和SQL注入說再見、應用場景三個部分(fēn)進行闡述。李總指出:大(dà)數據和雲計算時代的來臨,數據安全防護顯得尤爲重要。衆所周知(zhī),基礎信息網絡和重要信息系統安全防護能力不強,企業内部的惡意違規和誤操作,以及第三方運維和開(kāi)發人員(yuán)留取的後門程序等技術安全風險因素和人爲惡意攻擊的存在,使得數據庫安全乃至信息安全問題頻(pín)發。而SQL注入攻擊具有廣泛存在、手段隐蔽、特征不可枚舉、攻擊手段及工(gōng)具平民化的特征。可以說,隻要人類還在編寫數據庫應用,SQL注入漏洞就會一(yī)直存在。NGDAP通過白(bái)模型鑒别的非常态阻斷模式,對請求數據進行标準化處理,然後将處理後的數據進行規則匹配,合法請求将被傳遞到真實的數據庫當中(zhōng)。而其他所有的SQL請求則會立即被阻斷,系統發出攻擊告警,并形成記錄日志(zhì),通過這個過程,NGDAP能輕松的在源頭成功遏制SQL注入攻擊問題。帕拉迪将圍繞數據安全威脅的發現與防禦的核心貢獻目标,構建和持續完善數據邊界安全産品線,針對數據全生(shēng)命周期的不同場景,提供相匹配的數據安全保護産品及解決方案。
全文如下(xià):
如何終結數據庫SQL注入攻擊
随着IT時代的發展,我(wǒ)(wǒ)們的生(shēng)活越來越便捷,高速信息時代讓我(wǒ)(wǒ)們能實現數據的互聯互通、信息資(zī)源的共享,這就是我(wǒ)(wǒ)們所說的信息技術時代;而随着大(dà)數據、雲計算等技術的不斷興起與成熟,在大(dà)數據時代下(xià)的我(wǒ)(wǒ)們體(tǐ)驗的是消費(fèi)行爲的智能化,商(shāng)業價值的數字化,DT數據技術時代的到來讓我(wǒ)(wǒ)們數據産生(shēng)巨大(dà)價值的同時,也帶來了許多高危風險。
跟我(wǒ)(wǒ)們日常息息相關的一(yī)些新聞,比如說某某電(diàn)商(shāng)因爲用戶信息洩露,導緻用戶流量大(dà)減,品牌造成很大(dà)的負面影響;某社保局的參保人員(yuán)信息遭到洩露,個人身份證、手機号碼、參保金額等敏感信息被迫曝光;某某某高校新生(shēng)信息被洩密,不法分(fēn)子通過精準信息進行詐騙,騙走新生(shēng)全家多年積攢的學費(fèi)緻使新生(shēng)猝死等事件頻(pín)發。但從事件的本質來看,這些客戶的數據庫均遭受到了拖庫攻擊。
一(yī)、數據庫安全威脅分(fēn)析
那我(wǒ)(wǒ)們的疑問同時也出現了,各大(dà)電(diàn)商(shāng)企業、金融單位、政府信息中(zhōng)心通過多年的IT建設,各安全設備已經部署很完善了。從邊界安全、過程控制、内容審計等多方面進行防護,安全服務團隊定期進行漏洞掃描、安全加固等動作,爲什麽在立體(tǐ)式的防護過程中(zhōng),數據庫還是被拖走了呢,而且在很多情況下(xià)是被長時間的、悄無痕迹的竊取掉呢?
我(wǒ)(wǒ)們從兩個角度來分(fēn)析:
第一(yī)個從IT建設發展的曆程分(fēn)析。目前大(dà)部分(fēn)客戶在對安全體(tǐ)系的設計和治理方案中(zhōng)主要依靠傳統邊界安全防護,如防火(huǒ)牆、下(xià)一(yī)代防火(huǒ)牆、IPS、IDS等安全控制類産品;随着邊界安全防護的進一(yī)步落地,逐步開(kāi)始向内容安全防護過度,如上網行爲管理、堡壘機、數據庫審計等安全設備;而随着數據大(dà)集中(zhōng)之後,數據庫裏的數據越來越有價值,而目前的防護體(tǐ)系中(zhōng)針對數據庫的安全防護是空白(bái)的。很多客戶認爲自己有災備軟件、有數據庫審計就能對數據庫進行安全管理,但實際上災備軟件隻能恢複數據庫原有數據,數據庫審計隻能事後對訪問情況進行追溯,如果業務系統存在SQL注入漏洞,惡意攻擊者就可以通過繞過WAF等行爲對數據庫造成攻擊,客戶無法實時保障數據不被竊取或篡改,無法做到針對數據庫的事前預防和事中(zhōng)阻斷。
第二個從目前信息安全等級保護整改遺留的難點分(fēn)析。等級保護整改中(zhōng)涉及物(wù)理安全、網絡安全、服務器安全、制度安全等各部分(fēn)的整改,相對來說通過技術、制度、傳統安全設備的配置可以較快速和穩妥的進行加固。但是在數據庫安全、應用系統安全上的安全加固以及整改卻成棘手之事。不同的數據庫以及各版本都有漏洞,但由于業務系統的長時間不間斷運行,擔心由于補丁及版本升級造成業務癱瘓,故把這部分(fēn)的安全問題暫時擱置;另外(wài),由于應用系統開(kāi)發商(shāng)已經把業務系統交付多年,雖然代碼層面可能留有一(yī)些漏洞,但是讓項目組重新對代碼進行加固,阻力和壓力都是很大(dà)的。由于這些問題的存在,數據庫的大(dà)門一(yī)直向黑客敞開(kāi)着。不是目前的防護體(tǐ)系已經把核心資(zī)産保護的水洩不通,而是黑客目前還沒盯上你。
通過Verison2015年企業安全威脅報告我(wǒ)(wǒ)們可以看出,作爲數據庫的安全威脅越來越高。很多企業以前業務中(zhōng)斷已經是很大(dà)的安全事故了,但現在随着互聯網的成熟,一(yī)旦客戶或企業的核心敏感信息被曝光,基本上對其發展、品牌以及事件導緻的經濟損失将會是成指數級别的量級遞增。再加之現在的黑客産業鏈發展,已經由當初的個人散兵作戰,發展到現在的有組織、有預謀、有利益、有生(shēng)态鏈的規模。由此可見,企業、政府所面臨的數據庫威脅已迫在眉睫。
二、傳統數據庫安全防護弊端
我(wǒ)(wǒ)們來分(fēn)析一(yī)下(xià)傳統安全防護的弊端。數據庫防火(huǒ)牆主要是基于網絡層的訪問控制,很難對數據庫協議以及應用層協議作出分(fēn)析與控制;就算近幾年發展的如火(huǒ)如荼的下(xià)一(yī)代防火(huǒ)牆,也很難對數據庫協議進行精準解碼并且作出實時阻斷;IPS、IDS主要也是對邊界攻擊進行掃描分(fēn)析,數據庫層面的分(fēn)析也很難進行控制;再分(fēn)析一(yī)下(xià)web應用防火(huǒ)牆,其主要是通過規則庫的方式來進行攻擊攔截,而目前很多Oday攻擊、SQL注入攻擊等方式,都可以繞開(kāi)WAF直接對數據庫進行拖庫。傳統的安全防護手段是無法解決數據庫安全的問題。
三、精準攔截SQL注入攻擊
接下(xià)來看看我(wǒ)(wǒ)們是如何解決數據庫安全威脅的。在數據庫的衆多威脅中(zhōng),業務系統遭到SQL注入攻擊,導緻數據庫拖庫應該算是最大(dà)的威脅之一(yī)。而SQL注入攻擊是廣泛存在的,其攻擊手段隐蔽、特征不可窮舉、攻擊手段平民化,這些特點也讓其安全防護者頭痛。隻要人類還在編寫數據庫應用,就存在SQL注入漏洞的威脅。
爲了數據庫安全,我(wǒ)(wǒ)們就需要了解數據庫遭到攻擊或威脅的途徑有哪些:1、操作者直接進入機房,通過直連的方式連接并操作數據庫;2、操作者通過網絡途徑使用遠程C/S客戶端連接數據庫并進行操作;3、B/S中(zhōng)間件三層架構操作者通過前端網頁連接中(zhōng)間件應用服務器,再通過SQL語句連接數據庫。
前面兩種通過相應的制度和控制技術可以進行防護,本次重點闡述的是針對中(zhōng)間件業務系統的防護是整個數據庫安全行業的重點關注點
正常的業務訪問是使用者按照正常的訪問方式進行,應用服務器把前端的請求轉換成SQL語句與數據庫進行交互。而惡意的業務訪問是惡意攻擊者構建非正常的SQL語句,我(wǒ)(wǒ)們把它定義爲破壞模态化的行爲。當一(yī)個應用系統開(kāi)發完交付的那一(yī)刻起,其正常的業務交互邏輯或語法就已經固化下(xià)來,我(wǒ)(wǒ)們稱之爲模态化。而惡意攻擊的方法或手段的結果就是破壞了正常的模态化。
這就需要我(wǒ)(wǒ)們能對正常的業務流還是惡意的攻擊流做到精準的分(fēn)析。要做到這點是需要有大(dà)量的技術基礎的,比如:數據庫是在IT系統的最後端,前端所有的數據都要彙總過來,實際情況下(xià)就存在着大(dà)數據的并發。網絡中(zhōng)數據包是雜(zá)亂無序進行傳播的,需要通過流會話(huà)技術把數據包進行重組,使其成爲有序傳播的會話(huà)。若重組技術不成熟,将出現各種丢包、錯組的情況,給數據庫防護帶來災難。另外(wài)一(yī)個重點就是協議解碼,各個數據庫都有自己的私有協議,各家數據庫廠商(shāng)未向國内廠商(shāng)公開(kāi)。我(wǒ)(wǒ)們的解碼工(gōng)作就是翻譯,如果協議解碼不全,就像打戰一(yī)樣我(wǒ)(wǒ)們無法獲取清楚的情報,基于解碼不全的任何阻斷都是空談。
那在解決其方法的技術上,我(wǒ)(wǒ)們通過對業務SQL語句的關鍵字、邏輯關系等特征自動采樣學習,并結合高性能的SQL語義分(fēn)析計算,構建對應的SQL語法樹(shù),完成模态數據建模。在實際應用環境中(zhōng),海量的數據主要包括以下(xià)三種數據:業務數據、運維數據、非法數據;而數據量占比最大(dà)的就是正常的業務數據。我(wǒ)(wǒ)們通過自動化學習,把正常的業務模态化數據流分(fēn)離(lí)出來,把存在惡意攻擊的語句識别出來。在惡意攻擊語句中(zhōng),SQL注入和中(zhōng)間件通道複用兩種攻擊是難中(zhōng)難,同時也是重中(zhōng)重。其難以被發現,所以成爲防護中(zhōng)重要環節的重點防護對象。
舉個例子:惡意攻擊者通過非法途徑獲得中(zhōng)間件webshell,通過其發起的對數據庫的交互,無論是賬号、密碼、IP來源都是相同的,不同的地方可能是使用後台木馬作爲連接工(gōng)具或直接SQL語句來進行數據庫攻擊。通過我(wǒ)(wǒ)們自動的SQL語法建模以及來自多維度的準入因子識别技術,可以把惡意攻擊擋在我(wǒ)(wǒ)們的安全大(dà)門之外(wài)。
我(wǒ)(wǒ)們解決問題以及設計的核心思想就是放(fàng)水抓魚,我(wǒ)(wǒ)們通過識别海量正常的業務流使其放(fàng)行,抓取我(wǒ)(wǒ)們所關注的惡意攻擊語句。這不同于傳統的規則庫的方式,由于采用SQL語法樹(shù)的建模方式,得以對0DAY、SQL注入等攻擊進行防護,保護數據庫不被拖庫。