MemRepair: 에이전트 기반 저장소 수준 취약점 수정을 위한 계층적 메모리
요약
MemRepair는 저장소 규모의 소프트웨어 취약점을 자동으로 수정하기 위해 계층적 메모리 구조를 도입한 에이전트 기반 프레임워크입니다. History-Fix, Security-Pattern, Refinement-Trajectory라는 세 가지 메모리 계층을 통해 이전의 수정 경험과 보안 패턴을 학습하고 재사용함으로써 복잡한 다중 파일 수정 작업을 수행합니다. 실험 결과, SEC-Bench와 PatchEval 등 주요 벤치마크에서 기존의 범용 에이전트 및 특화 도구보다 높은 해결률을 기록하며 성능을 입증했습니다.
핵심 포인트
- 계층적 메모리 구조(History-Fix, Security-Pattern, Refinement-Trajectory)를 통해 수정 프로세스의 연속성 확보
- 실패한 시도로부터 학습하는 'failure-to-success' 궤적 활용 능력 제공
- 저장소 특유의 수정 관례 및 재사용 가능한 보안 방어 기법 검색 가능
- SEC-Bench, PatchEval, Multi-SWE-bench 등 주요 벤치마크에서 SOTA(State-of-the-art) 성능 달성
현대 소프트웨어 생태계는 공개되는 취약점의 수가 급격히 증가함에 따라, 저장소 규모(repository scale)에서 안정적으로 작동할 수 있는 자동 수정 기술의 필요성이 커지고 있습니다. 최근 대규모 언어 모델 (LLM) 기반 에이전트들이 자동 취약점 수정 (AVR) 분야에서 가능성을 보여주고 있지만, 대부분의 기존 시스템은 여전히 수정을 현재 가시적인 코드 컨텍스트(code context) 상의 단일 생성 단계로 취급합니다. 그 결과, 이전의 수정 사항을 재사용하거나 실패한 검증 시도로부터 학습할 수 있는 지속적인 메커니즘이 부족하며, 이는 복잡한 다중 파일 수정 작업에서의 효과를 제한합니다. 본 논문에서는 취약점 수정을 반복적이고 경험 중심적인 프로세스로 공식화하는 메모리 증강 에이전트 프레임워크인 MemRepair를 제안합니다. MemRepair는 History-Fix, Security-Pattern, Refinement-Trajectory 메모리라는 세 가지 상호 보완적인 메모리 계층을 동적인 피드백 기반 정교화 루프(refinement loop)와 결합합니다. 이러한 설계는 에이전트가 저장소 특유의 수정 관례를 검색하고, 재사용 가능한 보안 방어 기법을 적용하며, 이전의 "실패에서 성공으로(failure-to-success)" 이어진 궤적을 활용하여 런타임 증거를 바탕으로 의미론적으로 유효하지 않은 패치를 수정할 수 있도록 합니다. 우리는 세 가지 대표적인 저장소 수준 취약점 수정 벤치마크인 SEC-Bench, PatchEval (Python, Go, JavaScript), 그리고 Multi-SWE-bench의 C++ 서브셋에서 MemRepair를 평가했습니다. MemRepair는 각각 58.0%, 58.2%, 30.58%의 최첨단 (state-of-the-art) 해결률을 달성하였으며, 이는 경쟁력 있는 수정 비용을 유지하면서도 OpenHands 및 SWE-agent와 같은 강력한 범용 에이전트와 특화된 AVR 도구인 InfCode-C++를 능가하는 성능입니다. 이러한 결과는 지속적이고 계층적인 수정 메모리가 다양한 언어와 저장소 설정에 걸쳐 에이전트 기반 취약점 수정의 신뢰성을 실질적으로 향상시킬 수 있음을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기