Skip to content

セキュリティファーストの設計

Triggerfishは単一の前提に基づいて構築されています:LLMは権限ゼロです。アクションを 要求するだけで、ポリシーレイヤーが決定します。すべてのセキュリティ決定は、AIが回避、 上書き、または影響を与えることができない決定論的なコードによって行われます。

このページでは、Triggerfishがこのアプローチを取る理由、従来のAIエージェントプラット フォームとの違い、およびセキュリティモデルの各コンポーネントの詳細を見つける場所を 説明します。

セキュリティをLLMの下に置かなければならない理由

大規模言語モデルはプロンプトインジェクションを受ける可能性があります。悪意のある外部 メッセージ、汚染されたドキュメント、または侵害されたツールレスポンスからの慎重に 作られた入力は、LLMに指示を無視させ、やってはいけないと言われたアクションを取らせる 可能性があります。これは理論的なリスクではありません。AI业界での十分に文書化された、 未解決の問題です。

セキュリティモデルがLLMのルール遵守に依存している場合、単一の成功したインジェクションが 構築したすべての安全策をバイパスできます。

Triggerfishはすべてのセキュリティ強制をLLMの下に位置するコードレイヤーに移動することで これを解決します。AIはセキュリティ決定を見ることはありません。アクションを許可すべきか どうかを評価することはありません。単にアクションを要求し、ポリシー強制レイヤー — 純粋な決定論的コードとして実行 — がそれらのアクションが進むかどうかを決定します。

強制レイヤー: LLMは権限ゼロ、ポリシーレイヤーがすべての決定を決定論的に行う、許可されたアクションのみ実行に到達

セキュリティ LLMレイヤーにはポリシー強制レイヤーを上書き、スキップ、または

影響させるメカニズムがありません。「LLM出力をバイパスコマンドとして解析する」ロジックは ありません。分離はアーキテクチャ的であり、動作的ではありません。 :::

コア不変条件

Triggerfishのすべての設計決定は1つの不変条件から流れています:

同じ入力は常に同じセキュリティ決定を生成します。ランダム性なし、LLM呼び出しなし、 裁量なし。

これはセキュリティの動作が以下であることを意味します:

  • 監査可能 — どんな決定も再現して同じ結果を得られます
  • テスト可能 — 決定論的なコードは自動化されたテストでカバーできます
  • 検証可能 — ポリシーエンジンはオープンソース(Apache 2.0ライセンス)で、 誰でも検査できます

セキュリティ原則

原則意味詳細ページ
データ分類すべてのデータは感度レベル(RESTRICTED、CONFIDENTIAL、INTERNAL、PUBLIC)を持ちます。分類はデータがシステムに入るときにコードによって割り当てられます。アーキテクチャ: 分類
ライトダウン禁止データは等しいか高い分類レベルのチャンネルと受信者にのみ流れることができます。CONFIDENTIALデータはPUBLICチャンネルに到達できません。例外なし。ライトダウン禁止ルール
セッションTaintセッションが分類レベルのデータにアクセスすると、セッション全体がそのレベルにtaintされます。Taintはエスカレートのみ、低下しません。アーキテクチャ: Taint
決定論的Hook8つの強制hookがすべてのデータフローの重要なポイントで実行されます。各hookは同期、ログ記録済み、偽造不可能です。アーキテクチャ: ポリシーエンジン
コード内のアイデンティティユーザーアイデンティティはセッション確立時にコードによって決定され、LLMがメッセージコンテンツを解釈するのではありません。アイデンティティ & 認証
エージェント委任エージェント間の呼び出しは暗号化された証明書、分類上限、深さ制限によって管理されます。エージェント委任
シークレット分離認証情報はOSキーチェーンまたはvaultに保存され、設定ファイルには決して保存されません。プラグインはシステム認証情報にアクセスできません。シークレット管理
すべてを監査すべてのポリシー決定は完全なコンテキストでログ記録されます:タイムスタンプ、hookタイプ、セッションID、入力、結果、評価されたルール。監査 & コンプライアンス

従来のAIエージェントとTriggerfish

ほとんどのAIエージェントプラットフォームはLLMに安全性を強制することを依存しています。 システムプロンプトに「機密データを共有しないでください」と書き、エージェントが従うことを 信頼します。このアプローチには根本的な弱点があります。

側面従来のAIエージェントTriggerfish
セキュリティ強制LLMへのシステムプロンプト指示LLMの下の決定論的なコード
プロンプトインジェクション防御LLMが抵抗することを期待LLMはそもそも権限を持たない
データフロー制御LLMが共有しても安全なものを決定分類ラベル + コード内のライトダウン禁止ルール
アイデンティティ確認LLMが「私は管理者です」を解釈コードが暗号化されたチャンネルアイデンティティをチェック
監査証跡LLM会話ログ完全なコンテキストを持つ構造化されたポリシー決定ログ
認証情報アクセスすべてのユーザーへのシステムサービスアカウント委任されたユーザー認証情報;ソースシステムの権限を継承
テスト可能性ファジー — プロンプトの文言に依存決定論的 — 同じ入力、同じ決定、毎回
検証のためにオープン通常はプロプライエタリApache 2.0ライセンス、完全に監査可能

Triggerfishは、LLMが信頼できないと主張しているのではありません。LLMはセキュリティ

強制のための間違ったレイヤーだと主張しています。よくプロンプトされたLLMはほとんどの場合 指示に従います。しかし「ほとんどの場合」はセキュリティの保証ではありません。Triggerfish は保証を提供します:ポリシーレイヤーはコードであり、コードは指示された通りのことを 毎回行います。 :::

多層防御

Triggerfishは13の防御レイヤーを実装しています。単独ではどのレイヤーも十分ではありません。 合わせて、セキュリティ境界を形成します:

  1. チャンネル認証 — セッション確立時のコード検証されたアイデンティティ
  2. 権限対応データアクセス — ソースシステムの権限、システム認証情報ではない
  3. セッションtaint追跡 — 自動、必須、エスカレートのみ
  4. データ系譜 — すべてのデータ要素の完全なプロベナンスチェーン
  5. ポリシー強制hook — 決定論的、回避不可能、ログ記録済み
  6. MCP Gateway — ツールごとの権限による安全な外部ツールアクセス
  7. プラグインサンドボックス — Deno + WASMダブル分離
  8. シークレット分離 — OSキーチェーンまたはvault、設定ファイルではない
  9. ファイルシステムツールサンドボックス — パスジェイル、パス分類、 taintスコープのOSレベルI/O権限
  10. エージェントアイデンティティ — 暗号化された委任チェーン
  11. 監査ログ — すべての決定が記録、例外なし
  12. SSRF防止 — IPデナイリスト + すべてのアウトバウンドHTTPのDNS解決チェック
  13. メモリ分類ゲーティング — セッションtaintレベルに強制される書き込み、 canFlowToでフィルタリングされる読み取り

次のステップ

ページ説明
分類ガイドチャンネル、MCPサーバー、統合に適切なレベルを選択するための実践的なガイド
ライトダウン禁止ルール基本的なデータフロールールとその強制方法
アイデンティティ & 認証チャンネル認証とオーナーアイデンティティの確認
エージェント委任エージェント間アイデンティティ、証明書、委任チェーン
シークレット管理Triggerfishがティア全体で認証情報を処理する方法
監査 & コンプライアンス監査証跡の構造、トレース、コンプライアンスエクスポート