王瑜,李卓,姚微娜
(1.長春理工大學 文學院,長春 130022;2. 長春理工大學 計算機科學技術學院,長春 130022)
Web安全威脅與防御技術研究
王瑜1,李卓2,姚微娜2
(1.長春理工大學 文學院,長春 130022;2. 長春理工大學 計算機科學技術學院,長春 130022)
Web應用廣泛普及的同時,也帶來了大量的安全威脅。本文分析了常見Web攻擊:跨站腳本攻擊、Flash攻擊、跨站偽造請求攻擊、APT攻擊、DDoS攻擊,從安全威脅的產生原因、常見攻擊手段出發,總結了攻擊者經常利用的Web安全漏洞,并提出了相應的防御措施和方法,對提高Web安全具有重要的參考價值。
Web安全;跨站腳本攻擊;跨站偽造請求攻擊;APT;DDoS
隨著信息技術的快速發展,互聯網已成為連接社會、服務社會的主要方式。互聯網不僅方便了人們的生活,其自身的安全問題也層出不窮,并且受到了廣大學者和安全機構的廣泛關注。Web應用已經成為互聯網上的第一大應用,針對Web的網絡攻擊層出不窮,本文從常見的Web攻擊形式入手,分析了跨站腳本攻擊、FLASH安全攻擊、跨站偽造請求攻擊、APT攻擊、DDoS攻擊產生的原因和防御方法,以期提高Web應用的網絡安全防護能力。
Web應用程序使用客戶端和服務器端腳本為網頁提供動態行為。跨站腳本(XSS)攻擊使用惡意腳本和注入到受信任網頁的鏈接竊取受害者的敏感數據[1]??缯灸_本已成為對許多網站發動攻擊的主要攻擊媒介之一。開放式Web應用程序安全項目(OWASP)2013年在公布的前10名最關鍵的Web應用程序安全攻擊中將XSS列為第三名。上網不小心,使用過時的瀏覽和防病毒軟件工具,增加垃圾郵件發送者的活動,通過社交網絡和互聯網論壇轉發鏈接和圖像,在網絡應用的開發期間缺乏預防性安全措施有助于這種攻擊的廣泛傳播。一旦攻擊者能夠找到與Web應用程序相關聯的漏洞,將能夠使用此漏洞的Web應用程序攻擊其Web用戶。像JavaScripts這樣的客戶端腳本最常用于實現XSS攻擊。
在跨站腳本攻擊中,攻擊者利用Web應用動態展示用戶輸入數據的機會,在HTML頁面里嵌入惡意代碼[1],這些惡意代碼一般是通過“輸入信息”時被嵌入的,其方法是在頁面輸入用戶自己編寫的內容時輸入惡意代碼,如果Web應用沒有對輸入數據進行安全過濾就直接在頁面上展示。當其他用戶瀏覽這個頁面時,后臺就會執行惡意腳本和注入到受信任網頁的鏈接,攻擊者便實現了攻擊目的。這些惡意代碼在執行的過程中被當成了JS/VBS腳本,或“惡意用戶輸入數據”時嵌入頁面的HTML代碼控制頁面元素后發動攻擊[2]。
這種攻擊成功的基本事實是,大多數Web用戶不知道超鏈接的實際代碼或者URL和在網頁后面運行的腳本。因此,網絡攻擊者使用腳本或URL更加成功地實現這種攻擊。當攻擊者對特定網站感興趣時,他們開始檢查服務器發送的響應,以查找與其相關聯的缺陷。收集足夠的信息后,他們設計攻擊向量??缯灸_本(XSS)是一種Web應用程序攻擊,使攻擊者/惡意用戶能夠在易受攻擊的Web應用程序中注入惡意代碼或鏈接,這將在其他Web用戶查看該網頁時執行。
(1)反射型跨站腳本攻擊
攻擊者通過一種社會工程學手段,給用戶發送一個URL鏈接,頁面被打開時,瀏覽器會立刻執行頁面中已經事先嵌入的惡意腳本。如果攻擊者能夠發現與Web應用程序相關聯的漏洞(例如缺少編碼方案和用戶輸入驗證方法),他可以利用惡意腳本代碼制作特殊鏈接和URL,并通過社交網站和電子郵件將其散布向互聯網用戶。如果用戶點擊此鏈接,他將獲得嵌入了惡意腳本的響應網頁,并且可能是攻擊的受害者。而且每次用戶點擊該超鏈接時都會受到攻擊。
2009年12月,Google及其他20家大型企業遭到了極光攻擊(Operation Aurora):攻擊者通過Facebook首先入侵并控制了一個網絡好友的電腦,然后向受害者發送一個部署了針對IE的0Day攻擊代碼的“照片服務器”的鏈接,該“照片服務器”的URL實際指向攻擊IE的web頁面。一旦受害者打開訪問“照片服務器”,攻擊者通過內網滲透便可獲得Gmail系統中很多敏感用戶的訪問權限,進而竊取敏感信息。
(2)存儲型跨站腳本攻擊
Web應用程序中的錄入或修改數據功能為攻擊者提供了攻擊用戶的通道,攻擊者將惡意腳本嵌入到服務器中,當用戶訪問服務器時,就會執行惡意腳本,進而瀏覽者就會受到攻擊。這里,攻擊者給出的惡意輸入存儲在服務器中,并且稍后當其他用戶查看網頁時執行。這是最強大的XSS攻擊,因為攻擊可以同時傳播給數百萬用戶。例子之一包括將攻擊者給出的惡意輸入存儲為網站中的注釋或小齒輪。當其他用戶查看包含此惡意的網頁腳本,他們的瀏覽器執行腳本,可能是攻擊的受害者。
2009年,美國能源部遭到夜龍攻擊(NightDrag?on):攻擊者利用能源部門的web服務器存在的SQL注入漏洞,攻擊并控制這些web服務器;然后在一些工作人員內部訪問的頁面上部署了針對IE瀏覽器和辦公系統的0Day漏洞的掛馬攻擊代碼;進而控制一些工作人員的個人終端,竊取大量有價值的信息。
(3)DOM跨站攻擊
應用程序使用客戶端腳本動態生成HTML內容。在基于DOM的攻擊中,原始客戶端腳本代碼由于受害者瀏覽器中DOM環境的更改而惡意運行。在修改網頁之前,不需要與服務器進行任何通信與上述的反射型跨站腳本攻擊和存儲型跨站腳本攻擊的不同之處在于,DOM跨站的輸出是純頁面腳本的,要想有效的防御DOM跨站攻擊必須要規范使用JavaScript。
針對頁面顯示而進行的攻擊可以通過使用機器學習算法基于從URL和Java腳本代碼提取的功能的正常和惡意網頁的分類。因為JavaScript和URL主要用于實現和傳播XSS攻擊,所以它們被用于識別用于準備數據集的特征。因此,第一步是收集受XSS攻擊影響的正常網頁和網頁。第二步是從這些網頁中提取URL和JavaScript代碼。第三步是識別要素,并使用收集的URL和JavaScript代碼創建數據集。
基于URL的要素有:
(1)字符數:它表示提取的URL的字符數。屬于XSS類別的URL通常包含JavaScript代碼。因此其長度將大于正常URL。在與URL相關的大多數攻擊中被采用。
(2)重復字符:它對應于URL中存在重復字符,如<<和>>。重復的字符用作用戶輸入的一部分,以消除某些防XSS過濾器。
(3)特殊字符:它對應于用作腳本輸入的前綴的字符組合,以使腳本代碼可執行。這些特殊字符包括“,”>,“>,”/>等。
(4)腳本標簽:用于實現攻擊的URL通常包含用于重定向,cookie訪問等JavaScript代碼。在這種情況下,它們嵌入在開始和結束腳本標簽中。因此,在URL中存在腳本打開和關閉標記可以被視為一個有用的功能。
(5)請求cookie:它對應于document.cookie函數的檢查。如果在URL中有任何cookie的請求,URL包含XSS攻擊的概率就更大。
(6)重定向:檢查URL是否存在函數window. location,window.history.back,window.navigate等。攻擊者使用重定向函數將受害者重定向到惡意網頁。
(7)關鍵字數:這些是通常出現在URL中作為分配用戶輸入值或網絡釣魚攻擊傳播的變量名稱的詞。其中一些包括登錄,注冊,聯系,搜索,查詢,重定向等。
基于JavaScript的要素有:
(1)字符數:由于正常的JavaScript包含多行代碼用于操作用戶輸入,其長度將大于XSS URL的長度,它僅包含重定向或cookie訪問的直接腳本代碼。
(2)腳本函數的數量:它對應于腳本代碼中使用的JavaScript函數的數量。Na?ve代碼通常使用多個JavaScript函數操縱用戶輸入。所以JavaScript函數的數量將更多在樸素的腳本代碼。
(3)參考JavaScript文件:正常腳本代碼更頻繁地引用外部腳本文件,而XSS腳本代碼直接使用腳本功能來實現攻擊。
(4)存在用戶定義的函數:為了方便和可重用性,用戶定義的函數在正常的腳本代碼中使用。它的存在可以作為區分正常和攻擊代碼的特征。
(5)請求cookie:用于訪問和發送cookie信息到其他網站的腳本代碼可以作為信息竊取和XSS攻擊的指示。
在安全配置、文件編碼上,Flash服務端和客戶端產生的漏洞問題可導致攻擊者使用客戶端Flash發起不同的請求或者是攻擊客戶端的界面[3]。因為無正確的配置域策略文件,可導致客戶端Flash文件繞過相同來源的策略限制域獲取數據或訪問HT?ML頁面的DOM數據或者發起跨域請求。
2011年,RSA SecurityID雙重數字認證產品的令牌種子被攻擊而遭到竊取,攻擊者以工作人員的身份向RSA財務部發送了一封帶有excel附件的郵件,并且在excel附件中嵌入了一個Flash的0Day漏洞利用代碼。財務部打開附件后,攻擊者就成功的控制了財務部的主機,進而通過逐步滲透,竊取了SecureID令牌種子,并傳回攻擊的控制者;為彌補SecureID令牌種子被竊取造成的損失,RSA耗費了6600萬美元。
針對flash而進行的攻擊可以通過規范Flash配置和開發兩方面進行有效防御:
(1)規范Flash配置
安全配置(Crossdomain.xml):判斷有無flash應用,若無則可以去掉crossdomian.xml的文件,若有則需要配置crossdomain.xml的策略文件,并且置成只允許特定域的請求。
(2)嵌入flash文件的客戶端安全配置:首先禁止Flash的allowscriptaccess,然后設置為N;其次設置allowNetworking選項為N;最后設置allow?fullscreen選項為F。
(3)刪除用戶敏感的信息:包括用戶名、密碼、SQL查詢或者其他認證信息等可能被反編譯泄露用戶的私人信息。
(4)驗證:必須在客戶端和服務端都做驗證,因為客戶端的驗證能夠通過反編譯軟件輕易的去除后重新編譯,因此服務端的驗證必不可少。
(5)刪除調試信息:類似于“trace”的調試語句。
(6)參數傳入:假如有加載外部的數據要求,不需要在html中用參數標簽或者是查詢字符串,利用這種形式來傳遞數據到SWF文件,通過服務器端的HTTP協議請求向SWF文件傳遞參數。
(7)allowDomain()方法:假如flash文件和其他SWF文件有通信的要求,則要在swf文件中配置指定的文件資源,不允許任意來源的通信連接。
(8)未初始化的全局變量ActionScript2.0:AS2.0中獲得用戶通過Flash變量和查詢字符串中傳入的數據然后放到全局變量中,假如數據利用不當,就會引發變量未完成初始化出現漏洞從而繞過部分的認證。
(9)加載調用的外部信息文件:在Flash調用外部文件的期間需要過濾文件里面的惡意信息,主要是metadata的數據和flash mp3 player里的Mp3 ID3 Data,從而引發XSS漏洞(攻擊者可執行任意JS)。
(10)禁止調用ExternalInterface.call配置文件接收外部參數:它可以直接調用,執行Client端的JS文件,假設用戶提交有執行腳本的eval的JS內置函數和惡意代碼,那么這些惡意代碼就會被執行。
用戶在瀏覽網頁的時候,攻擊者可以利用頁面元素的屬性(例如IMG的SRC屬性),強迫用戶的瀏覽器發起一個新的請求[4],會導致用戶信息被修改、以受害者名義發送郵件和消息、盜取用戶賬號以及個人隱私等安全問題。跨站點請求偽造(CSRF)是一種攻擊,迫使最終用戶在其當前通過身份驗證的Web應用程序上執行不需要的操作[5]。CSRF攻擊專門針對狀態改變請求,而不是竊取數據,因為攻擊者無法看到對偽造請求的響應。借助社交工程(例如通過電子郵件或聊天發送鏈接)的一點幫助,攻擊者可能會欺騙Web應用程序的用戶執行攻擊者選擇的操作。如果受害者是正常用戶,則成功的CS?RF攻擊可以迫使用戶執行狀態改變請求,諸如轉移資金,改變他們的電子郵件地址等。如果受害者是管理帳戶,CSRF可能會危及整個Web應用程序。
要防御CSRF攻擊,有以下幾點:
(1)在用戶登錄同時設置一個種植在用戶的cookie中并在用戶瀏覽器關閉或用戶再次登錄、退出時能清除的隨機token。
(2)在表單中生成一個值為cookie中隨機token的隱藏域。
(3)于攻擊者無法得知并偽造用戶登錄時隨機生成的token值,所以在表單提交后可通過能接收用戶請求的web應用來判斷是否為跨站偽造請求攻擊,并記錄攻擊日志。
高級可持續性攻擊[6](APT)是一種利用先進的攻擊手段對目標進行長期定向持續性的網絡攻擊方式:A指代Advanced,攻擊者會采用高級的、高隱蔽的網絡入侵技術;P指代Persistent,攻擊者會針對目標進行多次、持續性的各種攻擊;T指代Threat,攻擊者通常是組織嚴密,攻擊性和破壞性強的團隊。2010年,伊朗核電站遭受震網攻擊(Stuxnet)。攻擊者通過收集核電站的工作人員和他的家庭成員信息首先針對這些家庭成員的主機發起了攻擊,然后利用4個windows的0Day漏洞,感染了所有的接入USB移動介質,最后利用3個西門子SCADA的0Day漏洞,控制了離心機的控制系統。
APT攻擊有四大特征:階段性、長期性、針對性和間接性。APT攻擊的流程可歸納為六個階段:情報收集、定向入侵、遠程控制、橫向滲透、資料發掘和資料竊取。
針對APT攻擊的防御檢測技術主要有:
(1)沙箱檢測技術:虛擬沙箱技術是識別未知攻擊與異常行為的有效解決方案。
(2)異常檢測技術:異常檢測技術通過對流量建模識別異常行為。
(3)基于深層協議解析的全流量審計技術:對全流量進行協議解析和應用還原,進而檢測異常行為。
(4)攻擊回溯和智能化關聯分析技術:對已提取出來的網絡對象回溯到一個時間段內可疑的網絡信息,通過智能化關聯分析可以將傳統的實時檢測轉變為基于歷史時間窗的檢測。
分布式拒絕服務(DDoS)攻擊指代利用大量合理的服務請求來占用過多的服務資源,從而使得合法用戶無法得到服務的響應[8]。黑客通過大量控制的計算機攻擊目標,耗盡服務器的CPU、網絡帶寬、內存等,實現影響用戶正常使用的目的。2015年12月英國科研學術網絡Janet遭遇4天的DDoS攻擊,導致jannet網絡時常處于緩慢或者不能訪問的狀態。2016年11月初,俄羅斯十大銀行中有五家遭到DDoS攻擊,黑客嘗試盜取50億俄羅斯盧布左右的賬戶資金,最終盜取了20億俄羅斯盧布的賬戶資金。
DDoS攻擊方式分為以下四種[7]:
(1)通過增加網絡負載使其達到過載的程度來妨礙正常的網絡通訊。
(2)通過增大服務器的請求量,使服務器達到超負荷的狀態。
(3)阻斷某個用戶正在訪問的服務器,使其不能為用戶提供正常服務。
(4)阻斷某服務與某個特定的系統或個人用戶之間的通訊聯絡。
從DDoS攻擊的方式來看,land攻擊、SYN flood攻擊、Teardrop攻擊等主要針對操作系統、TCP/IP網絡協議、應用程序等的缺陷,構造特殊的數據包,使系統停止對正常用戶的訪問請求或操作系統。Smurf攻擊、UDP淹沒攻擊采用比攻擊受害者更大的帶寬生成大量發向攻擊受害者的數據包,以耗盡攻擊受害者的有效帶寬,造成網絡擁塞為目的。
攻擊的流程:搜集資料、占領、實際攻擊。
總體來說,對DDoS的防御主要從下面幾個方面考慮:
(1)通過加載最新的系統補丁以及進行合規性配置來減少系統漏洞,規避風險。
(2)利用安全域劃分,防火墻配置,入侵檢測等技術減緩攻擊。
(3)通過采用分布式組網,負載均衡,增加系統容量等有效措施提高系統服務能力的同時降低風險。
可參考措施[7]如下:
(1)采用高性能的網絡設備,如知名廠商的路由器、交換機、硬件防火墻等。
(2)盡量避免使用NAT(網絡地址轉換),提高網路通信能力,降低CPU的浪費時間。
(3)保證充足的網絡帶寬,可以保證網絡對攻擊的抵抗能力。
(4)升級主機服務器硬件,提高硬件性能,才能軟硬件結合增強對攻擊抵抗力。
(5)把網站做成靜態頁面,減少攻擊者可用的攻擊面。
隨著Web應用的不斷普及和廣泛應用,Web安全將和每個人都息息相關,Web的開放性又給安全帶來了更多的不確定性。本文從攻擊者的角度出發,總結了常見的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攻擊及其檢測技術綜述[J].保密科學技術,2014(1):34-40.
[7]池水明,周蘇杭.DDoS攻擊防御技術研究[J].信息網絡安全,2012(5):27-31.
[8]蔣勇.DDoS攻擊的IP追蹤技術分析與比較研究[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,Flash,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