惡意軟件開發者一直在尋找新的方法來避免被檢測到,以此來攫取更高的利潤,下面我們將介紹一個最近發現的案例。
最近,我們仔細研究了SPI惡意廣告軟件,它利用開源mitmproxy攔截流量并注入廣告, mitmproxy是一款http代理工具,即可用于中間人攻擊,也可用于html抓包調試。
SearchPageInstaller廣告軟件
SearchPageInstaller(SPI)是一個至少從2017年以來,就開始活躍的廣告軟件。根據我們的研究,它也是第一次使用mitmproxy的。不過,早在2017年12月mac360.com上的一個帖子中,就有人注意到這種聯系了,并且通過對一些代碼組件的分析表明,這種惡意軟件可能是在幾個月前開發的,可能是在2017年8月左右開發的。

惡意軟件采用了一種新穎的方法來從廣告中獲得收入, SPI不是簡單的將瀏覽器重定向到不需要的頁面,而是在用戶搜索返回的html文檔頂部插入廣告。為了實現這個意圖,SPI會首先在受感染的計算機上啟用HTTP和HTTPS代理,可以在“系統偏好設置”的的proxy選項卡中看到這一點。

在命令行上,通過 system_profiler SPNetworkDataType | grep 'Proxy Enabled'.

對一個被SearchPageInstaller截獲的網頁進行檢查,我們會發現插入的SPI自己選擇的添加到搜索結果頂部的腳本,這樣它就可以替換任何其他廣告:

該腳本來自chaumonttechnology.com,這是一個僅被VirusTotal上的兩個檢測引擎識別為惡意的腳本。

實施中間人攻擊
對于web代理,SPI使用一個開源的HTTPS代理mitmproxy,用這個inject.py腳本將惡意腳本注入到網頁中。

之所以能夠這樣做,是因為mitmproxy本質上充當服務器和客戶機之間的“中間人”,“動態地”創建虛擬證書,以使服務器相信它是客戶端,而客戶端則認為它是服務器。
這是在SPI二進制文件的幫助下實現的,一旦用戶的登錄密碼被惡意腳本獲取,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連接時,忽略與給定正則表達式模式匹配的某些域,這可能是為了避免在使用證書綁定保護流量時出錯。
然后,mitmdump進程會繼續生成一個shell進程,該進程會調用uname實用程序,來獲取有關設備結構的信息。使用SentinelOne EDR功能,我們可以檢查每個進程的所有網絡流量,無論它是加密的還是純http。

一旦我們看清了惡意軟件的功能,我們就可以使用管理控制臺將計算機回滾到感染前的狀態。
總結
雖然觀察到的SPI行為似乎表明它只不過是一個風險相對較低的廣告軟件活動,但它卻有著能夠操縱普通的http和加密流量的功能。傳統的殺毒軟件可能會將像mitmproxy這樣的進程列入白名單,因為它是一個具有合法用途的開發工具,目前只有少數的網絡安全方案能夠將其識別為具有真正威脅的子進程。
|