安全廠商Pillar Security的研究人員發布報告稱,GitHub Copilot和Cursor等AI編程助手可能會被操縱,攻擊者可以通過分發惡意規則配置文件,誘導AI生成包含后門、漏洞和其他安全風險的代碼。
規則文件可被植入“不可見”后門,用于生成不安全代碼
規則文件是AI編程助手的配置功能,用于指導AI編程助手在生成或編輯代碼時的行為。例如,規則文件可能包含指令,要求助手遵循特定的編碼最佳實踐、使用特定格式,或以特定語言輸出響應。
Pillar研究人員開發了一種名為“規則文件后門”(Rules File Backdoor)的攻擊技術,其原理是向規則文件注入對人類用戶不可見但AI代理可讀取的指令,以此實現攻擊目的。
研究人員指出,隱藏的Unicode字符(如雙向文本標記和零寬度連接符)可以用于在用戶界面和GitHub拉取請求中混入惡意指令。
規則文件通常會在開發者社區中共享,并通過開源代碼庫分發,或包含在項目模板中。因此,攻擊者可以通過論壇分享、在GitHub等開源平臺上發布,或通過向熱門代碼庫提交拉取請求的方式傳播惡意規則文件。
一旦受污染的規則文件被導入GitHub Copilot或Cursor,AI代理將在未來的編碼過程中讀取并執行攻擊者的指令。
在Pillar演示的一個案例中,一個看似指示AI“遵循HTML5最佳實踐”的規則文件實際上隱藏了額外的指令,要求在每個文件的末尾添加一個外部腳本。
隱藏的提示還包含一個“越獄”機制,以繞過潛在的安全檢查,并向AI保證添加該腳本是為了確保項目安全,并且是公司政策的一部分。此外,該指令還要求AI在任何對用戶的響應中都不得提及該腳本的添加。
Pillar研究人員發現,當GitHub Copilot和Cursor被要求生成HTML頁面時,它們均按照指令添加了該外部腳本,并且在自然語言響應中未提及該腳本的存在。
研究人員指出,“規則文件后門”還可能被用于在生成的代碼中引入安全漏洞,或創建會泄露敏感信息(如數據庫憑據或API密鑰)的代碼。
開發者需審查使用的規則文件,評估異常內容風險
Pillar于2025年2月向Cursor披露了此漏洞,并于2025年3月向GitHub披露。Cursor表示,該問題并非其平臺的漏洞,而是用戶自行管理風險的責任。GitHub也作出類似回應,稱用戶應自行審核和接受Copilot生成的代碼和建議。
GitHub 2024年“AI在軟件開發中的應用”調查顯示,約97%的受訪者表示他們在工作和日常生活中都使用了生成式AI,這表明AI編程助手在開發者群體中的廣泛應用。
Pillar建議開發者審查所有使用的規則文件,以防其中隱藏惡意注入內容,如不可見的Unicode字符或異常格式,并以審查可執行代碼的同等標準對待AI配置文件。
研究人員還寫道,AI生成的代碼應經過仔細審核,尤其是檢查是否存在外部資源引用等意外添加的內容。自動化檢測工具也可用于識別規則文件中的可疑內容或AI生成代碼中的入侵跡象。
參考資料:https://www.scworld.com/news/how-ai-coding-assistants-could-be-compromised-via-rules-file