惡意程式作者和白帽駭客之間的貓捉老鼠遊戲本周愈演愈烈。一隻新式惡意程式不單企圖模糊自己的行動,還會主動掃瞄是否被他人監視。名為 Rombertik 的惡意程式一旦偵測到它是在一個虛擬機器 (Virtual Machine, VM) 中活動,就會往核心作業系統移動,企圖覆寫本機磁碟的主開機記錄 (master boot record, MBR) 。
思科威脅回應小組分析 Rombertik,發現它模糊自我行蹤及攻擊手法都很特殊。一旦安裝到電腦上,它就變成標準的資料竊取軟體,蒐集受害電腦上的所有資訊。但 Rombertik 最特別的是它會檢查它是否在 VM 沙箱中執行;如果是,它會採取後續行動。

上圖是 Rombertik 運作方式及目的圖解。 Rombertik 含有許多能讓它如此聰明的大量資訊。思科研究人員估計它封包檔案的 97% 是一些不會用到的圖片和功能。一旦它開始移動,這個執行檔就會在記憶體寫入 960 Mbyte 的資料。這並沒有功能上的實際作用,但能讓想追蹤它行蹤的應用軟體被 100GB 以上的記錄檔淹沒。
完成之後,Rombertik 就會開始發出無效的功能呼叫,檢查是否有 VM 一般會壓制的錯誤。它若發現自己不是在沙箱中,就會開始解除封裝,並在程式碼中充斥各種模糊焦點的功能呼叫或膨脹的程式碼來躲避追蹤。

以上圖表顯示右邊是反分析的程式碼,左邊是執行檔。雖然反分析程式碼看來嚇人,但其實只是很簡單流程圖加上大量重覆而已。相較之下,左邊則是一堆功能區塊、檢查 (check) 及數百個節點 (node),再再都是為了防止被分析人員看出它在寫什麼。
到了最後,Rombertik 會執行 32-bit 雜湊的計算,再和未封裝的樣本比對,如果它偵測到自己在 VM 環境下執行,就會立即對磁碟的主開機記錄宣戰。如果它無法存取並覆寫 MBR,就會以 RC4 密鑰加密 C:Documents and SettingsAdministrator 資料匣之下的所有檔案。若它動得了 MBR,它就會以 null bytes 覆寫分割區資料,使磁碟幾乎無法回復。
究竟作者為何方神聖
Rombertik 很奇怪的一點是它具備一般惡意程式的元素—技巧拙劣的網釣手法和從瀏覽器通訊中大量抓取資料—及最尖端的反偵測技術,和狠毒的報復手段。 Rombertik 作者可能相當高招,才能讓這隻病毒行動如此精準,並能執行作業。但我們認為此等模糊程式碼的技術水準,恐怕只有國家資助的產品才看得到,若不是美國,則另一個國家嫌疑最大。
這不是說 Rombertik 一定和某種政府計畫有關。但這反而更值得擔憂—雖然由國家發展如此高明的木馬程式值得擔心,但這類技巧一旦流行後果將不可設想。思科的部落格(http://blogs.cisco.com/security/talos/rombertik)有更多關於 Rombertik 的細節,有興趣的讀者不妨看一看。
