Copilot 及 Cursor 等 AI 編碼助手新漏洞:通過規則文件注入惡意代碼

近日,Pillar Security 的研究人員報告稱,諸如 GitHub Copilot 和 Cursor 這類人工智慧編碼助手,可能會通過惡意規則配置文件的分發而被操控,從而生成包含後門程序、漏洞及其他安全問題的代碼。

規則文件被人工智慧編碼代理用於在生成或編輯代碼時指導其行為。例如,一個規則文件可能包含指令,讓編碼助手遵循特定的編碼最佳實踐、採用特定的格式,或者用特定的語言輸出回復內容。

Pillar 的研究人員開發出了一種攻擊技術,他們稱之為「規則文件後門」。這種技術通過向規則文件中注入對人類用戶不可見但人工智慧代理可讀的指令,將規則文件武器化。研究人員指出,像雙向文本標記和零寬度連接符這類隱藏的 Unicode 字元,可被用於在用戶界面以及 GitHub 的拉取請求中隱藏惡意指令。

規則配置通常在開發者社區中共享,並通過開源代碼庫進行分發,或者包含在項目模板里。因此,攻擊者可以通過在論壇上分享惡意規則文件、在像 GitHub 這樣的開源平台上發布該文件,或者通過向一個熱門代碼庫發送拉取請求來注入惡意規則文件。一旦被篡改的規則文件被導入到 GitHub Copilot 或 Cursor 中,人工智慧代理在協助受害者未來的編碼項目時,就會讀取並遵循攻擊者的指令。

在 Pillar 展示的一個例子中,一個看似指示人工智慧「遵循 HTML5 最佳實踐」的規則文件包含了隱藏文本,這些隱藏文本中還有進一步的指令,要求在每個文件的末尾添加一個外部腳本。這個隱藏的提示還包括一段越獄代碼,用於繞過潛在的安全檢查,讓人工智慧確信添加該腳本對於保護項目安全是必要的,並且這是公司政策的一部分,此外還包含了指令,要求在對用戶的任何回復中都不要提及添加了該腳本這件事。

Pillar 的研究人員發現,當被要求生成一個 HTML 頁面時,GitHub Copilot 和 Cursor 都會遵循指令添加外部腳本,並且在這兩個助手的自然語言回復中都沒有提到添加了這個腳本。

研究人員稱,「規則文件後門」還有可能被用於在生成的代碼中引入安全漏洞,或者創建會泄露資料庫憑證或 API 密鑰等敏感信息的代碼。

Pillar 在 2025 年 2 月向 Cursor 披露了這一漏洞利用情況,並在 2025 年 3 月向 GitHub 披露了相關情況。Cursor 表示,這個問題並非源於其平台的漏洞,管理風險是用戶的責任。GitHub 也做出了類似回應,稱用戶有責任審查並接受由 Copilot 生成的代碼和建議。

在 GitHub 2024 年「軟體開發中的人工智慧」調查中,約 97% 的受訪者表示,他們在工作中及工作外都使用過生成式人工智慧,這表明人工智慧編碼輔助在開發者中相當普遍。

Pillar 建議開發者審查他們使用的所有規則文件,檢查是否存在諸如不可見的 Unicode 字元或不尋常格式等潛在的惡意注入情況,並像審查可執行代碼一樣嚴格審查人工智慧配置文件。

研究人員表示,對於人工智慧生成的代碼也應該仔細審查,尤其是對於外部資源引用等意外添加的內容。自動化檢測工具也有助於識別規則文件中的可疑內容,或者人工智慧生成代碼中存在被篡改的跡象。

參考鏈接:

https://www.scworld.com/news/how-ai-coding-assistants-could-be-compromised-via-rules-file