
LLM powered fuzzing via OSS-Fuzz.
이 프레임워크는 다양한 대규모 언어 모델(LLM)을 사용하여 실제 C/C++/Java/Python 프로젝트를 위한 퍼즈 타깃을 생성하고, OSS-Fuzz 플랫폼을 통해 벤치마킹합니다.
자세한 내용은 AI 기반 퍼징: 버그 사냥 장벽을 허무는 방법에서 확인할 수 있습니다:

현재 지원되는 모델은 다음과 같습니다:
생성된 퍼즈 타깃은 프로덕션 환경의 최신 데이터를 기준으로 네 가지 지표로 평가됩니다:
OSS-Fuzz 퍼즈 타깃 대비 런타임 라인 커버리지 차이다음은 2024년 1월 31일 실험 결과 샘플입니다. 이 실험에는 297개의 오픈소스 프로젝트에서 가져온 1300개 이상의 벤치마크가 포함되었습니다.

전반적으로 이 프레임워크는 LLM을 활용하여 160개의 C/C++ 프로젝트에 대해 유효한 퍼즈 타깃(0이 아닌 커버리지 증가를 생성하는 타깃)을 성공적으로 생성할 수 있었습니다. 최대 라인 커버리지 증가율은 기존 사람이 작성한 타깃 대비 29%입니다.
이 보고서는 공개되지 않은 취약점을 포함할 수 있으므로 공개되지 않습니다.
이 프레임워크를 실행하고 결과를 기반으로 보고서를 생성하는 방법은 자세한 사용 가이드를 확인하세요.
통합 에이전트 실행 프레임워크를 사용하면 전체 실험을 실행하지 않고도 개별 에이전트를 실행하거나 평가할 수 있습니다. 개별 에이전트 또는 에이전트 시퀀스를 실행하는 방법에 대한 자세한 지침은 프레임워크 문서를 참조하세요.
연구 또는 오픈소스 커뮤니티 협업에 관심이 있으신가요? 부담 없이 이슈를 등록하거나 [email protected]으로 이메일을 보내주세요.
지금까지 이 프레임워크로 구축된 자동 생성 타깃으로 발견한 30개의 새로운 버그/취약점을 보고했습니다:
이 버그들은 새로 생성된 타깃으로만 발견할 수 있었습니다. 기존 OSS-Fuzz 타깃으로는 도달할 수 없었습니다.
* "총 프로젝트 라인 수"는 OSS-Fuzz의 기존 사람이 작성한 퍼즈 타깃에 의해 컴파일 및 링크된 테스트 대상 프로젝트의 소스 코드를 측정한 것입니다.
* "총 커버리지 증가율"은 "총 프로젝트 라인 수"를 분모로 사용하여 계산됩니다. "총 상대 증가율"은 기존 커버된 라인 수와 비교한 커버리지 증가분입니다.
* 테스트 대상 프로젝트의 추가 코드는 새 퍼즈 타깃을 컴파일할 때 포함되어 높은 백분율 증가를 초래할 수 있습니다.
인용 세부 정보를 보려면 이 GitHub 페이지 오른쪽에 있는 'Cite this repository' 버튼을 클릭하세요.
| 프로젝트 | 버그 | LLM | 프롬프트 빌더 | 타깃 오라클 |
|---|
cJSON | OOB 읽기 | Vertex AI | Default | 멀리 도달, 낮은 커버리지 |
libplist | OOB 읽기 | Vertex AI | Default | 멀리 도달, 낮은 커버리지 |
hunspell | OOB 읽기 | Vertex AI | default | 멀리 도달, 낮은 커버리지 |
zstd | OOB 쓰기 | Vertex AI | default | 멀리 도달, 낮은 커버리지 |
gdbm | 스택 버퍼 언더플로 | Vertex AI | default | 멀리 도달, 낮은 커버리지 |
hoextdown | 초기화되지 않은 메모리 사용 | Vertex AI | default | 멀리 도달, 낮은 커버리지 |
pjsip | OOB 읽기 | Vertex AI | Default | 퍼즈 키워드 + 쉬운 매개변수로 낮은 커버리지, 멀리 도달 |
pjsip | OOB 읽기 | Vertex AI | Default | 퍼즈 키워드 + 쉬운 매개변수로 낮은 커버리지, 멀리 도달 |
gpac | OOB 읽기 | Vertex AI | Default | 퍼즈 키워드 + 쉬운 매개변수로 낮은 커버리지, 멀리 도달 |
gpac | OOB 읽기/쓰기 | Vertex AI | Default | 전체 |
gpac | OOB 읽기 | Vertex AI | Default | 전체 |
gpac | OOB 읽기 | Vertex AI | Default | 전체 |
sqlite3 | OOB 읽기 | Vertex AI | Default | 전체 |
htslib | OOB 읽기 | Vertex AI | Default | 전체 |
libical | OOB 읽기 | Vertex AI | Default | 전체 |
croaring | OOB 읽기 | Vertex AI | Test-to-harness | 전체 |
openssl | CVE-2024-9143 - OOB 읽기/쓰기 | Vertex AI | Default | 전체 |
liblouis | 초기화되지 않은 메모리 사용 | Vertex AI | Test-to-harness | 테스트 식별자 |
libucl | OOB 읽기 | Vertex AI | Default | 퍼즈 키워드 + 쉬운 매개변수로 낮은 커버리지, 멀리 도달 |
openbabel | 해제 후 사용 | Vertex AI | Default | 퍼즈 키워드 + 쉬운 매개변수로 낮은 커버리지, 멀리 도달 |
libyang | OOB 읽기 | Vertex AI | Default | 전체 |
openbabel | OOB 읽기 | Vertex AI | Default | 전체 |
exiv2 | OOB 읽기 | Vertex AI | Default | 전체 |
| 비공개 | Java RCE (유지보수자 분류 대기 중) | Vertex AI | Default | 멀리 도달, 낮은 커버리지 |
| 비공개 | 정규식 DoS (유지보수자 분류 대기 중) | Vertex AI | Default | 멀리 도달, 낮은 커버리지 |
| 비공개 | OOB 읽기 | Vertex AI | Default | 전체 |
| 비공개 | OOB 쓰기 | Vertex AI | Default | 전체 |
| 비공개 | OOB 읽기 | Vertex AI | Default | 전체 |
| 비공개 | OOB 읽기 | Vertex AI | Default | 전체 |
| 비공개 | 해제 후 사용 | Vertex AI | Agent prompt | 전체 |
| 프로젝트 | 총 커버리지 증가율 | 총 상대 증가율 | OSS-Fuzz-gen 총 커버된 라인 수 | OSS-Fuzz-gen 신규 커버된 라인 수 | 기존 커버된 라인 수 | 총 프로젝트 라인 수 |
|---|
| phmap | 98.42% | 205.75% | 1601 | 1181 | 574 | 1120 |
| usbguard | 97.62% | 26.04% | 24550 | 5463 | 20979 | 3564 |
| onednn | 96.67% | 7057.14% | 5434 | 5434 | 77 | 210 |
| avahi | 82.06% | 155.90% | 3358 | 2814 | 1805 | 3046 |
| pugixml | 72.98% | 194.95% | 9015 | 6646 | 3409 | 7662 |
| librdkafka | 66.88% | 845.57% | 5019 | 4490 | 531 | 1169 |
| casync | 66.75% | 903.23% | 1171 | 1120 | 124 | 1678 |
| tomlplusplus | 61.06% | 331.10% | 4755 | 3652 | 1103 | 5981 |
| astc-encoder | 59.35% | 177.88% | 2726 | 1745 | 981 | 2940 |
| mruby | 48.56% | 0.00% | 34493 | 34493 | 0 | 71038 |
| arduinojson | 42.10% | 85.80% | 3344 | 1800 | 2098 | 4276 |
| json | 41.13% | 66.51% | 5051 | 3339 | 5020 | 8119 |
| double-conversion | 40.40% | 88.12% | 1663 | 779 | 884 | 1928 |
| tinyobjloader | 38.26% | 77.01% | 1157 | 717 | 931 | 1874 |
| glog | 38.18% | 58.69% | 895 | 331 | 564 | 867 |
| cppitertools | 35.78% | 45.07% | 253 | 151 | 335 | 422 |
| eigen | 35.38% | 190.70% | 2643 | 1947 | 1021 | 5503 |
| glaze | 34.55% | 30.06% | 2920 | 2416 | 8036 | 6993 |
| rapidjson | 31.83% | 148.07% | 1585 | 958 | 647 | 3010 |
| libunwind | 30.58% | 83.25% | 2899 | 1342 | 1612 | 4388 |
| openh264 | 30.07% | 50.14% | 6607 | 5751 | 11470 | 19123 |