我們針對SPI廣告惡意軟件進行了深入分析,發現該軟件利用開源的mitmproxy攔截流量,并注入廣告。
長期以來,惡意軟件作者始終在尋找或創造新的方法,來避免檢測,并產生收益。在上周,我們監測到macOS中出現了一種新型惡意軟件,使用了此前沒有見過的技術。由此,我們啟動虛擬機,開始對這一惡意軟件進行詳細分析。
本文是我們針對這一惡意軟件得出的分析結論。
老瓶裝新酒
SearchPageInstaller(SPI)是自2017年以來持續活躍的廣告惡意軟件,但最近我們首次發現,該惡意軟件的新變種使用到了mitmproxy。事實上,我們根據2017年12月在mac360.com上發表的一個帖子以及其下方的討論中,就已經注意到了這種聯系。并且,根據我們對一些代碼組件的分析,我們認為這一惡意軟件可能是在幾個月前開發的,大概是在2017年8月左右。原因在于,我們發現該文件中包含日期(以美國的日期格式書寫):

惡意軟件采取了一種新穎的方法,以從廣告中獲得收入。SPI并沒有簡單地將瀏覽器重定向到用戶沒有實際訪問的頁面,而是將廣告注入到用戶搜索返回的HTML文檔的頂部。為此,它首先在被感染的計算機上啟用HTTP和HTTPS代理,我們可以在“系統偏好設置”(System Preferences)-“網絡”(Network)的“代理”(Proxies)選項卡中看到證據:

在命令行中,輸入system_profiler SPNetworkDataType | grep ‘Proxy Enabled’,可以看到:

我們查看已經被SearchPageInstaller攔截的網頁,可以發現SPI將攻擊者自定義的腳本添加到搜索結果頁面的頂部,從而替換其他的任何廣告:

該腳本來自chaumonttechnology.com,這個域名僅被VirusTotal上的兩個反惡意引擎識別為惡意:

中間人攻擊
至于Web代理,SPI使用了mitmproxy,這是一個開源的HTTPS代理。具體來說,它使用inject.py腳本,將腳本注入到網頁主體中:

之所以能做到這一點,是因為mitmproxy本質上充當了服務器和客戶端之間的“中間人”,創建了“動態的”虛擬證書,從而讓服務器認為它是客戶端,讓客戶端認為它是服務器。
借助SPI二進制文件,就能夠實現這一點,一旦系統請求用戶輸入密碼,它就會手動安裝mitmproxy CA證書。我們能夠在macOS 10.14 Mojave上檢測到此類攻擊:

如果獲得授權,那么惡意軟件會將啟動“中間人”攻擊所需的mitmproxy CA證書和其他憑據寫入位于~/.mitmproxy中的隱藏文件夾:

檢測
正如我們所看到的那樣,當啟動SearchPageInstaller時,它首先會嘗試獲取安裝新證書的權限。然后,立即對網絡代理設置進行更改,這一更改操作實際上也需要管理員的批準,因此會彈出另一個身份驗證請求。SPI的行為會立即觸發SentinelOne代理的響應,我們這次以macOS 10.12.6 Sierra的安裝過程為例:

但是,由于我們正在進行惡意軟件的分析,因此我們決定不阻止威脅,而是使用SentinelOne管理控制臺獨有的EDR功能來觀察其行為。
在允許惡意軟件繼續執行后,我們就能夠看到整個攻擊的全貌,能清晰看到每個惡意軟件進程的創建過程,以及所有生成的事件:

右側面板中的視圖,展示了當前選定的事件。在這種情況下,我們執行mitmdump binary,這是一個帶有mitmproxy的命令行工具。
Mitmdump工具可以查看、記錄和程序化轉換HTTP流量。我們可以借此看到調用inject.py腳本和提供的參數的進程。在這里,mitmproxy在通過HTTPS連接時,會忽略正則表達式模式匹配的某些域名,其原因可能是為了避免在使用證書鎖定(Certificate Pinning)保護流量過程中出現錯誤。
|