Java、fileless惡意軟件威脅桌面安全
工作原理:用戶訪問一個受侵的網站,不小心下載了最新類型的惡意軟件。如果你的殺毒軟件運行良好的話,就會阻止下載,至少能夠檢測到并隔離硬盤上的入侵文件。但是如果硬盤上沒有文件監測呢?如果惡意軟件只入侵內存,運行在受信任的進程中呢?
這正是在今年年初發生在俄羅斯的事情。超過3萬臺計算機感染了一種獨特類型的惡意軟件——fileless僵尸程序。在僵尸程序肆無忌憚地感染幾個月后,卡巴斯基實驗室聲明已經發現了一個罕見的感染,通過俄羅斯在線信息資源進行傳播。廣告由AdFox(一個第三方廣告網絡)提供給網站,Java惡意軟件包含其中,通過瀏覽器從網絡罪犯控制的服務器下載。
fileless僵尸程序入侵原理
第一步:用戶訪問受感染的網站。用戶甚至不需要干其他的事情,便不知不覺地被重定向到罪犯的服務器上,我們稱之為“主服務器”。
第二步:主服務器將一個加密的動態鏈接庫(DLL)文件注入到用戶的電腦上的Java進程(javaw.exe)中。Java進程運行在內存中。DLL利用一個眾所周知的Java漏洞。
第三步:惡意軟件建立用戶計算機和主服務器之間的通信。被感染的計算機的技術細節信息被發送到主服務器。從這個意義上說,惡意軟件和其他僵尸程序一樣——作為一個軟件僵尸程序,可以在互聯網上執行自動化的任務。但是,AdFox是無實體文件的,只在內存中運行。
第四步:惡意軟件令用戶帳戶控制(UAC)失去效力。UAC是一個Windows安全組件,保護用戶的系統免受黑客攻擊。惡意軟件利用權限再次安裝一個更有破壞力的惡意軟件。在俄羅斯計算機事件中,下載的惡意軟件是Lurk Trojan,主要竊取敏感數據來訪問網上銀行服務。
第五步:Lurk Trojan突襲cookie jar。
Java漏洞
正如上面提到的,fileless惡意軟件利用了眾所周知的Java漏洞(CVE-2011-3544)。俄羅斯事件中,網絡罪犯利用此漏洞攻擊Windows計算機。但是,Mac OS也支持Java,因此Apple計算機也可能受到感染。幸運的是,Oracle在2011年10月推出補丁,只有電腦沒有更新,因此易受感染。
然而,對于那些沒有補丁的計算機,罪犯可以輕而易舉地將僵尸程序加載到受信任的Java進程中。大多數情況下,殺毒軟件檢測不到。僵尸程序本質上是無行的。
網絡罪犯使用AdFox用戶帳號更改了俄羅斯網站上的banner代碼。特意往代碼中添加了JavaScript IFrame。IFrame是內聯框架,允許單獨的HTML文件被加載到一個單獨的文檔。在IFrame內,他們嵌入一個加密的鏈接,將用戶重定向到.EU域中的主服務器。
Fileless造成的麻煩
雖然這次暴風式的對俄羅斯的襲擊很少見,但是過去的十年里也發生過類似的情況,最具代表性的是紅色代碼和監獄蠕蟲。兩者皆利用了緩沖區溢出的弱點。
這些攻擊已經發生過幾次,沒有不再出現的理由。也并不只針對俄羅斯或Windows計算機。也不局限于是Lurk Trojan。其他國家和操作系統也是很可能遭受攻擊的,其他的惡意軟件也可能輕易地傳播開來。
好消息是,因為fileless僵尸程序只存在內存中,只需要重啟操作系統就能解決問題(如果不是已經太晚了的話)。只要用戶不訪問相同的或其他受感染的網站,應該不會有再大的問題。當然,你也需要確保計算機上的Java應用程序定時更新最新的安全補丁。這至少會免受俄羅斯僵尸程序的襲擊。
但與惡意軟件的不同類型一樣,規則也不斷改變。你可以保護用戶避免最新的fileless攻擊,但沒有理由假設每個人都是安全的。
另外,蘋果最新聲明,在發布下一代Mac OS Update之前,瀏覽器里不會使用Jave。這是否與fileless僵尸程序有關無從定論。安全研究員Adam Gowdiak在報道中稱,已經找到了兩個Java安全漏洞。所以蘋果顯然在確保自身安全。