Transcript
00:00:00Claw Patrolは、Dinoチームが構築したオープンソースのセキュリティファイアウォールです。
00:00:04AIエージェントとインターネットの間に配置され、AIエージェントに関する3つの重要なセキュリティ問題を解決します。
00:00:09「アクセス権は実際の制御ではない」「エージェントに秘密を見せてはいけない」「エージェントの動作が見えない」という点です。
00:00:14最近、多くのAIエージェント向けセキュリティツールを試してきましたが、Claw Patrolのアプローチはとても気に入っています。
00:00:19ただ、まだ完璧ではありません。Claw Patrolの仕組みは、ルール、認証情報、ログ、ダッシュボードを保持する
00:00:28ゲートウェイと呼ばれるサーバーを1つ用意し、
00:00:32エージェントを実行する任意の数のマシンをそれに参加させ、
00:00:36ゲートウェイ経由でトラフィックをルーティングするというものです。実際、単一のコマンドだけを
00:00:40ゲートウェイ経由で実行することも、マシン全体を追加することも可能です。私の場合、ゲートウェイはUbuntuサーバーで、
00:00:45Claw Patrolが標準でサポートしているTailscaleで接続しています。同様に
00:00:50WireGuardも使えます。エージェントはMacとOpenClawサーバーです。OpenClawゲートウェイを
00:00:55Claw Patrol経由で実行し、Macでは必要な時にだけclawdのシングルランコマンドを使用しています。
00:01:00この背景を踏まえて、Claw Patrolが解決する3つの主要な問題を見ていきましょう。
00:01:04他の問題にもつながるため、まずは2番目の「エージェントに秘密を見せてはいけない」から始めます。
00:01:09Claw Patrolのゲートウェイでは、Postgresユーザーのような認証情報を設定できます。
00:01:14Clawdサブスクリプション、GitHubアカウント、その他bearerトークンや、ここで使っているようなカスタムヘッダーも可能です。
00:01:19これを設定すると、Claw Patrolのrunコマンド経由でエージェントを実行する際、
00:01:25リクエストを成立させるためにエージェント自身がこれらの認証情報を持つ必要はありません。リクエストが
00:01:30ゲートウェイを通過する際に注入されるからです。例えば、Clawに私のAPIとデータベースを使って
00:01:35両方の概要を教えてくれるよう頼むと、問題なく実行できます。実行されているコマンドを見ると、
00:01:41curlリクエストにAPIキーが含まれていないことがわかります。
00:01:46しかし、実際には必要です。Postgresに対しても、明らかに本物ではない「X」という偽のパスワードを使用していますが、
00:01:51ゲートウェイがリクエストを検知し、正しい認証情報を付与しているため、
00:01:56接続して情報を取得できています。つまり、エージェントは決して
00:02:00本物の値にアクセスできないということです。エージェントのログを見られたり、プロンプトインジェクションを試みられたりしても、
00:02:06認証情報は完全に別のサーバーに存在しており、エージェントにはアクセス方法がないため、漏洩しません。
00:02:10注入プロセスをより明確に示すために、ターミナルでcurlリクエストを実行してみましょう。
00:02:15APIキーを渡さなかったため拒否されましたが、
00:02:20全く同じコマンドを「claw patrol run」経由で実行すると、キーが注入されるため正常にデータが返ってきます。
00:02:26Claw Patrolが解決を目指す次の問題は「アクセス権は実際の制御ではない」という点です。Claw Patrolを使えば、
00:02:31リクエストに対してエージェントに何をさせるか、非常に細かく制御できます。例えば、Postgres
00:02:36スキルを再度使いますが、今度はテーブルを削除して新しく作成するように指示します。実行すると直ちに、
00:02:41「スキーマ変更はマイグレーションPR経由でのみ許可され、エージェント経由は不可」というカスタムエラーメッセージが返されます。
00:02:46ゲートウェイがエージェントによるPostgresリクエストを精査し、
00:02:51私が定義したルールセットと照らし合わせ、ルールに基づきテーブル削除リクエストを拒否しました。
00:02:56これに対処するもう一つの方法は「ヒューマン・イン・ザ・ループ」です。アクションを承認するよう、
00:03:00私に通知を送るルールを作成できます。現在はSlackのみ対応していますが、
00:03:04他のオプションも近日追加予定です。LLMを判定者として使うオプションさえあります。
00:03:09ルールは非常に柔軟にカスタマイズ可能です。例えば、顧客サポートのAPIエンドポイントで返信をチェックし、
00:03:13不適切なコンテンツ、挨拶の欠如、その他漏洩させたくない情報を検出することもできます。
00:03:18繰り返しますが、これらすべてがゲートウェイ上のリクエストに対して行われるため、理論上、プロンプトインジェクションや
00:03:22その他のAI攻撃のほとんどから防御されていると言えます。
00:03:27Claw Patrolが解決する3つ目の問題は「エージェントの動作が見えない」という点ですが、
00:03:31Claw Patrolなら、すべてのリクエストがこちらのダッシュボードに可視化されます。
00:03:37アクティブなセッションや使用されたトークンを確認でき、リクエストをクリックすれば、
00:03:42実際に実行されたPostgresコマンドといった詳細を確認可能です。
00:03:46API呼び出しの場合は、APIリクエストとそのレスポンスも確認できます。
00:03:51そのため、エージェントが何をしようとしたのかを把握するために、個別のサービスのログを
00:03:55時間をかけて調べる必要はありません。代わりに、リクエスト時点で何が起きたのかが確認でき、
00:03:59エージェントが行ったほぼすべてを把握できるはずです。
00:04:03以上がClaw Patrolが解決を目指す3つの問題ですが、設定はどのように行うのでしょうか?
00:04:07インストール後、ゲートウェイはすべて単一のHCLファイルで構成されます。
00:04:12ここでルールや認証情報を持つエンドポイントを定義します。
00:04:16OpenAI、Slack、SSH、Postgresなど様々な定義があり、一致するリクエストがゲートウェイを通ると、
00:04:22いずれかのリクエストがこれらのゲートウェイを通過すれば、ルールや認証情報を確認する仕組みになっています。
00:04:26実際の認証情報そのものについても、設定は非常に簡単です。
00:04:30認証情報のタイプと、どのエンドポイントに一致させるかを指定します。
00:04:34Anthropicサブスクリプション、Codex、
00:04:39ClickHouse、Postgres、そして基本的なBearerトークンやカスタムヘッダーなど多数のタイプをサポートしており、
00:04:43必要なタイプはほぼ見つかるはずです。
00:04:46もし対応していなくても、プラグインをコーディングして自分で追加できます。
00:04:50認証情報を定義したら、ダッシュボードから実際の値を入力するだけです。ルールの設定も簡単です。
00:04:54適用先のエンドポイントを指定し、ルールを記述します。
00:04:56ルール記述にはCommon Expression Languageを使用します。
00:05:00HTTP、Postgres、Kubernetesなど、広範囲をカバーできます。
00:05:05定義したルールに対して「承認」か「拒否」かという判定を下します。
00:05:09ホワイトリスト方式なら承認を使い、ブロックリスト方式なら拒否を使います。
00:05:14デフォルトですべてブロックして特定の許可を与えることも可能です。
00:05:18私の場合、単純にブロックリスト方式を使用しました。
00:05:22最後に、もう一つ便利な機能がプロファイルです。認証情報を
00:05:26複数のプロファイルにグループ化でき、それに紐付くルールやエンドポイントも
00:05:31一緒にグループ化されるため、エージェントやチームに対するロールベースのアクセス制御を設定可能です。
00:05:35開発チームには特定の認証情報やルールを与え、サポートチームには別のものを設定するといった具合です。
00:05:40チームごとに権限を変えることが可能です。
00:05:45ルール変更時の支援として、テストコマンドもあります。
00:05:49ダッシュボードからルールアクションをダウンロードし、ローカルのルール変更に対して再実行することで、
00:05:54意図しない漏洩がないか、結果に変化がないかを確認できます。
00:05:59正直なところ、この設定作業は少し面倒だと感じましたが、
00:06:02プロジェクトはまだ初期段階なので、すぐに改善されるでしょう。ダッシュボードから
00:06:07認証情報やルールを簡単に設定できる機能があれば最高です。
00:06:11AdGuardのように、流れてくるリクエストを見てクリック一つでルールや認証情報を追加できるような機能が似ているかもしれません。
00:06:15ローカルのProxmoxサーバーへのIPアドレスをエンドポイントとして追加しようとした際、
00:06:19多くの問題に直面しました。なぜかリクエストが
00:06:24インターセプトされず、ダッシュボードにも表示されず、少し頭を悩ませました。
00:06:28修正が必要なのか、私の使い方が間違っていたのか、
00:06:33いずれにせよ、作業の流れを邪魔しないレベルの使いやすさに達するにはまだ時間がかかりそうです。
00:06:38しかし、これはAIエージェントを「YOLOモード」でただ実行するのではなく、セキュリティに関することなので当然のこととも言えます。
00:06:43Claw Patrolについてどう思いましたか?また、皆さんがエージェントに使っているセキュリティツールがあれば
00:06:47ぜひ下のコメント欄で教えてください。チャンネル登録もよろしくお願いします。
00:06:51それでは、また。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video