SEC-bench Pro: Can Language Models Solve Long-Horizon Software Security Tasks?
본 논문은 V8 과 SpiderMonkey 의 실제 취약점 183 건을 포함하는 엄격한 벤치마크인 SEC-bench Pro 를 소개하며, 이는 최첨단 모델을 사용하더라도 38.8% 미만의 성공률만 기록할 정도로 현재 언어 모델 기반 코딩 에이전트가 장기적 소프트웨어 보안 작업에 어려움을 겪고 있음을 보여줍니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
상상해 보세요. 거대하고 복잡한 비디오 게임 엔진에 숨겨진 함정을 찾아내기 위해 초지능 AI 기반 탐정 팀을 고용한다고요. 이러한 엔진 (자바스크립트 엔진이라고 불림) 은 웹사이트와 앱이 작동하도록 하는 코드를 실행합니다. 탐정이 함정을 발견하면 게임 개발자가 이를 수정할 수 있도록 정확히 어떻게 발동시키는지 (Proof of Concept, 즉 PoC) 보여줘야 합니다.
이 논문은 이러한 AI 탐정들이 현실 세계에서 이러한 함정을 찾아내는 능력이 얼마나 뛰어난지 평가하기 위해 SEC-bench Pro라는 새로운 매우 엄격한 테스트를 소개합니다.
기존 테스트의 문제점
이전 테스트들은 탐정에게 이미 보물이 있는 "X" 표시가 된 보물 지도를 주는 것과 같았습니다. 예를 들어, "500 번째 줄로 가서 이 버튼을 누르면 게임이 깨진다"고 말했을 것입니다.
- 문제점: 실제 버그 헌팅은 그렇게 작동하지 않습니다. 실제 탐정들은 전체 코드를 살펴보고 함정이 어디에 있을지 파악한 후, 정확한 위치를 모른 채 이를 발동시켜야 합니다. 기존 테스트들은 이러한 실제 능력을 측정하지 못했습니다. 단지 AI 가 지도를 따를 수 있는지만 측정했을 뿐입니다.
새로운 테스트: SEC-bench Pro
저자들은 V8(구글 크롬에서 사용) 과 SpiderMonkey(파이어폭스에서 사용) 라는 두 가지 유명한 게임 엔진을 사용하여 더 어렵고 새로운 테스트를 구축했습니다.
- 설정: 이전에 인간들이 발견한 183 개의 실제 확인된 함정을 가져왔습니다.
- 환경: 함정이 존재했던 소프트웨어의 정확한 "타임머신" 버전과 수정된 버전을 재현했습니다.
- 규칙: AI 에이전트들에게 원시 코드와 문제의 모호한 설명을 제공했습니다. 그들은 다음을 수행해야 했습니다.
- 함정으로 이어지는 구체적인 코드 경로를 파악하기.
- 충돌을 유발하는 스크립트 (PoC) 작성하기.
- 해당 스크립트가 오래된 버전에서만 깨뜨리고 새로운 버전에서는 수정되었음을 증명하기.
"세 가지 이미지" 심판
이것이 새로운 테스트에서 가장 중요한 부분입니다. 과거에는 AI 가 어떤 충돌을 일으키기만 해도 점수를 받았습니다. 하지만 AI 는 자신이 찾던 특정 함정이 아닌 게임의 다른 부분을 실수로 깨뜨릴 수도 있었습니다.
SEC-bench Pro 는 세 가지 이미지 심판(정교한 AI 심판) 을 사용합니다.
- 이미지 1(함정): 스크립트가 오래된 버전을 깨뜨리는가?
- 이미지 2(수정): 스크립트가 패치가 적용된 새로운 버전에서는 더 이상 깨뜨리지 않는가?
- 이미지 3(최신): 스크립트가 최신 버전 (다른 수정 사항이 있을 수 있음) 을 깨뜨리는가?
만약 AI 가 오래된 버전에서 충돌을 일으켰지만 수정된 버전에서도 충돌을 일으킨다면, 심판은 "너는 특정 함정을 찾지 못했다. 그냥 게임을 일반적으로 깨뜨린 것뿐이다"라고 말합니다. 이는 AI 가 운 좋게 발생한 무관한 실수로 점수를 받는 것을 방지합니다.
결과: AI 탐정들의 고전
이 논문은 GPT-5.4, Opus 4.6, Kimi-K2.6 과 같은 모델로 구동되는 세 가지 최상위 AI "탐정"을 테스트했습니다. 결과는 다음과 같습니다.
- 점수판: 가장 똑똑한 AI 조차도 함정의 약 **32% 에서 39%**만 해결할 수 있었습니다. 이는 60% 이상의 사례에서 실패했다는 뜻입니다.
- "오픈 가중치" 신인: 더 저렴하고 오픈 소스인 AI(Kimi-K2.6) 는 V8 함정의 약 **11.7%**만 해결했습니다.
- 팀워크 효과: 흥미롭게도 AI 탐정들은 서로 다른 함정을 찾았습니다. 두 가지 최상위 AI 의 결과를 결합했을 때, 그들은 함께 SpiderMonkey 함정의 약 **48%**를 해결했지만, 어느 하나도 혼자서는 이를 해내지 못했습니다. 그들은 서로 다른 전문 분야를 가진 두 명의 탐정처럼 보입니다. 한 명은 한 가지 유형의 단서를 찾는 데 능하고, 다른 한 명은 다른 유형의 단서를 찾는 데 능합니다.
왜 실패했는가?
논문은 AI 들이 어려움을 겪은 두 가지 주요 원인을 발견했습니다.
- 너무 많은 추측 ("분사하고 기도하라" 접근법): 한 AI(Claude) 는 수천 개의 스크립트를 생성하려고 시도했습니다. 그중 대부분은 실제로 아무것도 깨뜨리지 않았거나, 잘못된 것을 깨뜨렸습니다. 마치 백만 개의 다트를 보드에 던져서 한 개가 황소눈에 맞기를 바라는 것과 같았습니다.
- 너무 많은 신중함 ("과도한 사고" 접근법): 다른 한 AI(Codex) 는 매우 신중했습니다. 코드를 분석하고 함정이 거기 있을지도 모른다고 판단했지만, 제출하기 전에 100% 증명할 수 없으면 포기하고 "할 수 없다"고 말했습니다. 틀릴까 봐 너무 두려워했기 때문에 많은 함정을 놓쳤습니다.
주요 교훈
이 논문은 결론적으로 AI 가 코드 작성에는 점점 더 능숙해지고 있지만, 복잡하고 현실적인 소프트웨어에서 보안 버그를 찾아내는 길고 어려운 과정에서는 여전히 매우 뛰어나지 않다고 결론 내립니다.
현재 최상위 AI 는 몇 가지 함정을 찾을 수 있지만, 대다수는 놓칩니다. 새로운 벤치마크인 SEC-bench Pro 는 운 좋게 충돌이 발생하기를 바라는 것이 아니라, 코드와 숨겨진 함정 사이의 연결고리를 이어줄 더 나은 도구가 필요하다는 것을 증명합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.