Core Concepts
GPT-3.5-turbo가 생성한 C 프로그램에는 다양한 취약점이 존재하며, 이를 형식 검증 기법을 통해 체계적으로 분석하고 분류할 수 있다.
Abstract
이 연구는 GPT-3.5-turbo를 활용하여 112,000개의 독립적이고 컴파일 가능한 C 프로그램을 생성하고, 이를 ESBMC 모델 체크기를 통해 체계적으로 분석하였다.
생성된 C 프로그램은 다양한 프로그래밍 시나리오를 다루며, 네트워크 관리, 게임, 암호화 등 복잡한 작업부터 문자열 조작 등 단순한 작업까지 포함한다.
ESBMC 모듈은 형식 검증 기법을 활용하여 각 프로그램의 취약점을 정확하게 식별하고 분류하였다. 이를 통해 197,800개의 취약점을 탐지하였다.
탐지된 취약점은 CWE(Common Weakness Enumeration) 번호와 연결되어 있어, 다양한 취약점 유형을 확인할 수 있다.
이 데이터셋은 취약점 탐지 도구 벤치마킹, 기계 학습 알고리즘 학습 등 다양한 연구 목적으로 활용될 수 있다.
Stats
정수 오버플로우(Arithmetic Overflow)가 23,312건으로 가장 많이 발견되었다.
배열 범위 초과(Array Bounds Violated)가 11,088건 발견되었다.
버퍼 오버플로우(Buffer Overflow)가 88,049건 발견되었다.
NULL 포인터 역참조(Dereference Failure: NULL pointer)가 31,829건 발견되었다.
Quotes
"GPT-3.5-turbo가 생성한 C 프로그램에는 다양한 취약점이 존재한다."
"ESBMC 모듈은 형식 검증 기법을 활용하여 각 프로그램의 취약점을 정확하게 식별하고 분류할 수 있다."
"이 데이터셋은 취약점 탐지 도구 벤치마킹, 기계 학습 알고리즘 학습 등 다양한 연구 목적으로 활용될 수 있다."