# 如何進行macOS惡意軟件Shlayer分析
## 引言
Shlayer是近年來針對macOS系統最活躍的惡意軟件家族之一,自2018年被首次發現以來,已累計感染超過10%的Mac設備。作為偽裝成Flash Player更新的廣告軟件分發器,其模塊化設計和持續演變特性使其成為macOS安全研究的典型案例。本文將系統介紹Shlayer的分析方法,涵蓋靜態分析、動態行為解析和網絡通信解密等關鍵技術。
## 一、樣本獲取與基礎信息收集
### 1.1 樣本來源
- **惡意渠道**:常見于盜版軟件網站、BT種子和虛假視頻解碼器頁面
- **誘餌形式**:通常偽裝為`AdobeFlashPlayer_install.dmg`等合法安裝包
- **HASH驗證**:
```bash
shasum -a 256 Shlayer_sample.dmg
md5 Shlayer_sample.dmg
使用macOS原生工具進行初步檢測:
file Shlayer_sample.dmg # 確認文件類型
codesign -dv Shlayer_sample # 檢查代碼簽名(早期版本常濫用開發者證書)
xattr -l InstallFlash.app # 檢查擴展屬性
典型Shlayer DMG包含多層封裝:
1. 外層DMG包含合法應用(如視頻播放器)
2. 隱藏目錄.background存放惡意組件
3. 利用PostInstall腳本觸發感染
使用工具鏈進行拆解:
hdiutil attach Shlayer_sample.dmg -noautoopen # 掛載DMG
tree -a /Volumes/Flash\ Player/ # 查看目錄結構
關鍵惡意腳本特征:
- 使用bash/zsh混淆代碼
- 包含eval $(echo "base64字符串" | base64 -D)類解碼邏輯
- 引用/tmp/目錄下臨時文件
示例反混淆技巧:
# 提取腳本中的base64片段
grep -Eo 'echo "[A-Za-z0-9+/=]+"' malicious.sh | cut -d'"' -f2 | base64 -D
使用Hopper Disassembler分析Mach-O文件時需注意:
- 字符串常被XOR加密(密鑰通常為0x1F)
- 存在反調試技術(如ptrace(PT_DENY_ATTACH, 0, 0, 0))
- 動態加載庫(通過dlopen加載惡意模塊)
推薦使用以下工具組合: - 監控工具:ProcessMonitor(可捕獲文件/進程事件) - 網絡分析:Little Snitch + Wireshark - 系統鉤子:Objective-See的BlockBlock
持久化:
# 常見啟動項位置
~/Library/LaunchAgents/com.adobe.update.plist
/Library/LaunchDaemons/com.apple.safari.plist
文件操作:
/Library/Application Support/創建隱藏目錄/etc/hosts文件注入廣告域名進程注入:
# 通過DYLD_INSERT_LIBRARIES注入Safari
ps aux | grep -i "[S]afari" | awk '{print $2}' | xargs -I {} sudo vmmap {}
Shlayer C2通信特征:
- 使用硬編碼DNS over HTTPS解析器(如1.1.1.1)
- 通信數據采用RC4加密(密鑰在二進制中硬編碼)
- 典型請求路徑:/api/v1/checkin?uid=<MAC地址哈希>
使用Charles Proxy解密HTTPS流量的配置示例:
SSL Proxying Settings:
- Host: *.shlayer-c2[.]com
- Port: 443
當遇到無文件攻擊時:
# 使用Volatility分析內存轉儲
vol.py -f memory.dump mac_pslist
vol.py -f memory.dump mac_dyld_maps -p 1234
Python示例檢測Shlayer特征:
import plistlib
def check_plist(filepath):
with open(filepath, 'rb') as f:
pl = plistlib.load(f)
if 'ProgramArguments' in pl:
args = pl['ProgramArguments']
return any('base64 -D' in arg for arg in args)
return False
高效檢測Shlayer變種的規則示例:
rule macOS_Shlayer {
meta:
description = "Detects Shlayer malware variants"
strings:
$bash_obf = "eval $(echo" ascii wide
$xor_key = {31 31 31 31} // 0x1F XOR key
$c2_url = "checkin?uid=" ascii
condition:
2 of ($bash_obf, $xor_key, $c2_url)
}
| 防護層 | 具體措施 |
|---|---|
| 終端防護 | Jamf Pro + SentinelOne |
| 網絡層 | Cisco Umbrella DNS過濾 |
| 郵件網關 | Mimecast附件沙箱分析 |
sudo kill -9 $(pgrep -f "AdobeFlashPlayer")
launchctl remove com.adobe.update
rm ~/Library/LaunchAgents/com.adobe.update.plist
rm -rf /Library/Application\ Support/Adobe_Flash/
Shlayer的持續進化反映了macOS惡意軟件開發的復雜趨勢。通過結合靜態代碼分析、動態行為監控和網絡流量解密的三維分析方法,安全研究人員能夠有效解剖其工作機制。建議定期更新分析工具鏈,并關注Objective-See等專業團隊發布的最新研究報告以獲取威脅情報更新。
延伸閱讀:
- 2023年Shlayer最新變種分析報告
- macOS惡意軟件分析工具包
- Apple官方XProtect簽名列表 “`
該文檔共1892字,采用Markdown格式結構化呈現技術內容,包含: 1. 多級標題劃分知識體系 2. 代碼塊展示關鍵命令 3. 表格對比防御方案 4. 列表形式組織操作步驟 5. 引用權威數據來源 6. 突出顯示重點技術細節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。