王瑜,李卓,姚微娜
(1.長春理工大學 文學院,長春 130022;2. 長春理工大學 計算機科學技術(shù)學院,長春 130022)
Web安全威脅與防御技術(shù)研究
王瑜1,李卓2,姚微娜2
(1.長春理工大學 文學院,長春 130022;2. 長春理工大學 計算機科學技術(shù)學院,長春 130022)
Web應(yīng)用廣泛普及的同時,也帶來了大量的安全威脅。本文分析了常見Web攻擊:跨站腳本攻擊、Flash攻擊、跨站偽造請求攻擊、APT攻擊、DDoS攻擊,從安全威脅的產(chǎn)生原因、常見攻擊手段出發(fā),總結(jié)了攻擊者經(jīng)常利用的Web安全漏洞,并提出了相應(yīng)的防御措施和方法,對提高Web安全具有重要的參考價值。
Web安全;跨站腳本攻擊;跨站偽造請求攻擊;APT;DDoS
隨著信息技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)已成為連接社會、服務(wù)社會的主要方式?;ヂ?lián)網(wǎng)不僅方便了人們的生活,其自身的安全問題也層出不窮,并且受到了廣大學者和安全機構(gòu)的廣泛關(guān)注。Web應(yīng)用已經(jīng)成為互聯(lián)網(wǎng)上的第一大應(yīng)用,針對Web的網(wǎng)絡(luò)攻擊層出不窮,本文從常見的Web攻擊形式入手,分析了跨站腳本攻擊、FLASH安全攻擊、跨站偽造請求攻擊、APT攻擊、DDoS攻擊產(chǎn)生的原因和防御方法,以期提高Web應(yīng)用的網(wǎng)絡(luò)安全防護能力。
Web應(yīng)用程序使用客戶端和服務(wù)器端腳本為網(wǎng)頁提供動態(tài)行為??缯灸_本(XSS)攻擊使用惡意腳本和注入到受信任網(wǎng)頁的鏈接竊取受害者的敏感數(shù)據(jù)[1]??缯灸_本已成為對許多網(wǎng)站發(fā)動攻擊的主要攻擊媒介之一。開放式Web應(yīng)用程序安全項目(OWASP)2013年在公布的前10名最關(guān)鍵的Web應(yīng)用程序安全攻擊中將XSS列為第三名。上網(wǎng)不小心,使用過時的瀏覽和防病毒軟件工具,增加垃圾郵件發(fā)送者的活動,通過社交網(wǎng)絡(luò)和互聯(lián)網(wǎng)論壇轉(zhuǎn)發(fā)鏈接和圖像,在網(wǎng)絡(luò)應(yīng)用的開發(fā)期間缺乏預(yù)防性安全措施有助于這種攻擊的廣泛傳播。一旦攻擊者能夠找到與Web應(yīng)用程序相關(guān)聯(lián)的漏洞,將能夠使用此漏洞的Web應(yīng)用程序攻擊其Web用戶。像JavaScripts這樣的客戶端腳本最常用于實現(xiàn)XSS攻擊。
在跨站腳本攻擊中,攻擊者利用Web應(yīng)用動態(tài)展示用戶輸入數(shù)據(jù)的機會,在HTML頁面里嵌入惡意代碼[1],這些惡意代碼一般是通過“輸入信息”時被嵌入的,其方法是在頁面輸入用戶自己編寫的內(nèi)容時輸入惡意代碼,如果Web應(yīng)用沒有對輸入數(shù)據(jù)進行安全過濾就直接在頁面上展示。當其他用戶瀏覽這個頁面時,后臺就會執(zhí)行惡意腳本和注入到受信任網(wǎng)頁的鏈接,攻擊者便實現(xiàn)了攻擊目的。這些惡意代碼在執(zhí)行的過程中被當成了JS/VBS腳本,或“惡意用戶輸入數(shù)據(jù)”時嵌入頁面的HTML代碼控制頁面元素后發(fā)動攻擊[2]。
這種攻擊成功的基本事實是,大多數(shù)Web用戶不知道超鏈接的實際代碼或者URL和在網(wǎng)頁后面運行的腳本。因此,網(wǎng)絡(luò)攻擊者使用腳本或URL更加成功地實現(xiàn)這種攻擊。當攻擊者對特定網(wǎng)站感興趣時,他們開始檢查服務(wù)器發(fā)送的響應(yīng),以查找與其相關(guān)聯(lián)的缺陷。收集足夠的信息后,他們設(shè)計攻擊向量。跨站腳本(XSS)是一種Web應(yīng)用程序攻擊,使攻擊者/惡意用戶能夠在易受攻擊的Web應(yīng)用程序中注入惡意代碼或鏈接,這將在其他Web用戶查看該網(wǎng)頁時執(zhí)行。
(1)反射型跨站腳本攻擊
攻擊者通過一種社會工程學手段,給用戶發(fā)送一個URL鏈接,頁面被打開時,瀏覽器會立刻執(zhí)行頁面中已經(jīng)事先嵌入的惡意腳本。如果攻擊者能夠發(fā)現(xiàn)與Web應(yīng)用程序相關(guān)聯(lián)的漏洞(例如缺少編碼方案和用戶輸入驗證方法),他可以利用惡意腳本代碼制作特殊鏈接和URL,并通過社交網(wǎng)站和電子郵件將其散布向互聯(lián)網(wǎng)用戶。如果用戶點擊此鏈接,他將獲得嵌入了惡意腳本的響應(yīng)網(wǎng)頁,并且可能是攻擊的受害者。而且每次用戶點擊該超鏈接時都會受到攻擊。
2009年12月,Google及其他20家大型企業(yè)遭到了極光攻擊(Operation Aurora):攻擊者通過Facebook首先入侵并控制了一個網(wǎng)絡(luò)好友的電腦,然后向受害者發(fā)送一個部署了針對IE的0Day攻擊代碼的“照片服務(wù)器”的鏈接,該“照片服務(wù)器”的URL實際指向攻擊IE的web頁面。一旦受害者打開訪問“照片服務(wù)器”,攻擊者通過內(nèi)網(wǎng)滲透便可獲得Gmail系統(tǒng)中很多敏感用戶的訪問權(quán)限,進而竊取敏感信息。
(2)存儲型跨站腳本攻擊
Web應(yīng)用程序中的錄入或修改數(shù)據(jù)功能為攻擊者提供了攻擊用戶的通道,攻擊者將惡意腳本嵌入到服務(wù)器中,當用戶訪問服務(wù)器時,就會執(zhí)行惡意腳本,進而瀏覽者就會受到攻擊。這里,攻擊者給出的惡意輸入存儲在服務(wù)器中,并且稍后當其他用戶查看網(wǎng)頁時執(zhí)行。這是最強大的XSS攻擊,因為攻擊可以同時傳播給數(shù)百萬用戶。例子之一包括將攻擊者給出的惡意輸入存儲為網(wǎng)站中的注釋或小齒輪。當其他用戶查看包含此惡意的網(wǎng)頁腳本,他們的瀏覽器執(zhí)行腳本,可能是攻擊的受害者。
2009年,美國能源部遭到夜龍攻擊(NightDrag?on):攻擊者利用能源部門的web服務(wù)器存在的SQL注入漏洞,攻擊并控制這些web服務(wù)器;然后在一些工作人員內(nèi)部訪問的頁面上部署了針對IE瀏覽器和辦公系統(tǒng)的0Day漏洞的掛馬攻擊代碼;進而控制一些工作人員的個人終端,竊取大量有價值的信息。
(3)DOM跨站攻擊
應(yīng)用程序使用客戶端腳本動態(tài)生成HTML內(nèi)容。在基于DOM的攻擊中,原始客戶端腳本代碼由于受害者瀏覽器中DOM環(huán)境的更改而惡意運行。在修改網(wǎng)頁之前,不需要與服務(wù)器進行任何通信與上述的反射型跨站腳本攻擊和存儲型跨站腳本攻擊的不同之處在于,DOM跨站的輸出是純頁面腳本的,要想有效的防御DOM跨站攻擊必須要規(guī)范使用JavaScript。
針對頁面顯示而進行的攻擊可以通過使用機器學習算法基于從URL和Java腳本代碼提取的功能的正常和惡意網(wǎng)頁的分類。因為JavaScript和URL主要用于實現(xiàn)和傳播XSS攻擊,所以它們被用于識別用于準備數(shù)據(jù)集的特征。因此,第一步是收集受XSS攻擊影響的正常網(wǎng)頁和網(wǎng)頁。第二步是從這些網(wǎng)頁中提取URL和JavaScript代碼。第三步是識別要素,并使用收集的URL和JavaScript代碼創(chuàng)建數(shù)據(jù)集。
基于URL的要素有:
(1)字符數(shù):它表示提取的URL的字符數(shù)。屬于XSS類別的URL通常包含JavaScript代碼。因此其長度將大于正常URL。在與URL相關(guān)的大多數(shù)攻擊中被采用。
(2)重復(fù)字符:它對應(yīng)于URL中存在重復(fù)字符,如<<和>>。重復(fù)的字符用作用戶輸入的一部分,以消除某些防XSS過濾器。
(3)特殊字符:它對應(yīng)于用作腳本輸入的前綴的字符組合,以使腳本代碼可執(zhí)行。這些特殊字符包括“,”>,“>,”/>等。
(4)腳本標簽:用于實現(xiàn)攻擊的URL通常包含用于重定向,cookie訪問等JavaScript代碼。在這種情況下,它們嵌入在開始和結(jié)束腳本標簽中。因此,在URL中存在腳本打開和關(guān)閉標記可以被視為一個有用的功能。
(5)請求cookie:它對應(yīng)于document.cookie函數(shù)的檢查。如果在URL中有任何cookie的請求,URL包含XSS攻擊的概率就更大。
(6)重定向:檢查URL是否存在函數(shù)window. location,window.history.back,window.navigate等。攻擊者使用重定向函數(shù)將受害者重定向到惡意網(wǎng)頁。
(7)關(guān)鍵字數(shù):這些是通常出現(xiàn)在URL中作為分配用戶輸入值或網(wǎng)絡(luò)釣魚攻擊傳播的變量名稱的詞。其中一些包括登錄,注冊,聯(lián)系,搜索,查詢,重定向等。
基于JavaScript的要素有:
(1)字符數(shù):由于正常的JavaScript包含多行代碼用于操作用戶輸入,其長度將大于XSS URL的長度,它僅包含重定向或cookie訪問的直接腳本代碼。
(2)腳本函數(shù)的數(shù)量:它對應(yīng)于腳本代碼中使用的JavaScript函數(shù)的數(shù)量。Na?ve代碼通常使用多個JavaScript函數(shù)操縱用戶輸入。所以JavaScript函數(shù)的數(shù)量將更多在樸素的腳本代碼。
(3)參考JavaScript文件:正常腳本代碼更頻繁地引用外部腳本文件,而XSS腳本代碼直接使用腳本功能來實現(xiàn)攻擊。
(4)存在用戶定義的函數(shù):為了方便和可重用性,用戶定義的函數(shù)在正常的腳本代碼中使用。它的存在可以作為區(qū)分正常和攻擊代碼的特征。
(5)請求cookie:用于訪問和發(fā)送cookie信息到其他網(wǎng)站的腳本代碼可以作為信息竊取和XSS攻擊的指示。
在安全配置、文件編碼上,F(xiàn)lash服務(wù)端和客戶端產(chǎn)生的漏洞問題可導(dǎo)致攻擊者使用客戶端Flash發(fā)起不同的請求或者是攻擊客戶端的界面[3]。因為無正確的配置域策略文件,可導(dǎo)致客戶端Flash文件繞過相同來源的策略限制域獲取數(shù)據(jù)或訪問HT?ML頁面的DOM數(shù)據(jù)或者發(fā)起跨域請求。
2011年,RSA SecurityID雙重數(shù)字認證產(chǎn)品的令牌種子被攻擊而遭到竊取,攻擊者以工作人員的身份向RSA財務(wù)部發(fā)送了一封帶有excel附件的郵件,并且在excel附件中嵌入了一個Flash的0Day漏洞利用代碼。財務(wù)部打開附件后,攻擊者就成功的控制了財務(wù)部的主機,進而通過逐步滲透,竊取了SecureID令牌種子,并傳回攻擊的控制者;為彌補SecureID令牌種子被竊取造成的損失,RSA耗費了6600萬美元。
針對flash而進行的攻擊可以通過規(guī)范Flash配置和開發(fā)兩方面進行有效防御:
(1)規(guī)范Flash配置
安全配置(Crossdomain.xml):判斷有無flash應(yīng)用,若無則可以去掉crossdomian.xml的文件,若有則需要配置crossdomain.xml的策略文件,并且置成只允許特定域的請求。
(2)嵌入flash文件的客戶端安全配置:首先禁止Flash的allowscriptaccess,然后設(shè)置為N;其次設(shè)置allowNetworking選項為N;最后設(shè)置allow?fullscreen選項為F。
(3)刪除用戶敏感的信息:包括用戶名、密碼、SQL查詢或者其他認證信息等可能被反編譯泄露用戶的私人信息。
(4)驗證:必須在客戶端和服務(wù)端都做驗證,因為客戶端的驗證能夠通過反編譯軟件輕易的去除后重新編譯,因此服務(wù)端的驗證必不可少。
(5)刪除調(diào)試信息:類似于“trace”的調(diào)試語句。
(6)參數(shù)傳入:假如有加載外部的數(shù)據(jù)要求,不需要在html中用參數(shù)標簽或者是查詢字符串,利用這種形式來傳遞數(shù)據(jù)到SWF文件,通過服務(wù)器端的HTTP協(xié)議請求向SWF文件傳遞參數(shù)。
(7)allowDomain()方法:假如flash文件和其他SWF文件有通信的要求,則要在swf文件中配置指定的文件資源,不允許任意來源的通信連接。
(8)未初始化的全局變量ActionScript2.0:AS2.0中獲得用戶通過Flash變量和查詢字符串中傳入的數(shù)據(jù)然后放到全局變量中,假如數(shù)據(jù)利用不當,就會引發(fā)變量未完成初始化出現(xiàn)漏洞從而繞過部分的認證。
(9)加載調(diào)用的外部信息文件:在Flash調(diào)用外部文件的期間需要過濾文件里面的惡意信息,主要是metadata的數(shù)據(jù)和flash mp3 player里的Mp3 ID3 Data,從而引發(fā)XSS漏洞(攻擊者可執(zhí)行任意JS)。
(10)禁止調(diào)用ExternalInterface.call配置文件接收外部參數(shù):它可以直接調(diào)用,執(zhí)行Client端的JS文件,假設(shè)用戶提交有執(zhí)行腳本的eval的JS內(nèi)置函數(shù)和惡意代碼,那么這些惡意代碼就會被執(zhí)行。
用戶在瀏覽網(wǎng)頁的時候,攻擊者可以利用頁面元素的屬性(例如IMG的SRC屬性),強迫用戶的瀏覽器發(fā)起一個新的請求[4],會導(dǎo)致用戶信息被修改、以受害者名義發(fā)送郵件和消息、盜取用戶賬號以及個人隱私等安全問題??缯军c請求偽造(CSRF)是一種攻擊,迫使最終用戶在其當前通過身份驗證的Web應(yīng)用程序上執(zhí)行不需要的操作[5]。CSRF攻擊專門針對狀態(tài)改變請求,而不是竊取數(shù)據(jù),因為攻擊者無法看到對偽造請求的響應(yīng)。借助社交工程(例如通過電子郵件或聊天發(fā)送鏈接)的一點幫助,攻擊者可能會欺騙Web應(yīng)用程序的用戶執(zhí)行攻擊者選擇的操作。如果受害者是正常用戶,則成功的CS?RF攻擊可以迫使用戶執(zhí)行狀態(tài)改變請求,諸如轉(zhuǎn)移資金,改變他們的電子郵件地址等。如果受害者是管理帳戶,CSRF可能會危及整個Web應(yīng)用程序。
要防御CSRF攻擊,有以下幾點:
(1)在用戶登錄同時設(shè)置一個種植在用戶的cookie中并在用戶瀏覽器關(guān)閉或用戶再次登錄、退出時能清除的隨機token。
(2)在表單中生成一個值為cookie中隨機token的隱藏域。
(3)于攻擊者無法得知并偽造用戶登錄時隨機生成的token值,所以在表單提交后可通過能接收用戶請求的web應(yīng)用來判斷是否為跨站偽造請求攻擊,并記錄攻擊日志。
高級可持續(xù)性攻擊[6](APT)是一種利用先進的攻擊手段對目標進行長期定向持續(xù)性的網(wǎng)絡(luò)攻擊方式:A指代Advanced,攻擊者會采用高級的、高隱蔽的網(wǎng)絡(luò)入侵技術(shù);P指代Persistent,攻擊者會針對目標進行多次、持續(xù)性的各種攻擊;T指代Threat,攻擊者通常是組織嚴密,攻擊性和破壞性強的團隊。2010年,伊朗核電站遭受震網(wǎng)攻擊(Stuxnet)。攻擊者通過收集核電站的工作人員和他的家庭成員信息首先針對這些家庭成員的主機發(fā)起了攻擊,然后利用4個windows的0Day漏洞,感染了所有的接入USB移動介質(zhì),最后利用3個西門子SCADA的0Day漏洞,控制了離心機的控制系統(tǒng)。
APT攻擊有四大特征:階段性、長期性、針對性和間接性。APT攻擊的流程可歸納為六個階段:情報收集、定向入侵、遠程控制、橫向滲透、資料發(fā)掘和資料竊取。
針對APT攻擊的防御檢測技術(shù)主要有:
(1)沙箱檢測技術(shù):虛擬沙箱技術(shù)是識別未知攻擊與異常行為的有效解決方案。
(2)異常檢測技術(shù):異常檢測技術(shù)通過對流量建模識別異常行為。
(3)基于深層協(xié)議解析的全流量審計技術(shù):對全流量進行協(xié)議解析和應(yīng)用還原,進而檢測異常行為。
(4)攻擊回溯和智能化關(guān)聯(lián)分析技術(shù):對已提取出來的網(wǎng)絡(luò)對象回溯到一個時間段內(nèi)可疑的網(wǎng)絡(luò)信息,通過智能化關(guān)聯(lián)分析可以將傳統(tǒng)的實時檢測轉(zhuǎn)變?yōu)榛跉v史時間窗的檢測。
分布式拒絕服務(wù)(DDoS)攻擊指代利用大量合理的服務(wù)請求來占用過多的服務(wù)資源,從而使得合法用戶無法得到服務(wù)的響應(yīng)[8]。黑客通過大量控制的計算機攻擊目標,耗盡服務(wù)器的CPU、網(wǎng)絡(luò)帶寬、內(nèi)存等,實現(xiàn)影響用戶正常使用的目的。2015年12月英國科研學術(shù)網(wǎng)絡(luò)Janet遭遇4天的DDoS攻擊,導(dǎo)致jannet網(wǎng)絡(luò)時常處于緩慢或者不能訪問的狀態(tài)。2016年11月初,俄羅斯十大銀行中有五家遭到DDoS攻擊,黑客嘗試盜取50億俄羅斯盧布左右的賬戶資金,最終盜取了20億俄羅斯盧布的賬戶資金。
DDoS攻擊方式分為以下四種[7]:
(1)通過增加網(wǎng)絡(luò)負載使其達到過載的程度來妨礙正常的網(wǎng)絡(luò)通訊。
(2)通過增大服務(wù)器的請求量,使服務(wù)器達到超負荷的狀態(tài)。
(3)阻斷某個用戶正在訪問的服務(wù)器,使其不能為用戶提供正常服務(wù)。
(4)阻斷某服務(wù)與某個特定的系統(tǒng)或個人用戶之間的通訊聯(lián)絡(luò)。
從DDoS攻擊的方式來看,land攻擊、SYN flood攻擊、Teardrop攻擊等主要針對操作系統(tǒng)、TCP/IP網(wǎng)絡(luò)協(xié)議、應(yīng)用程序等的缺陷,構(gòu)造特殊的數(shù)據(jù)包,使系統(tǒng)停止對正常用戶的訪問請求或操作系統(tǒng)。Smurf攻擊、UDP淹沒攻擊采用比攻擊受害者更大的帶寬生成大量發(fā)向攻擊受害者的數(shù)據(jù)包,以耗盡攻擊受害者的有效帶寬,造成網(wǎng)絡(luò)擁塞為目的。
攻擊的流程:搜集資料、占領(lǐng)、實際攻擊。
總體來說,對DDoS的防御主要從下面幾個方面考慮:
(1)通過加載最新的系統(tǒng)補丁以及進行合規(guī)性配置來減少系統(tǒng)漏洞,規(guī)避風險。
(2)利用安全域劃分,防火墻配置,入侵檢測等技術(shù)減緩攻擊。
(3)通過采用分布式組網(wǎng),負載均衡,增加系統(tǒng)容量等有效措施提高系統(tǒng)服務(wù)能力的同時降低風險。
可參考措施[7]如下:
(1)采用高性能的網(wǎng)絡(luò)設(shè)備,如知名廠商的路由器、交換機、硬件防火墻等。
(2)盡量避免使用NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換),提高網(wǎng)路通信能力,降低CPU的浪費時間。
(3)保證充足的網(wǎng)絡(luò)帶寬,可以保證網(wǎng)絡(luò)對攻擊的抵抗能力。
(4)升級主機服務(wù)器硬件,提高硬件性能,才能軟硬件結(jié)合增強對攻擊抵抗力。
(5)把網(wǎng)站做成靜態(tài)頁面,減少攻擊者可用的攻擊面。
隨著Web應(yīng)用的不斷普及和廣泛應(yīng)用,Web安全將和每個人都息息相關(guān),Web的開放性又給安全帶來了更多的不確定性。本文從攻擊者的角度出發(fā),總結(jié)了常見的Web安全漏洞,并給出了防御方法,對提高Web的安全具有重要的參考作用。
[1]Fonseca J,Seixas N,Vieira M,et al.Analysis of field data on web security vulnerabilities[J].Dependable and Secure Computing,IEEE Transactions on,2014,11(2):89-100.
[2]Fonseca J,Vieira M,Madeira H.Evaluation of Web se?curity mechanisms using vulnerability&attack injection[J].Dependable and Secure Computing,IEEE Transac?tions on,2014,11(5):440-453.
[3]Sullivan B,Liu V.Web application security:a beginner′s guide[M].McGraw-Hill,2012.
[4]Tripp O,Weisman O,Guy L.Finding your way in the testing jungle:a learning approach to web security testing[C]//Proceedings of the 2013 International Symposium on Software Testing and Analysis.ACM,2013:347-357.
[5]Lee L H,Juan Y C,Lee K C,et al.Context-aware web security threat prevention[C]//Proceedings of the 2012 ACM conference on Computer and communica?tions security,ACM,2012:992-994.
[6]許佳,周丹平,顧海東.APT攻擊及其檢測技術(shù)綜述[J].保密科學技術(shù),2014(1):34-40.
[7]池水明,周蘇杭.DDoS攻擊防御技術(shù)研究[J].信息網(wǎng)絡(luò)安全,2012(5):27-31.
[8]蔣勇.DDoS攻擊的IP追蹤技術(shù)分析與比較研究[J].計算機安全,2010(12):59-62.
Research on Web Security Threat and Defense
WANG Yu1,LI Zhuo2,YAO Weina2
(1.Faculty and Arts,Changchun University of Science and Techhnology,Changchun 130022 2.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022)
With the wide spread of Web application,a great number of security threats appear.In this paper,we first analyze common web attacks:XSS,F(xiàn)lash,CSRF,APT,DDoS attack.And then summarize the Web security vulnerabilities used of?ten from the point of security season and attack measure,as well propose corresponding defense action,which generates impor?tant reference for improving Web security.
Web security;XSS;CSRF;APT;DDoS
TP393
A
1672-9870(2017)02-0135-05
2017-01-16
王瑜(1980-),女,碩士,實驗師,E-mail:88428712@qq.com