GitHub 擴大 PR 的 AI Scan 範圍:安全稽核代理程式碼

軟體變更通過 AI 安全掃描拱門後進入全球網際網路代理閘道

GitHub 於 2026 年 9 月 16 日宣布,即使儲存庫未啟用 CodeQL 預設設定,AI Scan 也能在合格的 Pull Request 中尋找安全漏洞。過去 PR 的 AI Scan 只在設定 CodeQL 預設設定的儲存庫執行。

這項變更不會自動開啟掃描。儲存庫、組織或企業層仍須啟用 code scanning 與 AI Scan,原有權限層級繼續生效。GitHub 表示不需要新的設定步驟:已為組織啟用 AI Scan 的客戶,可能會看到它涵蓋更多合格儲存庫。功能仍處於公開預覽,只適用於 github.com 上合格的組織或個人儲存庫,並要求 GitHub Advanced Security;本次發布不支援 GitHub Enterprise Server。

對代理用戶端、閘道和瀏覽器自動化儲存庫而言,關鍵問題不是「AI 是否找出全部問題」,而是擴大後的涵蓋範圍是否觸及目標 PR、產生可用證據,並在不暴露憑證、不製造虛假安全感的情況下進入分層審查流程。

盤點新納入範圍的儲存庫

找出已啟用 AI Scan、但沒有 CodeQL 預設設定的儲存庫,優先關注代理 URL 與憑證解析、HTTP 407 與來源 401 區分、重新導向與標頭轉送、TLS 驗證與 SNI、重試與直連回退、瀏覽器儲存隔離、日誌遮蔽,以及閘道部署工作流程。

記錄儲存庫負責人、語言、部署目標、AI Scan 啟用層級和現有安全控制。封存儲存庫若仍發布可重用套件或工作流程,也要納入。

使用企業安全設定強制稽核維持設定責任一致,並搭配代理憑證編碼指南定位值得明確測試的敏感建構路徑。

驗證啟用狀態,不要假設涵蓋

在每類儲存庫選擇一個非正式環境 PR,確認儲存庫、組織與企業權限層級允許 AI Scan;掃描確實在 PR 上執行;預期審閱者能看到結果;必要檢查與合併政策按文件處理結果;停用或不合格的儲存庫顯示為涵蓋缺口,而非靜默算作乾淨。

記錄儲存庫別名、PR ID、提交雜湊、掃描開始與完成時間、結果類型和分流負責人。不要把含祕密的原始碼片段複製到一般分析系統。

使用受控的代理安全測試樣例

只以合成案例驗證偵測與分流,絕不使用真實憑證。可在自有測試環境準備:未遮蔽寫入日誌的合成代理 URL、把來源授權轉送至未核准重新導向主機、停用 TLS 憑證驗證、錯誤後直連回退、跨信任網域重用 Cookie Jar,以及把合成密碼放入程序參數。

目標是證明工作流程行為,而不是假設掃描器能偵測每種缺陷的所有實作。測試樣例應保持私人、清楚標記且不可部署,完成後移除或失效。

AI Scan 不能取代確定性控制

AI 輔助結果應補充而非取代編譯與型別檢查、單元與整合測試、相依套件與密鑰掃描、已設定的 CodeQL 或其他靜態分析、分支保護、執行階段遮蔽、出口控制與明確的代理驗收測試。

乾淨的 AI Scan 結果不能證明憑證安全、憑證驗證已開啟,或流量無法繞過代理。部分屬性必須在受控環境執行驗證。可用代理繞過稽核驗證失敗關閉路由,並以HTTPS 代理 TLS 稽核確認憑證與隧道邊界。

建立警示分流契約

明確定義誰負責審閱、回應時限、嚴重性標準、關閉理由和升級路徑。儲存庫負責人不能只因測試通過就關閉警示;應判斷它是可達路徑、縱深防禦缺口或誤報。

每項結果至少記錄儲存庫別名、提交雜湊、結果類型、受影響元件、負責人、決定、證據引用、修復提交與複測狀態。不得貼上代理密碼、工作階段 Cookie、私鑰或客戶資料。

以可量化門檻分批上線

先選少量代表性儲存庫,建立掃描完成率、結果耗時、有效發現率、誤報率和分流中位時間基線。負責人能處理警示量後再擴大。

門檻可包括:每個目標 PR 都有可歸因結果;停用或不合格儲存庫不能算已涵蓋;嚴重發現依政策阻止合併;合成樣例進入預期審查流程;一般代理建置與測試繼續完成;關閉結果包含證據;修復後重新掃描。

功能仍處於公開預覽,應保留回復計畫並監控行為變化。不能為了預覽版不穩定而削弱確定性檢查。

稽核清單

  • 已盤點合格的代理相關儲存庫。
  • 已驗證儲存庫、組織與企業層啟用狀態。
  • 已確認 PR 掃描實際執行,而不是推斷。
  • 合成樣例不含真實憑證。
  • 結果有負責人與回應目標。
  • 密鑰、相依套件與確定性程式碼掃描仍啟用。
  • 代理繞過與 TLS 執行階段控制分別測試。
  • 涵蓋缺口可見,不能顯示為乾淨結果。
  • 關閉結果需要證據與複核。
  • 修復程式碼在發布前重新掃描。
  • 已記錄公開預覽限制和 GHES 不支援範圍。

常見問題

不啟用 code scanning 也能使用 AI Scan 嗎?

不能。GitHub 明確表示仍須在相應儲存庫、組織或企業層啟用 code scanning 與 AI Scan。

CodeQL 預設設定已經沒有用途嗎?

本次更新只是取消它作為合格 PR 的 AI Scan 前置條件,並不表示應移除 CodeQL 或確定性分析。

GitHub Enterprise Server 支援嗎?

本次不支援。公開預覽適用於 github.com 上合格並使用 GitHub Advanced Security 的組織與個人儲存庫。

乾淨掃描能取代代理驗收測試嗎?

不能。路由、直連回退、區域選擇、驗證與 TLS 結果仍須受控執行證據。

合規說明

只掃描獲授權存取的儲存庫與 PR。依組織政策保護原始碼、憑證、個人資料與漏洞細節。不得利用發現結果或代理基礎設施攻擊第三方系統、繞過存取控制或隱藏未授權行為。