連 AI 訤都淪陷!PyTorch Lightning 2.6.2 被植入「沙蟲」惡意碼
爬完文想裝個 PyTorch Lightning 來跑模型?先等等!資安公司 Semgrep 剛剛揭露,熱套件 lightning 的 2.6.2 與 2.6.3 版被植入代號「Shai-Hulud」的惡意碼,只要你在 CI、本機或任何一台電腦 pip install lightning,駭客就能打包帶走 GitHub Token、雲端金鑰,甚至連 Azure Key Vault 裡的密碼都直接外洩。
為什麼台灣工程師特別危險?
PyTorch Lightning 是台灣 AI 圈最愛用的訓練框架,從台大、清大實驗室到新創公司幾乎人手一套。只要你的專案裡出現以下版本號,就代表已經踩雷:
lightning==2.6.2lightning==2.6.3
更糟的是,這波攻擊鎖定「開發者電腦」與「CI 流水線」,也就是你本地筆電、學校工作站、GitHub Actions、GitLab Runner 全部中鏢。駭客只要拿到你存在裡的雲端憑證,就能開機器挖礦、偷資料、甚至把整個專案刪光光。
駭客到底偷了什麼?
根據 Semgrep 報告,惡意碼會在背景做這些事:
-
掃描 80+ 個常見路徑找憑證檔,包括:
.env、.aws/credentials、~/.ssh/id_rsa- 任何含有
ghp_、gho_、npm_的 token 檔(最大 5 MB)
-
直接呼叫 Azure DefaultAzureCredential 列舉你帳號下的所有訂閱,並把 Key Vault 面的密碼全部下載。
-
立即 HTTPS POST 到 C2 伺服器,走 443 埠,外觀就像一般 HTTPS 流量,防火牆也擋不了。
-
在專案裡植入持久化檔案,例如
.claude/、.vscode/目錄,下次你打開 VS Code 又自動執行。
3 步驟自救:現在就做,別等週末
步驟 1:檢查你的環境
# 看有沒有踩到地雷版本
pip list | grep -E "lightning\s+2\.6\.[23]"
# 有的話立刻移除
pip uninstall lightning -y
步驟 2:全域搜尋可疑資料夾
# 任何專案出現這兩個資料夾都要提高警覺
find . -type d -name ".claude" -o -name ".vscode" | xargs ls -la
如果裡面出現 __pycache__ 以外的 .py 或 .js 檔,先別打開,直接打包丟垃圾桶。
步驟 3:重設所有 Token 與金鑰
- GitHub:Settings → Developer settings → Personal access tokens → 全刪重建
- AWS:IAM 控制面板 → 把舊 key 設成停用 → 建立新 key
- Azure:Portal → Key Vault → 把所有 Secret 轉一圈
- 公司內部 Slack、Notion、Docker Hub 只要有綁定 token 都重來
記得:不要只刪不建,刪完立刻換新,否則你的 CI 會直接斷頭。
後續怎麼防?給懶惰工程師的三個懶人包
-
鎖版本+雜湧簽名
在requirements.txt裡指定「雜湊」而不是「版號」,例如:lightning==2.6.1 \ --hash=sha256:abcd1234...這樣即使駭客上傳惡意版,pip 也裝不進去。
-
CI 加一道「乾淨容器」
GitHub Actions 步驟裡多加:- name: pip install in clean container runs-on: ubuntu-latest container: python:3.11-slim讓套件先裝在一次性容器,就算中鏢也帶不走主機金鑰。
-
用 Semgrep 免費掃
官方已把 IOC 規則開源,裝好 CLI 後直接跑:semgrep --config=auto .有問題它會用紅字噴你,比人工肉眼快 100 倍。
結語:AI 工具再好用,也別盲目 pip
這次事件再次提醒,「套件」不等於「安全」。下次看到教學文叫你 pip install 某某 時,先瞄一眼版本號、發布日期、GitHub issue 有沒有哀號聲,再決定要不要按下 Enter。現在就打開終端機,照著上面三步驟檢查一遍,確定沒踩雷才能安心繼續調模型!