SecRepoBench: Benchmarking Code Agents for Secure Code Completion in Real-World Repositories
이 논문은 27 개의 C/C++ 저장소와 15 가지 CWE 를 포함한 SecRepoBench 벤치마크를 통해 코드 에이전트가 독립형 LLM 보다 실제 환경의 안전한 코드 완성에서 훨씬 우수한 성능을 보임을 입증하고, 향후 코드 에이전트 능력 향상을 위한 통찰을 제시합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
이 논문은 **"SecRepoBench(섹스레포벤치)"**라는 새로운 시험지를 소개합니다. 이 시험지는 인공지능 (AI) 이 코딩을 할 때, 단순히 '잘 작동하는' 코드를 만드는지, 그리고 '보안상 안전한' 코드를 만드는지 동시에 평가하기 위해 만들어졌습니다.
이 복잡한 내용을 일상적인 비유로 쉽게 설명해 드릴게요.
1. 왜 이 시험이 필요한가요? (기존의 문제점)
지금까지 AI 코딩 도구를 평가할 때 두 가지 큰 문제가 있었습니다.
문제 1: "잘 작동하지만, 폭탄이 숨어있을 수 있다."
- 비유: 마치 집을 짓는 시공팀을 평가한다고 상상해 보세요. 기존 시험지는 "집이 무너지지 않고 문이 잘 열리는가?"만 확인했습니다. 하지만 AI 가 만든 집이 문은 잘 열리는데, 화재 경보가 고장 났거나, 지하실에 폭탄이 숨어있을 수 있는지는 확인하지 못했습니다.
- 해결: SecRepoBench 는 "집이 잘 지어졌는가 (기능)"와 "화재나 폭탄 위험이 없는가 (보안)"를 동시에 확인합니다.
문제 2: "실제 현장과 너무 동떨어진 연습."
- 비유: 기존 시험지는 AI 에게 "빈 땅에 혼자서 집을 지어봐"라고 시켰습니다. 하지만 현실의 개발자는 이미 지어진 거대한 아파트 단지 (기존 코드 저장소) 안에서, 특정 방만 고치거나 확장하는 일을 합니다.
- 해결: SecRepoBench 는 AI 에게 **실제 거대한 아파트 단지 (GitHub 의 C/C++ 프로젝트)**를 주고, 그 안에서 특정 부분을 고치게 합니다. AI 는 다른 방의 구조를 파악하고, 기존 배선과 연결해야 하는 등 실전 상황을 겪게 됩니다.
2. 시험은 어떻게 진행되나요?
이 시험지는 27 개의 실제 거대한 프로젝트 (아파트 단지) 에서 318 개의 미션을 뽑아냈습니다.
- 미션: AI 는 개발자가 "여기 이 부분 코드를 채워줘"라고 요청하면, 빈칸을 채워야 합니다.
- 평가 1 (기능성): 채워진 코드가 원래 개발자가 쓴 **테스트 문제 (단위 테스트)**를 통과하는지 확인합니다. (집이 잘 지어졌나?)
- 평가 2 (보안성): 채워진 코드가 **해커의 공격 시뮬레이션 (OSS-Fuzz 의 PoC)**을 받았을 때, 건물이 무너지지 (프로그램이 크래시되지) 않는지 확인합니다. (폭탄이 없나?)
3. 어떤 결과가 나왔나요? (놀라운 발견)
연구진은 29 개의 AI 모델과 15 개의 '코드 에이전트 (AI 가 스스로 도구를 사용하는 시스템)'를 시험에 붙였습니다.
혼자서 하는 AI (단일 모델) 는 힘들어 합니다:
- 가장 똑똑한 AI(GPT-5 등) 가 혼자서 코드를 짤 때, 정답과 보안이 모두 맞는 코드를 만드는 비율은 고작 39% 정도였습니다. 나머지 60% 는 기능을 못 하거나, 보안 구멍이 뚫린 코드를 만들었습니다.
- 비유: 혼자서 일하는 초급 엔지니어는 복잡한 아파트 단지에서 방 하나를 고치려다, 배선을 잘못 연결하거나 벽을 뚫는 실수를 자주 합니다.
도구를 쓰는 '에이전트'는 훨씬 잘합니다:
- 하지만 AI 가 **도구를 가지고 스스로 돌아다니며 정보를 찾는 '에이전트'**가 되면 성능이 훨씬 좋아집니다. (최고 조합은 53% 성공)
- 비유: 숙련된 팀장이 되어, 다른 방의 배선도를 직접 확인하고 (Context Retrieval), 필요한 자재를 찾아와서 (Tool Use) 고치니 실수가 줄어든 것입니다.
- 하지만 여전히 부족합니다: 에이전트도 50% 가 넘는 미션에서는 실패했습니다. 특히 기능은 잘 만들었는데 보안 구멍을 뚫는 경우가 많았습니다. 즉, "집은 잘 지었는데, 화재 경보는 안 달아줬다"는 뜻입니다.
이 시험지가 더 어렵습니다:
- 기존에 있던 어려운 시험지 (BaxBench) 보다 SecRepoBench 가 훨씬 더 어렵습니다. AI 가 혼자서 빈 땅에 집을 지을 때는 잘해도, 실제 복잡한 아파트 단지에서는 엉망이 된다는 뜻입니다.
4. 결론: AI 코딩은 어디까지 왔나?
이 논문의 핵심 메시지는 다음과 같습니다.
"지금의 AI 는 혼자서 간단한 코딩은 잘하지만, 실제 거대한 프로젝트에서 보안까지 고려한 코딩은 아직 많이 부족합니다. 특히 '에이전트'가 도구를 쓰면 기능이 나아지지만, 보안까지 챙기는 것은 여전히 어렵습니다."
요약하자면:
AI 코딩 도구가 우리 삶을 편리하게 해주기 위해서는, 단순히 "작동하는 코드"를 만드는 것을 넘어, **"해커가 뚫지 못하는 안전한 코드"**를 실제 복잡한 환경에서도 만들 수 있어야 합니다. SecRepoBench 는 바로 그 능력을 측정하기 위한 최고 난이도의 실전 시험지입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.