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