如何在macOS上悄無聲息地啟動惡意宏病毒

安全研究人員Patrick Wardle展示如何通過漏洞利用鏈成功攻擊macOS Catalina。

許多macOS的用戶仍舊十分自信地認為他們的電腦不需要任何安全防護方案。更糟糕的是,部分使用蘋果設備辦公的公司,它們的系統管理員也有同樣觀點。

2020年黑帽大會上,安全研究人員Patrick Wardle試圖打消聽眾們這一錯誤觀念,他介紹了對macOS的惡意程式的分析,並構建了一個可以控制蘋果電腦的漏洞利用鏈。

微軟,宏,蘋果電腦

攻擊macOS系統最常見的方式之一便是使用帶有惡意宏的文檔,即通過微軟Office應用程式。雖然蘋果平台有很多高品質程式,很多用戶實際上還是更傾向於使用微軟Office,一方面是由於習慣,另一方面則是為了兼容同事們所創建的文檔。

當然,大家早已耳聞來自文檔中的宏的潛在威脅,因此微軟和蘋果都有自己的安全機制來保護用戶。

微軟會在用戶打開帶有宏的文檔時發出警告消息,當用戶仍然決定啟動宏的時候,代碼會在沙盒之內運行。據微軟開發人員聲稱,這可以防止代碼訪問用戶文件或者對系統造成傷害。

蘋果公司則在最新版本的macOS Catalina系統中引入了一些新的安全特性,包括文件隔離和防止來自外部的可執行程式啟動運行的”公證”。

簡單來說,這些安全技術結合起來應該足以防禦惡意宏,理論上來說一切都看似很安全。

漏洞利用鏈幫助宏逃逸沙盒

可是很多安全機制的實現方式都是存在問題的,因此研究人員(或者攻擊者)可能會發現繞過它們的方法,Wardle在他的演講中展示了一個漏洞利用鏈。

1. 繞過禁用宏的機制

以檢測文檔中存在宏並警示用戶的系統為例,通常情況下它可以像開發人員希望的那樣發揮作用。然而,即便已經在設置禁用宏,我們還是有辦法構造出允許宏自動運行而沒有任何提示的文檔。

可以通過Sylk(SLK)文件格式來實現這一目的,這種使用XLM宏語言的文件格式創建於上世紀80年代,最後一次更新是1986年。然而,出於向後兼容性的考慮,微軟公司的應用程式仍然支持Sylk格式。這一安全漏洞在2019年就曾被詳細描述過。

2. 沙盒逃逸

我們現在知道攻擊者可以隱蔽地運行宏,但是代碼運行在微軟Office的隔離沙盒中,黑客又是如何成功入侵電腦的呢?結果我們發現,在Mac系統中逃逸微軟沙盒並非難事。

攻擊者確實無法從沙盒內修改已經儲存在電腦中的文件,但是可以”創建”新的文件。該漏洞之前曾被利用來逃逸沙盒,似乎微軟已經發佈了修復漏洞的更新程式,然而問題並沒有真正解決,通過對更新檔程式詳細測試我們發現:這個更新檔程式治標不治本:它在開發人員認為不安全的地方阻攔了文件創建,比如LaunchAgents文件夾,該文件夾中的腳本程式會在系統重啟後自動運行。

但是誰能保證微軟在開發更新檔程式時考慮到了所有的”不安全地方”呢?之前發生過一例,通過Office文檔啟動的一個運行在沙盒內的Python腳本創建了一個叫做”Login Item”的對象。當用戶登錄系統時,該名稱的對象會自動啟動,由於該操作是由系統啟動,因此它會在沙盒的外部執行,從而繞過了微軟的安全限制。

3. 繞過蘋果的安全機制

我們現在知道瞭如何隱秘地運行宏程式並創建”Login Item”對象。當然,即使沙盒中的可疑進程創建了後門程式,macOS中的安全機制也會阻止它的啟動,對吧?

一方面來說,沒錯,蘋果的安全機制確實可以阻攔這種代碼的運行。另一方面,也有辦法繞過這一機制,如果將代碼放入ZIP存檔中作為Login Item,那麼下次用戶登錄時系統會自動解壓文件。

攻擊者接下來需要做的就是將文件解壓至合適的地方。比如,文檔可以和用戶的庫放在同一目錄,該目錄在Launch Agent類型對象(微軟可以檢測到這個)所在目錄的上一層,然後文檔本身可以包含一個名為LaunchAgents的目錄,並存放Launch Agent腳本。

一旦解壓之後,腳本會被放置於LaunchAgents文件夾中,並在系統重啟時運行。該腳本由可信任程式(Archiver,檔案庫工具)創建並且不帶有隔離屬性,因此它可以啟動更加危險的程式。安全機制甚至不會阻攔該文件的運行。

最終攻擊者可以通過啟動Bash命令終端來獲取遠程訪問權限(從而獲取所謂的反向終端)。該Bash進程可以被用來下載不帶有隔離屬性的文件,從而允許攻擊者下載並不受限制地運行真正的惡意代碼。

總結

  • 即便宏已經在設置中被禁用,攻擊者仍然可以秘密啟動惡意宏而不向用戶顯示任何警告或者詢問任何問題。攻擊者唯一需要的就是用戶下載並打開一個Office文檔。
  • 接下來,攻擊者逃逸微軟Office的沙盒,並創建一個Login Item對象和一個包含Launch Agent的存檔,該對像在下次用戶登錄時會自動運行在沙盒之外。
  • 只需幾步,攻擊者可以輕鬆繞過蘋果的安全機制,通過從ZIP存檔中解壓Launch Agent類型對象。躲開系統安全機制之後,程式可以下載並運行真正的惡意代碼。

如何在macOS系統中保護自己不受惡意宏的攻擊

當然,研究人員已經向微軟和蘋果公司匯報了他的發現,而且兩家公司也在公開漏洞之前悄悄將其修復,漏洞甚至都還沒有正式的CVE編號。不過從目前的形勢來看,只要認真分析研究安全機制,人們完全有可能找到繞過它們的方法。

在過去,macOS總被認為是足夠安全的系統,主要原因並不是它有特別高級的安全機制,而是攻擊者對它的忽視。然而,現在蘋果電腦已經越來越流行,甚至在企業環境內也是這樣,因此網路不法分子們也對攻擊macOS有了更大的興趣。

因此,為了維護系統安全,僅僅保持系統和軟體更新至最新版本是不夠的,你還需要可以檢測並阻攔可疑行為的安全解決方案,比如我們的安全產品,不管是家庭用戶版本還是企業用戶版本,都支持蘋果macOS系統。

資料來源: https://www.kaspersky.com/blog/black-hat-macos-macros-attack/36855/

Comments are closed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d 位部落客按了讚: