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