研究背景
WEB應(yīng)用安全現(xiàn)狀
隨著互聯(lián)網(wǎng)的發(fā)展,金融網(wǎng)上交易、政府電子政務(wù)、企業(yè)門戶網(wǎng)站、社區(qū)論壇、電子商務(wù)等各類基于HTML文件格式的信息共享平臺(WEB應(yīng)用系統(tǒng))越發(fā)完善,深入到人們生活中的點點滴滴。然而WEB應(yīng)用共享平臺為我們的生活帶來便利的同時,也面臨著前所未有的挑戰(zhàn):WEB應(yīng)用系統(tǒng)直接面向Internet,以WEB應(yīng)用系統(tǒng)為跳板入侵服務(wù)器甚至控制整個內(nèi)網(wǎng)系統(tǒng)的攻擊行為已成為最普遍的攻擊手段。
據(jù)中國互聯(lián)網(wǎng)應(yīng)急中心最新統(tǒng)計顯示,2009年我國大陸地區(qū)政府網(wǎng)頁遭篡改事件呈大幅增長趨勢,被篡改網(wǎng)站的數(shù)量就達到52225個。2009年8月份,公安部對國內(nèi)政府網(wǎng)站的進行安全大檢查,發(fā)現(xiàn)40%存在嚴(yán)重安全漏洞,包括SQL注入、跨站腳本漏洞等。由此導(dǎo)致的網(wǎng)頁篡改、網(wǎng)頁掛馬、機密數(shù)據(jù)外泄等安全事件頻繁發(fā)生,不但嚴(yán)重影響對外形象,有時甚至?xí)斐删薮蟮慕?jīng)濟損失,或者嚴(yán)重的社會問題,嚴(yán)重危及國家安全和人民利益。
網(wǎng)頁篡改:一些不法分子的重點攻擊對象。組織門戶網(wǎng)站一旦被篡改引發(fā)較大的影響,嚴(yán)重甚至造成政治事件。
網(wǎng)頁掛馬:網(wǎng)頁掛馬指的是把一個木馬程序上傳到一個網(wǎng)站里面然后用木馬生成器生一個網(wǎng)馬,再上到空間里面,再加代碼使得木馬在打開網(wǎng)頁是運行。網(wǎng)頁掛馬未必會給網(wǎng)站帶來直接損害,但卻會給瀏覽網(wǎng)站的用戶帶來巨大損失。網(wǎng)站一旦被掛馬,其權(quán)威性和公信力將會受到打擊。
作為網(wǎng)頁掛馬的散布者,其目的是將木馬下載到用戶本地,并進一步執(zhí)行,當(dāng)木馬獲得執(zhí)行之后,就意味著會有更多的木馬被下載,進一步被執(zhí)行,進入一個惡性的循環(huán),從而使用戶的電腦遭到攻擊和控制。為達到目的首先要將木馬下載到本地。機密數(shù)據(jù)外泄:在線業(yè)務(wù)系統(tǒng)中,總是需要保存一些企業(yè)、公眾的相關(guān)資料,這些資料往往涉及到企業(yè)秘密和個人隱私,一旦泄露,會造成企業(yè)或個人的利益受損,可能會給單位帶來嚴(yán)重的法律糾紛。
傳統(tǒng)安全防護方法
企業(yè) WEB 應(yīng)用的各個層面,都已使用不同的技術(shù)來確保安全性。為了保護客戶端機器的安全,用戶會安裝防病毒軟件;為了保證用戶數(shù)據(jù)傳輸?shù)狡髽I(yè) WEB 服務(wù)器的傳輸安全,通信層通常會使用 SSL技術(shù)加密數(shù)據(jù);防火墻和 IDS/IPS來保證僅允許特定的訪問,不必要暴露的端口和非法的訪問,在這里都會被阻止;同時企業(yè)采用一定的身份認證機制授權(quán)用戶訪問 WEB 應(yīng)用。
SSL加密技術(shù)為了保護敏感數(shù)據(jù)在傳送過程中的安全,全球許多知名企業(yè)采用SSL(Security Socket Layer)加密機制。 SSL是Netscape公司所提出的安全保密協(xié)議,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web服務(wù)器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之間構(gòu)造安全通道來進行數(shù)據(jù)傳輸,SSL運行在TCP/IP層之上、應(yīng)用層之下,為應(yīng)用程序提供加密數(shù)據(jù)通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密鑰,適用于商業(yè)信息的加密。同時,Netscape公司相應(yīng)開發(fā)了HTTPS協(xié)議并內(nèi)置于其瀏覽器中,HTTPS實際上就是HTTP over SSL,它使用默認端口443,而不是像HTTP那樣使用端口80來和TCP/IP進行通信。HTTPS協(xié)議使用SSL在發(fā)送方把原始數(shù)據(jù)進行加密,然后在接受方進行解密,加密和解密需要發(fā)送方和接受方通過交換共知的密鑰來實現(xiàn),因此,所傳送的數(shù)據(jù)不容易被網(wǎng)絡(luò)黑客截獲和解密。
但是,即便有防病毒保護、防火墻和 IDS/IPS,企業(yè)仍然不得不允許一部分的通訊經(jīng)過防火墻,保護措施可以關(guān)閉不必要暴露的端口,但是 WEB 應(yīng)用所必須的端口,必須開放。順利通過的這部分通訊,可能是善意的,也可能是惡意的,很難辨別。同時,WEB 應(yīng)用是由軟件構(gòu)成的,那么,它一定會包含漏洞,這些漏洞可能被惡意的用戶利用,他們通過執(zhí)行各種惡意的操作,或者偷竊、或者操控、或者破壞 WEB 應(yīng)用中的重要信息。
本文研究觀點
網(wǎng)站是否存在WEB 應(yīng)用程序漏洞,往往是被入侵后才能察覺;如何在攻擊發(fā)動之前主動發(fā)現(xiàn)WEB應(yīng)用程序漏洞。答案就是:主動防御,即利用WEB應(yīng)用弱點掃描技術(shù),主動實現(xiàn)對WEB應(yīng)用的安全防護。
本文主要針對B/S架構(gòu)WEB應(yīng)用系統(tǒng)中典型漏洞、流行的攻擊技術(shù)、AJAX的隱藏資源獲取、驗證碼圖片識別等進行研究,提出了一種新的面向WEB的漏洞檢測技術(shù),能夠較完整得提取出AJAX的資源,有效識別驗證碼。
B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。相對于C/S結(jié)構(gòu)屬于“胖”客戶端,需要在使用者電腦上安裝相應(yīng)的操作軟件來說,B/S結(jié)構(gòu)是屬于一種“瘦”客戶端,大多數(shù)或主要的業(yè)務(wù)邏輯都存在在服務(wù)器端,因此,B/S結(jié)構(gòu)的系統(tǒng)不需要安裝客戶端軟件,它運行在客戶端的瀏覽器之上,系統(tǒng)升級或維護時只需更新服務(wù)器端軟件即可,這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。 B/S結(jié)構(gòu)系統(tǒng)的產(chǎn)生為系統(tǒng)面對無限未知用戶提供了可能。當(dāng)然,與C/S結(jié)構(gòu)相比,B/S結(jié)構(gòu)也存在著系統(tǒng)運行速度較慢,訪問系統(tǒng)的用戶不可控的弱點。
WEB應(yīng)用風(fēng)險掃描架構(gòu)
WEB應(yīng)用風(fēng)險掃描技術(shù)架構(gòu)主要分為URL獲取層、檢測層、取證與深度評估層三個層次,其中:
URL獲取層:主要通過網(wǎng)絡(luò)爬蟲方式獲取需要檢測的所有URL,并提交至檢測層進行風(fēng)險檢測;
風(fēng)險檢測層:對URL獲取層所提交的所有URL頁面進行SQL注入、跨站腳本、文件上傳等主流WEB應(yīng)用安全漏洞進行檢測,并將存在安全漏洞的頁面和漏洞類型提交至取證與深度評估層;
取證與深度評估層:針對存在安全漏洞的頁面,進行深度測試,獲取所對應(yīng)安全漏洞的顯性表現(xiàn),(如風(fēng)險檢測層檢測出該網(wǎng)站存在SQL注入漏洞,則至少需可獲取該網(wǎng)站的數(shù)據(jù)庫類型);作為該漏洞存在的證據(jù)。
網(wǎng)絡(luò)爬蟲技術(shù)—URL獲取
網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動的抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者蠕蟲。它通過指定的域名,從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。
網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據(jù)一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達到系統(tǒng)的某一條件時停止。另外,所有被爬蟲抓取的網(wǎng)頁將會被系統(tǒng)存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結(jié)果還可能對以后的抓取過程給出反饋和指導(dǎo)。
網(wǎng)絡(luò)爬蟲的工作流程較為復(fù)雜,首先根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,根據(jù)搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù),直到達到預(yù)設(shè)的停止條件。另外,所有被爬蟲抓取的網(wǎng)頁將會被系統(tǒng)存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢、檢索和取證及報表生成時做為源數(shù)據(jù)。
為了更加高速、有效地獲取網(wǎng)站中所有的URL鏈接,在本W(wǎng)EB應(yīng)用風(fēng)險掃描技術(shù)研究中,所采用的網(wǎng)絡(luò)爬蟲技術(shù)著重解決以下三個問題:
(1) 對抓取目標(biāo)的描述或定義;
(2) 對網(wǎng)頁和數(shù)據(jù)的分析與過濾;
(3) 對URL的搜索策略。
網(wǎng)頁抓取目標(biāo)
網(wǎng)頁弱點爬蟲對抓取目標(biāo)的描述或定義基于目標(biāo)網(wǎng)頁特征抓取、存儲并索引,對象是網(wǎng)站的網(wǎng)頁;通過用戶行為確定的抓取目標(biāo)樣例,其中,網(wǎng)頁特征可以是網(wǎng)頁的內(nèi)容特征,也可以是網(wǎng)頁的鏈接結(jié)構(gòu)特征,以及網(wǎng)頁代碼的結(jié)構(gòu)特征等。
網(wǎng)頁分析算法
基于網(wǎng)頁內(nèi)容的分析算法指的是利用網(wǎng)頁內(nèi)容特征進行的網(wǎng)頁評價。該算法從原來的較為單純的文本檢索方法,發(fā)展為涵蓋網(wǎng)頁數(shù)據(jù)抽取、機器學(xué)習(xí)、數(shù)據(jù)挖掘、語義理解等多種方法的綜合應(yīng)用。根據(jù)網(wǎng)頁數(shù)據(jù)形式的不同,將基于網(wǎng)頁內(nèi)容的分析算法,歸納以下三類:第一種針對以文本和超鏈接為主的無結(jié)構(gòu)或結(jié)構(gòu)很簡單的網(wǎng)頁;第二種針對從結(jié)構(gòu)化的數(shù)據(jù)源動態(tài)生成的頁面,其數(shù)據(jù)不能直接批量訪問;第三種針對的數(shù)據(jù)界于第一和第二類數(shù)據(jù)之間,具有較好的結(jié)構(gòu),顯示遵循一定模式或風(fēng)格,且可以直接訪問。
網(wǎng)頁抓取策略
網(wǎng)頁抓取主要有三個方面:1、搜集新出現(xiàn)的網(wǎng)頁:2搜集那些在上次搜集后有改變的網(wǎng)頁:3發(fā)現(xiàn)自從上次搜集后已經(jīng)不再存了的網(wǎng)頁,并從庫中刪除。
爬蟲的抓取策略目前普遍的采用的方法有:深度優(yōu)先、廣度優(yōu)先、最佳優(yōu)先三種。由于深度優(yōu)先在很多情況下會導(dǎo)致爬蟲的陷入(trapped)問題,網(wǎng)頁弱點爬蟲目前采用的是深度優(yōu)先和最佳優(yōu)先方法組合方法。
深度優(yōu)先搜索策略:指在抓取過程中,在完成當(dāng)前層次的搜索后,才進行下一層次的搜索。網(wǎng)頁弱點爬蟲采用深度優(yōu)先搜索方法為覆蓋指定網(wǎng)站存在弱點的網(wǎng)頁。其基本思想是認為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有弱點相關(guān)性的概率很大;并采用將深度優(yōu)先搜索與網(wǎng)頁過濾技術(shù)結(jié)合使用,先用深度優(yōu)先策略抓取網(wǎng)頁,再將其中無關(guān)的網(wǎng)頁過濾掉。這些方法的缺點在于,隨著抓取網(wǎng)頁的增多,大量的無關(guān)網(wǎng)頁將被下載并過濾,算法的效率將變低。
最佳優(yōu)先搜索策略:最佳優(yōu)先搜索策略采用基于網(wǎng)頁內(nèi)容的網(wǎng)頁分析算法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選取評價最好的一個或幾個URL進行抓取。
漏洞檢測技術(shù)—風(fēng)險檢測
主要WEB應(yīng)用漏洞
OWASP十大安全威脅
開放式WEB應(yīng)用程序安全項目是一個組織,它提供有關(guān)計算機和互聯(lián)網(wǎng)應(yīng)用程序的公正、實際、有成本效益的信息。其目的是協(xié)助個人、企業(yè)和機構(gòu)來發(fā)現(xiàn)和使用可信賴軟件。美國聯(lián)邦貿(mào)易委員會(FTC)強烈建議所有企業(yè)需遵循OWASP所發(fā)布的十大Web弱點防護守則、美國國防部亦列為最佳實務(wù),國際信用卡資料安全技術(shù)PCI標(biāo)準(zhǔn)更將其列為必須采用有效措施進行針對性防范。
圖1 2010年OWASP十大安全威脅
CWE/SANS 25大危險編程錯誤
一般弱點列舉(Common Weakness Enumeration CWE)是由美國國家安全局首先倡議的戰(zhàn)略行動,該行動的組織最近發(fā)布了《2010年CWE/SANS最危險的程序設(shè)計錯誤(PDF)》一文,其中列舉了作者認為最嚴(yán)重的25種代碼錯誤,同時也是軟件最容易受到攻擊的點。OWASP Top 10,所關(guān)注的是WEB應(yīng)用程序的安全風(fēng)險,而CWE的Top 25的覆蓋范圍更廣,包括著名的緩沖區(qū)溢出缺陷。
WEB應(yīng)用漏洞規(guī)則庫
我們經(jīng)過多年WEB應(yīng)用安全領(lǐng)域的研究,結(jié)合國內(nèi)外優(yōu)秀組織的經(jīng)典總結(jié)、描述以及驗證,建立起一套幾乎涵蓋所有可能帶來安全威脅的WEB應(yīng)用安全漏洞的豐富的WEB應(yīng)用漏洞規(guī)則庫,包括各個安全漏洞的產(chǎn)生原理、檢測規(guī)則、可能危害、漏洞驗證等等,通過自動化手段,對網(wǎng)絡(luò)爬蟲所獲取到的網(wǎng)站頁面進行逐一檢測。隨著安全漏洞的不斷產(chǎn)生、攻擊手段的不斷演變,WEB應(yīng)用漏洞規(guī)則庫也不斷獲得充實和改進。
模擬滲透測試—取證與深度評估
模擬滲透測試
通常我們所理解的滲透測試,是指具有豐富安全經(jīng)驗的安全專家,在對目標(biāo)系統(tǒng)一無所知的情況下,通過收集系統(tǒng)信息,進行具有針對性的安全攻擊和入侵,獲取系統(tǒng)管理權(quán)限、敏感信息的一個過程。這包括三個要素:豐富安全經(jīng)驗的安全專家(人)、系統(tǒng)漏洞(漏洞檢測)、權(quán)限獲取或信息獲取(取證)。由于組織內(nèi)部一般并不具備具有專業(yè)滲透技術(shù)的安全專家,所以通常依靠于第三方安全公司。
結(jié)合大量優(yōu)秀安全專家的滲透測試經(jīng)驗,以及對各類WEB應(yīng)用安全漏洞的顯性分析(即如果存在該漏洞,其具體表現(xiàn)是什么),在完成網(wǎng)站中各個頁面的漏洞檢測后,對所存在的安全漏洞進行驗證,即獲取相應(yīng)的權(quán)限或信息,達到模擬滲透測試的效果,不僅可以大大降低漏洞檢測的誤報率,準(zhǔn)確呈現(xiàn)該漏洞的存在和取證;而且可以在一定程度上替代第三方的滲透測試人員,自主進行安全掃描,降低信息泄露的風(fēng)險。
安全漏洞取證分析
對安全漏洞的取證分析,在此以SQL注入漏洞為例進行簡要描述。
SQL注入類型根據(jù)原理可以分為以下幾類:數(shù)值型、字符型、搜索型、錯誤型、雜項型。在檢測出相關(guān)注入漏洞后, 根據(jù)不同后臺數(shù)據(jù)庫, 采用不同的數(shù)據(jù)庫注入策略包來進行進一步的取證和滲透。圖2講述了SQL注入檢測的流程:通過網(wǎng)絡(luò)爬蟲獲取的URL,成為SQL注入檢測的輸入,通過圖2流程完成SQL注入、滲透和審計。
SQL是高級的非過程化編程語言,是溝通數(shù)據(jù)庫服務(wù)器和客戶端的重要工具,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng),可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的。它以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11239瀏覽量
105902 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9730瀏覽量
87462 -
HTML
+關(guān)注
關(guān)注
0文章
280瀏覽量
41676
發(fā)布評論請先 登錄
基于嵌入式實時操作系統(tǒng)MQX的內(nèi)核分析及應(yīng)用研究
基于DSP的圖像處理系統(tǒng)的應(yīng)用研究
嵌入式Web技術(shù)在無紙記錄儀中的應(yīng)用研究
智能家居的應(yīng)用研究現(xiàn)狀 精選資料分享
VxWorks在導(dǎo)彈武器測試發(fā)射控制領(lǐng)域的可行性應(yīng)用研究
Web應(yīng)用安全評估

面向領(lǐng)域的Web數(shù)據(jù)抽取與集成架構(gòu)

元宇宙相關(guān)技術(shù)在泛工業(yè)領(lǐng)域的應(yīng)用研究
振弦采集儀在橋梁安全監(jiān)測中的應(yīng)用研究

評論