Skip to main content
QUICK REVIEW

[論文レビュー] LLM4Fuzz: Guided Fuzzing of Smart Contracts with Large Language Models

Chaofan Shou, Jing Liu|arXiv (Cornell University)|Jan 20, 2024
Advanced Malware Detection Techniques被引用数 7
ひとこと要約

Llm4Fuzz は大規模言語モデルを活用して Ethereum スマートコントラクトのファジングを導き、テストカバレッジと脆弱性検出をベースラインより改善し、実世界のプロジェクトで重大な脆弱性を明らかにします。

ABSTRACT

As blockchain platforms grow exponentially, millions of lines of smart contract code are being deployed to manage extensive digital assets. However, vulnerabilities in this mission-critical code have led to significant exploitations and asset losses. Thorough automated security analysis of smart contracts is thus imperative. This paper introduces LLM4Fuzz to optimize automated smart contract security analysis by leveraging large language models (LLMs) to intelligently guide and prioritize fuzzing campaigns. While traditional fuzzing suffers from low efficiency in exploring the vast state space, LLM4Fuzz employs LLMs to direct fuzzers towards high-value code regions and input sequences more likely to trigger vulnerabilities. Additionally, LLM4Fuzz can leverage LLMs to guide fuzzers based on user-defined invariants, reducing blind exploration overhead. Evaluations of LLM4Fuzz on real-world DeFi projects show substantial gains in efficiency, coverage, and vulnerability detection compared to baseline fuzzing. LLM4Fuzz also uncovered five critical vulnerabilities that can lead to a loss of more than $247k.

研究の動機と目的

  • 増大するコードベースと資産価値に伴い、スマートコントラクトの自動セキュリティ分析を動機づける。
  • LLM由来の指標を活用して高価値のコード領域と入力列の探索を優先するファジングフレームワークを開発する。
  • 静的解析、ASTベースの表現、および LLM プロンプトを統合して、関数ごとおよびブロックごとの指標を生成しファジングを導く。
  • 最先端のファジングツールと比較して、実世界の DeFi プロジェクトで効率向上と脆弱性発見を実証する。

提案手法

  • 各スマートコントラクトを AST に変換し、文脈を得るために静的解析を実施する(複雑さ、依存関係、外部呼び出し、制御フロー)。
  • 関連する関数、依存関係、静的解析結果を含む関数レベルのプロンプトを生成し、LLM由来の指標を取得する。
  • LLM 出力からファジングテストケースのエネルギースコアを生成する four producers を定義する(complexity、sequential likelihood、vulnerability likelihood、invariant dependencies)。
  • 階層表現(ソース、CFG、データ依存、指標)を計算・適用し、エネルギーベースのスケジューリングでファジングを導く。
  • LLM由来の指標から得られたエネルギーを用いたパワースケジューリングで、有望なテストケースを優先する。
  • 実世界のコントラクトでベースラインファジングツール(ItyFuzz)を用いて評価し、命令カバレッジと脆弱性発見を分析する。
Figure 1: Workflow of Llm4Fuzz
Figure 1: Workflow of Llm4Fuzz

実験結果

リサーチクエスチョン

  • RQ1RQ1: 実世界のプロジェクトで、Llm4Fuzz はベースラインより高い命令カバレッジを達成できるか?
  • RQ2RQ2: 実世界のプロジェクトでより多くの脆弱性を発見し、新たな脆弱性を突き止められるか?
  • RQ3RQ3: 既存のプロパティテストツールより、Llm4Fuzz は不変性テストをより効率的にできるか?
  • RQ4RQ4: 異なる LLM プロデューサは、ファジングの指針として独自で有用な洞察を提供するか?

主な発見

  • Llm4Fuzz は 117 プロジェクトでより高い命令カバレージ(1.6M 命令)を達成し、ベースライン(1.1M)を上回った。
  • 12 プロジェクトのサブセットで、Bitpaidio や Sheep などの特定のコントラクトにおいて、Llm4Fuzz の性能はベースラインを2倍超上回った。
  • 600件のライブオンチェーンコントラクトにおいて、Llm4Fuzz は潜在的損失が$247kを超える5つの重大な脆弱性を特定した。
  • LLMs は意味のある指標(complexity、vulnerability likelihood、invariant dependencies、そして sequential interestingness)を提供し、ファジングの優先度を効果的に導いた。
  • 著者らは ItyFuzz の上に Llm4Fuzz を実装し、Rust 244 行、LLama 2 70B を LLM クエリに使用、決定ごとに平均3つのプロンプトを用いた。
Figure 2: Total Instruction Coverage Over Time for Onchain Projects
Figure 2: Total Instruction Coverage Over Time for Onchain Projects

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。