暗網潛航——數據毒物學(三)電腦毒物的限制條件(中)

  數據毒物即使擁有完美的「感染策略」,但如果沒有考慮「隱藏策略」的話,這些東西很快就會被掃毒軟件或是其他防禦機制發現,然後被隔離消除。

  一隻成功的數據毒物到底怎樣施展「隱藏策略」呢?最重要的一點是它們的編碼都是「簡單」而且「精妙」。

  一般人看不懂的電腦程式編碼,但業內則會稱之為「編程語言」,是有其意義。在電子世界裏,編程就像在現實世界敍述故事的人,我們透過這些語言與機器溝通,然後吩咐它們按照指令辦事,就像現實世界裏,有人向你敍述故事並讓你按指示辦事一樣。

  編程與語言相似,故也有表達能力高低之分野。語言能力好的人,可以用很簡短的句子,就可以蘊含無限的意義;語言能力不好的人,說起事情來婆婆媽媽、含糊不清、長篇大論,老大半天也說不清楚事情。

  數據毒物需要隱藏而不被系統或防毒軟件發現,第一個要求就是編碼精簡。所以造成大規模感染的電腦病毒,編碼往往就如詩句一般精簡,但蘊含的意境卻美麗無窮,每一次我打開數據毒物的編碼向學生解釋他們功能的時候,我都不禁讚歎這些美麗的詩篇。作為對比,過去十多年我審核了無數軟件編碼,我夠膽保證即使是銀行櫃員機和政府系統的軟件編碼,與數據毒物比較,它們的距離就有如一個小學生和詩人的程度吧。

  數據毒物有精妙的編碼,令它不容易被發現,但卻引致它產生了一個不可跨越的限制。編碼要精簡,就意味數據毒物不能攜帶太多程式碼,所以數據毒物必須大量倚賴被感染的宿主系統,以及其內建的程序功能庫來進行動作。你有見過一個會奪取郵件目錄的電腦病毒會自帶電郵引擎嗎?它一定使用宿主內建的電郵引擎吧!

  所以,為了完善隱藏策略,數據毒物也必須作出犧牲,從而有其限制及缺陷。第一個是不能跨系統感染;第二個是如果被感染的系統經過系統固化,刻意除掉某些功能,即是被電腦毒物感染,也不可能產生任何影響。故此,為保護系統,僅安裝必要的程式及工具,理論上會越安全。

TOZ聯合創辦人

龐博文


hd