ChatAFL  by ChatAFLndss

Protocol fuzzer guided by LLMs (NDSS'24 paper)

created 1 year ago
348 stars

Top 80.9% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

ChatAFL is a protocol fuzzer that leverages Large Language Models (LLMs) to enhance fuzzing efficiency and effectiveness for network protocols. It targets security researchers and developers seeking to improve protocol robustness by automating grammar extraction, seed enrichment, and coverage-guided mutation strategies.

How It Works

ChatAFL integrates LLMs into the fuzzing process to address key challenges. It uses LLMs to generate machine-readable protocol grammars for structure-aware mutation, enriching initial seed queues with diverse messages, and generating new inputs to overcome coverage plateaus. This approach aims to achieve higher code and state coverage more rapidly than traditional fuzzing methods.

Quick Start & Requirements

  • Install: Run ./deps.sh to install dependencies.
  • Setup: Execute KEY=<OPENAI_API_KEY> ./setup.sh to prepare Docker images (approx. 40 minutes). Requires an OpenAI API key.
  • Run: Use ./run.sh <container_number> <fuzzed_time> <subjects> <fuzzers> for experiments.
  • Analyze: Use ./analyze.sh <subjects> <fuzzed_time> to analyze results.
  • Dependencies: Docker, Bash, Python3 with pandas and matplotlib.
  • Docs: Paper

Highlighted Details

  • LLM-guided grammar extraction for structure-aware mutation.
  • LLM-enhanced initial seed diversity and coverage plateau breaking.
  • Integrated within the ProfuzzBench framework for stateful network protocol fuzzing.
  • Supports ablation studies to evaluate individual LLM strategies.

Maintenance & Community

The project is associated with NDSS'24. No specific community channels or active maintenance signals are detailed in the README.

Licensing & Compatibility

  • License: Apache License 2.0.
  • Compatibility: Permissive license suitable for commercial use and integration with closed-source projects.

Limitations & Caveats

The fuzzer relies on OpenAI's LLMs (gpt-3.5-turbo-instruct, gpt-3.5-turbo), imposing third-party rate limits (150,000 tokens/minute). A GPT-4 version is available but less tested. Reproducing full paper experiments requires significant computational resources.

Health Check
Last commit

1 month ago

Responsiveness

1+ week

Pull Requests (30d)
0
Issues (30d)
0
Star History
17 stars in the last 90 days

Explore Similar Projects

Starred by Elie Bursztein Elie Bursztein(Cybersecurity Lead at Google DeepMind), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
1 more.

oss-fuzz-gen by google

0.3%
1k
LLM-powered fuzz target generator for C/C++/Java/Python projects, benchmarked via OSS-Fuzz
created 1 year ago
updated 5 days ago
Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Travis Fischer Travis Fischer(Founder of Agentic), and
3 more.

AlphaCodium by Codium-ai

0.2%
4k
Code generation research paper implementation
created 1 year ago
updated 8 months ago
Feedback? Help us improve.