arm/metis

Metis is an open-source, AI-driven tool for deep security code review

解決する課題

Metisは、大規模・複雑・レガシーなコードベースにおけるレビュー疲労の軽減と、微妙なセキュリティ脆弱性の検出を目的として設計されています。従来の静的解析ツール(SAST)やリンターは、ハードコードされたルールに依存し、コードのセマンティックな理解に苦戦しがちであるという限界に対処します。

動作原理

Metisは、大規模言語モデル(LLM)によって駆動されるエージェント型AIフレームワークを使用し、ソースコードに対する深い推論を実行します。言語サポートにはプラグインベースのシステムを採用し、コードの分割と解析にはTree-sitterを活用しています。CおよびC++については、到達可能性解析のためにCodeGraphを利用します。システムは、検索拡張解析を可能にするために、コードベースをベクトルストア(ChromaDB、pgvector付きPostgreSQL、Qdrantをサポート)にインデックス化できます。また、検出結果を検証し誤検出を軽減するためのトリアージフローも含まれており、これは自システムの結果やサードパーティ製SASTツールの結果に適用できます。

対象ユーザー

主に、幅広いプログラミング言語にわたって深いセキュリティコードレビューを実行し、安全なコーディングプラクティスを改善する必要があるセキュリティエンジニアやソフトウェア開発者向けです。

ハイライト

  • 深い推論: ハードコードされたルールではなく、セマンティックな理解のためにLLMを使用します。
  • 拡張可能なアーキテクチャ: 新しい言語、モデル、プロンプトの追加に対応したプラグインフレンドリーな設計。
  • 広範な言語サポート: C、C++、Java、Python、Rust、Go、さらにはAArch64アセンブリなど、膨大な数の言語をサポートします。
  • プロバイダーの柔軟性: 主要なLLMプロバイダー(OpenAI、Anthropic、Gemini、AWS Bedrock)およびローカルモデル(vLLM、Ollama、llama.cpp)と互換性があります。
  • 決定論的な証拠: 検出結果がコードに基づいていることを保証するために、ソースローカルな解析と決定論的な証拠収集に焦点を当てます。
  • 統合トリアージ: 誤検出を軽減するために検出結果を検証し、他のツールからのSARIFファイルを処理できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト