![]()
開源項目的信任鏈,正在被國家級的耐心擊碎。
3月31日,一個被超過1500萬項目依賴的JavaScript庫Axios,在npm倉庫發布了兩個惡意版本。從代碼上傳到被緊急撤下,窗口期只有3小時——但足以讓數千臺開發者的電腦成為朝鮮黑客的跳板。這不是一次倉促的撞庫攻擊,而是一場耗時兩周的"社交工程圍獵"。
兩周的"入職流程"
攻擊的起點比大多數人想象的更早。Axios維護者Jason Saayman在事后復盤中寫道,黑客大約在3月中旬就開始接觸他——比實際投毒早了整整14天。
他們的劇本相當完整:偽造一家真實存在的科技公司,搭建逼真的Slack工作空間,用多名"員工"的虛假賬號輪番互動。Saayman收到的會議邀請看起來和日常商務溝通毫無區別,直到他點擊下載"會議必需的更新程序",電腦權限便悄然易主。
這種手法與Google安全團隊此前歸因于朝鮮黑客的攻擊模式高度吻合——誘騙受害者主動交出遠程控制權限,繼而竊取加密貨幣。
區別在于,這次的目標不是錢包,而是代碼倉庫。一旦控制Saayman的機器,黑客直接以維護者身份向Axios推送更新,惡意代碼便順著正常的軟件分發渠道流向全球。
三小時的"靜默感染"
被污染的版本號1.8.2和1.8.3在3月31日上線,攜帶的載荷會掃描受影響電腦的瀏覽器存儲、本地配置文件,提取私鑰、憑證和密碼。對于開發者而言,這意味著不僅個人資產面臨風險,其供職企業的內部系統也可能被連鎖突破。
npm團隊在3小時后完成下架,但依賴自動更新的CI/CD流水線早已將惡意版本拉入無數構建流程。Saayman未回應后續置評請求,感染規模的最終數字仍在統計中。
這起事件暴露的漏洞并不新鮮:開源生態的維護者往往是個人或極小團隊,卻守護著千萬級用戶的信任。Axios的周下載量穩定在數千萬量級,其核心維護者長期只有Saayman等少數幾人。
當國家級的資源投入(偽造公司、長期潛伏、多角色配合)撞上這種不對稱的防御結構,成功率遠比撞庫攻擊高得多。
朝鮮黑客的"外匯創收"
將開源供應鏈作為攻擊面,對朝鮮而言是性價比極高的選擇。聯合國制裁將該國排除在全球金融體系之外,而加密貨幣盜竊已成為其核計劃的主要資金來源之一。
2025年尚未過半,朝鮮黑客已被追蹤到至少20億美元的加密資產失竊案。這些資金繞過SWIFT制裁網絡,直接轉化為導彈燃料和離心機零件。
執行攻擊的" Lazarus Group"等組織據信擁有數千名成員,其中多數是在國內被強制征召的技術人員。他們的工作條件與外部認知中的"黑客浪漫"毫無關系——更像是數字時代的強制勞動營。
但技術輸出的質量不容小覷。從2014年索尼影業入侵到2017年WannaCry勒索病毒,再到近年針對DeFi協議的精密釣魚,朝鮮黑客的行動軌跡顯示其具備長期潛伏、多階段滲透的戰術能力。
Axios事件的特殊性在于,攻擊者沒有利用任何技術漏洞,而是完全繞過了代碼層面的審查機制——他們騙過了人,從而騙過了系統。
開源信任的"單點故障"
事件發生后,技術社區的反應呈現兩極。一部分開發者呼吁強制推行多因素簽名發布(即任何代碼更新需多名維護者共同授權),另一部分則認為這會增加貢獻門檻,加速開源維護者的 burnout。
更深層的矛盾在于:現代軟件基礎設施高度依賴少數"關鍵節點"項目,但這些項目的治理結構往往停留在業余愛好者階段。Axios的GitHub倉庫顯示,其核心代碼的實質性審查長期依賴Saayman的個人判斷——這在日常迭代中運轉良好,卻扛不住有組織的國家級滲透。
npm等包管理平臺并非沒有安全機制。惡意版本被快速下架,說明自動化掃描在一定程度上生效。但掃描依賴特征庫,而定制化的間諜軟件往往能通過初篩。真正的防線其實在更上游:維護者能否識別偽造的商務合作,能否在"下載會議插件"的瞬間保持警覺。
這幾乎是一個不可能的任務。開源維護者的日常工作已經包括修復漏洞、回應issue、協調貢獻者,現在又需要疊加反間諜訓練?
朝鮮黑客的14天潛伏,本質上是在測試一個假設:當攻擊成本足夠高(時間、資源、角色扮演),開源社區的"善意默認"能否被擊穿。Axios事件給出了肯定的答案。
事件的一個細節值得玩味:黑客選擇的偽裝目標是一家真實存在的科技公司,而非完全虛構的實體。這種"借殼"手法增加了驗證難度——當Saayman搜索公司名時,確實會找到對應的網站和LinkedIn頁面,只是聯系人郵箱的域名多了一個不易察覺的字符。
類似的攻擊模式正在其他開源項目周圍浮現。安全廠商Phylum在4月初的報告指出,同一批朝鮮黑客至少同時接觸了多名高影響力npm包的維護者,Axios只是其中得手的一例。
這意味著什么?對于依賴開源基礎設施的企業而言,供應鏈安全的預算可能需要重新計算——不僅要審計直接依賴的代碼,還要評估上游維護者的"被社工風險"。
而對于個人開發者,Saayman的復盤帖末尾有一條未被廣泛轉載的備注:他在點擊惡意鏈接前,曾短暫猶豫過"為什么這家公司的Slack邀請來自陌生域名",但最終還是被"會議即將開始"的時間壓力推著完成了操作。
這種情境熟悉嗎?下一次收到緊急會議邀請時,你會多花30秒驗證發件人的域名拼寫嗎——尤其是當對方已經和你"同事"了兩周?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.