公開チャットプラットフォームで AI エージェントを公開する場合、セキュリティ制御が極めて重要になります。無制限の AI ボットは悪用される可能性があります。大量の API クォータの消費、不適切なコンテンツの生成、機密情報の漏洩など、さまざまなリスクがあります。OpenClaw は、誰が AI とどのようにインタラクションできるかを制御するための多層的なセキュリティメカニズムを提供しています。
セキュリティ脅威の概要
オープンなチャットプラットフォームで AI ボットを運用する際の主なリスクには以下が含まれます:
- 権限のないユーザーが AI リソースを悪用し、高額な API コストが発生
- 悪意のあるユーザーがプロンプトインジェクションを通じて AI の動作を操作しようとする
- グループチャットで AI が不適切にトリガーされ、ふさわしくないコンテンツで応答
- 機密情報が AI の応答を通じて権限のない個人に漏洩
OpenClaw のセキュリティメカニズムはこれらのシナリオに対処するよう設計されています。
ホワイトリストメカニズム
ホワイトリストは OpenClaw の最も基本的で効果的なアクセス制御手段です。原理はシンプルで、ホワイトリストに登録されたユーザーのみが AI とインタラクションでき、それ以外のすべてのユーザーからのメッセージは無視されます。
グローバルホワイトリスト
openclaw.json のトップレベルでグローバルホワイトリストを設定できます。これはすべてのチャンネルに適用されます:
{
"security": {
"allowlist": {
"enabled": true,
"users": [
{"platform": "telegram", "id": "123456789"},
{"platform": "whatsapp", "id": "[email protected]"},
{"platform": "discord", "id": "987654321098765432"}
]
}
}
}
グローバルホワイトリストはプラットフォーム名とユーザー ID の形式でユーザーを識別します。これにより、すべてのプラットフォームの認可ユーザーを一箇所で管理できます。
チャンネルレベルホワイトリスト
各チャンネルには独自のホワイトリストを設定でき、グローバルホワイトリストとの和集合として機能します。つまり、グローバルまたはチャンネルホワイトリストのいずれかに含まれるユーザーがボットにアクセスできます:
{
"channels": {
"telegram": {
"allowlist": [123456789, 111222333]
},
"whatsapp": {
"allowlist": ["[email protected]"]
}
}
}
チャンネルレベルのホワイトリストはプラットフォームのユーザー ID のみが必要で、より簡潔な形式です。
ホワイトリストモード
OpenClaw は2つのホワイトリストモードをサポートしています:
厳格モード(strict):ホワイトリスト登録ユーザーのみがインタラクションできます。デフォルトモードで、プライベートデプロイに適しています。
許容モード(permissive):すべてのユーザーがインタラクションできますが、ホワイトリスト登録ユーザーはより高い優先度と機能権限を享受します。たとえば、一般ユーザーは1日10メッセージに制限され、ホワイトリスト登録ユーザーは無制限となります。
{
"security": {
"allowlist": {
"mode": "strict"
}
}
}
プライベートメッセージペアリングメカニズム
プライベートメッセージペアリングは OpenClaw 独自のセキュリティ機能です。ユーザーがグループチャットなどで AI 機能を使用する前に、ボットとのプライベートメッセージで本人確認を完了する必要があります。
ワークフロー
ペアリングプロセスは以下のとおりです:
- ユーザーがグループチャットで初めて AI とインタラクションしようとする
- ボットはユーザーがペアリングされていないことを検出し、ユーザーにプライベートメッセージを送信(またはボットにメッセージを直接送るよう促す)
- ユーザーはプライベートメッセージでワンタイムペアリングコードを受け取る
- ユーザーがプライベートメッセージでペアリングコードを返信して認証を完了
- 認証成功後、ユーザーはグループチャットで AI 機能を通常どおり使用可能
プライベートメッセージペアリングの設定
{
"security": {
"pairing": {
"enabled": true,
"codeExpiry": 300,
"codeLength": 6,
"maxAttempts": 3,
"pairingMessage": "Please reply with the following pairing code within 5 minutes to activate the AI assistant: {code}"
}
}
}
codeExpiry はペアリングコードの有効期間(秒単位)、codeLength はコードの桁数、maxAttempts は最大試行回数です。これを超えるとペアリングプロセスを再開する必要があります。pairingMessage はユーザーに送信されるメッセージテンプレートで、{code} が実際のペアリングコードに置き換えられます。
ペアリング状態の永続化
ペアリング成功後、ユーザーの認証状態は永続化されます。OpenClaw を再起動しても、ユーザーは再度ペアリングする必要がありません。ペアリング記録はローカルデータベースに保存され、コマンドで管理できます:
openclaw pairing list # ペアリング済みユーザーの一覧表示
openclaw pairing revoke <id> # 特定ユーザーのペアリングを失効
openclaw pairing clear # すべてのペアリング記録をクリア
グループチャットアクセス制御
グループチャットのシナリオでのセキュリティ制御はより複雑で、グループとユーザーの両方のレベルで二重の権限が関与します。
グループホワイトリスト
ボットが特定のグループでのみ機能するよう制限します:
{
"security": {
"groups": {
"allowedGroups": {
"telegram": [-1001234567890],
"whatsapp": ["[email protected]"],
"discord": ["guild_id_here"]
}
}
}
}
ボットがホワイトリストにないグループに追加された場合、すべてのメッセージを無視します。ボットが未認可のグループから自動的に退出するよう設定することもできます。
グループロールベースアクセス
ロールシステムをサポートするプラットフォーム(Discord や Telegram など)では、ユーザーのグループロールに基づいてアクセスを制御できます:
{
"security": {
"groups": {
"roleBasedAccess": {
"adminOnly": false,
"allowedRoles": ["ai-user", "premium"]
}
}
}
}
adminOnly を true に設定すると、管理者のみがボットを使用できます。allowedRoles は AI 機能の使用を許可するロールを指定します(Discord などのロールシステムを持つプラットフォームに適用)。
レート制限
アクセス制御に加えて、レート制限もう1つの重要なセキュリティ対策です。単一のユーザーが AI リソースを過度に使用することを防ぎます:
{
"security": {
"rateLimit": {
"enabled": true,
"maxRequests": 30,
"windowSeconds": 3600,
"cooldownMessage": "You've reached your usage limit. Please try again later."
}
}
}
上記の設定では、各ユーザーが1時間あたり30回の AI インタラクションに制限されます。レート制限はユーザーごとに個別に計算されますが、チャンネル間で共有されます。つまり、同じユーザーが Telegram で20回使用した場合、Discord では残り10回しか使えません。
コンテンツ安全性
OpenClaw は基本的なコンテンツ安全性フィルタリングも提供しています。キーワードフィルタリングを設定し、ユーザー入力や AI の応答に特定のキーワードが含まれる場合にメッセージをインターセプトできます:
{
"security": {
"contentFilter": {
"enabled": true,
"blockedPatterns": ["sensitive_word_1", "sensitive_word_2"],
"action": "block_and_warn"
}
}
}
action は2つのモードをサポートしています:block_silently(サイレントインターセプト)と block_and_warn(インターセプトしてユーザーに通知)。
セキュリティ設定のベストプラクティス
本番環境では、以下のセキュリティ対策の組み合わせを推奨します:厳格モードでグローバルホワイトリストを有効にし、既知のユーザーのみを許可する。グループチャットシナリオではプライベートメッセージペアリングを有効にして追加の認証レイヤーを追加する。合理的なレート制限を設定して悪用を防止する。グループホワイトリストを設定して、ボットが未知のグループに追加されることを防ぐ。ペアリング記録と使用ログを定期的に確認する。
これらのセキュリティメカニズムは柔軟に組み合わせることができます。社内チーム利用の場合、ホワイトリストとレート制限で通常は十分です。一般公開サービスの場合は、セキュリティ対策をすべて有効にすることを推奨します。