《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > WEB應(yīng)用風(fēng)險(xiǎn)掃描的研究與應(yīng)用
WEB應(yīng)用風(fēng)險(xiǎn)掃描的研究與應(yīng)用
C114中國(guó)通信網(wǎng)
杭州安恒信息技術(shù)有限公司總裁 范淵
摘要: 面對(duì)信息安全攻擊從網(wǎng)絡(luò)層和系統(tǒng)層向應(yīng)用層轉(zhuǎn)變,WEB應(yīng)用系統(tǒng)作為組織對(duì)外服務(wù)門(mén)戶(hù),面臨巨大威脅。WEB應(yīng)用漏洞掃描技術(shù)是一類(lèi)重要的信息安全技術(shù),與防火墻、入侵檢測(cè)系統(tǒng)互相配合,能夠有效提高信息系統(tǒng)WEB應(yīng)用層的安全性。通過(guò)對(duì)WEB應(yīng)用的深度掃描,WEB應(yīng)用的管理員或開(kāi)發(fā)商可以快速了解WEB應(yīng)用存在的安全漏洞,客觀評(píng)估WEB應(yīng)用的風(fēng)險(xiǎn)等級(jí),在黑客攻擊前進(jìn)行有效防范。
Abstract:
Key words :

研究背景

WEB應(yīng)用安全現(xiàn)狀

隨著互聯(lián)網(wǎng)的發(fā)展,金融網(wǎng)上交易、政府電子政務(wù)、企業(yè)門(mén)戶(hù)網(wǎng)站、社區(qū)論壇、電子商務(wù)等各類(lèi)基于HTML文件格式的信息共享平臺(tái)(WEB應(yīng)用系統(tǒng))越發(fā)完善,深入到人們生活中的點(diǎn)點(diǎn)滴滴。然而WEB應(yīng)用共享平臺(tái)為我們的生活帶來(lái)便利的同時(shí),也面臨著前所未有的挑戰(zhàn):WEB應(yīng)用系統(tǒng)直接面向Internet,以WEB應(yīng)用系統(tǒng)為跳板入侵服務(wù)器甚至控制整個(gè)內(nèi)網(wǎng)系統(tǒng)的攻擊行為已成為最普遍的攻擊手段。據(jù)Gartner的最新調(diào)查,目前75%以上的攻擊行為都基于WEB應(yīng)用層面而非網(wǎng)絡(luò)層面;同時(shí)數(shù)據(jù)顯示,三分之二的WEB站點(diǎn)都相當(dāng)脆弱,易受攻擊。

據(jù)中國(guó)互聯(lián)網(wǎng)應(yīng)急中心最新統(tǒng)計(jì)顯示,2009年我國(guó)大陸地區(qū)政府網(wǎng)頁(yè)遭篡改事件呈大幅增長(zhǎng)趨勢(shì),被篡改網(wǎng)站的數(shù)量就達(dá)到52225個(gè)。2009年8月份,公安部對(duì)國(guó)內(nèi)政府網(wǎng)站的進(jìn)行安全大檢查,發(fā)現(xiàn)40%存在嚴(yán)重安全漏洞,包括SQL注入、跨站腳本漏洞等。由此導(dǎo)致的網(wǎng)頁(yè)篡改、網(wǎng)頁(yè)掛馬、機(jī)密數(shù)據(jù)外泄等安全事件頻繁發(fā)生,不但嚴(yán)重影響對(duì)外形象,有時(shí)甚至?xí)斐删薮蟮慕?jīng)濟(jì)損失,或者嚴(yán)重的社會(huì)問(wèn)題,嚴(yán)重危及國(guó)家安全和人民利益。

網(wǎng)頁(yè)篡改:一些不法分子的重點(diǎn)攻擊對(duì)象。組織門(mén)戶(hù)網(wǎng)站一旦被篡改(加入一些敏感的顯性?xún)?nèi)容),引發(fā)較大的影響,嚴(yán)重甚至造成政治事件。

網(wǎng)頁(yè)掛馬:網(wǎng)頁(yè)內(nèi)容表面上沒(méi)有任何異常,實(shí)際被偷偷的掛上了木馬程序。網(wǎng)頁(yè)掛馬未必會(huì)給網(wǎng)站帶來(lái)直接損害,但卻會(huì)給瀏覽網(wǎng)站的用戶(hù)帶來(lái)巨大損失。網(wǎng)站一旦被掛馬,其權(quán)威性和公信力將會(huì)受到打擊。

機(jī)密數(shù)據(jù)外泄:在線(xiàn)業(yè)務(wù)系統(tǒng)中,總是需要保存一些企業(yè)、公眾的相關(guān)資料,這些資料往往涉及到企業(yè)秘密和個(gè)人隱私,一旦泄露,會(huì)造成企業(yè)或個(gè)人的利益受損,可能會(huì)給單位帶來(lái)嚴(yán)重的法律糾紛。

傳統(tǒng)安全防護(hù)方法

企業(yè) WEB 應(yīng)用的各個(gè)層面,都已使用不同的技術(shù)來(lái)確保安全性。為了保護(hù)客戶(hù)端機(jī)器的安全,用戶(hù)會(huì)安裝防病毒軟件;為了保證用戶(hù)數(shù)據(jù)傳輸?shù)狡髽I(yè) WEB 服務(wù)器的傳輸安全,通信層通常會(huì)使用 SSL技術(shù)加密數(shù)據(jù);防火墻和 IDS/IPS來(lái)保證僅允許特定的訪(fǎng)問(wèn),不必要暴露的端口和非法的訪(fǎng)問(wèn),在這里都會(huì)被阻止;同時(shí)企業(yè)采用一定的身份認(rèn)證機(jī)制授權(quán)用戶(hù)訪(fǎng)問(wèn) WEB 應(yīng)用。

但是,即便有防病毒保護(hù)、防火墻和 IDS/IPS,企業(yè)仍然不得不允許一部分的通訊經(jīng)過(guò)防火墻,保護(hù)措施可以關(guān)閉不必要暴露的端口,但是 WEB 應(yīng)用所必須的端口,必須開(kāi)放。順利通過(guò)的這部分通訊,可能是善意的,也可能是惡意的,很難辨別。同時(shí),WEB 應(yīng)用是由軟件構(gòu)成的,那么,它一定會(huì)包含漏洞,這些漏洞可能被惡意的用戶(hù)利用,他們通過(guò)執(zhí)行各種惡意的操作,或者偷竊、或者操控、或者破壞 WEB 應(yīng)用中的重要信息。
 本文研究觀點(diǎn)

網(wǎng)站是否存在WEB 應(yīng)用程序漏洞,往往是被入侵后才能察覺(jué);如何在攻擊發(fā)動(dòng)之前主動(dòng)發(fā)現(xiàn)WEB應(yīng)用程序漏洞?答案就是:主動(dòng)防御,即利用WEB應(yīng)用弱點(diǎn)掃描技術(shù),主動(dòng)實(shí)現(xiàn)對(duì)WEB應(yīng)用的安全防護(hù)。

本文主要針對(duì)B/S架構(gòu)WEB應(yīng)用系統(tǒng)中典型漏洞、流行的攻擊技術(shù)、AJAX的隱藏資源獲取、驗(yàn)證碼圖片識(shí)別等進(jìn)行研究,提出了一種新的面向WEB的漏洞檢測(cè)技術(shù),能夠較完整得提取出AJAX的資源,有效識(shí)別驗(yàn)證碼。

WEB應(yīng)用風(fēng)險(xiǎn)掃描架構(gòu)

WEB應(yīng)用風(fēng)險(xiǎn)掃描技術(shù)架構(gòu)主要分為URL獲取層、檢測(cè)層、取證與深度評(píng)估層三個(gè)層次,其中:

URL獲取層:主要通過(guò)網(wǎng)絡(luò)爬蟲(chóng)方式獲取需要檢測(cè)的所有URL,并提交至檢測(cè)層進(jìn)行風(fēng)險(xiǎn)檢測(cè);

風(fēng)險(xiǎn)檢測(cè)層:對(duì)URL獲取層所提交的所有URL頁(yè)面進(jìn)行SQL注入、跨站腳本、文件上傳等主流WEB應(yīng)用安全漏洞進(jìn)行檢測(cè),并將存在安全漏洞的頁(yè)面和漏洞類(lèi)型提交至取證與深度評(píng)估層;

取證與深度評(píng)估層:針對(duì)存在安全漏洞的頁(yè)面,進(jìn)行深度測(cè)試,獲取所對(duì)應(yīng)安全漏洞的顯性表現(xiàn),(如風(fēng)險(xiǎn)檢測(cè)層檢測(cè)出該網(wǎng)站存在SQL注入漏洞,則至少需可獲取該網(wǎng)站的數(shù)據(jù)庫(kù)類(lèi)型);作為該漏洞存在的證據(jù)。

網(wǎng)絡(luò)爬蟲(chóng)技術(shù)—URL獲取

網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)自動(dòng)提取網(wǎng)頁(yè)的程序,它通過(guò)指定的域名,從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿(mǎn)足系統(tǒng)的一定停止條件。

網(wǎng)絡(luò)爬蟲(chóng)的工作流程較為復(fù)雜,首先根據(jù)一定的網(wǎng)頁(yè)分析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,根據(jù)搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復(fù),直到達(dá)到預(yù)設(shè)的停止條件。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析、過(guò)濾,并建立索引,以便之后的查詢(xún)、檢索和取證及報(bào)表生成時(shí)做為源數(shù)據(jù)。

為了更加高速、有效地獲取網(wǎng)站中所有的URL鏈接,在本W(wǎng)EB應(yīng)用風(fēng)險(xiǎn)掃描技術(shù)研究中,所采用的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)著重解決以下三個(gè)問(wèn)題:

(1) 對(duì)抓取目標(biāo)的描述或定義;

(2) 對(duì)網(wǎng)頁(yè)和數(shù)據(jù)的分析與過(guò)濾;

(3) 對(duì)URL的搜索策略。

網(wǎng)頁(yè)抓取目標(biāo)

網(wǎng)頁(yè)弱點(diǎn)爬蟲(chóng)對(duì)抓取目標(biāo)的描述或定義基于目標(biāo)網(wǎng)頁(yè)特征抓取、存儲(chǔ)并索引,對(duì)象是網(wǎng)站的網(wǎng)頁(yè);通過(guò)用戶(hù)行為確定的抓取目標(biāo)樣例,其中,網(wǎng)頁(yè)特征可以是網(wǎng)頁(yè)的內(nèi)容特征,也可以是網(wǎng)頁(yè)的鏈接結(jié)構(gòu)特征,以及網(wǎng)頁(yè)代碼的結(jié)構(gòu)特征等。

網(wǎng)頁(yè)分析算法

基于網(wǎng)頁(yè)內(nèi)容的分析算法指的是利用網(wǎng)頁(yè)內(nèi)容(文本、數(shù)據(jù)等資源)特征進(jìn)行的網(wǎng)頁(yè)評(píng)價(jià)。該算法從原來(lái)的較為單純的文本檢索方法,發(fā)展為涵蓋網(wǎng)頁(yè)數(shù)據(jù)抽取、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、語(yǔ)義理解等多種方法的綜合應(yīng)用。根據(jù)網(wǎng)頁(yè)數(shù)據(jù)形式的不同,將基于網(wǎng)頁(yè)內(nèi)容的分析算法,歸納以下三類(lèi):第一種針對(duì)以文本和超鏈接為主的無(wú)結(jié)構(gòu)或結(jié)構(gòu)很簡(jiǎn)單的網(wǎng)頁(yè);第二種針對(duì)從結(jié)構(gòu)化的數(shù)據(jù)源動(dòng)態(tài)生成的頁(yè)面,其數(shù)據(jù)不能直接批量訪(fǎng)問(wèn);第三種針對(duì)的數(shù)據(jù)界于第一和第二類(lèi)數(shù)據(jù)之間,具有較好的結(jié)構(gòu),顯示遵循一定模式或風(fēng)格,且可以直接訪(fǎng)問(wèn)。

網(wǎng)頁(yè)抓取策略

爬蟲(chóng)的抓取策略目前普遍的采用的方法有:深度優(yōu)先、廣度優(yōu)先、最佳優(yōu)先三種。由于深度優(yōu)先在很多情況下會(huì)導(dǎo)致爬蟲(chóng)的陷入(trapped)問(wèn)題,網(wǎng)頁(yè)弱點(diǎn)爬蟲(chóng)目前采用的是深度優(yōu)先和最佳優(yōu)先方法組合方法。

深度優(yōu)先搜索策略:指在抓取過(guò)程中,在完成當(dāng)前層次的搜索后,才進(jìn)行下一層次的搜索。網(wǎng)頁(yè)弱點(diǎn)爬蟲(chóng)采用深度優(yōu)先搜索方法為覆蓋指定網(wǎng)站存在弱點(diǎn)的網(wǎng)頁(yè)。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁(yè)具有弱點(diǎn)相關(guān)性的概率很大;并采用將深度優(yōu)先搜索與網(wǎng)頁(yè)過(guò)濾技術(shù)結(jié)合使用,先用深度優(yōu)先策略抓取網(wǎng)頁(yè),再將其中無(wú)關(guān)的網(wǎng)頁(yè)過(guò)濾掉。這些方法的缺點(diǎn)在于,隨著抓取網(wǎng)頁(yè)的增多,大量的無(wú)關(guān)網(wǎng)頁(yè)將被下載并過(guò)濾,算法的效率將變低,因此網(wǎng)頁(yè)弱點(diǎn)爬蟲(chóng)采用了最佳優(yōu)先搜索策略來(lái)彌補(bǔ)這個(gè)缺點(diǎn)。

最佳優(yōu)先搜索策略:最佳優(yōu)先搜索策略采用基于網(wǎng)頁(yè)內(nèi)容的網(wǎng)頁(yè)分析算法,預(yù)測(cè)候選URL與目標(biāo)網(wǎng)頁(yè)的相似度,或與主題的相關(guān)性,并選取評(píng)價(jià)最好的一個(gè)或幾個(gè)URL進(jìn)行抓取。它只訪(fǎng)問(wèn)經(jīng)過(guò)網(wǎng)頁(yè)分析算法預(yù)測(cè)為“有用”的網(wǎng)頁(yè)。
 漏洞檢測(cè)技術(shù)—風(fēng)險(xiǎn)檢測(cè)

主要WEB應(yīng)用漏洞

OWASP十大安全威脅

開(kāi)放式WEB應(yīng)用程序安全項(xiàng)目(OWASP,Open Web Application Security Project)是一個(gè)組織,它提供有關(guān)計(jì)算機(jī)和互聯(lián)網(wǎng)應(yīng)用程序的公正、實(shí)際、有成本效益的信息。其目的是協(xié)助個(gè)人、企業(yè)和機(jī)構(gòu)來(lái)發(fā)現(xiàn)和使用可信賴(lài)軟件。美國(guó)聯(lián)邦貿(mào)易委員會(huì)(FTC)強(qiáng)烈建議所有企業(yè)需遵循OWASP所發(fā)布的十大Web弱點(diǎn)防護(hù)守則、美國(guó)國(guó)防部亦列為最佳實(shí)務(wù),國(guó)際信用卡資料安全技術(shù)PCI標(biāo)準(zhǔn)更將其列為必須采用有效措施進(jìn)行針對(duì)性防范。

圖1  2010年OWASP十大安全威脅

 

CWE/SANS 25大危險(xiǎn)編程錯(cuò)誤

一般弱點(diǎn)列舉(Common Weakness Enumeration CWE)是由美國(guó)國(guó)家安全局首先倡議的戰(zhàn)略行動(dòng),該行動(dòng)的組織最近發(fā)布了《2010年CWE/SANS最危險(xiǎn)的程序設(shè)計(jì)錯(cuò)誤(PDF)》一文,其中列舉了作者認(rèn)為最嚴(yán)重的25種代碼錯(cuò)誤,同時(shí)也是軟件最容易受到攻擊的點(diǎn)。OWASP Top 10,所關(guān)注的是WEB應(yīng)用程序的安全風(fēng)險(xiǎn),而CWE的Top 25的覆蓋范圍更廣,包括著名的緩沖區(qū)溢出缺陷。CWE還為程序員提供了編寫(xiě)更安全的代碼所需要的更詳細(xì)的內(nèi)容。

WEB應(yīng)用漏洞規(guī)則庫(kù)

我們經(jīng)過(guò)多年WEB應(yīng)用安全領(lǐng)域的研究,結(jié)合國(guó)內(nèi)外優(yōu)秀組織的經(jīng)典總結(jié)、描述以及驗(yàn)證,建立起一套幾乎涵蓋所有可能帶來(lái)安全威脅的WEB應(yīng)用安全漏洞的豐富的WEB應(yīng)用漏洞規(guī)則庫(kù),包括各個(gè)安全漏洞的產(chǎn)生原理、檢測(cè)規(guī)則、可能危害、漏洞驗(yàn)證等等,通過(guò)自動(dòng)化手段,對(duì)網(wǎng)絡(luò)爬蟲(chóng)所獲取到的網(wǎng)站頁(yè)面進(jìn)行逐一檢測(cè)。隨著安全漏洞的不斷產(chǎn)生、攻擊手段的不斷演變,WEB應(yīng)用漏洞規(guī)則庫(kù)也不斷獲得充實(shí)和改進(jìn)。

模擬滲透測(cè)試—取證與深度評(píng)估

模擬滲透測(cè)試

通常我們所理解的滲透測(cè)試,是指具有豐富安全經(jīng)驗(yàn)的安全專(zhuān)家,在對(duì)目標(biāo)系統(tǒng)一無(wú)所知的情況下,通過(guò)收集系統(tǒng)信息,進(jìn)行具有針對(duì)性的安全攻擊和入侵,獲取系統(tǒng)管理權(quán)限、敏感信息的一個(gè)過(guò)程。這包括三個(gè)要素:豐富安全經(jīng)驗(yàn)的安全專(zhuān)家(人)、系統(tǒng)漏洞(漏洞檢測(cè))、權(quán)限獲取或信息獲?。ㄈ∽C)。由于組織內(nèi)部一般并不具備具有專(zhuān)業(yè)滲透技術(shù)的安全專(zhuān)家,所以通常依靠于第三方安全公司。滲透測(cè)試的過(guò)程中,雖然簽署了一系列的保密協(xié)議,但是不可避免地會(huì)發(fā)生組織內(nèi)部信息泄露的風(fēng)險(xiǎn)。

結(jié)合大量?jī)?yōu)秀安全專(zhuān)家的滲透測(cè)試經(jīng)驗(yàn),以及對(duì)各類(lèi)WEB應(yīng)用安全漏洞的顯性分析(即如果存在該漏洞,其具體表現(xiàn)是什么),在完成網(wǎng)站中各個(gè)頁(yè)面的漏洞檢測(cè)后,對(duì)所存在的安全漏洞進(jìn)行驗(yàn)證,即獲取相應(yīng)的權(quán)限或信息,達(dá)到模擬滲透測(cè)試的效果,不僅可以大大降低漏洞檢測(cè)的誤報(bào)率,準(zhǔn)確呈現(xiàn)該漏洞的存在和取證;而且可以在一定程度上替代第三方的滲透測(cè)試人員,自主進(jìn)行安全掃描,降低信息泄露的風(fēng)險(xiǎn)。

安全漏洞取證分析

對(duì)安全漏洞的取證分析,在此以SQL注入漏洞為例進(jìn)行簡(jiǎn)要描述。

SQL注入類(lèi)型根據(jù)原理可以分為以下幾類(lèi):數(shù)值型、字符型、搜索型、錯(cuò)誤型、雜項(xiàng)型。在檢測(cè)出相關(guān)注入漏洞后, 根據(jù)不同后臺(tái)數(shù)據(jù)庫(kù), 采用不同的數(shù)據(jù)庫(kù)注入策略包來(lái)進(jìn)行進(jìn)一步的取證和滲透。圖2講述了SQL注入檢測(cè)的流程:通過(guò)網(wǎng)絡(luò)爬蟲(chóng)獲取的URL,成為SQL注入檢測(cè)的輸入,通過(guò)圖2流程完成SQL注入、滲透和審計(jì)。

參考文獻(xiàn)

[1] 胡勇 網(wǎng)絡(luò)信息系統(tǒng)風(fēng)險(xiǎn)評(píng)估方法研究 四川大學(xué),2007.

[2] 程建華 信息安全風(fēng)險(xiǎn)管理、評(píng)估與控制研究 吉林大學(xué) 2008.

[3] 陳光 信息系統(tǒng)信息安全風(fēng)險(xiǎn)管理方法研究 國(guó)防科學(xué)技術(shù)大學(xué) 2006.

[4] 安永新 基于風(fēng)險(xiǎn)的Web應(yīng)用測(cè)試研究 重慶大學(xué) 2002.

[5] 黃明,梁旭 ASP信息系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例 機(jī)械工業(yè)出版社 2004

[6] 啟明工作室 ASP網(wǎng)絡(luò)應(yīng)用系統(tǒng)實(shí)用開(kāi)發(fā)技術(shù) 人民郵電出版社 2004

[7] S.Raghavan and H.Garcia- Molina. Crawling the hidden web [C]. Proceedings of the 27th International Conference on Very Large DataBases (VLDB), 2001.

[8] L.Barbosa and J.Freire. Anadaptive crawler for locating hidden-web entry points [C]. Proc. of the 16th international conference on World Wide Web, 2007:441-450.

[9] Improving Web Application Security Using New 2010 OWASP Top 10 Risk Model: Best Practices for Mitigating Online Vulnerabilities and Threats

[10] 2010 CWE/SANS Top 25 Most Dangerous Programming Errors

杭州安恒信息技術(shù)有限公司總裁 范淵

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。