工作坊模組供應鏈投毒與憑證竊取診斷矩陣
Steam 工作坊(Steam Workshop)為《Garry's Mod》、《陰屍路:倖存者》、《拆遷》等沙盒遊戲託管了海量的社群創作擴充套件。駭客常採用「供應鏈投毒」手段:透過收購長期停更的高訂閱量模組,或利用釣魚郵件盜取原作者 Steam 帳號,隨後推送夾帶惡意代碼的靜默更新。受害玩家的本機客戶端會在背景自動拉取更新,觸發木馬下載、後門對外連線或盜取瀏覽器 Cookie 與 Steam 工作階段憑證。
| 攻擊載荷類型 | 底層執行機理 | 目標竊取資產 | 典型異常徵兆 |
|---|---|---|---|
| 混淆 Lua 腳本 | Base64/XOR 深度加密字串與 RunString 動態執行 | Discord Token、瀏覽器密碼庫 | 防毒軟體警報 addons 快取目錄 |
| HTTP 隱蔽對外連線通道 | 調用遊戲內 http.Fetch 或 http.Post 回傳資料 | Steam 工作階段 Cookie、硬體機器碼 | 單機離線模式下向未知 IP 發起網路請求 |
| 二進位載入器(Dropper) | Lua 引導釋放外部惡意動態連結庫(.dll) | 取得系統最高權限、植入挖礦木馬 | Windows Defender 攔截未知擴充 DLL |
| 工作坊自動推送更新 | 創作者帳號被盜後推送靜默版本更新 | 玩家本機無感知靜默執行 | 進遊戲突然彈出未知視窗或遊戲無故閃退 |
第一步:排查本機工作坊快取中的混淆腳本
工作坊下載的模組檔案儲存在 Steam 安裝庫的特定數字資料夾內:
- 開啟目標遊戲的工作坊實體快取目錄:
[SteamLibrary]\steamapps\workshop\content\[遊戲AppID]\
(例如《Garry's Mod》的 AppID 為 4000)。
2. 使用 PowerShell 在該目錄內全域深度檢索高風險動態執行函式:
Get-ChildItem -Path "[SteamLibrary]\steamapps\workshop\content\4000" -Recurse -Filter "*.lua" | Select-String -Pattern "compilestring", "RunString", "fromhex", "base64"
- 正常的單機或連線 Mod 極少對核心玩法邏輯採用多層 Base64 巢狀加密。若檢索結果中包含大量亂碼字串、或直接包含遠端 URL 請求,應立即視為高風險可疑物件。
第二步:監控可疑網路回傳與 C2 遠端連線
排查 Mod 是否在單機狀態下暗中向外發送竊密資料:
- 下載並執行微軟官方 Sysinternals 工具組中的
TCPView。 - 在處理程序列表中篩選該遊戲主程式(如
hl2.exe或ProjectZomboid64.exe)。 - 啟動遊戲並載入單人離線存檔。
- 觀察 TCPView:若在單機遊戲中,該處理程序持續向未知境外 IP 位址、Discord Webhook 介面或短網址網域發起 HTTP/HTTPS 連線,代表當前啟用的模組中存在惡意對外連線木馬。
- 立即在工作管理員中強制結束遊戲處理程序。
第三步:應急響應、帳號重設與安全加固
一旦確認載入了投毒模組:
- 立即在 Steam 工作坊中點選「取消訂閱全部項目」,並徹底實體刪除
steamapps\workshop\content\[AppID]對應資料夾。 - 強制登出所有其他裝置的登入工作階段:
- 開啟 Steam 客戶端 > 設定 > 安全性 > 點選「取消對所有其他裝置的授權」。
- 使用未受感染的裝置(如手機)立刻修改 Steam 帳號密碼。
- 啟動 Windows Defender 深度離線掃描,清除潛在的常駐後門:
Start-MpWDOScan
- 登入 Steam 開發者 API 頁面(
https://steamcommunity.com/dev/apikey),若發現存在未經許可註冊的 API Key,必須立即點選「撤銷」,切斷中間人攔截通道。