![]()
2026年2月初,npm注冊表上出現了一批"演技精湛"的惡意包。它們不會觸發任何殺毒軟件警報,也不會在代碼里留下明顯的可疑字符串。相反,它們會耐心模擬一次完整的安裝過程——進度條、日志、隨機延遲,一應俱全。
開發者看到的界面和平時執行npm install時幾乎沒區別。問題只有一個:那些正在"下載"的包根本不存在,名字是從硬編碼列表里隨機抽的。ReversingLabs的研究人員給這場行動起了個名字:Ghost campaign。
假安裝界面如何騙過老手
攻擊的起點是七個由用戶"mikilanjillo"發布的包:react-performance-suite、react-state-optimizer-core、react-fast-utilsa、ai-fast-auto-trader、pkgnewfefame1、carbon-mac-copy-cloner,以及coinbase-desktop-sdk。命名策略很直白——蹭React生態、蹭AI熱點、蹭Coinbase品牌,全是開發者會主動搜索的關鍵詞。
真正讓研究人員警覺的是安裝階段的交互設計。惡意包會輸出一條精心構造的錯誤信息:聲稱因缺少對/usr/local/lib/node_modules的寫入權限,無法安裝某些依賴。這是Node.js的全局安裝目錄,普通用戶確實沒權限往這里寫東西。
解決方案被"貼心"地附在錯誤提示里:請使用sudo重新運行安裝命令。一旦開發者照做,惡意代碼便獲得了最高系統權限。這種設計把社會工程學嵌入了技術流程的縫隙——不是強迫你犯錯,而是讓你以為自己在解決一個常見報錯。
ReversingLabs在2026年2月初首次識別出這一模式。他們指出,用偽造的安裝日志掩蓋惡意行為,在開源供應鏈攻擊中屬于新出現的戰術升級。過去攻擊者傾向于隱藏存在感,這次卻選擇主動制造"正常"的感知。
![]()
RAT的投遞鏈與Telegram樞紐
權限到手后,真正的載荷才開始落地。Ghost campaign部署的是一款遠程訪問木馬(RAT),功能清單包括:竊取加密貨幣錢包、收集敏感數據、接收攻擊者服務器的遠程指令。整個過程被設計為后臺靜默運行,維持長期、隱蔽的訪問通道。
載荷的獲取方式暴露了這個組織的運營習慣。多數情況下,惡意代碼會從Telegram頻道拉取Payload URL和解密密鑰——用即時通訊平臺做C2基礎設施,既便宜又難追溯。coinbase-desktop-sdk包則用了另一條路徑:偽裝成區塊鏈文檔的web3帖子,托管在teletype.in上。
這種"文檔即服務"的投遞方式值得注意。Teletype.in允許用戶發布格式化的技術內容,攻擊者把配置信息藏在一篇看起來像官方API說明的文章里。開發者如果出于好奇去查看"文檔",只會看到一堆無害的文字,真正的指令被編碼在特定段落或鏈接參數中。
JFrog在2026年3月追蹤到了一個關聯集群,命名為GhostClaw。技術分析顯示,它與Ghost campaign共享技術特征和基礎設施,說明這不是孤立事件,而是一場有持續投入的行動。Jamf Threat Labs的進一步研究則揭示了傳播渠道的多樣性:攻擊者會在GitHub上創建看似合法的開發者工具倉庫,比如交易機器人和各類SDK。
這些倉庫的運營節奏很有耐心。初期只上傳干凈代碼,保持長期不活躍,積累star和fork以建立信任基礎。等到倉庫看起來足夠"正常",惡意組件才會被引入。這種"養號"策略把GitHub的社交證明機制變成了攻擊的前置條件。
開源供應鏈的"信任折舊"問題
![]()
Ghost campaign的狡猾之處在于它對開發者習慣的精準利用。npm install的輸出本來就不是標準化格式,不同包管理器版本、不同網絡環境下的日志樣式千差萬別。攻擊者制造的"正常感"恰恰利用了這種多樣性——既然沒人能準確描述"正常"長什么樣,偽造也就更難被識別。
sudo密碼的騙取環節尤其體現了這種設計思維。它不是通過技術漏洞突破防線,而是把權限提升包裝成用戶主動選擇的解決方案。開發者面對報錯時的第一反應往往是搜索關鍵詞、復制粘貼推薦命令,而不是質疑報錯本身的真實性。
ReversingLabs的研究人員提到,這種將社會工程與技術流程深度融合的攻擊方式,代表了開源生態系統威脅模型的演進方向。過去供應鏈攻擊多依賴拼寫錯誤的包名(typosquatting)或已知漏洞的利用,Ghost campaign則展示了更高階的欺騙能力:它不是在模仿某個具體的東西,而是在模擬"一切正常"的狀態。
從時間線看,這場行動的發起時機也有講究。2026年初,React生態正處于版本迭代期,AI工具鏈的概念熱度仍在高位,加密貨幣市場經歷了新一輪波動后重新吸引開發者關注。攻擊者的命名策略精準踩中了這些流量入口。
七個初始包被下架后,關聯集群GhostClaw的出現表明基礎設施具有可復用性。Telegram頻道和teletype.in帖子的低成本特性,讓攻擊者可以快速調整投遞路徑。GitHub倉庫的"養號"模式則意味著,即使某個具體倉庫被封,之前積累的信任資產可以遷移到新的身份上。
對于每天執行數十次npm install的開發者來說,Ghost campaign提出了一個尷尬的問題:當安裝界面本身成為攻擊面,視覺上的"正常"還能作為安全判斷的依據嗎?npm registry的開放性設計允許任何人發布包,這種便利性的代價正在以新的形式顯現。
目前尚無公開信息表明"mikilanjillo"這一身份已被溯源到真實個人或組織。七個初始包的下載量、受害范圍的具體數據也未披露。Ghost campaign的RAT載荷是否針對特定加密貨幣錢包、是否存在地域或行業的定向偏好,這些細節仍有待更多樣本的分析。
如果下一次安裝依賴時,進度條走得太"標準"、報錯提示太"貼心",你會先檢查包的發布者歷史,還是直接輸入sudo密碼?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.