999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于API Hooking勒索軟件WannaCry的解密方法

2018-06-29 01:58:04郭春生程光
網絡空間安全 2018年1期

郭春生 程光

摘 要:勒索軟件WannaCry的肆意擴散對網絡用戶造成了極大的危害,如何能夠防范和解密WannaCry是目前的熱點研究問題。為了實現對勒索軟件WannaCry的解密,論文提出了基于API hooking的解密方法去恢復受害者的文件數據。首先,研究了WannaCry病毒執行時的詳細加解密流程,發現其使用的加解密API函數;其次,針對這些加解密API函數實現Hook,使用自定義的鉤子函數記錄下密鑰信息;最后,實現原型系統,監控操作系統中所有的進程。一旦勒索軟件WannaCry感染主機,原型系統記錄下勒索軟件WannaCry使用的密鑰信息,以此來完成文件的解密,結果表明系統能夠完全的實現對勒索軟件WannaCry的解密。

關鍵詞:API Hooking;勒索軟件;WannaCry;解密

中圖分類號:TP393.08 文獻標識碼:A

An approach to decrypting ransomware wannacry based on api hooking

Abstract: Recently, the wanton outbreak of ransomware WannaCry caused great harm to the network users. How to prevent and decrypt ransomware WannaCry is a hot research issue at present. In order to implement the decryption of ransomware WannaCry, we proposes a novel method based on API hooking to decrypt and free the damaged data. Firstly, we study the encryption and decryption process of WannaCry virus and find the encryption / decryption API functions used by WannaCry. Secondly, performing API hooking for key operations, records key information with the customized hook functions. Finally, implementing the prototype system and monitoring all the processes in the operating system. When WannaCry infected the host computer, the prototype system recorded the key information to complete the decryption of the files. The result shows that the system can be effectively used to mitigate users from the damages caysed by WannaCry.

Key words: API hooking; ransomware; wannacry; decryption

1 引言

從勒索軟件首次出現以來,已將近三十年時間,在這期間它并沒有逐漸消失,而是發展到對各種平臺進行感染,且更新速度越來越快,如今的勒索病毒軟件已經具備更高強度的攻擊性和更加廣泛的傳播性[1]。同時,由于勒索病毒軟件普遍使用成熟的加密算法破壞用戶文件[2]。被勒索的用戶在無法恢復重要數據的情況下,被迫選擇支付高額的贖金,這使得勒索者不斷發動攻擊以獲取更高的收益;而且,現階段的勒索病毒軟件大多是使用比特幣來支付贖金,由于比特幣其匿名性強、難以追蹤的特點,也在一定程度上促使了勒索病毒軟件爆發性的增長。

2017年5月12日起,勒索軟件WannaCry發起了一場具有全球性質的網絡攻擊[3],該勒索病毒使用了NSA黑客武器庫泄露的工具Eternalblue,針對Windows操作系統中存在的SMB服務器漏洞發起攻擊,勒索者在成功攻擊后,會采取遠程代碼執行WannaCry勒索病毒軟件。該病毒軟件會對主機上存放的文件數據進行加密,同時彈出勒索頁面,要求用戶使用比特幣進行贖金的支付以獲取解密密碼。隨著WannaCry的爆發,一天的時間內, 150多個國家的幾十萬臺主機受到感染,其中我國部分教育機構、部分政府機關和企事業單位的網絡系統受到不同程度的影響,造成嚴重的危機管理問題。因此,如何有效的防范WannaCry 勒索病毒軟件并且順利的恢復用戶被加密的數據文件,是目前的重點研究問題。

本文提出了一種針對勒索軟件WannaCry的解密方法,通過對該勒索病毒軟件在Windows操作系統中運行的進程行為進行實時監測,采用API hooking方法[4]跟蹤該勒索軟件的進程行為操作,在鉤子函數中截獲其使用的密鑰信息,并依此實現原型系統,對用戶的數據文件完成解密。該原型系統針對WannaCry勒索病毒軟件樣本進行測試驗證,可以完整地解密出被加密的用戶數據文件;同時該系統可以在Windows操作系統上實時的進行后臺監控,記錄下每個使用相應API函數的進程的密鑰信息,當勒索軟件爆發的時候,可以根據記錄下來的密鑰信息實現對加密文件的解密。

2 背景技術

2.1 勒索軟件WannaCry

WannaCry病毒軟件使用強加密算法來加密用戶的文件和數據,并且混合使用對稱加密和非對稱加密算法[5],對每個文件的加密是使用AES加密算法,一次一密,同時對每個AES密鑰使用RSA加密算法進行加密,并將加密后的AES密鑰與加密的文件內容放置在同一個文件中。

WannaCry的加密操作關系,如圖1所示[5],WannaCry病毒在進行加密的時候,程序本身自帶兩個公鑰(分別記為PK1和PK2)。PK2對部分文件使用的AES密鑰進行加密處理,同時將該部分文件的訪問路徑保存在本地文件中,該部分文件是勒索軟件用于展示解密操作的。該勒索軟件每次運行時,都會使用RSA加密算法隨機生成一組公私鑰(分別記為PK3和DK3),其中PK3存儲在本地文件中,主要用來加密其余用戶文件的AES密鑰,PK1對DK3進行加密并將加密后內容放入本地文件中。

當受害者需要解密文件時,需要支付相應的贖金,并將本地保存的已加密的DK3密鑰文件傳送給勒索者,由勒索者使用私鑰DK1對其進行解密獲得DK3,并保存為00000000.dky文件,最后使用勒索病毒自帶的解密程序即可完成對磁盤中文件的解密。

2.2 API Hooking技術

鉤子(Hook) 在Windows操作系統中是一個獨特且功能強大的特性,鉤子能夠在特定的消息到達目標窗口之前對其進行截獲,并對該消息進行優先處理,之后再交給目標窗口的處理函數[7]。

而Windows操作系統下的應用程序一般都是使用系統API函數進行構建的,使用Hook技術時一般都是對這些API函數進行掛鉤,在進程開始執行特定的API函數之前,截獲系統調用消息并跳轉到鉤子函數進行處理,之后再交由原API函數執行,即API Hooking,該技術可以監控API函數的執行,或者改變原有API函數的功能特性。

按照實現方法的不同, API Hooking能夠分為兩類:Inline Hooking(內聯Hooking)和IAT Hooking(導入表Hooking)[8]。Inline Hooking是指:首先獲取將要進行掛鉤的API函數在內存中存放的入口地址,之后將其二進制代碼替換為JMP指令,使其跳轉到鉤子函數所在的入口地址繼續執行;IAT Hooking是指:因為IAT表中記錄了進程所使用的DLL和API函數等信息,在對API函數掛鉤之前,需要分析該API函數在IAT表中的相關信息,找出其在IAT表中的入口地址,將這些地址改為鉤子函數所在的地址從而實現掛鉤。

本文通過使用IAT Hooking方法來實現對API函數的Hook,在IAT表中更改目標API的地址,并在鉤子函數中執行特定的操作,記錄下勒索軟件生成的密鑰信息,之后繼續執行程序的其他的操作。

2.3 相關工作

目前對于WannaCry病毒的破解方法是根據Adrien Guinet的成果[9],Adrien Guinet研究員發現Windows操作系統自帶的加解密API函數在生成公私鑰的過程中,API函數CryptDestroyKey和CryptReleaseContext在執行時并不會從內存中刪除生成公私鑰的質數,通過讀取內存可以恢復私鑰所使用的質數,之后根據保存在本地的公鑰來恢復私鑰,寫入00000000.dky文件中,使用WannaCry病毒自帶的解密程序進行解密。該方法的局限性是要在受害者沒有重新啟動過計算機或沒有將進行加密的進程殺掉的情況下,才有可能解密成功,否則將無法成功生成私鑰文件并解密。

PayBreak[10]系統利用低開銷的動態掛鉤技術(Dynamic Hooking Techniques)對加密操作的API函數進行掛鉤處理,獲取勒索軟件對每個文件加密使用的對稱會話密鑰,并使用非對稱加密來實現密鑰托管機制,使受害者能夠利用保存下來的密鑰信息恢復被勒索軟件加密的文件。PayBreak可以完全的恢復出被加密破壞的文件,并且適用于防御和解密使用了對稱加密算法的勒索軟件,對于WannaCry來說也是適用的,但WannaCry有一個特別的地方,它不是用根密鑰來加密對稱會話密鑰,而是使用非對稱加密算法生成公私鑰對,再用公私鑰對會話密鑰進行加密,因此不必要獲取每個文件的會話密鑰,只用獲得非對稱加密算法的私鑰即可,更加便捷。

3 解密方法架構

根據2.1節中對勒索軟件WannaCry加解密過程的詳細分析可知,想要完成對WannaCry病毒的解密,需要得到運行過程中生成的私鑰DK3。由于私鑰DK3是使用非對稱加密算法生成的,是不可逆向解密的,因此想到在病毒運行過程中,直接從內存中獲取到私鑰DK3的方法,同時API Hooking可以很容易實現對程序執行過程的監控和控制,只需要確定WannaCry的加解密函數以及函數的調用過程。因此本文利用API Hooking技術,監控Windows操作系統中kernel32.lib、user32.lib和advapi32.lib中的系統API函數,追蹤WannaCry運行過程中詳細的系統調用軌跡[11],并打印到日志文件中。

在沙盒環境[12]中,運行WannaCry樣本并對其進行API Hooking,記錄下其詳細的系統調用軌跡,在對其系統調用軌跡進行分析后,找出了勒索軟件生成公私鑰對、對密鑰進行加密的操作過程,表1為WannaCry病毒生成公私鑰(即PK3和DK3)的API函數調用過程(API函數的相關參數以十六進制形式顯示)。

本文通過API Hooking技術追蹤WannaCry病毒運行過程中的系統API調用軌跡,更加直觀的發現其中對于公私鑰對的生成過程、使用的API函數以及API函數的參數情況。針對加解密API函數操作過程分析發現,WannaCry使用CryptExportKey函數將公私鑰(PK3和DK3)從容器中讀取出來,并且將公私鑰通過參數傳遞,由于公鑰寫在本地文件中,只需從此函數中獲取到私鑰即可,通過訪問此函數的參數地址,讀取出私鑰。

為了防范和解密勒索軟件WannaCry,本文實現的解密框架為:實時的監控操作系統中新進程的創建,對所有進程進行API Hooking并記錄下每個使用相應API函數的進程的密鑰信息,當主機被WannaCry感染時,將本地日志文件中記錄的WannaCry病毒的密鑰信息讀取出來,以二進制形式寫入00000000.dky文件中,即可以解密成功。本文對Windows系統中的CryptExportKey函數進行Hook,通過改變CryptExportKey函數在IAT表中的入口地址,從而跳轉到鉤子函數中,先執行真實的CryptExportKey函數,得到各個參數的值,之后根據CryptExportKey函數的第三個參數判斷密鑰類型是否為私鑰,當參數密鑰類型值為私鑰時,訪問進程中CryptExportKey函數的第五個參數的存儲密鑰的內存地址,讀取出該進程中產生的私鑰,并將私鑰信息實時的寫入日志文件中。解密方法框架如圖2所示。

表2為算法中的自定義鉤子函數偽代碼顯示:第1行函數即為自定義的鉤子函數,第3行參數a2是密鑰的類型值,其中6為公鑰,7為私鑰;第5行參數為密鑰的存放地址指針,通過讀取此指針地址的數據,可以獲取到密鑰數據;第6行參數為密鑰的長度值;第9行執行真實的CryptExportKey函數操作,并獲得相關的參數;第11行判斷參數a2的密鑰類型是否為私鑰,若是私鑰,則在第12行判斷密鑰的存放地址是否為空,若不為空,則在第13、14行以參數a5的密鑰長度按字節輸出密鑰內容到日志文件中。

4 實驗驗證

本文在進行實驗驗證時,使用沙盒環境創建虛擬機,虛擬機配置為:CPU為1核,內存512MB,硬盤40GB,操作系統為Windows XP SP3,選用Windows XP操作系統的原因是由于其在此次WannaCry攻擊過程中受影響的范圍最大。在沙盒環境中的桌面、文檔、所有人/桌面、所有人/文檔、其他目錄1及其他目錄2下依次放置相同的樣本文件,且這些樣本文件的大小和類型是不一樣的,并對樣本源文件進行MD5哈希值[13]計算和保存,之后在沙盒中執行WannaCry病毒樣本,感染系統中放置的樣本文件,采用本文實現的原型工具監控WannaCry病毒的感染過程,并進行解密,對解密后的不同目錄下的樣本文件計算MD5哈希值,并與樣本源文件的MD5哈希值進行比較,驗證是否解密成功。

實驗分析,依次對不同目錄下的樣本文件進行病毒感染以及解密,計算解密后文件的MD5哈希值,并與源文件的MD5哈希值進行比較分析,圖3中為不同類型的文件解密情況表,14個doc文件、10個xlsx文件、9個ppt文件、9個txt文件、10個pdf文件以及10個rar文件全部被解密成功,對于不同類型的文件,使用本文的方法可以全部解密成功。圖4中為不同大小文件的解密情況表,無論對于0K的文件還是大于200M的文件都是可以完全解密成功的。圖5為桌面、文檔、所有人\桌面、所有人/文檔、其他目錄1及其他目錄2下的樣本文件解密情況表,實驗發現,不同目錄下的樣本文件都是可以完全解密成功的。圖6為不同目錄下對樣本文件進行加解密時的時間情況,發現在桌面、文檔、所有人/桌面、所有人/文檔這四個目錄中,對于相同的樣本文件的加密時間相似,并要比其他目錄1及其他目錄2下的樣本文件的加密時間用時久,而其他目錄1及其他目錄2下的樣本文件的解密時間比桌面、文檔、所有人\桌面、所有人/文檔這四個目錄中的樣本文件的解密時間用時久,這是因為WannaCry勒索軟件的作者根據文件的重要性對于重要目錄下的文件不僅進行了加密操作,并且對源文件進行了擦寫和刪除,對于不重要目錄下的文件僅做了加密操作,之后直接刪除;解密時對于重要文件優先解密,不重要文件其次解密。

本文實現的基于API Hooking的原型工具在Windows 系統下運行時的內存占用情況如圖7所示:運行時內存占用為3700K左右,在后臺運行時對系統的性能有較小的影響。

使用原型工具監控一些進程并測試對這些進程的性能影響情況,圖8為這些進程進行API Hooking后增加的內存占用情況,增加的內存占用在400-500KB,對這些進程的性能影響較小。圖9為WannaCry病毒和其他的使用相同加密API函數的進程在進行API Hooking后增加的運行時間情況,進行API Hooking后對于生成密鑰信息的進程來講,運行時間增加了200到300ms,而對那些沒有使用加密API函數的進程來講,運行時間幾乎沒有影響。

根據實驗驗證,本文所實現的基于API Hooking技術的原型工具,可以監控到各種進程的運行,以及記錄下使用CryptExportKey函數的加密程序的密鑰信息,對于勒索軟件WannaCry來說,經過實驗驗證可以完全的記錄下它的密鑰信息,并能夠完全解密被勒索軟件WannaCry加密的文件。本文實現的原型工具可以在后臺實時監控系統中的進程,并對操作系統和進程的性能影響較小,可以被用戶接受。

5 結束語

本文為了實現對勒索軟件WannaCry的防范和解密,在仔細研究了WannaCry病毒執行時的系統調用軌跡,發現其使用的加解密API函數和解密需要的條件,因此提出了基于API hooking的解密方法去恢復受害者的文件數據,實現了一個初步的原型系統,監控操作系統中所有的進程,針對這些加解密API函數進行掛鉤,使用自定義的鉤子函數記錄下密鑰信息。同時,對勒索軟件WannaCry進行了實驗驗證,原型系統記錄下WannaCry使用的密鑰信息,并完成了對文件的解密,結果表明系統能夠完全的實現對勒索軟件WannaCry的解密,且對操作系統和進程的性能影響較小,可以被用戶接受。此原型系統可以進一步擴展,以應對同樣使用加解密API函數的勒索軟件,一旦發生勒索軟件感染,可以使用此原型系統記錄下的密鑰信息完成解密,減少用戶的損失。

基金項目:

論文獲得國家重點研發計劃:SDN/NFV與NDN安全研究(項目編號:2017YFB0801703)和國家自然科學基金青年基金:基于網絡編碼的信息中心網絡研究(項目編號:61602114)支持。

參考文獻

[1] 安天安全研究與應急處理中心.勒索軟件簡史[J].中國信息安全,2016(4):50-58.

[2] 石磊,孫亮.勒索軟件研究[J].無線互聯科技, 2016 (21): 41-42.

[3] 瑞星安全公司.WannaCry勒索軟件病毒分析報告[EB/OL]. http://www.freebuf.com/articles/paper/134637.html

[4] Kesheng L, Zhongshou W. The Analysis of API Hook Central Technique [J]. Network Security Technology & Application, 2006, 11: 48-50.

[5] Simmons G J. Symmetric and asymmetric encryption[J]. ACM Computing Surveys (CSUR), 1979, 11(4): 305-330.

[6] 騰訊電腦管家安全團隊.WannaCry勒索病毒詳細解讀[EB/OL]. http://www.freebuf.com/articles/system/135196.html.

[7] Shaid S Z M, Maarof M A. In memory detection of Windows API call hooking technique[C]//Computer, Communications, and Control Technology (I4CT), 2015 International Conference on. IEEE, 2015: 294-298.

[8] 蘇雪麗,袁丁. Windows 下兩種 API 鉤掛技術的研究與實現[J]. 計算機工程與設計, 2011, 32(7): 2548-2552.

[9] Adrien Guinet. A WannaCry Flaw Could Help Some Victim Get Files Back[EB/OL]. https://www.wired.com/2017/05/wannacry-flaw-help-windows-xp-victims-get-files-back/

[10] Kolodenker E, Koch W, Stringhini G, et al. PayBreak: Defense against cryptographic ransomware[C]//Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security. ACM, 2017: 599-611.

[11] Kharraz A, Arshad S, Mulliner C, et al. UNVEIL: A Large-Scale, Automated Approach to Detecting Ransomware[C]//USENIX Security Symposium. 2016: 757-772.

[12] Wright W, Schroh D, Proulx P, et al. The Sandbox for analysis: concepts and methods[C]//Proceedings of the SIGCHI conference on Human Factors in computing systems. ACM, 2006: 801-810.

[13] Wang X, Yu H. How to break MD5 and other hash functions[C]//Eurocrypt. 2005, 3494: 19-35.

主站蜘蛛池模板: 国产激爽大片在线播放| 亚洲最猛黑人xxxx黑人猛交 | 国产三级国产精品国产普男人| 午夜激情婷婷| 国产人成在线视频| 99精品热视频这里只有精品7| 中文字幕久久精品波多野结| 国产精品久久精品| 国产性生大片免费观看性欧美| 欧美性久久久久| 99久久亚洲综合精品TS| 国产一区二区网站| 日日噜噜夜夜狠狠视频| 成人国产免费| 亚洲国产精品VA在线看黑人| 欧美亚洲日韩中文| 天天激情综合| 国产福利在线观看精品| 青青草原国产免费av观看| 精品色综合| 尤物精品视频一区二区三区| 久久这里只有精品23| 色香蕉影院| 欧美一级视频免费| 91麻豆精品视频| 成人av手机在线观看| 亚洲欧美在线精品一区二区| 亚洲永久精品ww47国产| 无码人妻免费| 日韩精品无码一级毛片免费| 18禁黄无遮挡网站| 囯产av无码片毛片一级| 亚洲国产日韩在线观看| 欧美日韩一区二区在线播放| 精品国产www| 18禁黄无遮挡网站| 亚洲色欲色欲www在线观看| 成人精品区| 成人一级黄色毛片| 国产麻豆精品手机在线观看| 色偷偷一区二区三区| 久久精品国产精品国产一区| 欧美亚洲欧美| 亚洲AV无码乱码在线观看代蜜桃| 波多野结衣中文字幕一区二区| 欧美国产日韩在线观看| 亚欧成人无码AV在线播放| 欧美精品v欧洲精品| 欧美国产日韩在线| 精品国产香蕉伊思人在线| 久久人搡人人玩人妻精品一| 国产熟女一级毛片| 午夜国产小视频| 亚洲色图综合在线| 日韩精品亚洲人旧成在线| 欧美一级视频免费| 亚洲大学生视频在线播放| 亚洲国产系列| 日韩欧美色综合| 国产精品2| 五月天综合婷婷| JIZZ亚洲国产| 成人午夜亚洲影视在线观看| 99精品视频在线观看免费播放| 91福利片| 精品人妻AV区| 在线另类稀缺国产呦| 国产毛片基地| 狠狠久久综合伊人不卡| 久久久久国产一区二区| 一级毛片免费不卡在线 | 扒开粉嫩的小缝隙喷白浆视频| 精品欧美一区二区三区久久久| 在线看片免费人成视久网下载 | 欧美精品v欧洲精品| 久久99精品国产麻豆宅宅| www亚洲天堂| 国产一级特黄aa级特黄裸毛片| 国产簧片免费在线播放| 成人午夜免费视频| 国内精自视频品线一二区| 在线欧美日韩|