防暴筆記
同一起事件可能拆成多篇:偵測、取證、舉證、復盤各自成文。文章日期為整理日期,事件期間寫在各篇開頭。
一台沒人看的排程機, 替別人挖了 356 天的礦
從「沒事做卻很忙」的矛盾出發,五條線索逐步逼出 rootkit、雙幣礦工與後門帳號。全程唯讀,未更動主機任何檔案。
錢包只在礦工活著時看得到: 從記憶體與封包挖出攻擊者的收款帳號
門羅幣查不到鏈上餘額,但礦池會記帳。用 /proc 記憶體與逼重連封包拿到錢包,再用礦池公開 API 證明「確實獲利」,而不只是「疑似挖礦」。
關機是最好的狀態: 離線掛載繞過 rootkit,然後把證據寄出去
在原機上算不出雜湊的檔案,離線掛到乾淨主機全部現形,還多挖出第二種幣。接著是證據包、保管鏈,以及四封真的有回音的檢舉信。
一把 Owner 金鑰, 被用了 15 天
一支 LINE Bot 用來讀寫試算表的服務帳戶金鑰,放了六年沒換,而且帳戶本身是專案 Owner。金鑰外洩後,攻擊者先盜用 AI 模型、再開 VM,直到 Google 停權整個專案我們才發現。
教學個案:一把 Google Service KEY JSON, 從外洩到停權的 15 天全紀錄
一支 LINE Bot 用來讀寫試算表的 GCP:Service Account,金鑰放了六年沒換,而且帳戶本身是專案 Owner。金鑰外洩後,攻擊者先盜用 AI 模型,再開 VM 轉手給別人大量下載,直到 Google 偵測到濫用、停權整個專案,我們才發現。這篇是內部教學版:每一步都標出為什麼能成功、哪一道控制擋得下來,最後附鑑識指令與討論題。
你的 VM 沒在挖礦, 它在幫別人撿鑰匙
三顆磁碟快照的離線解剖:一組 Rust 寫的分散式工具,用我們的網路和帳單,去全網掃別人網站上外洩的雲端金鑰。全部以防禦為目的,不含任何能重建武器的步驟。
金鑰已經換了, 真的每一把都換到了嗎?
從一次漏掉 JSON 私鑰的經驗,重建以「身分」為中心的憑證清冊、24 小時輪替流程,以及讓應用程式根本不需要持有私鑰的代理架構。
一封「Python 3.9 停止支援」的例行通知, 揭露了帳號裡不該存在的兩支 Lambda
從沒用過的區域裡多了兩支函式,程式碼只做一件事:隨機建一個 IAM 使用者,掛上 AdministratorAccess 與 SES 全權限,把密碼與金鑰回傳。這是一個能隨時自我補貨的後門。