MCPサーバーとAIエージェントのスキルファイルを監査し、プロンプトインジェクション、ツールポイズニング、シークレット漏洩、サプライチェーンリスクを検出するRust製セキュリティスキャナー。
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
リポジトリをクローンする
git clone https://github.com/arm/metis.git - 2
仮想環境を作成して依存関係をインストールする
uv venv && uv pip install . - 3
OpenAI APIキーを環境変数に設定する
export OPENAI_API_KEY="your-key-here" - 4
コードベースを解析する
uv run metis --codebase-path "/path/to/src" --verbose
使う前に知っておきたいこと
- LLMプロバイダーが必要です。デフォルトはOpenAIで、APIキーが必要です。
- ベクトルインデックスの作成には、選択したバックエンドが埋め込みを提供する場合を除き、埋め込みプロバイダーが必要です。
- 対応言語の範囲は言語によって異なり、一部の言語では基本的なレビューのみが行われます。
収録されている特集
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
決定論的なファイル選択とルールにLLMエージェントを組み合わせ、Gitの差分に行単位のレビューコメントを付けるAIコードレビューCLIです。
MCPとCLIでAIコーディングツールに正確なレビュー情報を提供する、ローカルのコード知識グラフ。
Hermes Agentが対象ごとに分析用プロンプト(プリズム)を作成し、分析結果と見落としの両方を報告するスキル集。
あらゆるモデルプロバイダーに対応し、GitHubのプルリクエストやローカルブランチの変更をLLMでレビューするオープンソースのAIコードレビュアー。
LLMでSTRIDE脅威モデル、攻撃ツリー、緩和策を生成するAI脅威モデリングツール。