国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Webshell研究綜述:檢測與逃逸之間的博弈

2018-06-29 01:58龍嘯方勇黃誠劉亮
網絡空間安全 2018年1期
關鍵詞:檢測技術

龍嘯 方勇 黃誠 劉亮

摘 要:Webshell是Web攻擊中常見的一種木馬形式,在整個攻擊鏈中,Webshell被用于權限維持并作為下一步入侵的跳板。針對不斷發(fā)展的檢測與逃逸技術,尤其是人工智能影響下的新興技術,綜述了近年來Webshell檢測和逃逸方面的研究進展。論文介紹了隨著互聯(lián)網發(fā)展而不斷演化的攻擊方式以及應對攻擊的檢測模型,闡述了包括靜態(tài)規(guī)則匹配、異常行為分析、動態(tài)執(zhí)行和基于深度學習等檢測方法,從博弈的角度重點討論了檢測與逃逸相互之間所產生的影響。最后總結了現(xiàn)有的研究難題,展望了Webshell未來的研究方向。

關鍵詞:Webshell;檢測技術;逃逸技術

中圖分類號:TP309 文獻標識碼:A

A survey on webshell: game of detection and escape

Abstract: Webshell is a common trojan in Web attacks. It is always used for permission maintenance and next step attacks. In this paper, the researches on the detection and escape of Webshell had been reviewed especially the emerging technologies under the influence of artificial intelligence. This paper introduced the evolution of attack methods and detection model with the development of the Internet. Meanwhile, it expounded several detections such as static rules matching, abnormal behavior analysis, dynamic analysis and deep learning. The important is to illustrate the interaction between detection and escape in the game. Finally it summarized the existing research problems and put forward the research direction.

Key words: webshell; detection technique; escape technique

1 引言

隨著網絡技術的不斷更新,網絡應用能夠提供的交互功能越來越強大,豐富的功能擴大了網絡攻擊面,使得個人、企業(yè)甚至是國家的敏感信息暴露在風險中。而在網絡攻擊鏈中,Webshell作為一種可以進行文件操作和命令執(zhí)行的惡意程序,被大量攻擊者用于控制Web服務主機[1]。根據綠盟科技2017年上半年發(fā)布的《2017上半年DDoS與Web應用攻擊態(tài)勢報告》指出,2017年上半年攻擊者對該公司所防御的Web站點發(fā)起了2465萬次Web應用層攻擊,占所管理網站總數的82%,其中教育、政府、金融等領域成為主要的攻擊目標[2]。作為黑客的常用工具,Webshell可以用于非法訪問網站資源,甚至用于控制具有Web功能的關鍵設施,嚴重威脅著國家網絡空間安全。

2 Webshell的定義以及攻擊原理

2.1 定義

Webshell是指攻擊者基于Web編程語言特性編寫的一類惡意腳本,當攻擊者攻陷Web應用程序后,使用這樣的惡意腳本來持久化訪問權限或者提升訪問權限[3]。由于Webshell本身一般并不具有攻擊或者利用遠程漏洞的能力,所以往往由攻擊者利用遠程漏洞攻陷Web應用后,再將惡意文件注入失陷主機進行使用。

一個典型的Webshell腳本如圖1所示,通常包含一個腳本語言類型聲明,執(zhí)行用戶代碼的指令以及用戶需要執(zhí)行的代碼。主流的腳本語言類型包括PHP、ASP、ASP.NET、JSP等,如圖2所示,展示了攻擊者向漏洞應用添加惡意后門的過程。

Webshell以代碼展現(xiàn)形式分類可以分為三類。

(1)非編碼Webshell,惡意源代碼直接寫在普通文件中,可以直接閱讀的Webshell形式。

(2)編碼Webshell,源代碼經過編碼后存儲于文件之中,無法直接人工辨認,需要經過解碼處理,常見的編碼方式為base64編碼、混淆編碼。攻擊者通常會使用編碼后門的方式來進行逃逸。

(3)無文件Webshell,無文件Webshell是由于Web應用程序代碼中使用了危險的命令執(zhí)行函數而產生的,攻擊者利用漏洞傳遞可控變量進入危險函數,就可以發(fā)動Webshell攻擊。

Webshell從用途分類可以分為五類。

(1)通用型Webshell,具有Web木馬所需的復雜功能,包括文件上傳、文件操作、數據庫訪問、權限提升、系統(tǒng)命令執(zhí)行、內網掃描等功能。

(2)數據庫型Webshell,專門用于數據庫數據竊取的惡意程序。

(3)上傳型Webshell,只具有上傳接口的惡意程序,可以為其他惡意程序的上傳提供通道,常用于隱蔽權限維持。

(4)一句話Webshell,只具有簡單的腳本執(zhí)行語句,通常需要配合木馬管理端工具,如Shellstack、Cknife等。

(5)穿透型Webshell,專門提供內網穿透的惡意程序,可以將內網服務器轉發(fā)到公網,擴大網絡邊界攻擊面。

2.2 攻擊原理

Webshell的種類有很多,不同的腳本語言所實現(xiàn)的惡意代碼結構也不盡相同。這些代碼能夠發(fā)動攻擊的根本原因來自于Web應用交互方式和編程語言本身所具有的特點,這里將從遠程參數傳遞和本地函數調用兩個層面來進行分析。

2.2.1 遠程參數傳遞

由于Web應用程序的交互特性,用戶通過客戶端發(fā)送攜帶有參數的請求,常見的HTTP請求有GET型和POST型兩種。這些請求被特定的代碼接受并處理后,會將結果返回給請求者,基于這種遠程傳遞機制,用戶可以發(fā)送攜帶有特定參數的請求。如果攻擊者通過應用漏洞將Webshell植入服務器,就可以利用該機制訪問惡意文件完成遠程參數傳遞。

2.2.2 本地函數調用

Web應用中常用的編程語言都提供文件操作、系統(tǒng)命令執(zhí)行、數據庫操作等接口。一次完整的Webshell攻擊由攻擊者遠程傳遞命令參數給木馬文件,木馬文件根據不同的參數執(zhí)行相應的函數,再將執(zhí)行結果返回給攻擊者。在整個攻擊過程中,參數傳遞屬于正常的HTTP協(xié)議交互,所執(zhí)行的函數也是編程語言本身的功能,這些特性給Webshell的檢測帶來了很大的難度。

3 Webshell攻擊檢測技術

對Webshell的檢測識別主要分為基于后門文件的檢測方式、基于交互流量的檢測方式以及基于Web日志的檢測方式。這三種檢測方式分別對應了攻擊發(fā)生前、攻擊發(fā)生時和攻擊發(fā)生后三個階段。Webshell攻擊發(fā)生前,攻擊者需要向服務器傳遞相應的惡意文件,因此基于文件的檢測方式主要針對惡意文件本身進行檢測,阻止文件的傳遞;而基于流量的檢測方式主要在攻擊者與服務器交互過程中,通過協(xié)議層面的流量分析來標記識別惡意行為;基于日志的檢測方式通常是在攻擊發(fā)生后,通過全面的分析入侵日志,還原整個攻擊過程,以此來定位識別惡意后門。

3.1 基于文件的檢測技術

這種檢測技術通過文件特征、文件哈希、文件動態(tài)行為、文件訪問時間、訪問頻率、文件權限等屬性來鑒別惡意文件。

由于檢測速度快、檢測特征明顯,相關領域針對惡意攻擊的研究多集中在基于文件的檢測方法上。其中被廣泛提到的是Ben Hagen于2011年設計實現(xiàn)的NeoPI[4]。NeoPI是一款文件惡意性定量工具,它從文件字符長度、信息熵和重合因子等角度綜合分析待檢測文件,但是該款工具只做定量檢測,并不對文件做定性評價。另一款相似的PHP后門檢測工具是Luczko的PHP shell detector[5],它主要通過比較未知文件和已知Webshell文件的MD5值來判斷惡意程序是否存在,由于MD5的HASH特性,這種方法存在極大的漏報率。胡健康等人使用基于決策樹的檢測方法[6],將一個完整的文件特征分為文檔屬性、基本屬性和高級屬性三類,對三類屬性使用C4.5算法分類識別,準確率可以達到98.03%。Dinh Tu, Truong等人綜合上述研究成果[7],給出了Webshell不同構成結構更加細致的量化指標。孟正等人在對比了SVM和決策樹算法后[8],認為使用SVM進行特征匹配擁有更好的泛化能力。除了基于靜態(tài)特征進行檢測之外,研究者們還希望通過動態(tài)特征來識別Webshell行為,杜海章等人利用PHP鉤子機制[9],從PHP編程語言的編譯底層出發(fā),對敏感數據和敏感函數進行劫持檢測,提出了一種動態(tài)檢測的思路。

隨著Webshell檢測技術研究的不斷深入,普通的惡意文件可以輕易的被檢測算法所識別,攻擊者在這種情況下,利用腳本語言的一些特性對惡意文件進行編碼混淆。針對這一情況,朱魏魏等人將最近鄰分類引入SVM之中[10],提出了一種NN-SVM模型,利用最近鄰特征來抵抗混淆逃逸。馬艷發(fā)在研究中特別對比了不同特征在普通檢測和變異檢測中的差異性[11],論文指出特殊字符信息熵和引號信息熵特征在變異檢測上表現(xiàn)較好,但是在檢測普通Webshell時不夠理想。與研究領域共同發(fā)展的還有工程界用于實際防護的主機檢測引擎,Le等人在論文中使用了50多種國內外不同公司提供的檢測引擎[12],對Webshell文件進行檢測,從結果中可以看出,基于靜態(tài)特征檢測的工程實現(xiàn)還不夠理想。鑒于此,研究者們進行了新的嘗試,易楠等人在語義層將PHP語言提取為抽象語法樹[13],進而利用巴科斯范式對不同的PHP代碼作無歧義轉義,最后在語義層進行惡意檢測。賈文超等人采用隨機森林改進算法[14],針對不同功能的三種Webshell,提出了公共特征和獨有特征,結合RASP技術采集動態(tài)行為構成特征空間,利用改進算法進行導向式特征隨機選擇,準確率達到97.2%。而Sun等人提出了一種矩陣分解模型[15],對文件進行矩陣分解后做邏輯回歸預測。

基于文件的Webshell檢測直觀的對惡意文件本身進行分析,一方面建立已有文件的樣本庫,另一方面采集惡意文件在系統(tǒng)層面或者文件內容層面的靜態(tài)特征,同時可以結合動態(tài)分析技術。然而,基于Webshell文件的檢測需要能夠取得惡意文件,這使得該技術在針對無文件Webshell進行檢測時存在瓶頸。

3.2 基于流量的檢測技術

基于流量的檢測主要分析攻擊者與Webshell交互時的流量,在HTTP協(xié)議的請求和響應中尋找可疑信息。

Yang等人在入侵檢測研究中提到了基于流量層面對Webshell進行檢測[16],他們在研究中使用Snort結合ModSecurity模塊對流量中的關鍵字進行檢測,以此來識別Web攻擊。葉飛等人使用SVM算法[17],通過檢測流量中傳遞的HTML文檔的網頁編碼方式、網頁元信息等特征,判斷是否存在Webshell攻擊,該模型的準確率達到75.67%。Starov等人在2016年的論文中從流量層面對Webshell本身進行了一次全面的評估[18],他們收集了1449個惡意樣本,涵蓋c99、r57、WSD等多個樣本家族。他們的論文從隱匿性、接口特性和逃逸檢測等方面進行分析,利用蜜罐對惡意樣本進行觀察,總結了不同惡意樣本在執(zhí)行時的客戶端行為和服務端行為,更為重要的是,他們對惡意樣本中存在的隱藏后門進行了細致的研究,通過流量分析找到那些以Webshell使用者作為目標的攻擊者。

由于流量在傳遞過程中復雜而又龐大,針對流量的檢測技術面臨著流量還原、實時性能、特征維度、流量噪音等多方面的制約因素,但是,深度學習技術的日趨成熟將會為這種檢測方式帶來技術變革。

3.3 基于日志的檢測技術

服務器往往會以日志的形式記錄全部的Web請求,通過分析系統(tǒng)日志,可以對整個攻擊過程進行溯源分析,特別適合于分析未被發(fā)現(xiàn)的Webshell繞過策略。

Xie等人通過KNN算法來聚類日志中的Webshell行為與正常訪問行為[19],通過無監(jiān)督學習的方法發(fā)現(xiàn)日志中的異常攻擊。潘杰在基于機器學習的Webshell檢測關鍵技術研究中提出了使用OneClass-SVM[20]進行聚類分析,與此同時,論文中還使用了人工神經網絡檢測上傳之后的文件。前述的研究主要針對日志文本特征進行無監(jiān)督機器學習,而石劉洋等人在檢測日志文本特征的同時[21],提出結合統(tǒng)計特征以及文件訪問之間的關聯(lián)特征,他通過研究發(fā)現(xiàn)日志中對Webshell的訪問頻率記錄與正常記錄存在明顯的差異,利用這種差異可以有效提升日志檢測的準確率。

基于日志的檢測技術可以有效還原整個攻擊鏈過程,利用日志中的上下文信息可以獲取黑客的攻擊行為和攻擊意圖,但是完整的日志信息一般需要在攻擊完成后才能獲取到,存在一定的檢測滯后性,因此需要研究如何利用機器學習技術對交互過程中的日志進行分析甚至預測攻擊者的下一步行為,通過預測下一行為可以提前終止可疑攻擊。

4 Webshell檢測逃逸技術

早在2011年,Sasi等人在安全會議上對當時的Webshell攻擊、檢測和逃逸方法進行了演講,展示使用字符拼接和多參數混淆來繞過當時已經存在的NeoIP等早期檢測工具。可以看到,學術界對于Webshell逃逸技術進行的研究相對較少[22],而黑客技術圈,如t00ls論壇、Reddit安全話題圈等更熱衷于逃逸技術的討論。通過總結分析,常用的檢測逃逸技術有五種。

4.1 字符串加密技術

通過對字符串中的敏感特征進行加密處理,將其可逆的映射到另一個字符串,在訪問時再進行解密執(zhí)行。這種逃逸技術廣泛用于各種免殺Webshell中,以PHP語言為例,內置有base64、rot13等加密方式。為了更好的抵御檢測,有些惡意程序使用自定義加解密函數進行逃逸,其中Weevely就是一款著名的Webshell加密工具[23]。表1展示了加密前后的Webshell??梢钥吹酵ㄟ^使用正則替換、base64編碼之后,惡意文件的敏感特征得到了很好的隱藏。

針對加密技術,學者們提出使用密碼學中的重合因子進行分析,結合信息熵來做判斷。這種方法在一定程度上可以起到檢測效果,但是出于保護知識產權和防止源碼泄露的目的,許多正常的應用也會使用加密混淆技術來處理代碼,這種情況下,基于上述手段的檢測就存在誤報的可能性。

4.2 字符串拆分構造技術

利用ASCII碼特性由兩個不同的字符運算得到新的字符,再結合字符串拼接特性即可完成代碼混淆。如表2所示。通過對“#”、“|”、“~”等特殊符號的異或計算,可以得到“POST”,以此類推,可以構造出相應的Webshell。

基于語義層面的檢測技術能夠有效應對這種逃逸方式,無論代碼中的構造方式如何,編譯到底層的opcode都會表現(xiàn)出同樣的結構形式。

4.3 流量加密技術

流量加密是一種能有效對抗流量檢測的逃逸技術,與字符串加密不同的是,這種技術利用Webshell中的加解密函數解密接收到的攻擊指令,加密發(fā)送的回復給攻擊者的信息。

4.4 文件包含技術

文件包含技術通過將惡意程序差分成多個文本或圖片,再通過包含操作進行整合。由于惡意特征被分散到不同的文件中,會影響檢測模型的評估。針對這種情況,通過分析不同文件之間的調用關系以及流量層面的可疑特征能夠提高模型的檢測效果。

4.5 其他逃逸技術

其他逃逸技術還包括在隱蔽位置隱藏攻擊載荷、加載其他腳本組件以及無文件攻擊等方法,這些方法往往針對某一個檢測特征具有很好的逃逸效果。

5 結束語

本文系統(tǒng)概括了網絡安全領域對Webshell的定義以及攻擊原理,收集總結了近10年來安全研究人員針對Webshell檢測的研究成果,分類比對了不同檢測方式在作用域、檢測特征以及實際效果之間的差異。另外,從相互博弈的角度分析了黑客圈中常用的Webshell檢測逃逸技術,通過分析我們可以看出檢測和逃逸永遠是不斷對抗進步的過程。

經過整理研究,對該領域有三個展望。

(1)傳統(tǒng)的機器學習已經被廣泛用于檢測技術中,但是傳統(tǒng)的機器學習受到檢測特征的制約,這使得我們需要人為挖掘不同的特征來進行選擇。而深度學習擁有特征的自學習功能,那么,是否能夠將深度學習在文本、語音、圖像領域的成功模型遷移到安全檢測中?我們認為深度學習遷移的難度首先在于樣本,安全領域的樣本收集存在著一定的難度;其次,深度學習模型更側重對具有局部關聯(lián)性的數據做關聯(lián)性建模,如何將Webshell數據處理成為合適的數學結構也是值得我們思考的。

(2)在被動檢測的基礎上,我們如何利用已有的社會工程學、蜜罐技術、指紋跟蹤技術來實現(xiàn)主動的Webshell攻擊源追蹤、Webshell攻擊源污染以及Webshell攻擊誘捕,將網絡犯罪行為抵擋在萌芽階段。

(3)將研究領域的檢測算法用于工程界的檢測引擎中時,受到檢測時間、檢測效率、實現(xiàn)成本等多種因素的影響,因此需要學者們和工程師們一同設計更具有實踐價值的檢測模型。

參考文獻

[1] Markus J, Zulfikar R. Crimeware: Understanding New Attacks and Defenses[J]. Upper Saddle River, 2008.

[2] NSFOCUS. 2017上半年DDoS與Web應用攻擊態(tài)勢報告[EB/OL] (2017-08)[2017-11-6].

http://blog.nsfocus.net/wp-content/uploads/2017/08/201701-NSFOCUS-DDoS-Web%E6%8A%A5%E5%91%8A0802.pdf 2017.11.

[3] Starov O, Dahse J, Ahmad S S, et al. No honor among thieves: A large-scale analysis of malicious web shells[C]//Proceedings of the 25th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2016: 1021-1032.

[4] Behrens S, Hagen B. Web shell detection using NeoPI [EB/OL]. (2012-04-13)[2017-11-6].

http: //resources.infosecinstitute.com/web-shell-detection/

[5] Luczko P, Thornton J. PHP shell detector[EB/OL].(2012-06-12)[2013-10-10].

https://github.com/emposha/PHP-Shell-Detector.

[6] 胡建康,徐震,馬多賀,楊婧. 基于決策樹的Webshell檢測方法研究[J].網絡新媒體技術,2012,1(06):15-19.

[7] Tu T D, Guang C, Xiaojun G, et al. Webshell detection techniques in web applications[C]//Computing, Communication and Networking Technologies (ICCCNT), 2014 International Conference on. IEEE, 2014: 1-7.

[8] 孟正,梅瑞,張濤,文偉平. Linux下基于SVM分類器的WebShell檢測方法研究[J]. 信息網絡安全,2014,(05):5-9.

[9] 杜海章,方勇. PHP Webshell實時動態(tài)檢測[J].網絡安全技術與應用,2014,(12):120-121+125

[10] 朱魏魏,胡勇.基于NN-SVM的Webshell檢測方法[J].通信與信息技術, 2015 (2): 55-58.

[11] 馬艷發(fā). 基于WAF入侵檢測和變異WebShell檢測算法的Web安全研究[D].天津理工大學,2016.

[12] Le V G, Nguyen H T, Lu D N, et al. A Solution for Automatically Malicious Web Shell and Web Application Vulnerability Detection[C]//International Conference on Computational Collective Intelligence. Springer International Publishing, 2016: 367-378.

[13] 易楠,方勇,黃誠,劉亮.基于語義分析的Webshell檢測技術研究[J].信息安全研究,2017,3(02):145-150.

[14] 賈文超,戚蘭蘭,施凡,胡榮貴.采用隨機森林改進算法的Webshell檢測方法[J/OL].計算機應用研究,2018,(04):(2017-04-01).

[15] Sun X, Lu X, Dai H. A Matrix Decomposition based Webshell Detection Method[C]//Proceedings of the 2017 International Conference on Cryptography, Security and Privacy. ACM, 2017: 66-70.

[16] Yang C H, Shen C H. Implement web attack detection engine with snort by using modsecurity core rules[C]//Fourth the E-Learning and Information Technology Symposium (EITS 09). 2009.

[17] 葉飛,龔儉,楊望.基于支持向量機的Webshell黑盒檢測[J].南京航空航天大學學報,2015,47(06):924-930.

[18] Starov O, Dahse J, Ahmad S S, et al. No honor among thieves: A large-scale analysis of malicious web shells[C]//Proceedings of the 25th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2016: 1021-1032.

[19] Xie M, Hu J. Evaluating host-based anomaly detection systems: A preliminary analysis of adfa-ld[C]//Image and Signal Processing (CISP), 2013 6th International Congress on. IEEE, 2013, 3: 1711-1716.

[20] 潘杰.基于機器學習的WebShell檢測關鍵技術研究[D].中國民航大學,2015

[21] 石劉洋,方勇.基于Web日志的Webshell檢測方法研究[J].信息安全研究,2016,2(01):66-73.

[22] 王亞麗. Webshell 查殺逃逸技術研究[J].網絡安全技術與應用, 2017, 9: 044.

[23] Kali Tools. Weevely. [EB/OL]. https://tools.kali.org/maintaining-access/weevely.

猜你喜歡
檢測技術
工廠空氣污染與污染檢測技術
計算機軟件安全漏洞檢測技術
前海合作區(qū)建設工程檢測技術應用研究
有關我國特種設備檢測技術現(xiàn)狀的分析與展望
食品安全檢測技術研究現(xiàn)狀
公路工程試驗檢測存在的問題及措施
煤礦機電產品檢測技術
淺談現(xiàn)代汽車檢測技術與安全管理
食品安全檢測技術存在的主要問題及對策探究
大丰市| 沾益县| 永寿县| 亚东县| 韶关市| 苏尼特右旗| 大荔县| 栖霞市| 镇原县| 建昌县| 漠河县| 辽阳县| 将乐县| 镇安县| 秦安县| 永宁县| 松桃| 屏东市| 安多县| 平南县| 仁寿县| 汝城县| 唐河县| 宿松县| 文安县| 华坪县| 顺昌县| 塘沽区| 淮阳县| 韩城市| 霍林郭勒市| 土默特右旗| 新晃| 滨海县| 贵阳市| 赤城县| 苍南县| 霞浦县| 新乐市| 互助| 什邡市|