Contents
1. 想定される脅威とリスク概要
| カテゴリ | 主な攻撃手法 | 影響例(想定シナリオ) |
|---|---|---|
| サプライチェーン | コンテナイメージ改ざん、依存パッケージのマルウェア混入 (MITRE T1195) | 改竄された Docker イメージが本番にデプロイされ、内部ネットワークへ不正コードが実行される |
| ランサムウェア・情報窃取 | 暗号化マルウェアのペイロード、資格情報漏洩 (MITRE T1486) | 環境変数に平文で保存した API キーが取得され、外部 LLM への不正リクエストやデータ暗号化が行われる |
| API 不正利用 | プロンプトインジェクション、キー盗用 (OWASP A10) | 攻撃者が OpenClaw の外部 LLM API を乗っ取り、大量リクエストで課金や情報取得を実施 |
| コンテナ・ホスト侵害 | 権限昇格、ファイル改ざん (MITRE T1610) | コンテナ内部のプロセスが root 権限に昇格し、ホスト上の重要データへアクセス |
ポイント
- これらは「コード・コンテナ・認証情報」の三層で相互に影響を及ぼすため、単一対策だけでは不十分です。
- OSS のみでも多層防御(defense‑in‑depth)を実現できる点が、本ガイドの根幹となります。
2. OSS 多層防御アーキテクチャ
2.1 防御層の構成
| 層 | 主な役割 | 推奨OSSツール |
|---|---|---|
| ネットワーク | 境界保護・トラフィック検査 | firewalld、Suricata (IDS) |
| ホスト(OS) | 権限管理・ファイル整合性 | SELinux / AppArmor、Wazuh (HIDS) |
| コンテナ | ランタイム制御・システムコール監視 | Docker の Seccomp/AppArmor プロファイル、Falco |
| 可視化・インシデント対応 | ログ集約・自動アラート | ELK(Elasticsearch + Logstash + Kibana)または Loki + Grafana、Wazuh Dashboard |
各層は 独立かつ相互に連携 させることで、攻撃者がすべての防御を突破しなければ被害を最小化できます(NIST SP 800‑53 の「防御深度」概念参照)。
2.2 層間連携例
- Suricata が検知したネットワークアラートは Wazuh に転送し、ホスト側の異常と相関させてダッシュボードに表示。
- Falco のシステムコール警告は同じく Wazuh に集約し、ELK で検索可能な形で保存。
- アラートが一定閾値を超えたら自動的に Slack/Teams へ通知し、Jira へチケット作成(GitHub Actions 等の CI と連携)。
3. ハードニング実装ガイド
3.1 Docker 環境での最低限の設定
| 項目 | 推奨設定 | 理由 |
|---|---|---|
| ユーザー | USER 1000:1000(非 root) |
権限昇格リスクを排除 |
| ファイルシステム | read_only: true |
変更不可のルートFSで不正書き込み防止 |
| Seccomp | デフォルトプロファイルから危険系 (execve, clone) のみ許可 |
システムコールレベルで攻撃面を削減 |
| AppArmor | コンテナがアクセスできるパスは /data のみ |
ファイル操作のサンドボックス化 |
必要最小限の設定例(全体ではなく代表的な項目だけ掲載)
|
1 2 3 4 5 6 7 8 9 10 |
services: openclaw: image: ghcr.io/openclaw/openclaw:latest user: "1000:1000" read_only: true security_opt: - seccomp=./seccomp.json - apparmor=./openclaw-profile.yaml cap_drop: ["ALL"] |
3.2 Docker 非利用環境(VM・ベアメタル)での対策
| 項目 | 推奨ツール/設定 |
|---|---|
| 権限強化 | SELinux (CentOS/RHEL) または AppArmor (Ubuntu) のカスタムポリシーでプロセス権限を最小化 |
| ネットワーク分離 | firewalld に openclaw ゾーンを作成し、必要なポート(例: 443)だけ許可 |
| ファイル整合性 | Wazuh の FIM (File Integrity Monitoring) で /etc/openclaw/* の変更を監視 |
SELinux ポリシーは以下のように「/var/log/openclaw」への書き込みのみ許可する例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# allow_openclaw.te(抜粋) module allow_openclaw 1.0; require { type container_t; type var_log_t; class dir { add_name write }; class file { create write }; } allow container_t var_log_t:dir { add_name write }; allow container_t var_log_t:file { create write }; |
4. OSS ベースの IDS/IPS と EDR の代替構成
| コンポーネント | 主な機能 | 実装ポイント |
|---|---|---|
| Wazuh (OSSEC) | ホストログ・ファイル整合性・ルートキット検知 | エージェントを全サーバに配置し、Elasticsearch に転送 |
| Suricata | ネットワークパケットのシグネチャベース検知 | eve.json 出力を Wazuh のインテグレーションで取り込み |
| Falco | コンテナ内システムコール監視 | カスタムルールで OpenClaw 固有の実行ファイルやネットワーク呼び出しを検知 |
| ELK / Loki + Grafana | ログ集約・可視化 | 全ツールからの JSON 形式ログを統一的に保存・検索 |
この構成は、商用 EDR が提供する「ホスト+ネットワーク」の二重監視と同等レベルの可視性を実現します(MITRE ATT&CK の防御層 D3‑D5 に相当)。
5. 認証情報・シークレット管理
- Vault (HashiCorp)
- シークレットは KV エンジンで暗号化保管。
-
アプリ起動時に Vault Agent が環境変数へ注入し、平文の保存を回避。
-
dotenv‑safe
.env.exampleに必須キーを列挙。起動前に欠損があるとエラーで停止させることでヒューマンミスを防止。
実装フロー(概要)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Vault コンテナ起動例 docker run -d --name=vault -p 8200:8200 vault server -dev # シークレット保存 vault kv put secret/openclaw api_key=YOUR_API_KEY # OpenClaw 起動時に Vault Agent が環境変数を注入 docker run --rm \ -e VAULT_ADDR=http://vault:8200 \ --name=openclaw \ ghcr.io/openclaw/openclaw:latest \ sh -c 'export OPENCLAW_API_KEY=$(vault kv get -field=api_key secret/openclaw) && ./openclaw' |
6. Zero‑Trust ネットワーク設計
| 項目 | 手段 |
|---|---|
| VPC/サブネット分離 | プライベートサブネットに OpenClaw を配置し、パブリックは Bastion/VPN のみ公開 |
| VPN / SSH トンネル | OpenVPN または WireGuard で開発者・運用担当者を限定的に接続 |
| 相互 TLS (mTLS) | API エンドポイントはクライアント証明書で認証、cert‑manager による自動ローテーション |
| 最小権限の IAM | AWS/GCP のロールベースアクセス制御で、OpenClaw が必要とするリソース(例: S3 バケット)だけを許可 |
この構成は NIST SP 800‑207(Zero Trust Architecture)に準拠し、内部ネットワークでも認証・暗号化が徹底されます。
7. セキュリティ運用の自動化
7.1 ログ集約とインシデント対応フロー
- ELK(または Loki+Grafana)で全ログを一元管理。
- Wazuh ダッシュボードに Suricata/Falco アラートウィジェットを配置し、リアルタイムで可視化。
- 自動チケット生成:Slack へアラート送信 → GitHub Actions / Azure Logic Apps で Jira チケット作成。
7.2 脆弱性スキャンとパッチ適用
| ツール | 対象 | 自動化例 |
|---|---|---|
| Trivy | コンテナイメージ・OS パッケージ | GitHub Actions で PR 作成 → テスト合格後自動マージ |
| Dependabot | Python / npm / Dockerfile の依存関係 | daily スキャン → セキュリティプルリクエストを自動生成 |
| OS パッケージ更新 | Alpine / Debian 系ベースイメージ | CI に apk upgrade / apt-get update && apt-get upgrade -y を組み込み、ビルド時に最新状態を保証 |
これにより「検出 → 修正」のサイクルが数時間以内で完結し、脆弱性の放置リスクを大幅に低減します。
8. 最終チェックリスト(実装・運用確認)
| # | カテゴリ | 確認項目 |
|---|---|---|
| 1 | アイデンティティ | API キーは Vault に保管、dotenv‑safe で必須変数を検証 |
| 2 | ネットワーク | VPC のプライベートサブネットに配置、firewalld の openclaw ゾーンでポート制限、VPN + mTLS が有効 |
| 3 | ホスト硬化 | SELinux/AppArmor ポリシーが適用、Wazuh のファイル整合性監視が稼働 |
| 4 | コンテナ硬化 | 非 root ユーザー、Read‑Only ルート、Seccomp と AppArmor が有効 |
| 5 | 監視・可視化 | Suricata → Wazuh → ELK のデータフローが正常、Falco ルールで OpenClaw 特有の実行を検知 |
| 6 | 脆弱性管理 | Trivy と Dependabot が CI に組み込まれ、毎日スキャン結果がレポート化 |
| 7 | バックアップ | 設定ファイルとデータベースは暗号化した状態で外部ストレージへ日次バックアップ |
| 8 | インシデント対応 | アラート → Slack 通知 → Jira チケット作成の自動フローがテスト済み |
| 9 | ゼロトラスト | mTLS 証明書の自動更新、クライアント認証が全 API エンドポイントで必須 |
| 10 | ドキュメント化 | 手順・設定はすべて Markdown で管理し、CI によりリンク切れや構文エラーを検出 |
上記項目は 月次レビュー と インシデント後の振り返り の両方で実施し、未対応が残らないようにタスク化してください。
9. まとめ
- OpenClaw が直面するリスクは「コード・コンテナ・認証情報」の三層に集中している。
- ネットワーク・ホスト・コンテナ・可視化という 4 層防御 を OSS ツールだけで実装すれば、商用 EDR に匹敵するセキュリティ基盤が構築できる(NIST SP 800‑53 の「防御深度」要件を満たす)。
- ハードニングは 最小権限・不変ファイルシステム・暗号化 を基本とし、CI/CD に脆弱性スキャンと設定検証を組み込むことで運用負荷を抑えつつ常に最新の防御状態を維持できる。
- 最後に提示したチェックリストと実装フローを踏襲すれば、導入時の抜け漏れがほぼなく、安全かつスケーラブルな OpenClaw 環境が実現します。
本稿は 2026 年現在の情報に基づき執筆しています。セキュリティ技術は日々進化するため、定期的な見直しと最新ベストプラクティスの適用を推奨します。