本文へスキップ
ReviewRamble

週刊ブリーフ

AIのレビューを、あなたの受信箱に。

  • ツール、モデル、MCPサーバー、リポジトリの新しいレビュー(結論を最初に)
  • 変更があったときに再確認した価格と評価
  • 公開された新しい分析記事

モデル、エージェント、MCPサーバー、そして本当に時間をかける価値のあるツール。

週に1通です。配信停止は各メールのリンクからできます。 メールアドレスの利用について

分析 セキュリティとコンプライアンスのAI

AIアプリとエージェントのガードレール:何を検出し、いくらかかり、何がより重要か

執筆: Sheela ·

チャットボットやエージェントを顧客に公開した時点で、見知らぬ誰もが何でも入力できるようになり、エージェントが読むWebページ、メール、文書のすべてが独自の指示を含みうるようになります。ガードレールとは、モデルの周りに置いてこうした通信を審査するチェックのことです。導入する価値があり、安く済ませることもできますが、仕事に必要以上の権限を与えられたエージェントを救えるものは一つもありません。

この記事は、ユーザーに提供するAI機能やエージェントを対象にしています。開発者のマシン上で動くコーディングエージェントが心配なら、その場合のサンドボックス、コマンドガード、CIゲートはコーディングエージェントを守るためのガイドで扱っています。以下の数字はすべて当サイトのレビュー、またはそれらが引用するベンダーや研究の資料によるもので、私たちがこれらのツールを実際に動かしたわけではありません。

ガードレールが実際に検出するもの

これらの製品が対処をうたう問題の大半は、次の四つです。OWASP Top 10 for LLM Applicationsはチェックリストとして役に立ち、ガードレールが最も直接的に扱うのはそのうちの三項目、プロンプトインジェクション(LLM01)、機微情報の開示(LLM02)、過剰な権限(LLM06)です。

  • プロンプトインジェクション。あなたの指示を他人の指示に置き換えようとするテキストです。直接型はユーザーから来ます。間接型は取得したページ、メール、ツールの結果に潜んでおり、モデルがそれを仕事の一部として読むため、エージェントに害を与えるのはこちらです。
  • ジェイルブレイク。モデルに安全ルールを捨てさせようとする試みで、会話の複数ターンにまたがることがよくあります。
  • 危険な出力。有害な回答やポリシーに反する回答、そして取得した文書が裏付けていない内容を主張する回答です。
  • データ漏洩。個人データ、秘密情報、システムプロンプトが回答に出てしまうこと、あるいは回答内のリンクが本来向かうべきでない先を指していることです。

四つすべてを同じようにカバーする製品はありません。インジェクション検出器が拾うのは指示らしく見えるテキストで、有害さではありません。MetaによるLlama Prompt Guard 2のモデルカードは、"ignore previous instructions" を引用した説明文書でも反応すると注意しています。暴力を採点するモデレーションモデルは、取引先のPDFに隠れた丁寧な指示には気づきません。何かを買う前に、各チェックをどのリスクに当てるかを決めてください。

ガードレールの三つの種類

自前でホストする安全性モデル

自社のモデルの隣で動かすオープンウェイトのモデルです。テキストが自社のマシンから出ることはなく、チェックごとの料金もかかりません。その代わり、GPU、アップデート、調整はすべて自分の仕事になります。

  • Llama Prompt Guard 2(4.2)は安価なインジェクションフィルターです。86Mモデルは、Metaの非公開ジェイルブレイクデータセットで、誤検出率1%のもと攻撃の97.5%を検出します。攻撃者がエージェントのツールに指示を仕込むベンチマークAgentDojoでは、タスク完了率3%の低下と引き換えに攻撃の81.2%を止めます。一度に読めるのは512トークンなので長いページは分割が必要で、ダウンロードにはLlama 4 Community Licenseへの同意が必要です。
  • Qwen3Guard(4.3)は多言語モデレーションのモデルで、119の言語と方言に対応し、サイズは0.6Bから8B、ライセンスはApache 2.0です。テキストを安全、議論あり、危険の三つに分類するため、子ども向けアプリと大人向けフィクションのサイトが同じモデルを使い、"controversial" の扱いだけを変えることができます。Streamという派生版は、回答が書かれている最中にトークン単位でチェックします。
  • Granite Guardian 4.1(4.0)はIBMの8Bの判定モデルです。有害性に加えて、回答が取得したテキストに基づいているか、エージェントの関数呼び出しが与えられたツールに合っているかも確認します。英語のみの対応で、IBMはすべてのメッセージではなく、監視やスポットチェック向けと位置づけています。
  • gpt-oss-safeguard(4.0)は、平易な言葉で書いたポリシーを受け取り、判断とその理由を返します。そのため、トラスト&セーフティのチームは新たな学習データにラベルを付けなくてもルールを変更できます。分類器より遅く重く、20bには16 GBのGPUが必要で、表示される推論が事実と異なる場合があるとOpenAIは警告しています。

クラウドのガードレールAPI

ホスト型のサービスが検出器を運用し、更新します。プロンプトと回答を一つずつネットワーク越しに送り、判定を受け取ります。自分でモデルを動かさずに済む代わりに、新たなデータ処理者とネットワークの往復が一つ増えます。

  • Google Model Armor(4.2)は、インジェクション、有害コンテンツ、機微データ、怪しいリンクを100万トークンあたり$0.10で審査し、毎月最初の200万トークンは無料です。Google Cloud以外のモデルとも使えます。各リクエストを会話の記憶なしに単独で判定し、Base64はデコードしません。
  • Azure AI Content Safety(4.1)はテキストと画像の有害性を採点し、Prompt Shieldsがユーザーのプロンプトと文書の両方から注入された命令を探します。標準ティアは最大1,000文字のテキストレコード1,000件あたり$0.375です。Microsoftは入力を保存せず学習にも使わないとしています。Prompt Shieldsは主に英語で学習されています。
  • Lakera Guard(4.0)は現在Check Pointが販売しており、ツール呼び出しを含むOpenAI形式の会話全体を受け取って、直近のやり取りを審査します。無料枠は月10,000リクエストで、それを超える価格は公開されていません。

ガードレールのフレームワーク

フレームワークは検出器ではありません。アプリの各地点でチェックを実行し、その結果をどう扱うかを決める配管であり、そこにモデルやAPIを差し込んで使います。

  • NVIDIA NeMo Guardrails(4.0)は入力、出力、検索結果、ツール実行に別々のレールを持ち、Llama Guard、NVIDIAのNemoGuardモデル、Presidio、商用の検出器を組み込めます。YAMLと独自言語Colangでの本格的な設定が必要で、0.24.0のリリースでは互換性のない変更が六つあり、NVIDIAへの匿名テレメトリーが既定で有効です。
  • LlamaFirewall(3.8)はMetaの多層設計です。入力とツール出力にPrompt Guard 2、エージェントの推論を読んで乗っ取りの兆候を探すAlignmentCheck、生成コードを調べるCodeShieldを備えます。その論文は多層化が効くことを示す最良の公開データですが、パッケージ自体は2025年5月以降リリースがありません。
  • Guardrails AI(3.2)は教訓的な例です。ホスト型のHubは2026年8月25日に閉鎖され、チームはHarveyに移り、それ以降何もマージされておらず、5月には悪意ある0.10.1がPyPIに公開されました。正規表現、スキーマ、長さを調べるオフラインのバリデーターは今も動きますが、新規プロジェクトには他に良い選択肢があります。

多層化でどれだけ得られるか

最も明快な数字は、AgentDojoで測定したMetaのLlamaFirewall論文にあります。ガードレールなしでは攻撃の17.6%が成功しました。Prompt Guard 2だけでそれが7.5%に下がりました。大きなモデルに、エージェントがまだユーザーの依頼どおりに動いているかを尋ねるAlignmentCheckでは2.89%まで下がりました。両方を併用すると1.75%に達した一方、エージェントが完了したタスクの割合は47.7%から42.7%に落ちました。

ここから二つの教訓が得られます。速いフィルターと遅い推論チェックは見逃す攻撃が異なるので、効果が積み重なります。そして防御はお金だけでなく有用性も犠牲にします。私たちの計算では、以前は成功していたタスクのおよそ10件に1件が成功しなくなりました。

リクエスト経路での遅延とコスト

回答の前に置くチェックはどれも時間を加え、エージェントは1ターンに複数のチェックを実行することがあります。ユーザーのメッセージ、取得した各文書、各ツールの結果、最終回答です。チェックは会話単位ではなくターン単位で数えてください。

チェック公表されている遅延コスト
Prompt Guard 2、22MA100で512トークンあたり19.3 ms自社のGPU
Prompt Guard 2、86MA100で512トークンあたり92.4 ms自社のGPU
CodeShieldの初回パス約60 ms自社のCPUまたはGPU
AlignmentCheck論文のトレースで1ステップあたり約860から1,490 ms監査するステップごとに大型モデルを1回呼び出し
Lakera Guard50 ms未満(ベンダーの主張)月10,000リクエストまで無料、以降は見積もり
Google Model Armor私たちの情報源には記載なし100万トークンあたり$0.10
Azure AI Content Safety私たちの情報源には記載なしテキストレコード1,000件あたり$0.375

この価格なら、短いチャットメッセージ100万件の審査はModel Armorで数ドル、Azureで$375です。Model Armorで月10億トークンなら約$100で、Security Command CenterのEnterpriseまたはPremiumのサブスクリプションに含まれる30億トークンの範囲内なら無料です。Lakeraは審査した項目を一つずつ1リクエストと数えるため、プロンプト、文書2件、回答をチェックするエージェントは1ターンに4リクエストを使い、2,500ターンで無料枠を使い切ります。

自前ホストにすると、請求はハードウェアに移ります。オープンモデルに料金はありませんが、GPU代は誰かが払います。NeMo Guardrailsのマイクロサービスを含むNVIDIA AI Enterpriseの定価は、GPU 1基あたり年$4,500です。

遅延を抑える習慣が三つあります。安い分類器をすべてにかけ、危険なステップだけを遅い判定モデルに回すこと。OpenAIもgpt-oss-safeguardについて、まず速い分類器を使い、通信の一部だけを推論モデルに送るという同じ形を説明しています。独立したチェックは並列で実行すること。NeMoのIORailsエンジンはNemoGuardのチェックでこれを行います。そしてストリーミングの回答は、届いたそばからチェックすること。Qwen3GuardのStream版はトークンごとに採点し、Lakeraは10トークン以上の塊で送るよう求めています。

誤検出こそが本当の調整作業

どの検出器も、見逃す攻撃とブロックされる顧客のトレードオフの上にあり、ベンダーの精度の数字は自社のテストセットで測ったものです。Lakeraはすべての検出器を最も厳しいL4で出荷し、既定のポリシーを "intentionally strict" と説明しています。Metaは、Prompt Guard 2の精度はあなたのアプリの通常の通信がどのようなものかに左右されるとし、自社データでのファインチューニングを勧めています。

何かをブロックする前に、実際の無害なリクエスト数百件と既知の攻撃一式をガードレールに通し、しきい値ごとにブロック率と見逃し率を記録してください。そのうえで記録のみのモード(LakeraではDetectモード)で本番に出し、1、2週間は何が検出されたかを読みます。ブロック時にユーザーに何を見せるかも事前に決めておきましょう。人間に連絡できる手段を添えた明確なお断りのほうが、黙って失敗するよりも良い対応です。Qwen3Guardの「議論あり」ラベルは、許可とブロックの間に三つ目の選択肢、つまりレビュー待ちの列に回すという道を与えてくれます。

レッドチーミングとサプライチェーンのスキャンの位置づけ

ガードレールは実際の通信に作用します。レッドチーミングはユーザーより先にアプリを攻撃し、ガードレールが機能しているかを教えてくれます。サプライチェーンのスキャンは、アプリが信頼するコードとツールを確認します。三つとも必要ですが、使う時期が異なります。

  • モデルを選ぶとき。CyberSecEval(3.9)は、素のモデルが脆弱なコードを書いたり注入されたテキストに従ったりする頻度を測ります。プロンプト、ツール、検索は見ないので、置く場所はモデルカードの横であり、アプリのテストの代わりにはなりません。
  • 公開前と変更のたび。garak(4.3)は公開済みの攻撃のライブラリをエンドポイントに浴びせます。システムプロンプトとフィルターで結果が変わるため、ガードレールを前に置いた状態のデプロイ済みアプリに向けてください。promptfoo(4.5)はレッドチームのテストをYAMLファイルにまとめ、CIで実行します。DeepTeam(3.9)は、認可の回避や汚染されたツール説明といったエージェント特有のリスクを扱います。
  • 忍耐強い攻撃者。PyRIT(4.2)は、攻撃側のモデルが少しずつ要求を強めていくCrescendoのような複数ターンの攻撃を実行します。リクエストを一つずつ判定するフィルターが構造的に見逃すのは、まさにこのケースです。

レッドチームが見つけたことは、ガードレールのしきい値に、そしてより多くの場合はツールの権限に反映させてください。

ガードレール自体もサプライチェーンの一部です。Guardrails AIの悪意ある0.10.1はその一例で、2026年3月には攻撃者が盗んだメンテナーの認証情報を使い、汚染されたLiteLLMのリリース二つをPyPIに公開しました。ガードレールのライブラリ、ゲートウェイ、SDKは正確なバージョンとハッシュで固定し、他のコードと一緒にスキャンしてください。プルリクエストの必須チェックにはSemgrep(4.3)、依存関係とコンテナにはSnyk(4.0)が使えます。Snykの無料プランはSnyk Codeのテストが月100回までです。エージェントが読み込むMCPサーバーやスキルについては、Snyk Agent Scan(3.8)がツールの説明に隠れた指示を探しますが、そのために説明文をSnykに送信します。

Semgrep MCPのウェブサイトのスクリーンショット
Semgrep MCPの公式サイト

最小権限はどのフィルターよりも重要

上で見た最良の多層構成でも、攻撃が事前に分かっているベンチマークで1.75%の攻撃が通り抜けました。さらにMetaは、攻撃者は分類器に適応すると警告しています。すべてのフィルターをすり抜けるインジェクションを前提に計画し、それが次に何をできるかを考えてください。その答えを決めるのはガードレールではなく、エージェントに与えたツールです。

  • サービスアカウントではなく、ユーザーとして動かす。ツール呼び出しにログイン中のユーザーのIDが付いていれば、注入された指示がそのユーザーには見られないデータを取ってくることはできません。認可はプロンプトではなく、必ずコードで確認してください。
  • 各ツールには最も狭い認証情報を。注文に関する質問に答えるエージェントに必要なのは、一人の顧客の注文を読み取り専用で見る権限であり、データベース全体ではありません。
  • 取り返しのつかない操作の前には人を置く。支払い、削除、外部アドレスへのメッセージは、モデルが自分では出せない確認を待つべきです。
  • データの行き先を制限する。任意のURLを開けるエージェントは、任意のURLにデータを送ることもできます。
  • ツールを隔離する。ToolHive(4.1)は各MCPサーバーを、ローカルの認証情報を一切持たない専用のコンテナで動かし、リクエストごとのIDベースのアクセスポリシーを加え、監査ログを残します。そのレビューは、隔離しても意図的に与えたアクセスをサーバーが悪用するのは止められないと明記しています。エージェントがコードを実行する場合、OpenSandbox(4.1)がAPI経由で使い捨てのサンドボックスを渡しますが、gVisor、Kata、Firecrackerを設定しない限りは通常のコンテナであり、APIキーを設定しなければ認証なしで動きます。
  • ツール呼び出しをすべて記録する。ユーザー、入力、結果を残しておけば、インシデントを追跡できます。
ToolHiveのウェブサイトのスクリーンショット
ToolHiveの公式サイト

小さなチームの出発点

5人のチームが、一つのクラウド上でサポート用チャットボットや小さなエージェントを公開する場面を考えます。肩書きにセキュリティと付く人はいません。

  1. まず権限。すべてのツールを書き出し、それぞれに最も狭い認証情報を与え、送信、支払い、削除を伴う操作の前に確認の手順を入れます。午後一回分の作業で、以下のどの製品よりも効果があります。
  2. ホスト型の審査を一つ、ユーザー入力、取得文書、回答にかけます。Google Cloudを使っているか特定のクラウドがないならModel Armor、すでにAzureで動いているならAzure AI Content Safetyです。試作段階ならLakeraの無料枠で足ります。すでにGPUを運用しているなら、ツール出力へのPrompt Guard 2 22Mはほぼ無料で、Qwen3Guard 0.6Bは提供コストが最も安い多言語モデレーションモデルです。
  3. 2週間は記録のみで運用し、その後、自社の通信で確かめたしきい値でブロックを有効にします。
  4. CIにレッドチームのファイルを。プロンプトやモデルを変えるたびに走るpromptfooの設定と、モデルを入れ替えた後の対象を絞ったgarakのスキャンです。
  5. 依存関係の固定と、プルリクエストの必須チェックとしてのSemgrep。

ここで挙げたソフトウェアは無料か、ほぼ無料です。費用になるのは、リクエストごとの審査と、レッドチームの実行が消費するモデルのトークンです。

規制業種の企業の出発点

銀行、保険会社、医療機関は同じリスクに加えて、監査人、データ所在地の規則、そして新しいデータ処理者ごとのベンダー審査を抱えています。

  1. IDに紐づいたツール。エージェントはユーザーのIDで動きます。MCPサーバーはToolHiveの背後で動かしてリクエストごとのポリシー、隔離、監査ログを確保し、生成されたコードは安全なランタイムとAPIキーを設定したOpenSandboxで実行します。
  2. 単一の制御点。入力、検索、ツール実行、出力にレールを置いたNeMo Guardrailsを、バージョンを固定し、DO_NOT_TRACK=1でテレメトリーを止め、require_iorails=Trueを指定して使います。こうすると、高速エンジンで動かせない設定は、古いエンジンに黙って戻るのではなく、目に見える形で失敗します。
  3. データ規則を満たす検出器。すべての入力とツール結果に自前ホストのPrompt Guard 2を。多言語のモデレーションにはQwen3Guard、英語で足り、Apache 2.0のもとで根拠性と関数呼び出しのチェックが欲しいならGranite Guardianです。クラウドAPIが許されるなら、すでに承認済みのものを選びましょう。Azureは大半のチェックを選んだリージョン内で処理し、顧客管理キーに対応します。GoogleはModel Armorについて、ログを有効にしない限り各チェック後に内容を破棄するとしています。LakeraはEnterpriseでネットワークから隔離された自前ホストを提供しています。なお、根拠性の検出を含むAzureのいくつかのプレビュー機能は2027年4月30日に廃止されます。
  4. 遅い判定モデルは効果のある所に。文書による理由が必要なポリシー判断や異議申し立てにはgpt-oss-safeguardを、エージェントの高リスクなステップにはAlignmentCheck型の監査を、すでに契約している大型モデルで行います。
  5. テストの証跡。モデル選定時のCyberSecEval、何をテストしたかを監査人に示すためのDeepTeamのOWASPプリセット、そして複数ターンの攻撃には専任のレッドチーム担当者が使うPyRITです。モデル、プロンプト、ガードレール、ツールを変えるたびに再実行し、記録を保管してください。
  6. サプライチェーンと所有者。ハッシュの固定、CIでのSemgrepとSnyk、そしてデータ保護責任者がツール説明のSnykへの送信を承認した後で、新しいMCPサーバーにSnyk Agent Scanをかけます。この市場は持ち主が早く変わります。LakeraはいまやCheck Point、promptfooはOpenAIのものとなり、Guardrails AIのホスト型サービスはなくなりました。どのガードレールも自社のインターフェースの背後に置き、差し替えられるようにしておきましょう。

注意点:ほとんどのガードレールはテキストを一片ずつしか見ておらず、攻撃者はそれを知っています。Model Armorには会話の記憶がなく、Base64をデコードせず、大きすぎる入力は検出扱いにせずスキップします。Prompt Guard 2が読むのは512トークンなので、複数の塊に分けた攻撃はすり抜ける可能性があります。AzureのPrompt Shieldsは、プロンプトが10,000文字、文書は最大五つで合計10,000文字までです。英語以外では、ほとんどが精度を落とします。フィルターは完全かどうかではなく、コストと間違える頻度で評価してください。

結論:ガードレールは入口の用心棒で、権限は各部屋の鍵です。用心棒はたいていの厄介者を追い返し、ときには常連客まで追い返しますが、すり抜けた者がどれだけの被害を出せるかを決めるのは鍵です。まず鍵を付け、顧客の言語を話せる一番安い用心棒を雇い、高価な判定役は本当に大事な扉にだけ回しましょう。

ReviewRambleブリーフ

AIをレビュー。週に一度、あなたの受信箱に。

AI、ロボティクス、テックの重要な評価を、使うべきもの、避けるべきものとあわせてお届けします。誇張も、すべてを並べただけのまとめもありません。

モデル、エージェント、MCPサーバー、そして本当に時間をかける価値のあるツール。

週に1通です。配信停止は各メールのリンクからできます。 メールアドレスの利用について