柏拉圖數據智能。
垂直搜索和人工智能。

人工智慧機器人產生軟體包幻覺,開發人員下載它們

日期:

深入 幾家大企業已經發布了原始程式碼,其中包含以前由生成式人工智慧所幻想的軟體包。

不僅如此,還有人, 發現了這個 據我們所知,反覆出現的幻覺已經將這種虛構的依賴變成了真實的依賴,隨後由於人工智慧的錯誤建議,開發人員下載並安裝了數千次。如果該軟體包中包含了實際的惡意軟體,而不是良性測試,那麼結果可能是災難性的。

Lasso Security 的安全研究員 Bar Lanyado 表示,被人工智慧愚弄並納入該軟體包的企業之一是阿里巴巴,在撰寫本文時,阿里巴巴仍包含 pip 命令 下載Python包 huggingface-cli 在其 圖翻譯器 安裝說明。

有一個合法的 擁抱臉-cli,安裝使用 pip install -U "huggingface_hub[cli]".

但是, huggingface-cli 透過 Python Package Index (PyPI) 分發,並由阿里巴巴的 GraphTranslator 所需 – 使用安裝 pip install huggingface-cli – 是假的,由 AI 想像,並由 Lanyado 作為實驗變成現實。

他創造了 huggingface-cli 12 月,在看到它多次被產生人工智慧產生幻覺後;到今年 2 月,阿里巴巴在 GraphTranslator 的 README 說明中提到了它,而不是真正的 Hugging Face CLI 工具。

研究

Lanyado 這樣做是為了探索這些幻覺軟體包(由生成人工智慧模型發明的軟體包名稱,大概是在專案開發過程中)是否會隨著時間的推移而持續存在,並測試發明的軟體包名稱是否可以透過編寫實際的軟體包來被增選並用於分發惡意程式碼。使用人工智慧想像的程式碼名稱的軟體包。

這裡的想法是,邪惡的人可以向模型詢問程式碼建議,記下人工智慧系統重複推薦的想像中的軟體包,然後實現這些依賴關係,以便其他程式設計師在使用相同的模型並獲得相同的建議時,最後加入進來這些函式庫可能受到惡意軟體的毒害。

去年,透過安全公司 Vulcan Cyber​​、Lanyado 出版 研究詳細介紹了人們如何向 ChatGPT 等 AI 模型提出編碼問題,並收到建議使用不存在的軟體庫、軟體包或框架的答案。

Lanyado 解釋道:“當攻擊者發起這樣的活動時,他會向模型詢問解決編碼問題的包,然後他會收到一些不存在的包。” 註冊。 “他會將同名的惡意軟體包上傳到適當的註冊表,從那時起,他所要做的就是等待人們下載這些軟體包。”

危險的假設

人工智慧模型願意自信地 引用不存在的法庭案例 現在已經眾所周知,並且在沒有意識到這種趨勢的律師中引起了不小的尷尬。事實證明,生成式人工智慧模型也會對軟體包做同樣的事情。

正如 Lanyado 之前指出的那樣,不法分子可能會使用人工智慧發明的名稱上傳到某個儲存庫的惡意軟體包,希望其他人可以下載該惡意軟體。但要使其成為有意義的攻擊媒介,人工智慧模型需要反覆推薦選定的名稱。

這就是蘭亞多想要測試的。帶著數千個「如何做」的問題,他詢問了四種人工智慧模型(GPT-3.5-Turbo、GPT-4、Gemini Pro aka Bard 和Command [Cohere]),了解五種不同程式語言/運行時(Python、 Node.js、Go、.Net 和 Ruby),每個都有自己的打包系統。

事實證明,這些聊天機器人憑空提取的名稱中有一部分是持久的,有些跨越不同的模型。而堅持——假名的重複——是將人工智慧的奇思妙想轉變為功能性攻擊的關鍵。攻擊者需要人工智慧模型在對使用者的回應中重複幻覺套件的名稱,以尋找和下載以這些名稱建立的惡意軟體。

Lanyado 隨機選擇了 20 個零樣本幻覺問題,並向每個模型提出了 100 次。他的目標是評估幻覺包名稱保持不變的頻率。他的測試結果表明,名稱的持久性足以使其成為功能性攻擊向量,儘管並非總是如此,並且在某些包裝生態系統中比其他生態系統中更持久。

Lanyado 表示,在 GPT-4 中,24.2% 的問題回答產生了幻覺包,其中 19.6% 是重複的。提供的表格 註冊下面顯示了 GPT-4 響應的更詳細細分。

  蟒蛇 節點JS 紅寶石 。NET Go
總問題數 21340 13065 4544 5141 3713
至少有一個幻覺包的問題 5347(25%) 2524(19.3%) 1072(23.5%) 1476 (28.7%) 1093 可利用 (21.2%) 1150 (30.9%) 109 可利用 (2.9%)
零射擊中的幻覺 1042(4.8%) 200(1.5%) 169(3.7%) 211 (4.1%) 130 可利用 (2.5%) 225 (6%) 14 可利用 (0.3%)
第二槍出現幻覺 4532(21%) 2390(18.3%) 960(21.1%) 1334 (25.9%) 1006 可利用 (19.5%) 974 (26.2%) 98 可利用 (2.6%)
零次重複性 企業排放佔全球 34.4% 企業排放佔全球 24.8% 企業排放佔全球 5.2% 企業排放佔全球 14% -

在 GPT-3.5 中,22.2% 的問題回答引發了幻覺,其中 13.6% 是重複性的。對於雙子座來說,64.5 個問題提到了虛構的名字,其中約 14% 是重複的。對 Cohere 來說,29.1% 是幻覺,24.2% 是重複。

即便如此,Go 和 .Net 中的打包生態系統的建構方式也透過拒絕攻擊者存取某些路徑和名稱來限制利用的可能性。

「在Go 和.Net 中,我們收到了幻覺包,但其中許多無法用於攻擊(Go 中的數字比.Net 中的要重要得多),每種語言都有其自身的原因,」Lanyado 解釋道 註冊。 「在 Python 和 npm 中,情況並非如此,因為模型向我們推薦了不存在的包,並且沒有什麼可以阻止我們上傳具有這些名稱的包,所以肯定對諸如此類的語言進行這種攻擊要容易得多Python和Node.js。”

傳播 PoC 惡意軟體

Lanyado 透過分發概念驗證惡意軟體(Python 生態系統中的一組無害文件)來闡述這一點。根據ChatGPT的建議運行 pip install huggingface-cli,他將一個同名的空包上傳到 PyPI(上面提到的那個),並創建了一個名為的虛擬包 blabladsa123 幫助將軟體包註冊表掃描與實際下載嘗試分開。

他聲稱,結果是 huggingface-cli 上線三個月內,正版下載量超過 15,000 次。

Lanyado 表示:“此外,我們還在 GitHub 上進行了搜索,以確定該軟體包是否在其他公司的存儲庫中被使用。” 寫的 為了他的實驗。

「我們的調查結果顯示,幾家大公司在其儲存庫中使用或推薦此軟體包。例如,安裝此軟體包的說明可以在專門用於阿里巴巴進行研究的存儲庫的自述文件中找到。”

阿里巴巴沒有回應置評請求。

Lanyado 也表示,有一個 Hugging Face 擁有的物品包含了假的 Huggingface-cli,但那 去掉了 在他向商家發出警報後。

至少到目前為止,據 Lanyado 所知,這種技術還沒有在實際攻擊中使用過。

「除了我們的幻覺包(我們的包不是惡意的,它只是利用這種技術是多麼容易和危險的一個例子),我還沒有發現惡意行為者利用這種攻擊技術的情況,」他說。 “值得注意的是,識別此類攻擊很複雜,因為它不會留下很多足跡。” ®

現貨圖片

最新情報

現貨圖片

和我們線上諮詢

你好呀!我怎麼幫你?