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

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

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

我們查看已經(jīng)被SearchPageInstaller攔截的網(wǎng)頁,可以發(fā)現(xiàn)SPI將攻擊者自定義的腳本添加到搜索結(jié)果頁面的頂部,從而替換其他的任何廣告:

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

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

之所以能做到這一點,是因為mitmproxy本質(zhì)上充當(dāng)了服務(wù)器和客戶端之間的“中間人”,創(chuàng)建了“動態(tài)的”虛擬證書,從而讓服務(wù)器認(rèn)為它是客戶端,讓客戶端認(rèn)為它是服務(wù)器。
借助SPI二進(jìn)制文件,就能夠?qū)崿F(xiàn)這一點,一旦系統(tǒng)請求用戶輸入密碼,它就會手動安裝mitmproxy CA證書。我們能夠在macOS 10.14 Mojave上檢測到此類攻擊:

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

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

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

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