← 최신 논문
🤖 AI

MulVul: Retrieval-augmented Multi-Agent Code Vulnerability Detection via Cross-Model Prompt Evolution

MulVul은 단일 모델의 취약점 탐지 및 수동 프롬프트 엔지니어링의 한계를 해결하기 위해 거친 단계에서 세밀한 단계로 이어지는 라우팅 전략과 새로운 교차 모델 프롬프트 진화 메커니즘을 채택하여 다양한 취약점 유형에 걸쳐 현저히 높은 정확도를 달성하는 검색 증강 멀티 에이전트 프레임워크입니다.

원저자: Zihan Wu, Jie Xu, Yun Peng, Chun Yong Chong, Xiaohua Jia

게시일 2026-01-28
📖 4 분 읽기☕ 가벼운 읽기

원저자: Zihan Wu, Jie Xu, Yun Peng, Chun Yong Chong, Xiaohua Jia

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신은 거대한 컴퓨터 코드 도서관에서 특정 유형의 버그를 찾으려고 노력 중이라고 상상해 보세요. 이것은 마치 건초더미에서 바늘을 찾는 것과 비슷하지만, 그 "바늘"들은 수천 가지의 서로 다른 모양, 크기, 색상을 가지고 있습니다.

이 논문은 이 문제를 해결하기 위해 MulVul이라는 새로운 시스템을 소개합니다. 여기서는 쉬운 비유를 통해 이 시스템이 어떻게 작동하는지 설명합니다.

문제점: 하나가 모든 것을 해결할 수는 없다

당신이 도시의 모든 종류의 범죄를 찾아내기 위해 매우 똑똑한 단 한 명의 형사를 고용했다고 상상해 보세요.

  • 문제점: 어떤 범죄는 은행 강도(자물쇠와 알람에 대한 지식이 필요함)와 같고, 다른 범죄는 신분 도용(사회 공학적 기법에 대한 지식이 필요함)과 같습니다. 한 명의 형사는 한 분야에는 뛰어날 수 있지만, 다른 분야에는 형편없을 수 있습니다.
  • 기존 방식: 이전의 AI 도구들은 이 모든 것을 한꺼번에 잡기 위해 하나의 "슈퍼 형사"를 사용하려고 시도했습니다. 코드 취약점의 종류가 너무 많기 때문에(130가지 이상!), 이 단일 형사는 종종 혼란에 빠지거나, 무언가를 놓치거나, 혹은 잘못된 경보를 울리기도 합니다.
  • 수동 작업의 문제: AI를 위한 특정 지침(프롬프트)을 모든 유형의 취약점에 대해 일일이 작성할 수도 있습니다. 하지만 수백 가지의 유형이 있는 상황에서 이 지침들을 수동으로 작성하고 테스트하는 것은 불가능합니다. 시간이 너무 오래 걸리고 비용도 많이 듭니다.

해결책: MulVul (전문가 팀)

MulVul은 일반론적인 한 명의 전문가 대신 전문가 팀을 사용하는 방식으로 게임의 판도를 바꿉니다. 이는 두 가지 주요 단계로 작동합니다.

1. "라우터" (교통 경찰)

코드가 도착하면, 그것은 모두에게 전달되지 않습니다. 먼저 **라우터 에이전트(Router Agent)**에게 전달됩니다.

  • 역할: 라우터는 코드를 보고 "이것이 어떤 종류의 문제인가?"라고 묻습니다. 라우터는 정확한 버그가 무엇인지 알 필요는 없습니다. 단지 광범적인 카테고리(예: "이것은 메모리 오류처럼 보인다" 또는 "이것은 인젝션 공격처럼 보인다")를 추측하기만 하면 됩니다.
  • 비결: 라우터는 **검색 도구(Retrieval Tool)**를 사용합니다. 이것은 라우터가 추측을 하기 전에 유사한 과거 사례를 찾기 위해 거대하고 체계적인 범죄 백과사전을 훑어보는 것과 같습니다. 이를 통해 무작정 추측하는 것을 방지합니다.
  • 결과: 라우터는 가장 가능성이 높은 상위 3가지 카테고리를 선택하고, 해당 특정 카테고리를 담당하는 전문가들에게만 코드를 보냅니다. 이를 통해 시간과 비용을 절약합니다.

2. "디텍터" (포렌식 전문가)

라우터가 코드를 적절한 전문가에게 보내면, **디텍터 에이전트(Detector Agents)**가 업무를 인계받습니다.

  • 역할: 이들은 고도로 전문화된 에이전트들입니다. 어떤 이는 메모리 오류만을 찾고, 다른 이는 인젝션 공격만을 찾습니다.
  • 비결: 라우터와 마찬가지로, 이들도 검색 도구를 사용합니다. 하지만 이들은 더 똑똑합니다. 이들은 "대조적인(contrastive)" 사례들을 찾습니다. 마치 형사가 용의자의 진술을 유사한 범죄의 실제 사례와 허위 사례 모두와 비교하여 미세한 차이를 찾아내는 것과 같습니다. 이를 통해 이들은 유사해 보이는 코드 사이에서도 혼란 없이 정확한 버그를 짚어냅니다.
  • 격리: 결정적으로, 이 형사들은 각자 독립적으로 일합니다. 이들은 서로 대화하지 않습니다. 만약 한 명의 형사가 실수를 하더라도, 그것이 다른 형사들에게 전파되지 않아 오류의 연쇄 반응을 방지합니다.

핵심 비결: "교차 모델 프롬프트 진화 (Cross-Model Prompt Evolution)"

AI 에이전트를 위한 지침(프롬프트)을 작성하는 것이 가장 어려운 부분입니다. 만약 한 AI에게 자기 자신을 위한 지침을 쓰라고 요청한다면, 그 AI는 자신의 나쁜 아이디어를 좋은 것이라고 생각하며 루프에 빠질 수 있습니다.

MulVul은 이 문제를 해결하기 위해 영리한 두 개의 AI 시스템을 사용합니다.

  1. 제너레이터 (설계자 - The Generator): Claude와 같은 한 AI가 지침을 작성하고 개선하려고 시도합니다. 이 AI는 "이렇게 말하면 AI가 더 잘할 수 있을 것 같아"라고 추측합니다.
  2. 이그제큐터 (테스터 - The Executor): GPT-4o와 같은 다른 AI가 실제로 그 지침을 따라 버그를 찾아봅니다. 이 AI는 "그 지침은 효과적이었다" 또는 "그것은 실패했다"라고 보고합니다.
  3. 루프: 제너레이터는 이 피드백을 사용하여 더 나은 지침을 작성하고, 테스터는 그 지침을 다시 점검합니다. 이들은 서로 다른 모델이기 때문에, "설계자"가 "테스터"를 속여서 나쁜 아이디어를 좋은 것이라고 믿게 만들 수 없습니다. 이 과정은 지침이 완벽해질 때까지 끊임없이 개선되는 순환 구조를 만듭니다.

결과

저자들은 이 시스템을 실제 세계의 코드 취약점 데이터셋(PrimeVul)에 대해 테스트했습니다.

  • 점수: MulVul은 **34.79%**의 점수를 기록했으며, 이는 기존의 가장 뛰어난 방법보다 41.5% 더 높은 수치입니다.
  • 중요성: 이 시스템은 테스트된 그 어떤 방식보다 더 많은 실제 버그를 찾아냈고, 오탐(false alarms)은 더 적었습니다.
  • "진화"의 효과: 두 AI가 함께 지침을 개선하는 부분이, 인간이 수동으로 지침을 작성했을 때보다 시스템을 51.6% 더 향상시켰습니다.

요약

MulVul은 과로하는 한 명의 경비원에게 의존하지 않는 첨단 보안 업체와 같습니다. 대신, 용의자를 적절한 포렌식 전문가에게 안내하는 스마트한 교통 경찰을 두고, 그 전문가들은 과거 사례 라이브러리를 사용하여 퍼즐을 풀며, 전문가들이 정확히 무엇을 해야 하는지 확실히 하기 위해 두 개의 서로 다른 AI 브레인을 사용하여 규칙을 끊임없이 재작성하고 완벽하게 만듭니다.

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

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

Digest 사용해 보기 →