자율형 에이전트로 코드베이스 보호하기
지난 9개월 동안 우리의 PR 처리량은 5배로 늘었습니다. 정적 분석이나 경직된 코드 소유권 체계에 기반한 보안 도구는 여전히 도움이 되지만, 이 정도 규모에서는 충분하지 않습니다. 우리는 Cursor Automations를 사용해 이에 대응해 왔고, 그 결과 코드베이스의 취약점을 지속적으로 찾아 수정하는 보안 에이전트 플릿을 빠르게 구축할 수 있었습니다.


오늘 우리는 가장 유용하다고 판단한 보안 에이전트의 청사진을 그대로 담은 새로운 자동화 템플릿 4종을 공개합니다. 다른 보안 팀도 이 템플릿을 맞춤 설정해 다양한 보안 문제를 자동으로 해결하는 에이전트를 만들 수 있습니다.
자동화 아키텍처
에이전트가 보안에 실질적으로 유용하려면 두 가지 기능이 필요한데, Cursor Automations는 이 두 가지를 모두 제공합니다.
첫 번째는 웹훅 수신, GitHub pull request에 대한 응답, 코드베이스 변경 모니터링을 위한 즉시 사용 가능한 통합입니다. 이를 통해 백그라운드에서 작동하는 에이전트는 언제 나서서 조치를 취해야 하는지 판단할 수 있습니다.
두 번째는 강력한 에이전트 실행 기반과 환경입니다. Automations는 클라우드 Agent로 구동되며, 이를 통해 클라우드 Agent가 접근할 수 있는 모든 도구, 역량, 관측 기능을 그대로 활용할 수 있습니다.
보안 특화 사용 사례에서 자동화를 더욱 강력하게 만들기 위해, 저희는 보안 MCP 도구를 구축해 필요할 때만 즉시 사용할 수 있고 그 외에는 실행되지 않는 서버리스 Lambda 함수로 배포했습니다.
참조 코드는 여기에서 확인할 수 있으며, 이 MCP는 세 가지 목적을 수행합니다:
-
영구 데이터. 에이전트는 MCP를 사용해 데이터를 저장하므로, 시간에 따른 보안 효과를 추적하고 측정할 수 있습니다. 저희는 이 데이터를 바탕으로 자동화를 언제, 어떻게 트리거할지 지속적으로 개선합니다.
-
중복 제거. 저희는 모든 변경 사항에 대해 여러 리뷰 에이전트를 실행하는데, 그 발견 사항은 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은 보안 및 규정 준수 기준 집합에서 드리프트가 발생하는지 모니터링하기 위해 매일 실행됩니다. 리포지토리를 논리적 단위로 나누고, 불변 조건 목록을 기준으로 코드를 검증하는 하위 에이전트를 실행합니다.
분석이 끝나면 에이전트는 automations 메모리 기능을 사용해 현재 상태를 이전 실행 결과와 비교합니다. 드리프트를 탐지하면 정확성을 보장하기 위해 다시 검증한 다음, 메모리를 업데이트하고 변경 사항에 대한 설명과 이를 뒷받침하는 구체적인 코드 위치를 포함한 Slack 보고서를 보안 팀에 보냅니다.
이 자동화는 전체 개발 환경에서 실행되므로, 에이전트는 자체 가정을 검증하기 위해 코드를 작성하고 실행할 수 있으며, 이는 기존의 기능, 단위, 통합 테스트를 보완합니다.
앞으로 더 많은 자동화가 추가될 예정입니다
보안은 자동화를 적용할 수 있는 기회가 매우 많은 영역이며, 이 네 가지는 우리가 앞으로 추진할 작업의 시작에 불과합니다. 이미 이를 확장해 취약점 보고서 접수, 개인정보 보호 규정 준수 모니터링, 온콜 알림 분류, 접근 권한 프로비저닝까지 아우르고 있습니다.
각 경우마다 에이전트는 수작업으로는 달성할 수 없는 규모의 커버리지와 일관성을 제공합니다.