9월 28일에 벤치마크가 하나 새로 생겼습니다. Artificial Analysis Cyber Index. Collinear AI, IBM, NVIDIA, Vercel이 함께 만든, 사이버 방어용 AI 평가입니다.
보안 4층 글에서 "머지 전 검토"를 이야기했는데, 이번에는 그 다음 질문입니다. 검토를 AI가 한다면, 그 AI는 뭘로 평가받는가. 답이 이 인덱스입니다.
이 시험이 재는 것: 방어 루프 3단계
[1. 발견] 코드에서 취약점 찾기
→ [2. 재현] 충돌·익스플로잇 조건으로 검증하기
→ [3. 패치] 기존 기능 안 깨고 고치기
범위가 분명합니다. 소스 코드가 있는 방어 작업만 봅니다. 익스플로잇을 실제로 만드는 것은 범위 밖입니다. 공격이 아니라 수비를 재는 시험이라는 뜻입니다. 평가는 오픈 하네스 Stirrup 위에서 돌고, 샌드박스·인터넷 차단 환경에서 진행됩니다.
3개 시험을 각각 보세요
| 시험 | 출처 | 보는 것 | 규모 |
|---|---|---|---|
| CWE-Bench-AA | Collinear AI | 실제 저장소 감사 후 패치, 검증기가 익스플로잇 차단+정상 동작 확인 | 비공개 120 과제, OWASP Top 10 전 분야 |
| DeepsecBench-AA | Vercel | 스캐너가 찍은 파일에서 확정 가능한 취약점 보고, 전문가 정답지와 F2 비교 | 재현율 우선 채점, 3회 중 중앙값 |
| CyberGym-E2E-AA | Berkeley RDI | C/C++ 메모리 안정성 버그 발견·충돌 재현·패치 3단계 통과 | 131 과제, 과제당 90분 제한 |
각각 결이 다릅니다. CWE는 "고치기까지", Deepsec은 "찾기의 정확도", CyberGym은 "처음부터 끝까지"입니다. SWE-bench·Terminal-Bench·ProgramBench 비교에서 시험마다 재는 게 다르다고 했는데, 보안도 같습니다.
실패 모드: 어디서 망가지는가
AA가 공개한 실패 분석이 실무에 바로 쓸모가 있습니다.
CWE-Bench:
- 부분 패치 55%: 메인은 고쳤는데 옆구리(두 번째 진입점)가 열려 있음
- 과잉 수정 24%: 고치다가 정상 기능을 깸 (강한 모델일수록 빈번, 상위 4개에서 40%)
- 턴의 38%는 버그 찾기에, 62%는 패치·검증에 사용
DeepsecBench:
- 최고 모델도 전문가 확인 이슈의 41%만 찾음
- 입력→결과의 직접 경로 버그는 잘 찾고, 상태 변화를 추적해야 하는 버그는 못 찾음
- 순서 추적형은 GPT-6 Sol·Astra가 약 30%로 차세대 능력 조짐
CyberGym:
- 42%가 90분 안에 충돌 입력조차 못 만듦 (발견이 병목)
- 통과 중 31%는 목표가 아닌 다른 진짜 버그를 고침 (첫 충돌에서 멈추는 습성)
한 줄로 줄이면 이렇습니다. 에이전트는 찾는 것보다 "다 찾아서 완전히 고치는 것"에 약합니다. 부분 패치가 1위 실패라는 점이 뼈아픕니다. 고쳤다고 해서 끝이 아니라는 뜻이니까요.
98% 거부의 의미: 제품에 붙일 때 폴백이 필요합니다
가장 실무적인 대목입니다. CyberGym에서 GPT-6 Astra·Sol, Fable 5.1, Opus 5.5, Qwen3.8 계열은 과제의 98% 이상을 안전 사유로 거부합니다. 점수가 아니라 거부율로 줄이 그어지는 시험이 있다는 뜻입니다.
제품 설계 함의:
- 보안 에이전트는 "거부될 수 있는 호출"이다
- 거부 → 폴백 모델 or 사람 큐로 넘기는 분기가 필수
- 거부율 자체를 모니터링 지표에 넣는다 (성공률과 별개로)
- 거부와 실패를 같은 숫자로 합치지 않는다 (AA도 분리 집계)
환각 vs 답변 거부 글의 원칙이 보안에서도 반복됩니다. "모른다·안 한다"는 성능 지표의 일부입니다. 거부율을 숨기고 성공률만 보면 운영에서 터집니다.
CodeBridge Mini Lab: 내 저장소에 방어 루프 1바퀴 돌리기
① CWE 스타일 미니 과제 3개 만들기:
- 알려진 취약 패턴이 있는 작은 함수 3개 준비
- 에이전트에게 "감사하고 패치해" 지시
② 3단계 판정:
[ ] 발견: 위치를 맞혔는가
[ ] 재현: 테스트·입력으로 문제를 증명했는가
[ ] 패치: 기존 테스트가 전부 통과하는가
③ 실패 분류:
- 부분 패치인가 (옆구리 확인: 두 번째 진입점 테스트 추가)
- 과잉 수정인가 (전체 테스트로 검출)
- 거부인가 (프롬프트·모델 정책 확인 후 폴백 경로 점검)
Grok 자가 검증 글의 검증 루프와 내 저장소 5문항 방식을 보안 과제에 적용한 것입니다.
결론: 보안 에이전트의 성적표는 4개 숫자다
Cyber Index가 가르쳐주는 것은 성적표 양식입니다.
발견률, 패치 성공률, 거부율, 작업당 비용. 네 개를 같이 보세요.
성공률 하나만 보면 부분 패치에 속고, 거부율을 빼면 운영에서 막히고, 비용을 빼면 예산이 터집니다. Argon의 사이버 방어, Mythos의 Glasswing, Fable의 과학 벤치가 같은 달에 묶인 이유도 여기 있습니다. 보안은 이제 모델의 부속 기능이 아니라 독립 평가 축입니다. 우리 팀 성적표에도 그 축을 추가하는 것부터 시작하세요.
함께 읽으면 좋은 글
- computer-use 시대에 권한 없이 실행하면 안 되는 이유
- SWE-bench vs Terminal-Bench vs ProgramBench: 무엇이 다를까
- AI가 모른다고 말하면 성능이 나쁜 걸까
참고 자료
- Artificial Analysis: Cyber Index Alliance
- Artificial Analysis: Cyber Index Leaderboard
- Anthropic: Project Glasswing
- Vercel: DeepsecBench
이 주제를 직접 따라가며 배우고 싶다면
찾고·고치고·검증하는 루프를 실제 저장소에서 돌려보고 싶다면, Claude Code로 하네스와 검증 게이트를 쌓는 연습이 이 글의 방어 루프와 바로 이어집니다.