アップデート一覧に戻る
UpdatedAug 2, 2026

OpenAnt — Updated!

KnosticのOpenAntは、オープンソースのLLMベース脆弱性発見製品のリーダーであり、防御側が検証済みのセキュリティ欠陥を積極的に発見できるよう支援し、誤検知と検出漏れの両方を最小限に抑えます。ステージ1は検出、ステージ2は攻撃です。生き残ったものが本物です。

共有

OpenAnt

OpenAnt

Knostic による OpenAnt は、初のオープンソース LLM ベースの脆弱性発見製品(現在はハーネスと呼ばれる)であり、防御側が誤検知と検知漏れの両方を最小限に抑えながら、検証済みのセキュリティ欠陥をプロアクティブに発見することを支援します。ステージ 1 は検出します。ステージ 2 は攻撃します。生き残ったものが本物です。

これは研究プロジェクトとして始まったものであり、新しい機能を開発する際にはベータ版としてリリースすることが多いことを覚えておいてください。コントリビューションを歓迎します。

論文

OpenAnt の構築に関する研究論文は arXiv でご覧いただけます: OpenAnt: LLM-Powered Vulnerability Discovery Through Code Decomposition, Adversarial Verification, and Dynamic Testing、著者は Nahum Korda と Gadi Evron です。

なぜオープンソースなのか?

これは OpenAnt を最初にリリースしたときの readme にあった関連する質問でした。なぜなら、他にも多くのハーネスがリリースされているからです。AI によって発見される脆弱性が爆発的に増える中で、OpenAnt がオープンソースのメンテナー自身が使用して攻撃者より先手を打つのに役立つこと、あるいは無償でリポジトリをスキャンに提出できることを、私たちは今でも願っています。

また、Knostic の焦点は脆弱性研究やアプリケーションセキュリティではなく、エージェントとコーディングアシスタントの保護にあり、私たちはオープンソースが好きなので、OpenAnt を Apache 2 ライセンスの下でリリースすることにしました。 さらに、OpenAI の Aardvark(現在は Codex Security)や Anthropic の Claude Code Security について聞いたことがあるかもしれませんが、私たちは彼らと競合する意図は一切ありません。

技術的詳細とオープンソースプロジェクト向けの無償スキャン

技術的詳細、制限事項、トークンコストについては、こちらのブログ記事をご覧ください: https://knostic.ai/blog/openant

リポジトリをスキャンに提出するには: https://knostic.ai/blog/oss-scan

対応言語

  • Go
  • Python
  • C/C++
  • JavaScript/TypeScript (ベータ)
  • PHP (ベータ)
  • Ruby (ベータ)
  • Zig (ベータ)
  • Swift (ベータ)
  • Rust (ベータ)

クレジット

メンテナーおよび研究: Gadi Evron

初期研究、アイデア出し、初期プロトタイプ: Nahum Korda。 初期製品化: Alex Raihelgaus、Daniel Geyshis。

感謝: Michal Kamensky、Imri Goldberg、Daniel Cuthbert、Josh Grossman、Avi Douglen。

Knostic をチェック

私たちの仕事が気に入ったら、Knostic でエージェントとコーディングアシスタントを保護し、ハードドライブやコードの削除を防ぎ、MCP サーバー、拡張機能、スキルなどの関連するサプライチェーンリスクを制御するために私たちが行っていることをチェックしてください。

ローカルセットアップ

CLI バイナリをビルドします(Go 1.25+ が必要):

cd apps/openant-cli && make build

これにより Go ソースがコンパイルされ、バイナリが apps/openant-cli/bin/openant に出力されます。

PATH にシンボリックリンクして、どこからでも openant を実行できるようにします:

ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant

注意: $(pwd) が正しい絶対パスに解決されるよう、リポジトリのルートからこれを実行してください。

LLM のセットアップ

OpenAnt は各パイプラインフェーズを設定可能な (プロバイダー, モデル) ペアを通じてルーティングします。最速の方法は対話型ウィザードです:

openant setup llm

設定に名前を付け(例: my-llm)、パイプラインフェーズごとにプロバイダーを選択し(以下に同梱されているアダプターのいずれか)、プロバイダーごとに API キーを一度入力し(Bedrock は代わりに AWS 認証情報チェーンを使用するため、キーは空のままにします)、ウィザードは ~/.config/openant/config.json を書き込む前に、各一意のプロバイダー+モデルペアを 1 トークンのリクエストでプローブします。--llm-config でそれに対してスキャンを実行します:

openant scan /path/to/repo --llm-config my-llm

ウィザードのデフォルトはプロジェクトのフェーズごとの推奨事項を反映しています(検出 / 検証 / 到達可能性レビューにはより強力な推論モデル、コンテキスト、レポート、テスト生成にはより軽量なモデル)— 好みに応じて任意の回答を上書きできます。

同梱のアダプター

プロバイダータイプAPI キーの取得元備考
anthropicconsole.anthropic.comリファレンスアダプター。Claude Pro / Max サブスクリプションには含まれません — 別途請求となります。
openaiplatform.openai.comChatGPT / Codex サブスクリプションには含まれません — 別途請求となります。
googleaistudio.google.comGemini Advanced には含まれません — 別途請求となります。
bedrock— (AWS 認証情報チェーン)AWS Bedrock 上の Claude。api_key はありません: 認証情報は AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY 環境変数または ~/.aws プロファイルから取得され、リージョンは AWS_REGION から取得されます。モデル ID は推論プロファイルです(us.anthropic.claude-sonnet-4-6、global.anthropic.claude-haiku-4-5-20251001-v1:0 など)— Bedrock コンソールの「Model access」で有効化し、aws bedrock list-inference-profiles で一覧表示します。openant setup llm によって提供されます(API キーは空のままにします — AWS 認証情報チェーン、プローブはスキップされます)— 完全なガイド: utilities/llm/providers/BEDROCK.md。
openrouteropenrouter.ai1 つのキーと 1 つの前払い残高で多くのプロバイダーへのゲートウェイ(OPENROUTER_API_KEY も読み取ります)。モデル ID は vendor/model スラッグです(anthropic/claude-sonnet-4.6、openai/gpt-4o-mini など)— openrouter.ai/models で閲覧できます。openant setup llm によって提供されます(OpenRouter のデフォルトを使用するにはベース URL を空のままにします)— 完全なガイド: utilities/llm/providers/OPENROUTER.md。
ollama— (ローカルサーバー)Ollama 経由のローカルモデル。api_key はありません: 空のままにします(プレースホルダーが自動的に送信されます)。ベース URL はデフォルトで http://localhost:11434/v1 です。モデルは事前にプルする必要があります(ollama pull <model>)。モデル ID は ollama list が表示するものとまったく同じです。ローカル推論は無料です — $0 のコストレポート。openant setup llm によって提供されます — 完全なガイド: utilities/llm/providers/OLLAMA.md。

これらはすべてツール呼び出しをサポートしているため、エージェント型ツール使用ループを使用する enhance および verify フェーズをいずれも駆動できます。Ollama の場合、これらのフェーズにはツール対応モデルを選択してください — 非常に小さなローカルモデルはツール呼び出しを確実に処理できない場合があります。

Anthropic のみのセットアップ向けクイックパス

今日のフェーズごとの Claude デフォルトのみが必要で他に何も必要ない場合は、ウィザードをスキップしてください:

openant set-api-key sk-ant-...
openant scan /path/to/repo

これは組み込みの openant-default 設定を使用します(バイナリにコンパイルされており、config.json は不要です)— 検出フェーズには Claude Opus 4.6、残りには Sonnet 4。

手書きの設定

ウィザードは ~/.config/openant/config.json を書き込みますが、直接編集することもできます。すべての llm-config は 7 つのパイプラインフェーズすべてをリストする必要があります:

{
  "$schema_version": 2,
  "default_llm": "my-llm",
  "llm_providers": {
    "anthropic": {"type": "anthropic", "api_key": "sk-ant-..."},
    "openai":    {"type": "openai",    "api_key": "sk-proj-..."},
    "google":    {"type": "google",    "api_key": "AIza...", "request_timeout": 600}
  },
  "llm_configs": {
    "my-llm": {
      "app_context":  {"provider": "openai",    "model": "gpt-4o-mini"},
      "llm_reach":    {"provider": "anthropic", "model": "claude-opus-4-6"},
      "enhance":      {"provider": "openai",    "model": "gpt-4o-mini"},
      "analyze":      {"provider": "anthropic", "model": "claude-opus-4-6"},
      "verify":       {"provider": "anthropic", "model": "claude-opus-4-6"},
      "dynamic_test": {"provider": "google",    "model": "gemini-2.0-flash"},
      "report":       {"provider": "google",    "model": "gemini-2.0-flash"}
    }
  }
}

llm_providers[name].request_timeout(秒、正の整数または null)はアダプターのリクエストごとの HTTP タイムアウトを設定します — google プロバイダータイプによって消費されます(SDK のデフォルトが無制限である唯一のタイプ)。他のタイプは、これが設定されている場合、起動時に大きく警告します。

プロバイダーは OpenAI 互換 / Anthropic 互換プロキシ(vLLM、Bedrock、内部ゲートウェイ)用のカスタム base_url を受け入れます。OpenRouter には独自のファーストクラスの openrouter プロバイダータイプがあります。openant-default 設定(すべてのフェーズで Claude)は組み込まれており、ファイルの内容に関係なく常に利用可能です。

新しいプロバイダーアダプターの追加

OpenAnt のアダプター層は小さな Python レシピです — LLMAdapter Protocol を実装する 1 つの Python ファイル、コントラクトテストハーネス用の 1 つのファクトリー、そしてレジストリエントリ — これだけで手書きの設定からアダプターを実行するのに十分です。openant setup llm ウィザードで提供され、保存前プローブを通過させるには、apps/openant-cli/cmd/setup.go にいくつかの Go タッチポイント(サポートされるプロバイダーリスト、プローブ case、フェーズごとのデフォルトモデルマップ)と Go プローブ関数を追加します。12 のコントラクトテストは、アダプターが接続されると自動的に実行されます。完全なレシピについては docs/features/llm-providers/HOW_TO_ADD_AN_ADAPTER.md を参照してください。

Python ランタイム

OpenAnt の解析、拡張、分析、レポートコードは Python 3.11+ です。Go CLI は次の順序でインタープリターを選択します:

  1. OPENANT_PYTHON 環境変数(特定のインタープリターを固定するにはこれを設定します — 例: OPENANT_PYTHON=python3.11)。
  2. ~/.openant/venv/ の管理された venv(初回使用時に自動作成)。CLI は Linux/macOS では bin/python、Windows では Scripts\python.exe を使用します。
  3. PATH 上の python3 / python。

いずれも Python 3.11+ を提供しない場合、コマンドは python.org を指すエラーで終了します。古い管理された venv を再ビルドするには(例: Python のアップグレード後)、~/.openant/venv/ を削除して任意の openant コマンドを再実行します。

カテゴリ