以自主代理守護我們的程式碼庫安全
在過去九個月裡,我們的 PR 速度提升了 5 倍。基於靜態分析或僵化程式碼責任歸屬的安全工具仍然有幫助,但在這樣的規模下仍不足夠。我們透過使用 Cursor Automations 來因應,這讓我們得以快速打造出一批安全代理,持續在程式碼庫中識別並修復漏洞。


今天,我們推出四個新的自動化範本,完整公開我們認為最有幫助的安全代理藍圖。其他安全團隊可以自訂這些範本,打造能自動解決各類安全議題的代理。
自動化架構
若要讓代理在安全領域發揮實際作用,它們需要具備兩項功能,而 Cursor Automations 同時提供了這兩者。
第一項是開箱即用的整合能力,可用於接收 webhook、回應 GitHub 拉取請求,以及監控程式碼庫變更。這讓在背景中運作的代理能夠知道何時該介入並採取行動。
第二項是完善的代理執行框架與環境。Automations 由雲端代理驅動,因此具備雲端代理可存取的所有工具、技能與可觀測性。
為了讓 automations 更適用於安全相關的特定使用情境,我們建置了一個安全 MCP 工具,並將其部署為無伺服器 Lambda 函式,在需要時即時提供,平時則不會持續執行。
這個 MCP,其參考程式碼可在此取得,主要有三個用途:
-
持久化資料。 代理使用 MCP 來儲存資料,讓我們能夠長期追蹤並衡量安全影響。我們利用這些資料持續精進觸發 automations 的時機與方式。
-
去重。 我們會對每一項變更執行多個審查代理,而由於它們的發現結果是由 LLM 產生,不同代理最後可能會用不同措辭來描述同一個根本問題。為了避免重複作業,MCP 讓代理能部署一個由 Gemini Flash 2.5 驅動的分類器,用來判定兩個語意上不同的發現結果,是否其實是在描述同一個問題。
-
一致的輸出。 代理會透過 MCP 回報它們發現的每一項漏洞,而 MCP 會傳送格式一致的 Slack 訊息,並處理後續動作,例如忽略或延後處理某項發現結果。
在這個基礎就緒後,下方詳述的四項安全自動化各自疊加了自己的工作流程與觸發邏輯。我們使用 Terraform 來確保所有對安全工具的變更,都會經過標準的審查與部署流程。
Agentic Security Review
在內部,我們早已使用 Bugbot 來審查 PR(拉取請求)的程式碼品質與一般問題,其中也包含一些安全性發現結果。但通用型審查工具並不適合用於安全性,因為它無法針對我們特定的威脅模型進行提示調校,而且我們需要能夠只在出現安全性發現結果時阻擋 CI,而不是在每一個一般的程式碼品質問題上都阻擋。
因此,我們打造了一套專用的自動化,稱為 Agentic Security Review。起初,我們讓它將發現結果轉送到由安全團隊監看的私人 Slack 頻道。

當我們確認它能找出真正的問題後,我們便啟用了 PR(拉取請求)留言,接著實作了阻擋式檢查機制。在過去兩個月中,Agentic Security Review 已在數千個 PR(拉取請求)上執行,並阻止了數百個問題進入正式環境。
Vuln Hunter
在 Agentic Security Review 成功應用於新程式碼之後,我們開始讓代理檢查現有程式碼庫。Vuln Hunter 是一項自動化,會將程式碼劃分為邏輯區段,並逐一搜尋其中的漏洞。我們的團隊會先分級處理發現結果,通常也會加以修正,且經常使用 Slack 中的 @Cursor 來產生 PR(拉取請求)。
Anybump
相依套件修補非常耗時,以至於大多數安全團隊最終都會放棄,並把這項工作交給工程團隊,結果往往就被擱置在待辦事項中。我們打造了一套名為 Anybump 的自動化,幾乎已將這整個流程完全自動化。
Anybump 會執行可達性分析,將漏洞範圍縮小到那些真正有影響的項目,接著追蹤相關程式碼路徑、執行測試、檢查是否造成破壞,並在測試通過後開啟 PR(拉取請求)。在 PR(拉取請求)合併之後,Cursor 的金絲雀部署流程會在任何變更進入正式環境前,提供最後一道安全關卡。

Invariant Sentinel
Invariant Sentinel 每日執行,持續監控一組安全與合規屬性是否出現偏移。它會將 repo 劃分為多個邏輯區段,並啟動子代理,依據一份不變條件清單來驗證程式碼。
分析完成後,代理會使用自動化記憶功能,將目前狀態與先前的執行結果進行比對。如果偵測到偏移,它會重新驗證以確保正確性,接著更新其記憶,並向安全團隊傳送 Slack 報告,附上變更說明與作為佐證的具體程式碼位置。
由於這項自動化會在完整的開發環境中執行,代理可以撰寫並執行程式碼來驗證自身的假設,補足傳統的功能測試、單元測試與整合測試。
後續還會有更多自動化功能
安全領域充滿了可應用自動化的機會,而這四項只是我們規劃中工作的起點。我們已經開始將它們擴展到涵蓋漏洞報告受理、隱私合規監控、值班警示分流,以及存取權限佈建。
在每種情況下,代理都能以我們無法靠人工達成的規模,提供一致且全面的覆蓋。