用一句話概括問題
下次 AI助理推薦了一個要安裝的軟體包你會真的去檢查那個軟體包是否存在嗎?大多數開發者都不會。建議與驗證之間的這種脫節正是惡意搶注軟體包攻擊的根源所在,也正因如此,了解惡意搶注軟體包攻擊的演變過程以及切實可行的預防措施,已成為應用安全和開發安全運維團隊的當務之急。
什麼是蹲姿攻擊?
蹲姿攻擊是一種變體 搶注 (註冊網域名稱或軟體包名稱時,透過常見的拼字錯誤來模仿合法網域名稱或軟體包名稱的做法,例如) 請求 而不是 請求(希望使用者自己的拼字錯誤直接導致他們造訪該網域),但兩者的一個重要區別在於錯誤來源。拼字錯誤搶注利用的是人為的拼字錯誤,而拼字錯誤搶注攻擊則利用的是大型語言模型(LLM)的錯誤:LLM「臆想」出一個聽起來完全合法但實際上並不存在於任何公共註冊表中的包名,攻擊者搶先一步註冊了這個名稱,從而搶佔了先機。
典型的蹲伏攻擊背後的機制很簡單,而正是這種簡單性使其有效:
- 一位開發者請求人工智慧助理幫忙解決一個程式設計問題。
- 此模型產生的解決方案會匯入或建議安裝從未存在過的軟體包。
- 攻擊者註意到多個模型不斷重複使用同一個虛構的名稱,便將該軟體包註冊到 npm、PyPI 或其他公共註冊表中,並在其中植入惡意程式碼。此時,虛構的名稱就變成了真正的網域搶注攻擊。
- 下一個收到相同建議但沒有進行驗證的開發人員,安裝了現在已生效的軟體包,這相當於在其環境中打開了一個後門。
「slopsquatting」一詞是由 Python 軟體基金會的常駐安全開發人員 Seth Larson 創造的,並由 Andrew Nesbitt 推廣開來,用來描述這種模式:一種「軟體包幻覺」變成了一種攻擊途徑。
非法佔地演變:一項研究的好奇心如何演變成真正的威脅
值得注意的是,非法佔屋行為的演變不僅在於其概念;更在於它從一項研究觀察迅速發展成為一種有記錄、可衡量的攻擊類型。
2023年:第一個警訊。 安全研究員巴爾·拉尼亞多 注意到幾位法學碩士反覆推薦一個名為“ 擁抱臉-cli該軟體包並不存在(真正的軟體包是透過以下命令安裝的): pip install -U “huggingface_hub[cli]”為了演示這種風險,他將該軟體包的一個空白版本上傳到了一個公共註冊表。短短三個月內,該軟體包的下載量就超過了30,000萬次,而且他沒有做任何推廣。這個虛構的名稱甚至出現在了與阿里巴巴研究相關的一個代碼庫的README文件中,這很早就表明了這些“虛假”名稱是如何洩露到真實文檔中,並為隨後出現的域名搶注攻擊埋下伏筆的。
2024 年:風險從研究人員的部落格文章轉移到主流科技報道。 在3月2024, 註冊 報導稱,人工智慧模型能夠自信地創建軟體包名稱,而開發者隨後會下載這些軟體包,其中一些可能已被植入惡意軟體。該報道的意義不在於其技術層面的揭示,而在於其所傳遞的訊息:huggingface-cli 案例不再是孤例;它是主流科技媒體關注的、足以引起重視的模式的首次顯現,而一年後,一項大規模學術研究證實了這一模式的嚴重性。
2025 年:首次對此問題進行嚴格的大規模測量。 論文 “我們為您準備了一份資料包!一份關於代碼生成LLM的包幻覺的綜合分析” (Spracklen 等人,在 USENIX 安全 本次研討會測試了 16 種程式碼產生模型,包括商業模型(GPT-4、GPT-3.5)和開源模型(CodeLlama、DeepSeek、WizardCoder、Mistral),測試樣本包含 576,000 個 Python 和 JavaScript 程式碼。研究結果標誌著「代碼搶注」現象發展的一個明確節點,使其從軼事走向了數據:
- 模型推薦的套餐中,有些並不存在。
- 開源模型出現幻覺的頻率高很多( 平均而言)比商業模式() ).
- 其中最嚴重的兩個程式 CodeLlama 7B 和 CodeLlama 34B 在超過三分之一的輸出中出現了幻覺。
- 在所有測試模型中,研究人員記錄了超過 205,000 個獨特的幻覺包裝名稱一個足夠大的水池,足以支撐跨越多個生態系統的持續性非法佔地攻擊。
- 一個與預防特別相關的細節:大致 幻覺名稱與真實包裹非常相似,這降低了人們一眼就能發現它們的幾率。
這項研究的關鍵細節,或許也是網域搶注攻擊加速發展而非逐漸消亡的原因,在於虛構的名稱並非隨機生成,而且並非每次嘗試都會改變。相同的模型在面對相似的提示時,往往會重複使用相同的虛構名稱,這意味著攻擊者無需猜測。他們只需觀察模型的行為,識別出反覆出現的名稱,並在真正的開發者之前註冊它們即可。對這種可重複性的後續分析發現,當研究人員對相同的提示重複運行十次時,43% 的虛構包名稱在每次運行中都會出現,58% 的名稱重複出現不止一次,這表明大多數虛構名稱是可重複的產物,而非一次性的噪音。正是這種可重複性,使得一次性的虛構名稱能夠演變成可擴展的域名搶注攻擊。
2026年:從孤立包裹到自主代理。 今年已經出現了迄今為止最清晰的證據,表明「草率佔位」不再局限於開發者複製貼上推薦內容。 點安裝 or npm安裝 命令。 2026年1月,研究人員 查理·埃里克森 Aikido Security 發現,人工智慧編碼代理程式已經傳播了引用一個虛構的 npm 套件的指令。 react-codeshift (一個可能將兩個真實工具混淆的名稱, jscodeshift 以及 react-codemod該惡意軟體已在 237 個軟體倉庫中出現,至今仍有代理程式每天嘗試安裝它。埃里克森出於防禦目的,在攻擊者利用該名稱進行攻擊之前就註冊了該名稱。此外,一個名為「」的真實惡意軟體包也已出現。 未使用的導入以幻覺代替了合法的 eslint-plugin-unused-imports儘管 npm 已將其置於安全限制之下,但該專案在 2026 年初仍保持著每週約 233 次的下載量,這表明即使被標記,搶注資源的攻擊仍能持續吸引受害者很長時間。最近,在 2026 年 7 月,研究人員描述了一種名為「HalluSquatting」的相關技術,該技術將人工智慧幻覺與提示注入相結合,使得代表用戶獲取幻覺資源的人工智慧編碼代理可以被劫持,從而運行攻擊者提供的程式碼,進一步擴展了搶注資源攻擊的演變,使其從主動式安裝風險演變為在智能體開發工作流程中被動執行程式碼。
為什麼「氛圍編碼」擴大了蹲姿攻擊的範圍
如果人工智慧產生的程式碼只是小眾做法,那麼網域搶注攻擊的影響就不會太大。但事實並非如此。編碼助手、自主代理以及「直覺編碼」工作流程的興起(開發者在運行程式碼前審查程式碼的次數越來越少)從兩個方面切實地改變了軟體攻擊面,而這兩方面都在加速域名搶注攻擊的演變:
- 切入點不再只是開發者。 過去,域名搶注攻擊通常依賴單一使用者的拼字錯誤。而現在,錯誤可能源自於模型內部,並傳播給數百名提出類似問題的開發者,導致他們得到相同的錯誤建議,從而成倍擴大了域名搶注攻擊的影響範圍。
- 攻擊面已經進一步上移。 僅僅監控人類編寫的程式碼已經遠遠不夠了。團隊還需要監控 AI 助理建議的依賴項、它連接的 MCP 伺服器,以及那些無需人工審核即可自主安裝軟體套件的代理程式。傳統的應用安全機制旨在審查程式碼庫和人工審核。 commits 從未被設計用來觀察開發者、人工智慧和軟體包註冊表之間的這種新的交互,而這正是 lopsquatting 攻擊現在隱藏的地方。
這並不意味著生成式人工智慧本質上是不安全的。而是說它引入了一種新型的供應鏈風險,這種風險是傳統安全工具無法應對的,因此需要遵循我們已應用於任何外部依賴項的驗證原則:不要默認信任,要驗證來源,並且要自動化驗證過程,而不是依賴每個開發人員的記憶或警覺性。這種自動化是任何真正有效的防止惡意搶注策略的基礎。
防止球隊蹲守:球隊今天可以做些什麼
好消息是,防止濫用程式碼並不需要特殊的工具。它只需要係統地應用現有的依賴關係管理實踐,但許多團隊一旦被他們信任的人工智慧「推薦」了程式碼,就會放鬆警惕。有效的濫用程式碼預防方法通常會結合以下幾點:
- 在安裝任何新軟體包之前,請手動驗證其完整性。尤其當它是人工智慧助理推薦的內容時更應如此。務必確認它是否存在於官方註冊表中,由誰維護,發佈時間,以及下載量是否真實。養成這個習慣是任何團隊都能採取的最經濟有效的防止域名搶注的方法。
- 永遠不要想當然地認為人工智慧產生的程式碼預設是安全的。 一段「能運行」的程式碼片段並不意味著它的依賴項是合理的。依賴項審查應該是程式碼審查的一部分,而不是例外。
- 使用鎖定文件和哈希驗證 鎖定確切版本,防止靜默更新替換為與最初審核的軟體包不同的軟體包。
- 部署相依性掃描,以標記已知 CVE 以外的風險模式異常軟體包、名稱與現有軟體包極為相似的軟體包、沒有歷史記錄的新維護者,或是行為異常的安裝腳本。一個幾乎沒有歷史記錄、名稱與某個「幾乎」熟悉的軟體包高度相似的新發佈軟體包,正是目前記錄的大多數惡意搶注軟體包攻擊的典型模式。
- 公共登記簿應抱持同樣的懷疑態度。cism 與其他未經核實的外部來源一樣。 一個事實,即 點安裝 or npm安裝 不拋出錯誤並不代表合法性。
- 列車開發團隊 人工智慧輔助編碼並不能免除驗證安裝內容的責任;它只是增加了一個步驟,需要將其納入工作流程,作為任何嚴肅的防止惡意安裝計劃的一部分。
這些措施本身並不新鮮。改變的是規模:當依賴項建議不再來自 Stack Overflow 或同事,而是來自一個可能將同樣的錯誤重複給成千上萬不同開發者的模型時,人工驗證雖然仍然必要,但已不足以應對。這就是為什麼越來越多的團隊在其內部自動化這一層防止濫用依賴項的機制。 軟體成分分析(SCA工具而不是完全交給開發人員個人自律。
這是預cis伊利為什麼 ASPM 平台 点讚 Xygeni 將可疑依賴項偵測功能(涵蓋網域搶注、依賴項混淆和已知惡意軟體)整合到同一個開源和人工智慧依賴項分析中。 pipeline因此,防止惡意佔用依賴項並不取決於每個開發人員每次 AI 助理建議新增依賴項時都記得檢查它。
常見問題
slopsquatting 攻擊和 typosquatting 攻擊是一樣的嗎?
不完全是這樣。兩者都涉及註冊虛假的軟體包名稱來欺騙安裝者,但錯誤的根源不同。 「拼字錯誤搶注」(typosquatting)利用的是人類的拼字錯誤。 「拼字錯誤搶注」(slopsquatting)攻擊則利用人工智慧模型虛構(產生)的軟體包名稱,攻擊者在軟體包合法存在之前就將其註冊。
軟體包管理器能否自動阻止此類攻擊?
並非完全如此,這正是防止惡意軟體包搶注不能止步於套件管理器層面的原因。如果攻擊者在開發者嘗試安裝之前註冊了偽造的軟體包,即使該軟體包是惡意的,安裝過程也會順利完成,因為該軟體包確實存在。有效的預防措施需要對軟體包的來源和行為進行額外的驗證。
這是否僅影響開源模型?
不。 Spracklen 等人的研究發現,所有測試模型(包括商業模型)都存在幻覺,儘管發生率顯著較低(5.2% 對比開源模型的 21.7%)。沒有一個模型能夠完全避免這個問題,這也是為什麼「垃圾代碼佔位」的演變與人工智慧輔助編碼的整體發展保持同步的原因之一。
這只是理論上的風險,還是已經被利用了?
这 擁抱臉-cli 一個研究人員上傳的空包在三個月內被下載了超過 30,000 次,而且沒有任何推廣,這表明風險不僅僅是理論上的:一個虛構的名字只需要在不同的提示中足夠一致,就足以讓某人將其變成真正的域名搶注攻擊。




