メインコンテンツへスキップ
TOP/ サービス/ MCPツール/ プロンプトインジェクション検査
BETA / QA向けMCP / prompt-injection-lint実装・コードレビュー

プロンプトインジェクション検査

外部から来た文字列を、ガードなしでLLMに渡していませんか。

無料ベータ・面談制/正式版は有料提供予定

Python・JavaScript・TypeScript・TSX 決定的+AIレンズ(任意)
  • 所要時間: 30分
  • 進め方: 現場の状況をヒアリングし、最初に効くツールと順番を一緒に決めます
  • ご準備は不要です

概要

プロンプトインジェクションは、未信頼の入力をプロンプトに無防備に混ぜた瞬間に作り込まれます。「安全に書いて」とLLMに頼むだけでは保証になりません。実装の段階で危険な連結を洗い出し、入力の隔離・指示とデータの分離を作り込むための入口です。

効果

  • 未信頼入力のプロンプト素連結・指示とデータの混在・LLM出力の再投入を実装前に検出し、乗っ取り耐性を作り込む。
  • 各検出に「なぜ危ういか」と「どう隔離するか」を添え、その場で直せる。
  • 決定的層は鍵不要・同入力同出力なので、CIのブロッキングゲートにできる。
  • 隔離済み・定数のみのプロンプトは陰性とする保守的判定で、誤検出のノイズを抑える。
  • それでも残る誤検出は report_outcome で報告すればallowlistに載り、以後は自動で抑制される(サーバは何も保存しないステートレス設計)。

インプット

  • 実装コード

汎用LLMとの違い

どのソースを未信頼とみなすか、どの呼び出しをLLM呼び出しとみなすか、どの隔離で抑制するかの判定手順と危険連結カタログが bubo 独自の中核です。汎用LLMに頼るより、汚染の伝播を追って同入力同出力で漏れなく拾い、隔離の作り込み方まで一貫して提示します。

EXAMPLE

実際の入力と、返ってきた出力

同じコードと問いかけを、汎用AIと prompt-injection-lint にそのまま渡した実際のやりとりです(要約ではありません)。

入力したコード(実物)
def summarize_support_ticket(customer_message, client):
    prompt = f"Please summarize this customer complaint: {customer_message}"
    return client.chat(prompt)

def summarize_with_instructions(ticket_body, client):
    prompt = f"あなたはサポート要約アシスタントです。次の内容を要約してください: {ticket_body}"
    return client.generate_content(prompt)
汎用AIの回答(実測)
instruction_data_mixing(システム指示とユーザ入力の混在)は的中させましたが、1関数目の untrusted_prompt_concat(未信頼入力を隔離せず連結)は見出しでは触れたものの、本ツールと同じ形での明確な指摘としては拾いきれず、スコアリング上は2件中1件の一致にとどまりました(recall=0.5)。
prompt-injection-lint の回答(実測そのまま)
verdict=block。2件検出(ともにhigh)
- untrusted_prompt_concat — 未信頼入力を隔離せず連結
- instruction_data_mixing — システム指示とユーザ入力の混在

recall=1.0。

基本形では汎用LLMがラベルの半分しか拾えませんでした(recall=0.5)。1段目のLLM出力を検証せず2段目のプロンプトへ再投入する「間接プロンプトインジェクション」を含む多段パイプラインの難所ケースでも、本ツールは untrusted_prompt_concat と indirect_injection の2件を検出します。プロンプトインジェクションの検出は問いかけ方や文脈次第で汎用LLMの再現性が揺れやすく、決定的な検出ルールを持つ本ツールは同じ入力なら常に同じ観点を機械的に網羅できる点が異なります。

社外秘のコードを、どう守るか

buboは入力を保存しません

ツールに渡したコード・仕様・データを、buboのサーバーは保存しません。bubo自身が学習に使うこともなく、処理はその場限りです。

AIに送るか・どこへ送るかは、あなたが握ります

標準のキーレス接続では、意味を読む処理は普段お使いのAIクライアントの中で実行されます。データの扱いは、お客様とそのプロバイダの既存のご契約のもとにあり、buboがAPIキーやコードをお預かりすることはありません。ご自身の契約するプロバイダを直接指定したい場合は、BYOK(Bring Your Own Key)として任意で設定できます。

AIに送らず動くツールも多くあります

多くのツールは決定的な静的解析だけで完結し、LLMに渡すのは必要な場面に限られます。AIに送る範囲を、あなた自身で絞り込めます。

ワンタイムコードは単回使用・有効期限7日・サーバーに平文保存はしません。発行したトークンは設定ファイルに直書きせず環境変数で参照します。既存のMCP設定がある場合も、壊さず冪等にマージします。

どう申し込み、どうつなぐのか

STEP 1

1. 面談を予約する

予約フォームから面談をお申し込みください。現在のQAの困りごとと、試したいツールをお聞かせいただきます。

STEP 2

2. 面談で適用先を一緒に決める

そろえたツールのうち、貴社の工程で効く順番をご一緒に見立てます。ワンタイムコードと接続コマンドは、面談後にあわせてお渡しします。

STEP 3

3. コード1つ、コマンド1行で接続

お受け取りしたワンタイムコードで、コマンドを1行実行(Windows / mac / Linux 各1行)。有効化・MCP設定(.mcp.json)生成・環境変数設定まで自動で完了します。あとはAIクライアント(Claude Code / Gemini CLI)を再起動するだけで、そのままQA方法論を呼び出せます。APIキーのご用意は不要です。ご自身の契約するLLMを使いたい場合は、BYOK(Bring Your Own Key)として任意で設定いただけます。

← QA向けMCPツール一覧へ戻る

AIの番人になる道具「Nioh」を、まず試す

貴社のQA工程に合わせて、Niohのどのツールから始めるかをご一緒に見立てます。無料ベータの枠には限りがあります。まずは面談からお気軽にどうぞ。