勒索成功與否、取決於勒索軟件背後的加密技法

勒索成功與否、取決於勒索軟件背後的加密技法

上回我們談到了有關勒索軟件的第一種加密技法,那就是 Symmetric-key algorithm(對稱密鑰加密),接下來我們再說說其他方式。首先,姑勿論如何,採用對稱密鑰加密這種方法的好處就是其本身是一種在速度上比較快的方式,這對於需要一次過針對系統檔案進行較快速的加密工作而言,採用對稱密鑰加密會有絕對的優勢,至少較少機會在完成加密前被用户發現。

加密方法二:Asymmetric cryptography(非對稱加密)

另一種方法就是非對稱加密方法。此方法與對比對稱密鑰加密的最大分別在於非對稱加密是採用兩組不同的密鑰的。一組(公開金鑰)是用來加密時所使用的,而需要解密則需要使用一組(私人金鑰)才可。公開金鑰與私人金鑰之間的關係是一種算式關係。

由於需要兩組密鑰才可進行加密及解密工作,因此駭客多會在目標系統之中採用公開金鑰進行加密,而自己則會保留私人金鑰以備不時之需。

使用此方法的好處在於解密與加密的金鑰並不相同的關係,因此即使目標得知公開密鑰,亦無法以此進行解密;然而這種加密方法所需時間會較長,而這將有可能在還未完全完成加密時便被發現而影響勒索行動。

防禦對策:防毒軟件能做些甚麼?

上述都已講解了勒索軟件的一些行為,那麼對於用户來說,又要做些甚麼才可以預防?安裝防毒軟件是否就百分之百能防禦勒索軟件?

現時防毒軟件很多都是基於傳統的方式進行防護,例如是通過 Sandbox 於虛擬環境之中執行惡意程式,並從中分析其執行的 Log,對比防毒軟件的資料庫,從而判斷出該程式所執行的是否為惡意程式等等。

不過傳統的防禦方法都不能夠比較準確的對付到勒索軟件,其中最主要的原因在於這些勒索軟件在開發時採用了被稱為變化碼(Polymorphic code)的方式進行編程;再加上這些勒索軟件都是用戶親自認可並執行的,因而令部份傳統的防毒軟件較難偵測到。

所謂的變化碼,在惡意軟件的應用之中主要是作為加密與解密之用。(注意這裡指的加密解密並非勒索軟件針對系統進行的檔案加密,而是指惡意代碼的加密與解密),並可分為 6 種不同的演算法,包括有半變、定點變化、垃圾代碼變化、演算法固定但指令卻可變、演算法解密部份隨時變化以及是加密與解密完全自動變化。

前四種的演算法由於始終有部份語法或設計上是不變的,因此傳統的防毒軟件是可通過最傳統,增加病毒特徵碼的方式輕易偵測到,但最後兩種分別是演算法解密部份隨時變化以及是加密與解密完全自動變化這兩種編程方式,傳統的防毒軟件根本不能預防。

原因可能大家都會估計得到,那就是因為最後兩種方式根本沒有固定的語法可以讓防毒軟件作為偵測的一種條件。

多想一點… 何不針對勒索軟件的動作進行阻截呢?

老實說,電腦程式在設計上,當需要就一些事件進行某些回應,例如防毒軟件需要就勒索軟件進行防禦時,便需要先定義當中擁有那些條件,才可證明其是勒索軟件並觸發防毒軟件進行攔截,這部份傳統的防毒軟件需要抽取勒索軟件之中的一些演算法或設計作為條件,從而才可成為觸發攔截的條件。

待續….

駭客如何看待勒索軟件?勒索軟件的賺錢大計
勒索軟件的歷史:27 年前贖金已達 1400 元!
為甚麼傳統防毒軟件難以應付勒索軟件?
勒索軟件能否破解取決於兩大條件!
打開網絡攻擊第一步:動動腦筋、大家也可是社交工程學專家
淺談勒索軟件的傳播方式
勒索成功與否、取決於勒索軟件背後的加密技法
究竟防毒軟件是如何對抗勒索軟件呢?
備份 – 是對付勒索軟件的最佳方法