上周末WannaCry勒索軟件肆虐互聯網,無數主機被感染,從醫療保健到交通運輸,多種關鍵系統被鎖定,密碼學家們都在找尋破解加密困局的良藥。畢竟,找到WannaCry加密機制中的漏洞,就能解密所有這些被感染的系統,不讓網絡罪犯的勒索陰謀得逞。
現在,一名法國研究員稱,至少發現了一個非常有限的補救措施。該修復方案看起來似乎仍然缺陷多多,遠未達到WannaCry受害者們期望的靈丹妙藥的程度。但如果阿德里安·圭奈特是對的,他的工具就可以解鎖被感染的 Windows XP 機器——分析師認為該老舊操作系統占了WannaCry受害范圍的一部分。
沒有萬靈丹
上周五,圭奈特在開源代碼倉庫GitHub上發布了“WannaKey”。這位QuarksLab安全公司的員工稱,該軟件能從 Windows XP 機器的內存中提取私鑰痕跡,用于解密被WannaCry感染PC的文件。
圭奈特稱,在感染了WannaCry的測試XP機上,他已使用該解密工具成功了數次。但他警告道,由于這些痕跡存儲在易失存儲器中,只要該惡意軟件或任意其他進程剛好重寫了解密密鑰存儲區,或者電腦在被感染后重啟過,他的招數就失效了。
如果你運氣好,你可以訪問內存的某些部分,重新生成密鑰。或許密鑰依然存在,你可以檢索到密鑰來解密文件。但并不是每次都有效的。
圭奈特特別警告:
尚有可能恢復文件的任何 XP WannaCry 受害者,必須在運行他的程序前讓電腦保持原樣。別重啟!
其他安全研究人員還沒有驗證WannaKey的能力,而且至少有一名研究員——Comae Technologies 創始人馬特·舒徹,稱該程序在他最初的測試中沒能解密文件。但看過該工具代碼和圭奈特在GitHub和推特上備注的其他研究人員認為,該工具似乎利用了WannaKey加密中的缺陷,最起碼在 Windows XP 上是這樣的。約翰·霍普金斯大學計算機科學教授馬修·格林說:“看起來像是合法的。”但他也警告道,對具體受害者是否有效也是個運氣問題,跟中彩票似的。
解密看門人
WannaKey的解密機制,利用了微軟某加密函數中的一個怪癖,而這個加密函數是用來從內存中刪除密鑰的。這個怪癖似乎被WannaCry的作者給忽略掉了。WannaCry會在受害者機器上產生一對密鑰:一個“公”鑰用來加密文件,一個“私”鑰用來解密——如果受害者支付了贖金的話。(WannaCry的無良作者到底會不會為已支付贖金的受害者解密文件尚是個未知數。)為防止受害者得到私鑰并自行解密文件,WannaCry把該密鑰也給加密了,讓該密鑰只有在勒索軟件操作人員解密的時候才可以訪問到。
但圭奈特發現,WannaCry加密私鑰之后,一個微軟設計的刪除函數還會到內存中清除掉未加密版本的密鑰。很明顯,勒索軟件作者并不清楚該函數在 Windows XP 系統中實際上刪不掉內存中密鑰,只是留了個指向密鑰的句柄而已。芬蘭安全公司F-Secure研究人員米柯·希波能,同樣研究了圭奈特的代碼,他說:“為什么要用個實際上不能清除密鑰的密鑰銷毀函數呢?真的特別奇怪。或許也是為什么之前沒人發現的原因吧。”
不知道有多少 Windows XP 機器中了WannaCry。爆發初期,微軟匆忙發布了一個補丁保護XP設備,思科研究人員稱,至少64位的 Windows XP 機器是受周五開始泛濫的WannaCry蠕蟲影響的。該勒索軟件的大肆傳播造成了新的恐懼,怕XP機器被這波感染潮淹沒,畢竟,2014年起,微軟就已經不再支持該16歲高齡的操作系統了。XP雖老,其使用卻依然十分廣泛,甚至某些關鍵系統,比如WannaCry幾大著名受害者之一的英國國民健康服務,都還在用它。
無論被感染的XP機器有多少,鑒于其重啟和重寫限制,WannaKey都只對少部分的被感染XP有效。“周五到現在已經幾天了,不太可能有太多受害者的機器沒被動過。”
不過,對WannaCry的受害者及其被鎖定的數據而言,有一絲希望總比沒希望好。而且諷刺的是,少數幸運用戶的救世主,竟然是微軟加密軟件的怪異特性——微軟起初可是因讓XP漏洞多多而廣受指責。“Windows漏洞往往讓人憤怒,但這個漏洞卻可能幫助WannaCry受害者恢復他們的文件。”塞翁失馬焉知非福?
最新:360企業安全19日下午發布解密工具,增加了 Windows 7 版本,在未重啟的情況下,通過內存還原私鑰。