暗網潛航——數據毒物學(三):數據毒物特殊編程方式(下)

  要成為一隻能夠大規模感染,甚至全球感染的數據毒物,除了要利用人性心理的「感染策略」,也要像忍者一樣擁有避開系統及防毒監控的「隱藏策略」。策動隱藏策略,除了上回提到的編碼要簡潔外,還會用一些特殊編程技巧協助隱藏。

  於隱藏策略上,最慣常使用的編程方式是「多態程式碼」(Polymorphic code)。為了對抗掃毒軟件,電腦病毒多會對自身一個感染複製進行加密,而每一次加密時,它的加密模組會進行改變,也就是說,每一個感染複製,沒有一個是相同的,故難以被用病毒特徵碼數據庫作掃描引擎的防毒軟件發現。

  這些突變的多態動作,甚至可以按時間和感染環境條件,而作出調校和改變。換言之,即使電腦安全專家取得已感染的檔案樣本,計劃辨認毒物時,也不會收集到有代表性可對比的樣本。這個策略可以拉長數據毒物被確認和進行隔離清除的時間,以達到更大的感染數量。

  第二種編程方式就是「自修改代碼」(Self-modifying code),這種方法是在執行過程中,有意更改其自身指令代碼。這類數據毒物可以在感染不同宿主時,都會把自身指令代碼特徵完全改變,更可怕是這種自修改情況,是每次都隨機進行。在這種狀態下,掃毒軟件根本不可能辨認或歸類這種毒物。

  第三種是「亂數字母數字代碼生成」(Alphanumeric code)。這一種程式碼會按時間、條件或感染狀態,在毒物程式碼庫,自動生成不同的聯數字母,或將數字隨機分配在不同程式碼條目內。這個動作可以令毒物不斷改變自身形態和特徵,以對抗掃毒軟件對其進行發現。

  最後一種是「變形程式碼」(Metamorphic code)。這一種編程方法和之前的「自修改代碼」不同,後者只是用「更改其自身指令的代碼」的方法改變特徵,但其本質還是沒有改變的。但是前者策略完全不是這麼一回事。它根本就是一個編程器,這種毒物在每一次感染宿主後,都會把自己再一次重新編程,擁有完全不同程式碼和特徵。這種毒物在大多數情況下,其程式碼大部份都是能自行編碼的變形引擎,對於掃毒軟件來說,這種毒物差不多是完全不可能辨認。

  看到這裏,我相信大家開始明白,為甚麼我們會用生物學的眼光來看這些毒物吧。我可以跟你們說,數據毒物在訊息安全這個學科裏,是一個很迷人的範疇呢。

TOZ聯合創辦人

龐博文


hd