Vulnhuntr: A Tool for Finding Exploitable Vulnerabilities with LLMs and Static Code Analysis
2024/10/19 SecurityOnline — 今日のサイバーセキュリティの進化の状況において、ソフトウェアとインフラの安全性を維持するために、コードベースの脆弱性を特定することは不可欠である。GitHub で入手可能なオープンソース・ツールである Vulnhuntr は、LLM (Large Language Models) と静的コード解析を活用することで、Python ベースのプロジェクトにおける、リモートから悪用可能な脆弱性を特定する。

シンプルさとパワフルさを追求して設計された Vulnhuntr は、インテリジェントな自動化と徹底的なコード分析のギャップを埋めるものであり、セキュリティ専門家/ソフトウェア開発者/ユーザー組織にとって、貴重なリソースとなる。

Vulnhuntr の仕組み
Vulnhuntr における脆弱性の検出では、独自の多段階アプローチが採用されている。
- LLM による README 分析:最初に LLM が行うのは、プロジェクトの README ファイルの分析と、コードベースにおける機能と潜在的な脆弱性を把握である。この情報は、その後の分析の指針として使用される。
- 初期コードスキャン:LLM はコードベース全体の初期スキャンを実行し、安全なコーディング手法と一般的な脆弱性パターンの理解に基づき、潜在的な脆弱性を特定する。
- コンテキストの詳細調査:潜在的な脆弱性ごとに、Vulnhuntr は LLM に対して固有のプロンプトを提供し、より詳細な分析を開始する。LLM は関連ファイルから追加のコンテキストを要求し、ユーザー入力からサーバ側へといたる、データの流れをトレースする。それにより、複数のファイルと機能にまたがる脆弱性を特定できます。
- 包括的な脆弱性レポート:Vulnhuntr は、調査結果の概要を記載した詳細なレポートを作成する。このレポートには以下が含まれる:
- 各ファイルの初期評価結果
- コンテキスト機能とクラス参照を含む二次評価結果
- 各脆弱性の信頼性スコア
- 分析プロセスのログ
- 検証済みの脆弱性に対するPoC (Proof-of-concept) の悪用
リポジトリで発見された脆弱性の例
Vulnhuntr は、最近のスキャンにおいて、いくつかの著名プロジェクトにおける脆弱性を発見しており、その有効性を示している。
- gpt_academic (64k stars):LFI/XSS
- ComfyUI (50k stars):XSS
- FastChat (35k stars):SSRF
- REDACTED (29k stars):RCE/IDOR
- Ragflow (16k stars):RCE
これらの発見が示唆するのは、学術研究ツールの LFI から、機械学習プロジェクトに RCE にいたる幅広い種類の脆弱性を、Vulnhuntr が検出していく可能性である。
制限事項
脆弱性スキャンの分野において、大きな進歩を遂げた Vulnhuntr だが、いくつかの限界もある。
- Python サポート:現時点では、Vulnhuntr は Python のコードベースのみをサポートしている。
- 脆弱性クラス:Vulnhuntr が識別できる脆弱性クラスは、LFI/AFO/RCE/XSS/SQLI/SSRF/IDOR などに限定されている。
結論
LLM と静的コード解析を組み合わせる Vulnhuntr は、脆弱性の検出に新たなアプローチをもたらし、高度な分析と詳細な洞察を提供している。コードベースの関連部分から動的にコンテキストを要求する能力により、包括的な検出が可能になっている。また、PoC エクスプロイトと信頼スコアによる最終的な分析により、開発者やセキュリティ・チームに実用的な情報を提供する。
Vulnhuntr を調査し、GitHub から開発にコントリビュートすることも可能である。
とても興味深い Vulnhuntr ですね。セキュア・コーディングに精通した人が、言い換えると、アンセキュアなコーディング・パターンを理解する人がデザインしている感じがします。行く末の楽しみな、オープンソース・プロジェクトですね。よろしければ、カテゴリ SecTools も、ご参照ください。
You must be logged in to post a comment.