今年2月初,安全機構 Red Canary 在蘋果電腦作業系統 macOS 上發現了一種全新的惡意軟體。
當然,在號稱更加安全的 macOS 上出現病毒/惡意軟體,算不上駭人聽聞。不過,安全工程師們對這款惡意軟體抱有很大的興趣,主要在於它有三個特別突出的特性:
1)M1 處理器原生支援;2)使用 JavaScript 執行;3)該惡意軟體目前缺乏負載 (payload),也即實際對使用者的系統造成負面影響的內容。
Red Canary 將其命名為 Silver Sparrow(銀雀)。
雖然按照前述第三條來看,該惡意軟體目前沒有什麼值得稱道的危害性,不過根據安全公司 Malwarebytes 追蹤,Silver Sparrow目前已經在全球範圍感染過接近4萬臺電腦(主要集中於美國)——這只是該機構能夠追蹤到的終端,追蹤不到的已感染電腦可能更多。
更重要的是,該惡意軟體包含了對蘋果 M1 ARM64 架構的原生支援,而考慮到蘋果正式推出 M1 處理器電腦產品也只是幾個月前的事情——Silver Sparrow 潛在的危害程度不容小覷。
Red Canary 認為,M1 相容性、全球感染範圍、高感染率,以及技術成熟程度,足以讓該惡意軟體成為一個“相當嚴重的威脅”。
目前,Silver Sparrow 已經存在兩個版本,均偽裝成 macOS 軟體安裝包 (.pkg) 的樣子。其中第二個版本 update.pkg 加入了對 ARM64 架構的支援。
正如前面提到,M1 相容性讓這款惡意軟體非常引人注目,因為 M1 仍然是蘋果電腦產品中非常新的一個平臺,而針對該平臺的安全威脅目前少之又少。
讓我們繼續來看這個奇異的惡意軟體。它的兩個版本安裝包,採用的都是 JavaScript 程式碼,並且利用了macOS 安裝器的 JavaSciprt API。Red Canary 在一篇部落格文章中指出,正是這一點讓 Silver Sparrow 在已知常見的 macOS 病毒/惡意軟體當中獨樹一幟。
在 macOS 上,使用者不小心點選惡意廣告後可能會下載到病毒或惡意軟體,體現為 .pkg 或 .dmg 安裝包格式,通常會偽裝成 Flash Player 的安裝器或升級包。這些惡意軟體的工作方式是使用 preinstall 或 postinstall(安裝前/安裝後)指令碼來執行命令。
而在 Silver Sparrow 上,這個全新的惡意軟體直接用 JavaScript 函式來執行命令,這樣的行為是在蘋果 macOS 安裝器原生的 JavaScript API 支援下才得以實現。這也是安全人士首次發現採用這一方式完成安裝的 macOS 惡意軟體。
正是因此,惡意軟體內含的 JavaScript 程式碼可以在使用者點開安裝器並確認安裝(見下圖)之後就立即執行。這意味著,如果你沒有走完安裝流程,關掉了安裝器,也沒有用,惡意程式碼已經被執行了,你的電腦已經被 Silver Sparrow 感染了……
在感染成功之後,使用者的應用列表裡會出現一個應用,按照惡意軟體版本的不同,這個應用的名字可能叫 tasker 或者 updater。跟進 Silver Sparrow 的安全機構都認為,這個應用沒有任何內容也沒有什麼特殊功能,看起來像是佔位用的。
前面提到,這個惡意軟體目前不含任何負載,也即會對使用者系統造成負面影響的程式碼之類的東西。這令安全人員感覺非常奇怪……讓我們來進一步看看這到底是怎麼一回事:
感染之後,惡意軟體每個小時都會跟一個 AWS S3 伺服器聯絡,而伺服器會返回一些資料。這些返回資料中包含一個下載連結 "downloadUrl",但截至目前,安全機構在所有已感染電腦上看到的下載連結都是空的:
在安裝完成後,Silver Sparrow 會回撥一個域名並且彙報兩組資料,其中包括了原始安裝包下載的連結。這在惡意軟體領域比較常見,意味著其開發者希望追蹤軟體的分發渠道。
不僅如此,這個惡意軟體回撥的域名利用了 Akamai 的 CDN 服務。Red Canary 就此指出,這可能意味著惡意軟體的開發者對雲服務的理解甚高,因為 AWS 和 Akamai 是世界頂級的雲服務提供商,大部分機構通常不會對 它們的域名進行訪問封鎖。“這一發現進一步證明,我們面對的是一個技術非常成熟的對手,”Red Canary 寫道。
安全工程師 Erika Noerenberg 對 Silver Sparrow 進行拆解,發現它的第一個版本(只有 x86 支援)分發的只是一句佔位內容。這句話想必大家也已經很熟悉了:
而第二個版本加入了 M1 ARM64 架構支援,分發的同樣是一句佔位內容,看起來同樣人畜無害:
除了上述這些佔位內容之外,Silver Sparrow 完全沒有任何其它已知的,會對使用者系統造成任何損害的程式碼。
更蹊蹺的是,安全工程師發現,Silver Sparrow 會定期進行本地檔案檢查,如果在某個路徑下找到某個檔案,就會完全刪除其在使用者電腦上的所有存在。
macOS 在 Library 路徑下預設不存在這個檔案,Red Canary 也不清楚在什麼樣的情況下這個檔案會出現。這個檔案有可能是 Silver Sparrow 的開發者想要避免的東西,也有可能是該軟體生命週期的一部分,在完成任務之後清除痕跡的機制。
“這一(自我清除)機制的存在也是個謎,”Red Canary 在文章中寫道。
Malwarebytes 追蹤顯示,在已知全世界數萬臺已經感染 Silver Sparrow 的電腦上,截至目前沒有任何一臺電腦下載了任何可能造成實質危害的負載。
“這款惡意軟體的終極目標是個謎。我們沒有辦法可以確切瞭解它究竟要分發什麼樣的負載。”Red Canary 寫道。
這不禁令人想起了著名遊戲《瘟疫公司》(Plague Inc.) 的一種經典流派:猥瑣流。
《瘟疫公司》讓玩家扮演病毒,最終目標是感染全世界,可以在感染的過程中不斷獲得升級點數,升級自己的傳播力、抗藥性和致死性。
而猥瑣流的基本思路就是儘量先升滿傳播“猥瑣發育”,讓病毒悄無聲息地感染全世界,然後把攢下的點數全部扔到致死能力有關的天賦樹上,一瞬間爆發殺死所有人。
從目前已知的情況來看,Silver Sparrow 和《瘟疫公司》的猥瑣流玩法(至少跟前期“猥瑣發育”的部分)十分相似。它的技術成熟,感染數量已經較高,而且已經展現出了開發者對於 macOS 系統以及依靠雲服務的分發機制有較高的瞭解。
雖然今天的 Silver Sparrow 人畜無害,但誰也無法保證它在未來不會突然爆發,造成嚴重的後果。
目前安全人員不清楚 Silver Sparrow 的真實開發者是誰。不過蘋果公司在收到報告之後,已經關閉了其安裝包的證書擁有者 Saotia Seay 和 Julie Willey 的開發者賬戶。
如果你是 macOS 使用者,接下來可能會想要知道:我如何確定自己是否有被 Silver Sparrow 感染過呢?
答案很簡單。如果你能在以下路徑內找到對應的檔案,說明你的電腦已經被感染(過)了:
如果這些檔案存在的話,你需要在電腦上找到所有已知和 Silver Sparrow 有關的檔案,並且在 Terminal 裡用 rm 命令完全刪除它們。
至於具體需要刪除哪些檔案,你可以到 Red Canary 的網站上檢視(點開連結後,移步到 "Indicators of Compromise" 小節,可以找到所有檔案及其路徑)。如果你對 macOS 檔案系統和 Terminal 命令不熟悉的話,建議找專業人士代你操作。
刪除完相關檔案之後,重啟電腦就好啦。
你的電腦被 Silver Sparrow 感染了嗎?歡迎在留言中和我們分享。