[논문 리뷰] LLMs Cannot Reliably Identify and Reason About Security Vulnerabilities (Yet?): A Comprehensive Evaluation, Framework, and Benchmarks
이 논문은 최신 대규모 언어 모델(Large Language Models, LLMs)이 소프트웨어 보안 취약성을 탐지하고 추론하는 데 있어 새로운 완전 자동화된 프레임워크를 사용하여 평가한다. 비록 고도로 발전한 능력을 지녔음에도 불구하고, LLMs는 높은 가짜 양성률, 비결정성 출력, 신뢰할 수 없는 추론, 그리고 미세한 코드 변경에 매우 민감하여 실세계 보안 취약성 탐지에 아직 신뢰할 수 없다는 점을 보여준다.
Large Language Models (LLMs) have been suggested for use in automated vulnerability repair, but benchmarks showing they can consistently identify security-related bugs are lacking. We thus develop SecLLMHolmes, a fully automated evaluation framework that performs the most detailed investigation to date on whether LLMs can reliably identify and reason about security-related bugs. We construct a set of 228 code scenarios and analyze eight of the most capable LLMs across eight different investigative dimensions using our framework. Our evaluation shows LLMs provide non-deterministic responses, incorrect and unfaithful reasoning, and perform poorly in real-world scenarios. Most importantly, our findings reveal significant non-robustness in even the most advanced models like `PaLM2' and `GPT-4': by merely changing function or variable names, or by the addition of library functions in the source code, these models can yield incorrect answers in 26% and 17% of cases, respectively. These findings demonstrate that further LLM advances are needed before LLMs can be used as general purpose security assistants.
연구 동기 및 목표
- 현재 LLMs가 실제 소스 코드에서 소프트웨어 보안 취약성을 신뢰성 있게 식별하고 추론할 수 있는지 조사하기.
- LLMs의 취약성 탐지 작업 평가를 위한 표준화되고 자동화된 벤치마크의 부족을 해결하기.
- 비결정성, 신뢰할 수 없는 추론, 코드 변형에 대한 민감성과 같은 LLM 행동의 핵심 단점을 특정하기.
- 향후 사이버보안 분야에서의 LLM 개발을 위한 공개 가능하고 확장 가능한 평가 프레임워크를 제공하기.
- LLMs의 취약성 탐지 능력 향상을 체계적으로 추적할 수 있는 벤치마크를 구축하기.
제안 방법
- 다양한 차원(결정성, 파rameter 민감도, 프롬프트 다양성, 추론의 신뢰성, 취약성 다양성, 코드 난이도, 코드 증강에 대한 내성적 안정성, 실제 적용 가능성)을 기반으로 한 완전 자동화되고 확장 가능한 평가 프레임워크를 개발하여 8개의 최신 LLMs를 테스트했다.
- C 및 파이썬에서 8개의 주요 취약성(예: 버퍼 오버플로우, 인젝션 결함 등)을 포함한 총 228개의 코드 시나리오를 구성하였으며, 각 시나리오에 대해 정답 레이블을 제공했다.
- 제로샷, 패턴 기반, 역할 기반 프롬프트를 포함한 총 17종의 프롬프팅 기법을 사용하여 8개의 최신 LLMs(GPT-4, PaLM2, CodeLlama 등)에 적용했다.
- LLM 출력에서 답변과 추론을 추출하고 검증하기 위해 GPT-4를 활용하여 일관성과 정확도를 확보하기 위한 구조적 파싱을 수행했다.
- ROUGE, 코사인 유사도, GPT-4 평가를 조합한 다중 지표 추론 평가를 통해 추론 품질을 평가하고 가짜 양성률을 감소시켰다.
- 지식 캐시 일자 이후에 발표된 실제 CVE들에 대해 모델을 평가하여 일반화 능력과 내성적 안정성을 테스트했다.
실험 결과
연구 질문
- RQ1LLMs는 다양한 프로그래밍 시나리오에서 소스 코드의 보안 취약성을 일관되고 신뢰성 있게 식별할 수 있는가?
- RQ2함수 이름 변경, 라이브러리 임포트 추가, 공백 변경 등의 미세한 코드 수정에 대해 LLMs는 얼마나 내성적 안정성을 유지하는가?
- RQ3LLMs는 취약성을 식별할 때 얼마나 충실하고 논리적인 추론을 제공하는가? 그리고 그 추론이 자주 잘못되거나 환상적인가?
- RQ4다양한 프롬프팅 전략(예: 제로샷 대비 패턴 기반, 역할 기반)은 LLM 성능에 어떤 영향을 미치는가?
- RQ5LLMs는 훈련 기간 동안 접하지 못한 실제 세계의 취약성, 특히 지식 캐시 일자 이후에 발표된 취약성에 대해 일반화할 수 있는가?
주요 결과
- LLMs는 높은 가짜 양성률을 보이며, 패치 처리된 코드를 26%의 경우에 취약한 것으로 잘못 식별하여 실전 적용에 있어 낮은 신뢰성을 보였다.
- 최고 수준의 모델인 PaLM2와 GPT-4조차도 비결정성 행동을 보이며, 동일한 입력에 대해 여러 실행에서 다른 답변을 내놓았다.
- LLMs는 자주 신뢰할 수 없는 추론을 제공한다: 정확하게 취약성을 식별할 때조차 이유가 잘못되거나 논리적으로 오류가 있는 경우가 많았다.
- 체인 오브 톰 추론은 취약하다: 함수 이름 변경이나 라이브러리 임포트 추가와 같은 단순한 코드 증강이 각각 26%와 17%의 경우에서 잘못된 출력을 유도했다.
- LLMs는 지식 캐시 일자 이후에 발표된 실제 CVE에 대해 일반화하지 못하며, 여러 테스트 케이스에서 잘못된 답변을 도출했다.
- 제로샷 역할 기반 프롬프트 'R2'가 프롬프팅 전략 중에서 가장 우수한 성능을 보였지만, 실질적인 신뢰성 있는 구현에는 부족했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.