傅建明,劉暢,解夢飛,羅陳可
基于誘捕的軟件異常檢測綜述
傅建明1,2,劉暢1,2,解夢飛1,2,羅陳可1,2
(1. 空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072;2. 武漢大學國家網絡安全學院,湖北 武漢 430072)
高級持續威脅(APT,advanced persistent threats)會使用漏洞實現攻擊代碼的自動加載和攻擊行為的隱藏,并通過復用代碼攻擊繞過堆棧的不可執行限制,這是網絡安全的重要威脅。傳統的控制流完整性和地址隨機化技術雖然有效抑制了APT的步伐,但軟件的復雜性和攻擊演化使軟件仍存在被攻擊的時間窗口。為此,以資源為誘餌的誘捕防御是確保網絡安全的必要補充。誘捕機制包含誘餌設計和攻擊檢測兩部分,通過感知與誘餌的交互行為,推斷可能的未授權訪問或者惡意攻擊。針對文件、數據、代碼3種誘餌類型,設計誘餌的自動構造方案并進行部署,從真實性、可檢測性、誘惑性等方面對誘餌的有效程度進行度量。基于誘捕防御的勒索軟件檢測注重誘餌文件的部署位置,在漏洞檢測領域,通過注入誘餌代碼來檢測代碼復用攻擊。介紹了在APT攻擊各個階段實施誘捕防御的相關研究工作,從誘餌類型、誘餌生成、誘餌部署、誘餌度量方面刻畫了誘捕防御的機理;同時,剖析了誘捕防御在勒索軟件檢測、漏洞檢測、Web安全方面的應用。針對現有的勒索軟件檢測研究在誘餌文件設計與部署方面的不足,提出了用于檢測勒索軟件的誘餌動態更新方法。討論了誘捕防御面臨的挑戰,希望誘捕防御可以為發現未知攻擊、溯源攻擊意圖提供理論和技術支持。
高級持續威脅;代碼復用攻擊;控制流完整性;地址隨機化;誘捕防御
互聯網和物聯網的發展,以及智能設備的廣泛應用,提高了人們的生活質量和工作效率,使人類的工作和生活逐漸數字化、自動化和智能化。隨著時間的推移,網絡世界的信息資產和財富不斷累積。這些資產和財富吸引了大量的攻擊者或者攻擊集團,網絡安全事件不斷涌現。高級持續威脅(APT,advanced persistent threat)[1]指的是擁有豐富專業知識和大量資源的攻擊者,能夠使用多種攻擊載體來實現攻擊目標。APT攻擊一般會使用漏洞(如Windows漏洞CVE-2018-8611、Flash漏洞CVE-2018-15982)實現攻擊代碼的自動加載和攻擊行為的隱藏。而且,網絡攻擊從過去的隱蔽潛行逐漸走向公開對抗[2]。例如,Wannacry勒索病毒使用永恒之藍漏洞(CVE-2017-0143)實現了病毒自動化的網絡傳播。防病毒工具[3]、入侵檢測系統、防火墻都是軟件外部的安全機制,它們利用簽名或者啟發式知識檢測已知威脅,如木馬、計算機病毒、不合規的流量等。這些預定義的策略和知識獨立于軟件的內部邏輯,難以檢測零日漏洞攻擊和新的惡意軟件。
蜜罐(HoneyPot)和蜜網(HoneyNet)是網絡安全的一種主動防御機制[4-7]。該防御機制通過部署虛假的目標(Honey-token)和模糊化真實目標,干擾攻擊者對目標和防御者的認知,引誘攻擊者使用其部署的誘餌服務和誘餌網絡,動態捕獲其攻擊行為和攻擊工具,解析其攻擊方法,推測攻擊者的攻擊意圖和攻擊動機。網絡誘捕[4]利用主機、服務和信息作為誘餌,檢測網絡入侵、惡意代碼、僵尸網絡和蠕蟲傳播、垃圾郵件傳播,并提取網絡攻擊特征,為入侵檢測系統和防火墻提供威脅情報。目前,有許多企業研制出了基于誘騙的主動防御產品,如Rapid7(美國)、LogRhythm(美國)、Attivo Networks(以色列)、Cymmetria(以色列)、Smokescreen Technologies(印度)、北京元支點(中國)、長亭科技(中國)、默安科技(中國)、錦行網絡科技(中國)等。他們利用軟件定義網絡或虛擬機實現終端、網絡、應用、工控等蜜罐產品,這些產品可以從系統或網絡的外部異常行為上感知攻擊過程,但缺少與主機軟件和主機數據關聯的誘捕機制。
蜜罐和蜜網作為一個獨立于業務系統的誘捕環境,其目的是誘使攻擊者攻擊暴露的主機和服務。把蜜罐思想引入軟件安全,在主機環境部署誘餌文件。一旦軟件訪問這些誘餌文件,就觸發軟件異常報警。此時,誘捕防御是一種基本的安全能力,與已有的防病毒、防火墻、入侵檢測系統互為補充。誘捕防御可以模糊化防守方的代碼資源和數據資源,增強防守方的情報能力和防御籌碼,感知未知的安全威脅。
APT攻擊的基本流程包括目標探測、攻擊代碼傳輸、攻擊代碼觸發、攻擊代碼執行和敏感資源獲取[8],如圖1所示。這里省略了逃逸、提權、邊界移動等過程,逃逸是為了對抗主機安全檢測和網絡安全檢測,提權是為了獲得更多的敏感資源,邊界移動的目的是探測和獲取外網不可見的資源,深度挖掘目標的高價值資源。
目標探測可分為遠程探測(remote probing)和本地探測(local probing)兩種類型。遠程探測可以通過手動或自動化工具進行,如直接猜測目標的登錄憑證(user name &password)、掃描系統的版本或脆弱性[8],掃描或探測數據包中的特有簽名、探測頻率或行為模式都可以作為檢測目標探測攻擊的依據[9]。一旦攻擊者熟悉這些依據,就可以繞過這類檢測。針對遠程探測,可以部署一些虛假的登錄憑證、人為植入的漏洞。當這些憑證或漏洞被利用時,則可以提前感知攻擊行為[10-11]。
攻擊者借助遠程探測的結果,如弱口令或系統漏洞,可以初步遠程訪問目標系統,但攻擊者在目標系統中執行的代碼是目標系統定制的,這種定制受限于目標軟件的內部邏輯,無法滿足攻擊者獲取敏感資源的需求。為此,攻擊者需要遠程注入自己精心構造的代碼到目標系統中,然后執行注入代碼,以達到攻擊的目的。
遠程注入的代碼分為ROP(returned-oriented programming)、Shellcode、可執行代碼模塊(如PE、ELF)3類。ROP復用軟件中的已有代碼,構建攻擊者的攻擊載荷[12-13],以繞過棧和堆中代碼不可執行的限制(DEP,data execution prevention)。ROP可以讓Shellcode獲得可執行權限。Shellcode由可執行的代碼片段構成,其作用是加載可執行代碼模塊[14]。可執行代碼模塊是攻擊者完成攻擊任務的核心,用來探測軟件環境、加載任務模塊,并最終從磁盤和內存中獲取目標的文檔資源、網絡資源或者各種登錄憑證等。大多數ROP防御聚焦于控制流完整性(CFI,control flow integrity)保護[15]和地址空間布局隨機化防御(ASLR,address space layout randomization)[16-17],前者阻止軟件間接代碼指針的非預期跳轉,后者破壞ROP代碼地址不變的假設。針對ROP的構造,可以在軟件中部署一些誘餌代碼[18]。一旦這些誘餌代碼被利用,則可以檢測未知的攻擊。
Figure 1 The basic flow of APT attacks
計算機病毒、勒索軟件、木馬等都屬于模塊級的攻擊代碼[19],這些攻擊代碼探測磁盤中的敏感文件、內存中的敏感數據,這種探測屬于本地探測。針對本地探測,可以部署一些誘餌文件,一旦這些誘餌文件被訪問,就可以檢測未知的攻擊[20]。
在控制了內網機器后,攻擊者往往會進行橫向移動,如讀取其他系統用戶的數據、掃描當前網段內的其他主機,以便控制包含高價值目標的主機。另外,攻擊者會嘗試攻擊域服務器,從而獲取域管理員權限。對于域控攻擊,同樣可以通過布置誘餌進行檢測。例如,對于Kerberoast攻擊,攻擊者會查詢高權限域用戶下的服務主體名稱(SPN),導出并嘗試破解服務票據。因此,防守方可以創建一個誘餌Kerberoast服務賬戶,并偽造SPN,檢測對于該誘餌服務票據的請求行為。
為了隱藏攻擊行為,攻擊者會使用加密通信、匿名代理等方式來傳輸數據,從而加大溯源的難度。另外,在完成攻擊任務后,攻擊者會清理目標主機和網絡中的相關記錄,如刪除系統日志和文件、修改注冊表等。
APT攻擊流程的每個階段都可以部署誘餌資源,實施誘捕防御。多級防御或縱深防御同樣可以應用于誘捕防御。文獻[21]提出了由網絡服務仿真、安全漏洞偽造、操作行為控制和文件系統鏡像組成的深度欺騙策略,以突破單層欺騙防御的局限性。文獻[22]針對APT偵察、破襲主機、破襲服務器等多階段攻擊過程,設計用戶層、本地層、全局層的誘餌資源(誘餌用戶、誘餌文件和誘餌服務器),構建了一種縱深的誘捕防御體系。
文獻[7]認為網絡欺騙利用騙局干擾或誤導攻擊者的認知,以抑制攻擊活動。同時,描述了網絡欺騙的生命周期、工作流程,剖析了設備層、網絡層、數據層、應用層上的欺騙技術。該文獻從認知層面介紹誘騙防御,討論了網絡層面和系統層面誘騙防御存在的挑戰。
文獻[23]從社會工程學角度定義信息欺騙。信息欺騙利用用戶興趣偏好、利益互惠、擺脫恐懼等方面的弱點,誤導用戶操作,獲取敏感信息、下載和執行惡意代碼等。同時,該文獻詳細分析了社交欺騙、網站欺騙、應用欺騙、郵件欺騙等欺騙場景。
本文聚焦軟件或代碼訪問的資源,從誘餌類型、誘餌生成、誘餌部署、誘餌度量等方面刻畫了誘捕防御的機理;同時,剖析了誘捕防御在勒索軟件檢測和漏洞檢測等方面的應用。與文獻[7]相比,本文屬于應用層和數據層交叉的欺騙,從軟件安全角度介紹誘騙防御機制。文獻[23]以攻擊者的信息欺騙為主,分析應對的防御措施,與之對比,本文采用信息欺騙的思想以確保軟件安全,其視角和內容都不同。
文獻[7]定義了網絡欺騙的5個要素{Defender,Asset,Trick,Attacker,Profit},其中Trick表示騙局,是5個要素的核心。騙局有兩種策略:以真似假和以假擬真。
以真似假:改變已有資源(Asset)的特征,或者偽裝為已知的誘餌系統。該掩飾策略讓攻擊者難以發現目標,最終因失去攻擊目標自動放棄攻擊。
以假擬真:構建虛假資源,吸引攻擊者訪問這些虛假資源,同時檢測和觀察攻擊活動,挖掘攻擊意圖。該模擬策略讓攻擊者陷于騙局,消耗攻擊者的資源,延緩或消化攻擊。
本文探索以假擬真策略,其誘捕機制包括騙局中誘餌設計和攻擊檢測兩部分。
定義1 誘餌(Bait)[24-25]:一種防御資源,={,,}。其中,為誘餌資源集合,為資源的類型,為資源的位置。
誘餌與域名一樣,是一種IOC(indicator of compromise)。傳統IOC,如域名、郵件地址等,都是攻擊代碼自身攜帶的、固有的簽名。而誘餌是防御者設計和部署的,是一種非對稱的防御資源,攻擊者難以繞過。
定義2 軌跡:在給定時間窗,進程訪問資源的軌跡={,,,}。其中,是用戶進程集;是用戶使用或訪問的資源集合;是資源訪問類型,包括讀、寫、執行等;是資源訪問的上下文,包括時間、觸發條件等。
定義3 異常:在給定的時間窗,進程的資源訪問軌跡與誘餌資源關聯,則提示進程異常。換言之,.∩.不為空,表示進程異常。
因此,只要資源訪問的軌跡符合定義3,就可以檢測到可疑攻擊。
誘餌是誘捕防御的戰略資源。在日常數字世界中,用戶或軟件使用的任何信息都可以作為誘餌,如網絡服務的特定端口、數據庫/網站/遠程主機的登錄憑證、E-mail地址、電話號碼、文檔等。誘捕防御的基本思路是感知與誘餌的交互行為,推斷可能的未授權訪問或者惡意攻擊。
HoneyFile[26]引入了3類誘餌,即文件誘餌、用戶名和口令誘餌、用戶郵件名誘餌,以此提高入侵檢測的準確性。口令誘餌和郵件名誘餌用以彌補文件誘餌的單一性。Decoy-document[27]采用了更多的Honey token(誘餌的一種表示),如contract.pdf含有Beacon(也稱Web Bug)。Beacon是一種自動遠程訪問防御者服務器的方式,如文檔中的遠程鏈接。攻擊者一旦打開該文檔,Beacon會自動連接遠程服務器,借此可以用來檢測內部攻擊和異常。此外,Bogus- program[28]作為Honey token可以有效檢測程序盜版。Honey-token也廣泛應用于其他安全防御,如口令猜測攻擊檢測[10]、漏洞觸發的攻擊流量轉發檢測[11]、詐騙電話和廣告電話檢測[29-30]、勒索軟件檢測[31-32]等。
Honey-token同樣可以被引入軟件安全中防御代碼復用攻擊[18]。通過向軟件中注入一些指令序列作為Trap(陷阱),這些指令序列被定義為HoneyGadget[33-34],其功能是警示用戶,終止軟件執行等。一旦攻擊者使用這些注入的指令,就會觸發報警。Readactor++在函數表中注入指向HoneyGadget的虛假指針[33],增加HoneyGadget觸發的機會。
誘餌類型、使用方式和用途如表1所示。誘餌類型分為File、Data、Code這3種類型。File表示誘餌文件(文檔),是指部署在文件系統中的特定格式文件,如桌面上的通信錄文件或者文檔文件夾中的技術報告、軟件文件等。一旦發現有對這些文件的訪問操作,安全工具就提示異常。而Data屬于一種元數據,表示有語義的一串字節序列,指可以從公開網絡環境獲取、從遠程網絡訪問的誘餌,包括但不限于網絡端口、登錄憑證、電話號碼等,數據誘餌可以嵌入文件、程序、數據庫中。防御方有意或無意在社交平臺、論壇留言板等地方泄露這些誘餌,誘使攻擊者使用,從而觀察攻擊行為和攻擊意圖。Code表示可以直接執行的機器代碼。攻擊者一旦使用這些代碼就會觸發報警。誘餌使用方式描述了攻擊者使用誘餌的位置,分為本地(Local)和遠程(Remote)。前者表示攻擊代碼已經在目標主機運行,準備獲取目標中的敏感信息;后者表示攻擊者遠程使用這些誘餌,試圖遠程訪問目標系統。誘餌用途描述誘餌在軟件安全中的作用,如檢測網絡異常訪問、文件非授權訪問、軟件盜版、勒索軟件、漏洞攻擊等。以honeytable[35]為例,它部署Data格式的誘餌,用于檢測攻擊者從遠程發起的針對數據庫的非授權訪問。
誘餌的生成直接關系到誘餌的有效性。目前大多數文獻對誘餌生成沒有特別說明,僅僅說明誘餌的屬性更新,誘餌內容需要包含一些敏感數據[25],如登錄憑證、社會保險號、郵件地址等。如果這些敏感數據在流量日志中被發現,則判定為從網絡層檢測到異常或攻擊。文獻[26]單獨區分文件誘餌、登錄憑證誘餌、郵箱誘餌。文獻[25-26]均未介紹誘餌構造的方法。
文獻[27-28]引入了一種新的誘餌——Beacon,可以遠程檢測主機系統受到了入侵,其基本思路是利用辦公軟件的宏或PDF的Javascript將一個URL植入文檔或軟件中,該URL隨文檔或軟件的打開自動遠程訪問防御者服務。
個人身份信息(PII,personally identifiable information)包含個人隱私,如電話號碼、住址等,一直是攻擊者希望獲取的信息。文獻[36]分析了姓名、性別、職業、收入等屬性的分布,以及收入與職業、地域(經緯度)的關聯,解析了身份證號碼和電話號碼的構成,設計和實現了一種自動的個人身份信息生成方法。利用搜集的信息,該方法可以直接輸出常見的個人身份信息,這些信息滿足各個屬性的分布關系以及屬性之間的關聯約束。因數據缺失和隱私保護等,該文獻沒有討論信用卡、郵件地址、醫療記錄、購買偏好、娛樂偏好的生成。

表1 誘餌類型、使用方式和用途
數據庫在各個組織和單位廣泛應用,如存放企業的客戶數據、大學的學生成績等。從網絡誘餌元素,如網絡端口、IP地址、域名等,很容易延伸到數據庫的數據記錄。HoneyGen[37]給出了一種偽造數據庫元組的構造方法,利用偽造的數據記錄感知異常和入侵。該方法希望產生高質量的偽造數據記錄,讓攻擊者無法識別真偽。該方法分為約束抽取、元組生成和元組選擇3個階段。約束抽取收集數據表的字段屬性,區分敏感字段和一般字段,構建外鍵、主鍵、字段之間的關聯約束、連續字段的邊界、離散字段的值集。元組生成利用混淆和泛化技術生成候選元組,同時,這些元組滿足抽取的約束。元組選擇利用對數似然估計來計算候選元組與真實元組的相似度,選擇相似度較高的生成元組作為誘餌數據。圖2描述了Honeytoken DB的生成過程,其約束生成和混淆泛化直接影響誘餌的質量。
文獻[28]研究利用程序變換(code obfuscation)從給定軟件(proprietary source code)生成bogus software,其人工構造的Beacon隱藏在文檔說明(pdf)、API使用說明(html)以及代碼庫中,其程序變換包括符號變換(類、方法、變量),代碼等價變換,垃圾代碼注入,結構變化(增加新類、方法、變量、控制流混淆)等。當攻擊者獲取了這些bogus software,執行編譯后的程序,或者打開含有Beacon的文檔時,Beacon自動向服務器發送告警,表明該Beacon對應的程序(軟件)被盜。如果被盜的文檔或軟件在斷網或沙箱環境中打開,則此Beacon失效。如果Beacon有較強的觸發約束,則攻擊者難以檢測到Beacon,從而提升誘餌的價值。
文獻[10]提出了Honeywords 方案來保護口令文件,通過在口令文件中增加額外?1個假的身份憑據來增強安全性。該方案在已有的口令尾部追加給定長度隨機值作為誘餌口令,也可以分析已有口令的模式(如W4D1W5,表示口令前4位為字母、中間1位為數字、后5位為字母),隨機生成符合該模式的誘餌口令。如果口令文件被偷并被破解,攻擊者將會面對個不同的口令,其中,只有一個是正確的。如果攻擊者使用任意假口令,將會觸發一個告警,系統管理員就會知道口令數據庫已經被盜并被破解。

圖2 數據表誘餌的生成框架
Figure 2 The generation framework of the data table baits
誘捕防御本身是一種概率防御機制。如果部署的誘餌沒有任何訪問行為,則該防御失效。該機制的有效性依賴于誘餌的構造和誘餌的部署。誘餌應該盡可能部署在攻擊者必經的搜索路徑上,同時誘餌對攻擊者而言是難以辨識的。HoneyFile[26]討論了誘餌文件MAC(modified time, access time, created time)時間屬性和文件訪問日志的更新,防止攻擊者從文件的時間屬性鑒別出誘餌文件。誘餌的數量和位置直接影響異常檢測的準確性和及時性[38]。因此,攻擊者和防御者在誘捕防御上不斷對抗、演化,誘餌度量定性地反映了誘餌的質量。
當誘餌生成和部署后,攻擊者、用戶都可能會訪問它,而安全工具會探測它。對攻擊者而言,誘餌是真實的、動態的、有誘惑且容易發現的。對用戶而言,誘餌是可辨識的、無干擾的。對檢測工具而言,誘餌的訪問是可檢測的、可區分的。文獻[26]給出了誘餌度量的6個維度。
1) 真實性(believability):誘餌從形式和內容上無法與真實資源區分。與真實文件相比,文件誘餌的文件名、MAC、訪問日志是無差別的,且文件誘餌的內容也是無差別的。在實際檢測中,只要誘餌被訪問,就會發出告警。有時,誘餌內容的真實性在現實系統中會忽略。
2) 動態性(variability):誘餌需要隨著時間和用戶活動而變化。誘餌的屬性,如訪問時間會更新;誘餌的數量隨用戶活動而更新。同時,不同系統上部署的誘餌不同。
3) 誘惑性(enticement):誘餌的誘惑性依賴于攻擊者的興趣或意圖,即誘餌必須蘊含攻擊者的目標。攻擊者關注高價值的文檔,如包含口令、社會保險號、銀行賬戶信息、在線支付信息等。Windows操作系統的資源管理器提供文檔的關鍵詞搜索,攻擊者利用該搜索功能可以定位到其認為的高價值文檔。此外,攻擊者可以通過瀏覽目錄發現誘惑性高的文件名,如password.txt。因此,從誘餌的屬性和內容兩個方面體現誘惑性。
4) 醒目性(conspicuousness):誘餌命中攻擊者搜索的次數或概率。當攻擊者在受害者主機中不斷進行文檔搜索,防御者希望其每次搜索結果中都含有誘餌。換言之,誘餌容易被攻擊者發現并訪問。醒目性依賴于誘餌部署的位置(目錄)、誘餌的誘惑性、攻擊者的搜索策略(文件的屬性搜索、內容搜索)。
5) 無干擾(non-interference):誘餌不會影響正常用戶的活動。用戶可有效識別出系統中的誘餌,從而避免訪問誘餌。同時,即使用戶無意訪問誘餌,用戶也能及時發現,并終止對誘餌的訪問。換言之,盡量減少誘餌在系統中的副作用。
6) 可檢測性(detectability):檢測性是指安全工具及時檢測到誘餌訪問的能力。一旦發現誘餌訪問,能立刻進行捕獲。誘餌的真實性、動態性、誘惑性、醒目性、無干擾是保證攻擊檢測的基礎。這種檢測需要排除正常用戶的誤用,以及對抗攻擊者的繞過技術。
文獻[7]定義了網絡欺騙的4個屬性:機密性(confidentiality)、可鑒別性(authentication)、可用性(availability)、可控性(controllability)。其中confidentiality對應believability,authentication對應detectability,availability對應non-inter- ference。特殊情況下,攻擊者可能識別出誘餌和偽造的環境,并利用偽造環境提升攻擊能力。為此,防御者必須確保誘餌和偽造環境的可控性。這里,可控性超出了軟件安全確保的范圍,本文不單獨討論。
攻擊者可能在獲取誘餌資源后進行分析和識別,從而繞過誘捕防御,本文將鑒別誘餌真實性的能力分為低級(low)、中級(medium)、高級(high)3類。
低級:攻擊者沒有鑒別誘餌,默認這些資源都是真實的。遇到誘餌資源時,會直接訪問這些資源。
中級:攻擊者獲得這些文檔以及文檔中的敏感數據后,進行簡單的驗證,如時間屬性的驗證[39]、折舊驗證[40],然后利用網絡搜索引擎等途徑驗證敏感數據(憑證)的真實性。
高級:攻擊者采用人工智能和大數據分析,鑒別資源的真實性。
在誘捕防御設計中,一般考慮攻擊者具備中級鑒別能力,以此提高系統的有效性。
在軟件安全領域,誘捕防御首先用于檢測單位內部的威脅[25]。內部人員知曉單位網絡結構和安全策略,有便捷訪問內部資源的優勢。當安全策略存在缺點時,內部攻擊者會出現非授權或不當的資源訪問。防御者把高價值的文件、數據庫記錄、醫療記錄、包含登錄憑證和社會保險號等作為誘餌,部署在文件系統和數據庫系統中。一旦檢測到對誘餌的訪問行為,就報警。此外,HoneyFile[26]作為誘餌部署在文件服務器,輔助入侵檢測系統(IDS),降低入侵檢測的誤報率和漏報率。Decoy document[38]的誤報源于合法用戶利用資源管理器顯式瀏覽或者應用軟件隱式瀏覽誘餌,白名單機制可以降低誤報率。本節重點介紹誘捕防御在勒索軟件檢測、漏洞攻擊檢測等方面的應用。
根據搜索策略,勒索軟件會遍歷文件系統,搜索和加密符合搜索策略的文件,直到遍歷結束。有研究從勒索軟件的文件訪問行為和文件內容的熵兩個角度檢測勒索軟件[31,41-43]。它們的檢測思路是:前者利用文件訪問行為頻繁、訪問會跨越不同的路徑,以及存在明顯的文件內容加密操作和文件寫操作等特點;后者則依據加密文件的熵值普遍偏高。這兩種判據在壓縮工具和正常加密工具環境下存在誤報的情況。而且這些實時檢測工具依賴于采集的數據量,采集足夠的數據量才能觸發報警。當報警發生時,部分文件已經加密,存在檢測響應時延。
文獻[39]分析了1 000多個勒索軟件,解析了它們的文件加密、文件刪除和鎖屏勒索行為。同時,討論了利用文件訪問活動檢測勒索軟件的措施,但攻擊者可以模仿正常用戶的文件訪問繞過行為檢測。例如,勒索軟件可以選擇訪問和加密部分文件。為此,提到可以設置誘餌資源以捕獲勒索軟件。UNVEIL[44]設計了誘餌資源環境,監控誘餌的刪除操作和寫操作,實現了檢測勒索軟件的沙箱。其誘餌資源環境包括文檔、密鑰和證書、壓縮文件、圖片、音頻、視頻,并介紹了文件內容、文件名、文件時間、文件目錄、文件個數的構建思路和原則。每一個待分析的樣本對應一種誘餌資源環境,以此增強環境的多樣性、減少誘餌環境被識別的 機會。
文獻[45]在用戶主目錄創建一個命名管道作為核心誘餌文件。為了提高誘餌在文件系統中的覆蓋率,在每個目錄創建該命名管道的符號鏈接。發現有對該管道的讀行為時,系統將判定檢測到勒索軟件并報警。如果勒索軟件識別出該類管道文件,則該檢測方法容易被繞過。
RWGuard[31]在文件的實時監控中部署了txt、doc、pdf、ppt、xls這5類誘餌文件,其文件內容來源于文件夾中的同類型文件,以增強誘餌的真實性。誘餌文件與正常文件的相似性可能導致用戶難以區分誘餌文件,影響用戶對誘餌的識別。
文獻[46]根據Windows系統的文件遍歷機制,設計以“sw”(最先遍歷的符號)和“ew”(最后遍歷的符號)開始的文件名和目錄名作為誘餌。不管勒索軟件采用何種文件遍歷方式,都可以最大概率捕獲到該樣本。文獻[47] 把ASCII表中字節值小的打印字符‘!’‘″’‘#’作為誘餌文件名的第一個字符,并在用戶的桌面和文檔文件夾、磁盤根目錄以及網絡驅動器中部署這些誘餌。然而,其添加文件名前綴的方式單一,容易被攻擊者猜測到。
文獻[32]提出了一種棧式文件系統DcyFS,對可信進程提供真實的文件資源,對半可信進程提供部分真實的文件資源和誘餌資源,利用這些資源檢測數據盜用和數據勒索。
文獻[48]為了首要保護用戶關鍵文件數據,提出在用戶最近訪問的10個文件夾和文件數量最多的10文件夾中部署誘餌文件。但是文件數量最多的文件夾不一定是重要的文件夾,如日志文件夾。同時,該部署方式難以預測用戶對文件的更新活動。
文獻[38]通過大量用戶調查和實驗分析表明,當單個文件夾內誘餌文件數量與所有文件總數之比小于20%時,誘餌文件對正常用戶的工作干擾可以忽略不計。
針對誘餌的生成、部署和檢測技術,文獻[20]提出識別誘餌文件的3種特征。其一是誘餌文件的靜態特征。誘餌文件可能包含某些共有且易觀測的特征,如文件的隱藏屬性、文件內容為空、文件類型為管道、文件名或文件內容中的特定字符或字符串。其二是誘餌文件的文件修改時間特征。誘餌文件一般不會被用戶或正常軟件修改,誘餌文件的最后修改時間通常遠早于系統中正常文件的最后修改時間,可以將最后修改時間遠小于系統文件最后訪問時間的文件標記為誘餌文件。其三是誘餌文件的位置特征。誘餌文件通常部署在文件夾的首部或尾部(按照文件名的首字節的ASCII值排序),以確保誘餌優先被勒索軟件訪問。因此,勒索軟件可以采取隨機選擇文件夾的文件加密,以繞過誘餌文件的定向部署。
根據上文提到的誘餌文件衡量指標,現有針對勒索軟件的各種誘餌文件的對比如表2所示。
基于誘餌文件的勒索軟件檢測研究目前仍未提出系統性的誘餌文件設計與部署方法,且往往由于誘餌文件部署不理想,檢測誤報率上升。本文從誘捕防御出發,重點關注誘餌文件的動態更新,提出了Windows平臺上一種基于誘餌文件和進程文件行為的勒索軟件早期檢測方法。基于誘捕的勒索軟件檢測框架如圖3所示,該框架主要由進程事件監控模塊、誘餌部署與檢測模塊構成[49]。進程事件監控模塊主要通過Windows事件追蹤(ETW)和內核文件事件監控來記錄系統中所有進程產生的各類事件,對收集到的事件進行類型過濾,并將處理后的事件交由誘餌部署與檢測模塊進行進一步分析。誘餌部署與檢測模塊主要負責設計并在系統中的關鍵位置動態部署誘餌文件,同時檢測對誘餌文件的可疑訪問行為,任何對誘餌文件進行寫入或刪除的進程都被認定為勒索軟件。
為滿足誘餌的設計要求,本節從誘餌文件的文件命名、文件數量配置、文件類型配置、文件內容填充以及文件元數據配置等方面來闡述具體設計方式。
文件命名:為保證誘餌文件名與正常文件名盡可能相似。對于真實文件名樣本庫,過濾出勒索軟件所加密的文件類型并分類,并進行分詞處理,得到各類型誘餌文件的命名詞庫。構造誘餌文件名時,查詢需要部署的誘餌文件類型所對應的分詞詞庫,從中隨機選取若干單詞,然后從特殊字符的分詞詞庫中隨機選取若干字符與之前選取的單詞進行組合,從而構成誘餌文件名。
文件數量配置:假設文件夾中誘餌數量與文件夾內正常文件總數的比值為,正常文件總數為,實際部署誘餌數量為。理論上來說,值越大,文件夾中部署誘餌的數量越多,勒索軟件逃避檢測的可能性就越小,但同時對用戶的干擾越大。本文將值設定為20%,且當理論上需要部署的誘餌數量少于兩個時,值為2,即至少部署首尾兩個誘餌文件,如下所示。

表2 現有誘餌文件對比
注:“√”表示工具滿足該項指標,“×”表示不滿足該項指標。

圖3 基于誘捕的勒索軟件檢測框架
Figure 3 Ransomware detection framework based on deception

文件類型配置:勒索軟件會對文件類型進行過濾,其主要加密的文件類型主要有項目工程文件、文檔類文件以及音視頻類文件,本文在設計時僅隨機選取一類文件作為誘餌的文件類型,在保證高吸引度的同時保證誘餌的多變性。
文件內容填充:對于誘餌文件的文件內容設計,本文首先根據文件類型填充與之相匹配的文件頭部,然后根據文件類型填充隨機數據,如在文檔類文件中填充隨機英文字符串,在多媒體類文件中則填充隨機的音視頻字節流數據。
文件元數據配置:文件元數據主要指文件訪問權限、創建日期、訪問日期、修改日期和創建者等信息。本文首先將創建者配置為系統當前用戶,模擬正常文件的從屬關系;由于勒索軟件可能通過檢查文件時間來跳過用戶長期未訪問的文件,本文按照“創建日期<修改日期≤訪問日期<當前日期”的邏輯條件配置文件時間,并將文件時間設定為當前時間。在檢測過程中,系統每隔一段時間自動將已部署誘餌的文件時間更新至最新時間,從而將所有誘餌文件偽裝為最近才被用戶訪問過的狀態。
在檢測前,首先由誘餌部署與檢測模塊進行誘餌部署。誘餌部署包含兩部分操作:其一是在勒索軟件最先訪問的文件夾中部署靜態誘餌;其二是在當前用戶最近訪問過的文件夾中部署動態誘餌。部署完成后則將所有已部署誘餌添加至誘餌監控列表用于勒索軟件檢測。在檢測過程中,由進程事件監控模塊實時監控來自進程的各類事件。若捕獲到的事件與用戶最近訪問文件夾的變化有關,則通知誘餌部署與檢測模塊,使其根據變化情況實時地增加或刪除動態誘餌,并更新誘餌監控列表。若事件是寫入或刪除已部署的誘餌文件,則認為該事件來自勒索軟件,由誘餌部署與檢測模塊收集相關進程的信息并將其標記為勒索軟件。
為了對基于誘餌文件的勒索軟件檢測進行評估,首先通過勒索軟件文件遍歷實驗,確定勒索軟件最先訪問的文件夾,然后根據上述內容設計并部署誘餌文件,針對不同勒索軟件家族的樣本,計算對勒索軟件的檢測率和檢測出時對應的平均已加密文件數,檢測結果如表3所示。

表3 勒索軟件的檢測結果
由實驗結果可知,對測試集中6類勒索軟件家族的檢測準確率均為100%,且大部分勒索軟件家族對應的平均已加密文件數在5個以下。進一步分析發現,WannaCry和CoinVault等平均已加密文件數為0的勒索軟件家族的文件遍歷類型為直接遍歷,即最先訪問的是按字符順序排序最小的磁盤的根目錄,實驗時該目錄中已部署誘餌文件,因此這類勒索軟件會在未加密任何正常文件的情況下就被檢測出來;另外,平均已加密文件數不為0的勒索軟件家族的文件遍歷類型為特殊文件夾遍歷和優先遍歷類型,同家族間變種樣本的遍歷列表存在一定差異,每個變種可能根據自身需求配置一部分特殊文件夾,而這些文件夾不在誘餌靜態部署目錄中,因此導致部分文件被加密。
除數據誘餌和文件誘餌外,還有代碼誘餌。ROP攻擊會重用軟件的代碼。通過在軟件中部署代碼誘餌來實施誘捕防御,以檢測ROP攻擊。同時,當發現漏洞攻擊后,可以把攻擊流量或攻擊載荷重定向到蜜罐系統中,在蜜罐系統中進一步觀察攻擊軌跡、識別攻擊意圖。
3.2.1 A-ROP防御
攻擊者一般利用內存錯誤[50]在目標軟件中注入ROP攻擊代碼。ROP編程從起初為復用庫函數的返回到庫函數(return-to-libc)的攻擊[51],逐漸發展為返回導向編程[52-53]、跳轉導向編程[54]、虛表導向編程[55]等。不管ROP的編程如何演化,其攻擊成功都是依賴于EIP的跳轉和ROP預設鏈接地址的準確性[13]。控制流完整性保護(CFI)技術[56]確保EIP會跳轉到合法的代碼區域,但細粒度的CFI的開銷比較大,且難以應用到復雜結構和動態代碼的代碼指針保護[57]。
ROP需要復用已知的代碼和數據。隨機化防御就是擾動目標軟件的內存布局,使得攻擊者獲得的代碼地址無效[58],但內存泄露打破了內存布局隨機化的假設[59-60],提高了ROP攻擊的成功率。直觀的對抗方法是縮短內存泄露信息的時效,即動態隨機化技術[61-64]。但動態指針的跟蹤和修訂會帶來較多的時間開銷[61]。此外,動態隨機化的空隙為攻擊者提供了可乘之機。
文獻[18]根據ROP復用目標軟件中的代碼這一特性,討論了在目標軟件中注入誘餌代碼(即HoneyGadget)的設計思路。當檢測到這些HoneyGadget被使用時,系統可以警告用戶或終止進程。代碼誘餌即使在內存泄露環境下,仍然是防御ROP攻擊的一種有效選擇。
CodeArmor[34]在保留初始版本外,隨機化整個代碼區域,并復制多個隨機化代碼版本,利用系統調用和信號機制觸發隨機化版本的切換,其時延較小。每次只有一個激活版本是有效的,其他版本都是誘餌。CodeArmor在切換版本時,將原位置替換為honey gadget 來吸引攻擊者。Readactor++[33]在虛函數表中插入了大量虛假的虛函數指針作為誘餌引誘攻擊者,一旦攻擊者執行了這些虛假指針指向的代碼,就會落入其陷阱中。
文獻[65]提出在二進制文件中插入nop指令和honey gadget,并維護一個記錄了插入gadget的地址表。一旦目標應用程序執行了敏感的函數調用,HoneyGadget將暫停其執行并讀取最近分支記錄(LBR)緩沖區,以檢查LBR記錄是否與地址表中的地址匹配。如果記錄匹配,則說明可能存在ROP攻擊。
3.2.2 B-漏洞攻擊劫持
攻擊者攻擊打補丁的Web 服務時,其漏洞探測和漏洞攻擊會失效,此時,無法感知攻擊者的攻擊意圖,也沒有辦法收集攻擊工具(遠程控制工具)的信息。為了吸引攻擊者和獲取攻擊載荷,文獻[11]借助蜜罐的思想,設計了honey-patches和honey-patching。honey-patches在補丁代碼中注入誘騙服務的觸發點。當攻擊者利用漏洞攻擊載荷時,honey-patching把攻擊載荷轉發給誘騙服務器,實現引誘攻擊者的目的。同時,利用內存修訂和網絡連接保持以確保Web自身的安全性和誘騙服務的真實性。該方法需要人工輔助才能設計已知漏洞對應的honey-patches,難以自動化部署,不能轉發零日漏洞攻擊。
為了評估釣魚攻擊,研究受害者、釣魚者以及研究者的行為,Phisheye[66]構建一個包含脆弱性的Web服務網站(即蜜罐服務),誘使攻擊者攻擊該網站,并在該網站安裝釣魚攻擊包。從近5個月數據日志中,發現了474個網絡釣魚攻擊包,初步刻畫了釣魚攻擊包的完整生命周期。此外,29%的攻擊者通過搜索引擎查詢到部署的蜜罐,超過40%攻擊者通過社交網絡來共享蜜罐服務。同時,反網絡釣魚服務GSB和PhishTank對蜜罐服務上釣魚網站的平均檢測時延約12天。
Tripwire[67]構建郵件系統的登錄誘餌憑證(用戶名和口令),然后利用這些誘餌憑證自動注冊為第三方網站的用戶。一旦有人利用網站的憑證登錄給定郵件服務器,就可以檢測到攻擊,并推斷出該憑證關聯的網站被攻破。
DorkPot[68]利用GHDB(Google hacking DataBase)的dork構建蜜罐網頁,并把這些蜜罐網頁部署在云服務平臺,對外提供Web訪問。攻擊者利用谷歌的搜索引擎,搜索并訪問這些蜜罐網頁,文獻[68]統計了dork的使用頻率,由統計結果可知,攻擊者偏好搜索網絡攝像頭和路由器等在線設備、密碼和數據庫等重要數據。
傳統的防御方式,如流量入侵檢測等,屬于被動的防護手段。而誘捕防御屬于主動防御技術,通過在APT攻擊的各個階段部署誘餌,可以快速檢測和響應對主機的攻擊。與傳統防御手段對比,誘捕防御并不局限在特定的位置,而貫穿于防御體系的各個環節。它可以與傳統防御相結合,如作為控制流完整性和地址隨機化技術的補充手段,以對抗利用內存破壞漏洞的攻擊,形成縱深的安全體系。
攻擊者實施攻擊時利用的資源和需要獲取的資源都可以作為誘餌資源。IOT設備廣泛應用于智能家庭、智慧工廠和智慧城市。為了獲取攻擊IOT設備的樣本,可以虛擬各種IOT設備作為誘餌[69-70],并部署到云端,實時監控這些誘餌設備的訪問情況,捕獲攻擊樣本,并跟蹤識別攻擊意圖。電話號碼和設備同樣可以用作誘餌[29-30],利用人工智能技術實施自動電話應答,盡可能多收集電話濫用信息,檢測和發現語音釣魚、電話營銷、拒絕服務等電話威脅。此外,HoneyUSB可以轉發惡意USB固件訪問主機的流量,可以識別攻擊意圖[71];Honey page[72-73]用于檢測瀏覽器擴展的信息泄露。
工業界從基于蜜罐和蜜網的網絡安全防御逐漸延伸到基于誘捕的主機安全保護。為對抗勒索軟件,安全工具在主機上部署文件誘餌,但這些誘餌文件命名方式和文件所在位置比較單一,容易被攻擊者繞過。
同時,誘捕防御存在一定的局限性,誘捕防御本身是一種概率機制。為了提高其成功概率,需要確保誘餌與真實資源的相似性、誘餌的多樣性、部署位置的隨機性。這些將是誘捕防御機制的研究熱點。文獻[7]指出誘餌資源與被保護的業務系統高度一致。為了確保誘餌資源的相似性和多樣性,誘餌資源還需要與用戶行為高度一致,確保誘餌的動態性和新鮮性,使攻擊者難以識別誘餌資源。部署位置的隨機性是指誘餌所在目錄、路徑是難以被攻擊者猜測的。同時,這種隨機性可以確保攻擊者盡可能訪問這些目錄和路徑。另外,誘捕防御有被繞過或者利用的可能。例如,攻擊者通過識別虛擬化環境和系統監控工具來判斷當前環境是否安全。在部署誘餌的主機被控制后,攻擊者可以將它作為跳板,進而攻擊其他主機和域服務器。
控制流完整性、地址隨機化和誘捕防御構建了內存破壞漏洞的立體防御體系。前兩者是軟件自身完整性和內存布局的多樣性的結合,目的是抑制攻擊代碼的執行。誘捕防御部署在代碼上,可以抑制攻擊代碼的執行;部署在數據資源、文件資源上,可以從系統層面主動感知攻擊。因此,從防御層看,誘捕防御是控制流完整性和地址隨機化的有效補充。
本文從APT攻擊流程出發,分析和總結了APT攻擊的每一個環節都可以部署誘餌,并實施誘捕防御。同時,總結了誘餌類型,剖析了誘餌的生成、部署和度量。接著,分析了誘捕防御在勒索軟件檢測、漏洞檢測、Web安全等安全場景中的應用;最后,誘捕防御還可以應用到物聯網安全、電話安全等領域。確保誘餌的真實性、動態性、新鮮性、多樣性是未來研究工作的重點。
[1] FORCE J T, INITIATIVE T. Security and privacy controls for federal information systems and organizations[J]. NIST Special Publication, 2013, 800(53): 8-13.
[2] MONIKA, ZAVARSKY P, LINDSKOG D. Experimental analysis of ransomware on windows and android platforms: evolution and characterization[J]. Procedia Computer Science, 2016, 94: 465-472.
[3] YE Y F, LI T, ADJEROH D, et al. A survey on malware detection using data mining techniques[J]. ACM Computing Surveys, 2017, 50(3): 1-40.
[4] 諸葛建偉, 唐勇, 韓心慧, 等. 蜜罐技術研究與應用進展[J]. 軟件學報, 2013, 24(4): 825-842.
ZHUGE J W, TANG Y, HAN X H, et al. Honeypot technology research and application[J]. Journal of Software, 2013, 24(4): 825-842.
[5] 楊德全, 劉衛民, 俞宙. 基于蜜罐的主動防御應用研究[J]. 網絡與信息安全學報, 2018, 4(1): 57-62, 78.
YANG D Q, LIU W M, YU Z. Research on active defense application based on honeypot[J]. Chinese Journal of Network and Information Security, 2018, 4(1): 57-62, 78.
[6] JAJODIA S, SUBRAHMANIAN V S, SWARUP V, et al. Cyber deception[M]. Cham: Springer, 2016.
[7] 賈召鵬, 方濱興, 劉潮歌, 等. 網絡欺騙技術綜述[J]. 通信學報, 2017, 38(12): 128-143.
JIA Z P, FANG B X, LIU C G, et al. Survey on cyber deception[J]. Journal on Communications, 2017, 38(12): 128-143.
[8] MILAJERDI S M, GJOMEMO R, ESHETE B, et al. HOLMES: real-time APT detection through correlation of suspicious information flows[C]//Proceedings of 2019 IEEE Symposium on Security and Privacy (SP). 2019: 1137-1152.
[9] FU J M, LI L, WANG Y J, et al. Web scanner detection based on behavioral differences[M]//Communications in Computer and Information Science. 2019: 1-16.
[10] JUELS A, RIVEST R L. Honeywords: making password-cracking detectable[C]//Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. 2013: 145-160.
[11] ARAUJO F, HAMLEN K W, BIEDERMANN S, et al. From patches to honey-patches: lightweight attacker misdirection, deception, and disinformation[C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. 2014: 942-953.
[12] 喬向東, 郭戎瀟, 趙勇. 代碼復用對抗技術研究進展[J]. 網絡與信息安全學報, 2018, 4(3): 1-12.
QIAO X D, GUO R X, ZHAO Y. Research progress in code reuse attacking and defending[J]. Chinese Journal of Network and Information Security, 2018, 4(3): 1-12.
[13] 彭國軍, 梁玉, 張煥國, 等. 軟件二進制代碼重用技術綜述[J]. 軟件學報, 2017, 28(8): 2026-2045.
PENG G J, LIANG Y, ZHANG H G, et al. Survey on software binary code reuse technologies[J]. Journal of Software, 2017, 28(8): 2026-2045.
[14] 梁玉, 傅建明, 彭國軍, 等. S-Tracker: 基于棧異常的Shellcode檢測方法[J]. 華中科技大學學報(自然科學版), 2014, 42(11): 39-46.
LIANG Y, FU J M, PENG G J, et al. S-Tracker: attribution of Shellcode exploiting stack[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2014, 42(11): 39-46.
[15] ABADI M, BUDIU M H, ERLINGSSON ú, et al. Control-flow integrity[C]//Proceedings of the 12th ACM conference on Computer and Communications Security. 2005: 340-353.
[16] 王豐峰, 張濤, 徐偉光, 等. 進程控制流劫持攻擊與防御技術綜述[J]. 網絡與信息安全學報, 2019, 5(6): 10-20.
WANG F F, ZHANG T, XU W G, et al. Overview of control-flow hijacking attack and defense techniques for process[J]. Chinese Journal of Network and Information Security, 2019, 5(6): 10-20.
[17] SNOW K Z, MONROSE F, DAVI L, et al. Just-in-time code reuse: on the effectiveness of fine-grained address space layout randomization[C]//Proceedings of 2013 IEEE Symposium on Security and Privacy. 2013: 574-588.
[18] CRANE S, LARSEN P, BRUNTHALER S, et al. Booby trapping software[C]//Proceedings of the 2013 Workshop on New Security Paradigms Workshop - NSPW'13. 2013: 95-106.
[19] DING S, FU J M, PENG B C. ModuleGuard: a gatekeeper for dynamic module loading against malware[J]. Wuhan University Journal of Natural Sciences, 2013, 18(6): 489-498.
[20] GEN? Z A, LENZINI G, SGANDURRA D. On deception-based protection against cryptographic ransomware[M]//Detection of Intrusions and Malware, and Vulnerability Assessment. Cham: Springer, 2019: 219-239.
[21] 姚蘭, 王新梅. 基于欺騙的網絡主動防御技術研究[J]. 國防科技大學學報, 2008, 30(3): 65-69.
YAO L, WANG X M. A study on the network active defense technology based on deception[J]. Journal of National University of Defense Technology, 2008, 30(3): 65-69.
[22] WANG W, BICKFORD J, MURYNETS I, et al. Detecting targeted attacks by multilayer deception[J]. Journal of Cyber Security and Mobility, 2013, 2(2): 175-199.
[23] 劉秀文, 傅建明, 黎琳, 等. 面向用戶交互場景的信息欺騙分類及其威脅抑制機制[J]. 武漢大學學報(理學版), 2019, 65(2): 126-138.
LIU X W, FU J M, LI L, et al. Taxonomy and threat suppression mechanism of user interactive scenario oriented information deception attacks[J]. Journal of Wuhan University (Natural Science Edition), 2019, 65(2): 126-138.
[24] LIAO X J, YUAN K, WANG X F, et al. Acing the IOC game: toward automatic discovery and analysis of open-source cyber threat intelligence[C]// Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016: 755-766.
[25] SPITZNER L. Honeypots: catching the insider threat[C]//Pro- ceedings of 19th Annual Computer Security Applications Conference, 2003. 2003: 170-179.
[26] YUILL J, ZAPPE M, DENNING D, et al. Honeyfiles: deceptive files for intrusion detection[C]//Proceedings from the Fifth Annual IEEE SMC Information Assurance Workshop, 2004. 2004: 116-122.
[27] BOWEN B M, HERSHKOP S, KEROMYTIS A D, et al. Baiting inside attackers using decoy documents[M]//Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering. Berlin, Heidelberg: Springer Berlin Heidelberg, 2009: 51-70.
[28] PARK Y, STOLFO S. Software-based decoy system for insider threats[C]//ASIACCS’12. 2012.
[29] GUPTA P, SRINIVASAN B, BALASUBRAMANIYAN V, et al. Phoneypot: data-driven understanding of telephony threats[C]// Proceedings of 2015 Network and Distributed System Security Symposium. 2015.
[30] BALDUZZI M, GUPTA P, GU L, et al. Mobipot: understanding mobile telephony threats with honeycards[C]//Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security. 2016: 723-734.
[31] MEHNAZ S, MUDGERIKAR A, BERTINO E. RWGuard: A real-time detection system against cryptographic ransomware[M]//Research in Attacks, Intrusions, and Defenses. Cham: Springer, 2018: 114-136.
[32] TAYLOR T, ARAUJO F, KOHLBRENNER A, et al. Hidden in plain sight: filesystem view separation for data integrity and deception[M]//Detection of Intrusions and Malware, and Vulnerability Assessment. Cham: Springer, 2018: 256-278.
[33] CRANE S J, VOLCKAERT S, SCHUSTER F, et al. It's a TRaP: table randomization and protection against function-reuse attacks[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 2015: 243-255.
[34] CHEN X, BOS H, GIUFFRIDA C. CodeArmor: virtualizing the code space to counter disclosure attacks[C]//Proceedings of 2017 IEEE European Symposium on Security and Privacy (EuroS&P). 2017: 514-529.
[35] ?ENYS A, RAINYS D, RADVILAVI?IUS L, et al. Implementation of honeytoken module in DBMS oracle 9ir2 enterprise edition for internal malicious activity detection[J]. IEEE Computer Society’s TC on Security and Privacy, 2005: 1-13.
[36] WHITE J. Creating personally identifiable honeytokens[M]//Inn- ovations and Advances in Computer Sciences and Engineering. Dordrecht: Springer Netherlands, 2009: 227-232.
[37] BERCOVITCH M, RENFORD M, HASSON L, et al. HoneyGen: an automated honeytokens generator[C]//Proceedings of 2011 IEEE International Conference on Intelligence and Security Informatics. IEEE, 2011: 131-136.
[38] BEN SALEM M, STOLFO S J. Decoy document deployment for effective masquerade attack detection[M]//Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin, Heidelberg: Springer, 2011: 35-54.
[39] KHARRAZ A, ROBERTSON W, BALZAROTTI D, et al. Cutting the gordian knot: A look under the hood of ransomware attacks[M]//Detection of Intrusions and Malware, and Vulnerability Assessment. Cham: Springer, 2015: 3-24.
[40] MIRAMIRKHANI N, APPINI M P, NIKIFORAKIS N, et al. Spotless sandboxes: evading malware analysis systems using wear-and-tear artifacts[C]//Proceedings of 2017 IEEE Symposium on Security and Privacy (SP). 2017: 1009-1024.
[41] SCAIFE N, CARTER H, TRAYNOR P, et al. CryptoLock (and drop it): stopping ransomware attacks on user data[C]//Proceedings of 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS). 2016: 303-312.
[42] CONTINELLA A, GUAGNELLI A, ZINGARO G, et al. ShieldFS: a self-healing, ransomware-aware filesystem[C]//Proceedings of the 32nd Annual Conference on Computer Security Applications. 2016: 336-347.
[43] KHARRAZ A, KIRDA E. Redemption: real-time protection against ransomware at end-hosts[M]//Research in Attacks, Intrusions, and Defenses. Cham: Springer, 2017: 98-119.
[44] KHARAZ A, ARSHAD S, MULLINER C, et al. {UNVEIL}: A large-scale, automated approach to detecting ransomware[C]// Proceedings of 25th USENIX Security Symposium. 2016: 757-772.
[45] GóMEZ-HERNáNDEZ J A, áLVAREZ-GONZáLEZ L, GARCíA-TEODORO P. R-Locker: thwarting ransomware action through a honeyfile-based approach[J]. Computers & Security, 2018, 73: 389-398.
[46] LEE J, LEE J, HONG J M. How to make efficient decoy files for ransomware detection[C]//Proceedings of the International Conference on Research in Adaptive and Convergent Systems. 2017: 208-212.
[47] EL-KOSAIRY A, AZER M A. Intrusion and ransomware detection system[C]//Proceedings of 2018 1st International Conference on Computer Applications & Information Security (ICCAIS). 2018: 1-7.
[48] VORIS J, SONG Y B, SALEM M B, et al. Active authentication using file system decoys and user behavior modeling: results of a large scale study[J]. Computers & Security, 2019, 87: 101412.
[49] 楊錚, 傅建明, 羅陳可, 等. 一種基于誘餌文件的勒索軟件及時檢測方法[J]. 武漢大學學報(理學版), 2020, 66(5): 473-482.
YANG Z, FU J M, LUO C K, et al. A method of timely detection of ransomware based on decoy file[J]. Journal of Wuhan University (Natural Science Edition), 2020, 66(5): 473-482.
[50] SZEKERES L, PAYER M, WEI T, et al. SoK: eternal war in memory[C]//Proceedings of 2013 IEEE Symposium on Security and Privacy. 2013: 48-62.
[51] SHACHAM H. The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)[C]// Proceedings of the 14th ACM Conference on Computer and Communications Security. 2007: 552-561.
[52] BUCHANAN E, ROEMER R, SAVAGE S, et al. Return-oriented programming: Exploitation without code injection[J]. Black Hat, 2008, 8.
[53] ROEMER R, BUCHANAN E, SHACHAM H, et al. Return-oriented programming: systems, languages, and applications[J]. ACM Transactions on Information and System Security, 2012, 15(1): 2.
[54] BLETSCH T, JIANG X X, FREEH V W, et al. Jump-oriented programming: a new class of code-reuse attack[C]// Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security. 2011: 30-40.
[55] SCHUSTER F, TENDYCK T, LIEBCHEN C, et al. Counterfeit object-oriented programming: on the difficulty of preventing code reuse attacks in C++ applications[C]//Proceedings of 2015 IEEE Symposium on Security and Privacy. 2015: 745-762.
[56] HU H, QIAN C X, YAGEMANN C, et al. Enforcing unique code target property for control-flow integrity[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. 2018: 1470-1486.
[57] XU X, GHAFFARINIA M, WANG W, et al. {CONFIRM}: evaluating compatibility and relevance of control-flow integrity protections for modern software[C]//28th USENIX Security Symposium. 2019: 1805-1821.
[58] 傅建明, 林艷, 劉秀文, 等. 云計算環境下基于隨機化的安全防御研究[J]. 計算機學報, 2018, 41(6): 987-1004.
FU J M, LIN Y, LIU X W, et al. Survey of randomization defenses on cloud computing[J]. Chinese Journal of Computers, 2018, 41(6): 987-1004.
[59] SEIBERT J, OKHRAVI H, S?DERSTR?M E. Information leaks without memory disclosures: remote side channel attacks on diversified code[C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. 2014: 54-65.
[60] 傅建明, 劉秀文, 湯毅, 等. 內存地址泄漏分析與防御[J]. 計算機研究與發展, 2016, 53(8): 1829-1849.
FU J M, LIU X W, TANG Y, et al. Survey of memory address leakage and its defense[J]. Journal of Computer Research and Development, 2016, 53(8): 1829-1849.
[61] BIGELOW D, HOBSON T, RUDD R, et al. Timely rerandomization for mitigating memory disclosures[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 2015: 268-279.
[62] CHEN Y, WANG Z, WHALLEY D, et al. Remix: on-demand live randomization[C]// Proceedings of the Sixth ACM Conference on Data and Application Security and Privacy. 2016: 50-61.
[63] LU K J, NüRNBERGER S, BACKES M, et al. How to make ASLR win the clone wars: runtime Re-randomization[C]// Proceedings of 2016 Network and Distributed System Security Symposium. Reston, VA: Internet Society, 2016.
[64] WILLIAMS-KING D, GOBIESKI G, WILLIAMS-KING K, et al. Shuffler: fast and deployable continuous code re-randomiz- ation[C]//Proceedings of 12th USENIX Symposium on Operating Systems Design and Implementation {OSDI}. 2016: 367-382.
[65] HUANG X, YAN F, ZHANG L Q, et al. HoneyGadget: A deception based ROP detection scheme[M]//Science of Cyber Security. Cham: Springer, 2019: 121-135.
[66] HAN X, KHEIR N, BALZAROTTI D. Phisheye: live monitoring of sandboxed phishing kits[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016: 1402-1413.
[67] DEBLASIO J, SAVAGE S, VOELKER G M, et al. Tripwire: Inferring internet site compromise[C]//Proceedings of the 2017 Internet Measurement Conference. 2017: 341-354.
[68] QUINKERT F, LEONHARDT E, HOLZ T. Dorkpot: a honeypotbased analysis of google dorks[C]//Proceedings of the Workshop on Measurements, Attacks, and Defenses for the Web (MADWeb ‘19). 2019.
[69] PA Y M P, SUZUKI S, YOSHIOKA K, et al. IoTPOT: analysing the rise of IoT compromises[C]// USENIX WOOT 2015. 2015.
[70] DANG F, LI Z H, LIU Y H, et al. Understanding fileless attacks on linux-based IoT devices with HoneyCloud[C]// Proceedings of the 17th Annual International Conference on Mobile Systems, Applications, and Services. 2019: 482-493.
[71] TIAN D J, BATES A, BUTLER K. Defending against malicious USB firmware with GoodUSB[C]//Proceedings of the 31st Annual Computer Security Applications Conference. 2015: 261-270.
[72] XIE M F, FU J M, HE J, et al. JTaint: finding privacy-leakage in chrome extensions[M]//Information Security and Privacy. 2020: 563-583.
[73] CHEN Q, KAPRAVELOS A. Mystique: uncovering information leakage from browser extensions[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. 2018: 1687-1700.
Survey of software anomaly detection based on deception
FU Jianming1,2, LIU Chang1,2, XIE Mengfei1,2, LUO Chenke1,2
1. Key Laboratory of Aerospace Information Security and Trusted Computing,Ministry of Education, Wuhan 430072, China 2. School of Cyber Science and Engineering,Wuhan University,Wuhan 430072, China
Advanced persistent threats (APT) will use vulnerabilities to automatically load attack code and hide attack behavior, and exploits code reuse to bypass the non-executable stack & heap protection, which is an essential threat to network security. Traditional control flow integrity and address space randomization technologies have effectively prevented the pace of APT. However, the complexity of the software and the evolution of attacks make the software still being vulnerable. For this reason, deception defense with resources as bait is an indispensable supplement for network security. The trapping mechanism consists of bait design and attack detection, which infer possible unauthorized access or malicious attacks by sensing the interaction behavior with the bait. According to the three types of bait, which are file, data and code, the automatic construction scheme of bait is designed and deployed, and the effectiveness of bait is measured from the aspects of believability, detectability and enticement, etc. Ransom ware detection based on deception defense focuses on the deployment location of bait files, and in the area of vulnerability detection, code reuse attacks are detected by injecting bait code. Research work related to the implementation of deception defense in each phase of APT attacks was introduced, and the mechanism of deception defense from bait type, bait generation, bait deployment, and bait measurement was described. Simultaneously, deception defense applications in ransom ware detection, vulnerability detection, and Web security were analyzed. In response to the shortcomings of existing ransom ware detection research in terms of bait file design and deployment, a dynamic update method of bait for ransom ware detection was proposed. The deception defense challenges were discussed and hoped that deception defense can provide theoretical and technical support for discovering unknown attacks and attack attribution.
advanced persistent threat, code reuse attack, control flow integrity, address randomization, deception defense
The National Natural Science Foundation of China (61972297, 62172308, 62172144)
傅建明, 劉暢, 解夢飛. 等. 基于誘捕的軟件異常檢測綜述[J]. 網絡與信息安全學報, 2022, 8(1): 15-29.
TP393
A
10.11959/j.issn.2096?109x.2022003

傅建明(1969?),男,湖南寧鄉人,博士,武漢大學教授、博士生導師,主要研究方向為系統安全、移動安全。
劉暢(1998?),男,河南商丘人,武漢大學碩士生,主要研究方向為移動安全。

解夢飛(1997?),男,山東青島人,武漢大學碩士生,主要研究方向為系統安全。
羅陳可(1996?),男,湖南郴州人,武漢大學博士生,主要研究方向為系統安全、二進制安全。
2021?01?06;
2021?03?23
傅建明,jmfu@whu.edu.cn
國家自然科學基金(61972297, 62172308, 62172144)
Format: FU J M, LIU C, JIE M F, et al. Survey of software anomaly detection based on deception[J]. Chinese Journal of Network and Information Security, 2022, 8(1): 15-29.