作者 | Steef-Jan Wiggers
譯者 | 明知山
策劃 | 丁曉昀
GitHub 在其 Copilot 功能中引入了一項基于 AI 的密碼掃描功能,該功能已經整合到 GitHub Secret Protection 中。通過上下文分析,這一新功能顯著提升了檢測代碼泄露密碼的能力。與傳統的正則表達式方法相比,這種方法可以識別多樣化的密碼結構,并減少誤報數量。
GitHub 的一篇博文寫道,該系統現在會分析潛在的密碼使用和存儲位置,以減少無關警報,并提供更準確的通知,這對保證代碼庫的安全來說至關重要。Sensis 高級軟件工程師 Sorin Moga 在領英上評論稱,這標志著平臺安全進入了一個新時代,AI 不僅可以協助開發,還可以保障代碼的完整性。
在這項功能的私密預覽階段,一個關鍵性挑戰是其對非傳統文件類型和結構的處理存在困難,這突顯了僅依賴大語言模型初始訓練數據的局限性。GitHub 最初采用的方法是利用 GPT-3.5-Turbo 的“少量樣本提示”(few-shot prompting)技術,為模型提供示例來指導檢測。
為了解決這些問題,GitHub 大幅增強了其離線評估框架,通過加入私有預覽參與者的反饋來豐富測試用例,并利用 GitHub 代碼安全團隊的評估流程構建更強大的數據收集管道。他們甚至使用了 GPT-4,根據開源代碼庫中現有的密碼掃描警報生成新的測試用例。這種改進的評估方法能夠更好地衡量 精確率(降低誤報)和 召回率(減少漏報)。
GitHub 嘗試了多種技術來提高檢測質量,包括嘗試不同的 LLM 模型(例如將 GPT-4 作為驗證掃描器)、重復提示(“投票”)和多樣化的提示策略。最終,他們與微軟合作,采用了微軟的 MetaReflection 技術,這是一種離線強化學習形式,結合了思維鏈(Chain of Thought,CoT)和少量樣本提示來提高準確率。
正如 GitHub 的博文所述:
我們最終決定采用這些技術的組合,并正式公開預覽 Copilot 的密碼掃描功能,向所有 GitHub Secret Protection 的用戶全面開放。
為了進一步驗證這些改進,并為全面推出做好準備,GitHub 實現了一個“鏡像測試”框架。該框架涉及在公開預覽的一個子集代碼庫上測試提示和過濾更改。通過使用最新的改進來重新掃描這些代碼庫,GitHub 可以在不影響用戶的情況下評估對實際警報量和誤報解決的影響。
測試結果表明,檢測量和誤報量均顯著減少,對實際的密碼發現影響微乎其微。在某些情況下,誤報量甚至減少了 94%。博文總結道:
對比顯示,在私有和公開預覽階段所做的所有修改都提升了精確度,而且沒有降低召回率。我們已準備好為所有 GitHub Secret Protection 用戶提供一個可靠且高效的密碼檢測機制。
Copilot 團隊在開發過程中積累了寶貴的經驗教訓,包括重視準確性、根據用戶反饋采用多樣化的測試用例、有效管理資源以及促進團隊合作。這些經驗教訓也被應用到了 Copilot Autofix 項目中。自全面推出以來,Copilot 的密碼掃描功能已經成為安全配置的一部分,用戶可以決定掃描哪些代碼庫。
查看英文原文:
https://www.infoq.com/news/2025/03/github-ai-copilot-secretscanning/
聲明:本文由 InfoQ 翻譯,未經許可禁止轉載。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.