← 최신 논문
🤖 AI

SecRepoBench: Benchmarking Code Agents for Secure Code Completion in Real-World Repositories

이 논문은 27 개의 C/C++ 저장소와 15 가지 CWE 를 포함한 SecRepoBench 벤치마크를 통해 코드 에이전트가 독립형 LLM 보다 실제 환경의 안전한 코드 완성에서 훨씬 우수한 성능을 보임을 입증하고, 향후 코드 에이전트 능력 향상을 위한 통찰을 제시합니다.

원저자: Chihao Shen, Connor Dilgren, Purva Chiniya, Luke Griffith, Yu Ding, Yizheng Chen

게시일 2026-02-17
📖 3 분 읽기☕ 가벼운 읽기

원저자: Chihao Shen, Connor Dilgren, Purva Chiniya, Luke Griffith, Yu Ding, Yizheng Chen

원본 논문은 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 개의 미션을 뽑아냈습니다.

  1. 미션: AI 는 개발자가 "여기 이 부분 코드를 채워줘"라고 요청하면, 빈칸을 채워야 합니다.
  2. 평가 1 (기능성): 채워진 코드가 원래 개발자가 쓴 **테스트 문제 (단위 테스트)**를 통과하는지 확인합니다. (집이 잘 지어졌나?)
  3. 평가 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 는 바로 그 능력을 측정하기 위한 최고 난이도의 실전 시험지입니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →