Core Concepts
대규모 언어 모델(LLM)인 ChatGPT와 CodeBERT의 보안 지향 프로그램 분석 능력을 탐구하고 그 강점과 한계를 분석하였다.
Abstract
이 논문은 대규모 언어 모델(LLM)인 ChatGPT와 CodeBERT의 보안 지향 프로그램 분석 능력을 탐구하고 그 강점과 한계를 분석하였다.
먼저, ChatGPT를 대상으로 한 사례 연구에서는 다음과 같은 결과를 얻었다:
- ChatGPT는 코드의 고수준 의미를 효과적으로 학습할 수 있으며, 코드 간 데이터 흐름을 추적하고 다중 함수 간 코드 논리를 이해할 수 있는 능력을 보였다.
- 그러나 변수, 함수, 클래스 이름이 잘 정의되어 있지 않은 경우 ChatGPT의 성능이 크게 저하되었다. 이는 ChatGPT가 훈련 데이터에 포함된 패턴에 크게 의존하기 때문이다.
- ChatGPT는 취약점 분석, 버그 수정, 보안 대책 제안 등의 작업에서 유용할 수 있지만, 구현 수준의 세부사항을 다루는 데는 한계가 있다.
한편 CodeBERT에 대한 실험에서는 다음과 같은 결과를 얻었다:
- 코드의 문자 수준 특징과 논리 수준 특징이 CodeBERT의 성능에 미치는 영향을 정량적으로 분석하였다.
- 코드의 이름 정의가 불명확하거나 익명화된 경우 CodeBERT의 성능이 크게 저하되었다.
이 연구 결과는 향후 LLM의 보안 지향 프로그램 분석 분야 발전을 위한 유용한 통찰을 제공할 것으로 기대된다.
Stats
변수 이름이 잘 정의되지 않은 경우 ChatGPT의 성능이 크게 저하된다.
CodeBERT의 성능은 코드의 문자 수준 특징과 논리 수준 특징에 크게 영향을 받는다.
코드의 이름 정의가 불명확하거나 익명화된 경우 CodeBERT의 성능이 크게 저하된다.
Quotes
"ChatGPT sometimes writes plausible-sounding but incorrect or nonsensical answers. Fixing this issue is challenging, as: (1) during reinforcement learning training, there's currently no source of truth; (2) training the model to be more cautious causes it to decline questions that it can answer correctly; and (3) supervised training misleads the model because the ideal answer depends on what the model knows, rather than what the human demonstrator knows."