핵심 개념
LLM 기반 코드 생성 시 발생할 수 있는 보안 취약점을 정적 분석과 퍼징을 통해 지속적으로 개선하여 안전한 코드를 생성하는 다중 에이전트 프레임워크
초록
이 논문은 LLM을 활용한 자동 코드 생성 시 발생할 수 있는 보안 취약점을 해결하기 위한 다중 에이전트 프레임워크 AutoSafeCoder를 제안한다.
AutoSafeCoder는 다음 3가지 에이전트로 구성된다:
- 코딩 에이전트: LLM을 활용하여 코드를 생성하며, 정적 분석 및 퍼징 에이전트의 피드백을 반영하여 코드를 지속적으로 개선한다.
- 정적 분석 에이전트: 코딩 에이전트가 생성한 코드를 MITRE CWE 데이터베이스를 기반으로 정적 분석하여 취약점을 식별하고 개선 방안을 제시한다.
- 퍼징 에이전트: 코드에 대한 동적 테스트를 수행하여 런타임 오류를 탐지하고, 발견된 오류를 코딩 에이전트에 피드백한다.
이 프레임워크는 코드 생성, 정적 분석, 동적 테스트를 반복적으로 수행하여 보안 취약점을 지속적으로 개선한다. SecurityEval 데이터셋을 활용한 실험 결과, 기존 LLM 대비 13% 더 적은 취약점이 발견되었으며, 기능성 또한 유사한 수준을 유지하는 것으로 나타났다.
통계
LLM 기반 코드 생성 시 약 49%의 코드에서 취약점이 발견되었다.
AutoSafeCoder를 통해 생성된 코드에서는 약 36%의 코드에서 취약점이 발견되어, 13% 감소하였다.
정적 분석 에이전트를 통해 53%의 취약점이 해결되었다.
퍼징 에이전트를 통해 4%의 코드 오류가 수정되었다.
인용구
"LLM 기반 코드 생성은 기능적 정확성은 높지만, 보안 취약점 발생 가능성이 약 40%에 달한다."
"기존 접근법은 단일 에이전트 기반으로 코드를 생성하여 보안 취약점 해결에 어려움이 있다."
"AutoSafeCoder는 정적 분석과 동적 테스트를 통해 보안 취약점을 지속적으로 개선하여 안전한 코드를 생성한다."