其實要說其實要說解決方法也不是沒有,套句 FBI 說的「付贖金給歹徒是最快的方法」,勒索病毒從來就不是無法解決的東西,只是你願不願意付錢而已。不過就好像駭客說「我們高估了台灣人的收入」,勒索病毒的贖金對我們來說實在太高了一點,因此這就好像硬碟壞掉卻沒備份一樣,都只能花錢請人處理消災了事。
我們再回到勒索病毒吧!
勒索病毒的原理很簡單,當它取得電腦控制權限之後,就會產生一組金鑰用以加密你電腦中的所有資料。這就好像你用了 macOS 的內建資料保護「FIleVault」一樣,都是產生一組以現在電腦科技無法破解的金鑰密碼,演算加密你的所有資料讓人在沒有金鑰的情況下完全無法讀取原來的資料。然而 macOS 的 FileVault 是你自己加密的,所以你握有解密的密碼鑰匙;但勒索軟體是強制幫你加密的,所以你沒有鑰匙!就好像你有一天回家發現自己大門門鎖被人偷換成任何鎖匠都打不開的門鎖,而歹徒告訴你要付贖金才會把鑰匙寄給你一樣。
很可惡,但也很聰明。
然而勒索病毒並非沒有漏洞,因為要產生加密金鑰,就必然有產生金鑰的機制;而要在收到贖金後解鎖,則必然有存放金鑰的位置。而我們看了那麼多盜賊題材的電影動畫如亞森羅頻、魯邦三世、怪盜基德之後,早已把「既然鎖打不開那就先去偷鑰匙」這件事當成我們的常識了,因此資安專家們要破解勒索軟體當然也是從這個「常識」來下手啦~事實上早在 2013 年時,就已經有利用在電腦中找到金鑰來破解的方法,因此後來勒索軟體大多會想辦法把金鑰藏起來不讓人找到。
不過這次 WannaCry 顯然還是大意了,因為他的金鑰「有很大可能被人找到」。
WannaCry 利用 Windows 內建的加密 API 來產生金鑰,而這組金鑰雖然不會存在硬碟裡,但卻會在完成加密之後的一段時間裡存在電腦的「記憶體 RAM」裡。因此資安專家便能利用軟體搜索記憶體,從中把金鑰挖出來並用以解密資料。但大家都知道,記憶體裡的東西並不會永遠留著,甚至只要你繼續使用電腦,或是把電腦重開機,就會讓金鑰從記憶體中「永遠消失」。
因此說 WannaCry 可解也沒錯,只是一來現在病毒已經問世好幾天了,這中間電腦就算沒重開機過,過了那麼久記憶體中要找到當初的金鑰也是很困難的事情了;二來以多數人的「人性」來說,中毒的當下通常都是不斷操作電腦企圖找回資料,不然就是直接把電腦關機等人解決。因此綜合以上兩點,除非你電腦中毒之後就從來沒關機過也沒動過,或是在你看到這篇文章前才剛剛中毒,否則你的電腦有很大的機率是「找不到金鑰」的。
參考資料
https://www.cool3c.com/article/124463
留言列表