Repolode
arm

arm/metis

ArmのProduct Security Teamが開発した、固定ルールではなく意味的な推論によって脆弱性を検出する、LLM駆動のオープンソースセキュリティコードレビュー・ツール。

スター
889
フォーク
128
未解決の Issue
12
最終コミット
一昨日

これは何?

Metisは、セキュリティコードレビューを深く行うためのエージェント型AIフレームワークです。従来のリンターや静的解析ツールのようにハードコードされたルールに頼るのではなく、大規模言語モデルを使ってコードの意味を推論し、大規模なコードベースやレガシーコードに潜む見つけにくい脆弱性の検出を目指します。また、独自の解析結果とサードパーティ製ツールのSARIF出力を検証し、根拠を収集することで誤検知を減らします。

C、C++、Java、Python、Go、Rust、TypeScript、Solidity、Terraformなど、幅広い言語に対応しています。tree-sitterベースのコード分割機能を備え、新しい言語を追加できるプラグインシステムもあります。LLMバックエンドは、OpenAI、Azure OpenAI、Anthropic、Gemini、AWS Bedrock、vLLM、Ollama、llama.cppから設定できます。ベクトルストレージはデフォルトでChromaDBを使用し、PostgreSQL(pgvector)とQdrantも選択できます。

CLIまたは対話型プロンプトからMetisを実行し、ディレクトリ、ファイル、差分をレビューしたり、コードベースをインデックス化したり、コードについて質問したり、SARIFの結果をトリアージしたりできます。出力はJSONまたはSARIF形式で保存できます。

主な機能

  • 01ハードコードされたルールではなく、LLMによる意味的な推論で脆弱性を検出します。
  • 02独自の解析結果とサードパーティ製SARIFツールの検出結果を検証し、誤検知を減らします。
  • 03プラグインシステムを通じて多くの言語に対応し、CodeGraphによるC/C++の到達可能性解析も利用できます。
  • 04Ollama、vLLM、llama.cpp経由のローカルモデルを含む、複数のLLMプロバイダーに対応します。
  • 05デフォルトのChromaDBに加え、オプションのベクトルバックエンドとしてPostgreSQL pgvectorとQdrantを利用できます。
  • 06ディレクトリ全体、個別ファイル、パッチ差分をレビューでき、JSONまたはSARIF形式で出力できます。

ユースケース

  • ルールベースのツールではノイズが多くなりがちな、大規模またはレガシーなC/C++コードベースのセキュリティレビュー。
  • マージ前にプルリクエストのパッチをレビューし、セキュリティ上の問題を見つける。
  • 既存のSASTツールの検出結果をトリアージし、実際の問題である可能性が高いものと誤検知を切り分ける。
  • ソースコードをネットワーク外に出せない環境で、ローカルホスト型モデルを使ってセキュリティ解析を実行する。

クイックスタート

  1. 1

    リポジトリをクローンする

    git clone https://github.com/arm/metis.git
  2. 2

    仮想環境を作成して依存関係をインストールする

    uv venv && uv pip install .
  3. 3

    OpenAI APIキーを環境変数に設定する

    export OPENAI_API_KEY="your-key-here"
  4. 4

    コードベースを解析する

    uv run metis --codebase-path "/path/to/src" --verbose

使う前に知っておきたいこと

  • LLMプロバイダーが必要です。デフォルトはOpenAIで、APIキーが必要です。
  • ベクトルインデックスの作成には、選択したバックエンドが埋め込みを提供する場合を除き、埋め込みプロバイダーが必要です。
  • 対応言語の範囲は言語によって異なり、一部の言語では基本的なレビューのみが行われます。

収録されている特集

トピック

#security-review#code-review#llm#static-analysis#vulnerability-detection#sarif#agentic-ai

よくある質問

metis とは?
ArmのProduct Security Teamが開発した、固定ルールではなく意味的な推論によって脆弱性を検出する、LLM駆動のオープンソースセキュリティコードレビュー・ツール。 Metisは、セキュリティコードレビューを深く行うためのエージェント型AIフレームワークです。従来のリンターや静的解析ツールのようにハードコードされたルールに頼るのではなく、大規模言語モデルを使ってコードの意味を推論し、大規模なコードベースやレガシーコードに潜む見つけにくい脆弱性の検出を目指します。また、独自の解析結果とサードパーティ製ツールのSARIF出力を検証し、根拠を収集することで誤検知を減らします。
metis は無料で使えますか?ライセンスは?
metis は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
metis は今もメンテナンスされていますか?
活発にメンテナンス中。metis の最終コミットは 2026年11月5日 です。
metis は何に使えますか?
ルールベースのツールではノイズが多くなりがちな、大規模またはレガシーなC/C++コードベースのセキュリティレビュー。 マージ前にプルリクエストのパッチをレビューし、セキュリティ上の問題を見つける。 既存のSASTツールの検出結果をトリアージし、実際の問題である可能性が高いものと誤検知を切り分ける。 ソースコードをネットワーク外に出せない環境で、ローカルホスト型モデルを使ってセキュリティ解析を実行する。
metis のインストール方法は?
リポジトリをクローンする: git clone https://github.com/arm/metis.git 仮想環境を作成して依存関係をインストールする: uv venv && uv pip install . OpenAI APIキーを環境変数に設定する: export OPENAI_API_KEY="your-key-here" コードベースを解析する: uv run metis --codebase-path "/path/to/src" --verbose
metis はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/arm/metis

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト