mcpField
A
auditing-cis-benchmark

auditing-cis-benchmark

github.com/cockroachlabsセキュリティ2378 回インストール14 週間前に更新
リポジトリ

auditing-cis-benchmark について

このエージェントスキルは、CIS CockroachDB Benchmark v1.0.0 Level 1 に基づき、セルフホストの CockroachDB を読み取り専用で監査します。クイックスキャンと詳細監査に対応し、6 つのセキュリティ領域にわたる 30 項目を評価するため、運用担当者やコンプライアンスチームに適しています。

主な機能

  1. 01CIS 30 項目の評価
  2. 02クイックスキャンと詳細監査
  3. 03合格・不合格・手動確認の結果
  4. 04CIS Controls v7/v8 へのマッピング
  5. 05クラスターとホストの読み取り専用チェック

活用シーン

  1. 01CIS コンプライアンス評価の証跡準備
  2. 02セルフホスト CockroachDB のセキュリティ設定確認
  3. 03定期的なセキュリティチェックや CI/CD ゲート
  4. 04データベース制御と CIS Controls の対応付け

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cockroachlabs/cockroachdb-skills --skill auditing-cis-benchmark

インストール後、Claude Code で/auditing-cis-benchmarkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cis-controls.md
sample-report.md
sql-queries.md

詳細

CIS ベンチマークへの準拠状況の監査

セルフホスト型 CockroachDB クラスターを、CIS CockroachDB Benchmark v1.0.0 Level 1 プロファイルに照らして評価します。インストールとパッチ、システムの強化とトポロジー、ロギングとモニタリング、ユーザーアクセスと認可、データ保護、CockroachDB の設定という 6 つのドメインにわたり、30 項目の管理策を評価します。CIS Controls v7/v8 とのマッピングおよび実装グループの適用範囲を含む、PASS、FAIL、MANUAL REVIEW の判定結果を構造化レポートとして出力します。

対象範囲: セルフホスト型 CockroachDB デプロイメントのみです。CockroachDB Cloud クラスターの場合は、代わりに auditing-cloud-cluster-security を使用してください。Cloud クラスターには、多くの CIS セルフホスト向けチェックより優先される、マネージド管理策があります。

権威ある情報源: このスキルは、https://github.com/cockroachlabs/CIS-benchmarks-crdb で定義されているベンチマークを実装しています。

読み取り専用の監査: すべての操作は読み取り専用です。評価中にクラスターの状態、OS の設定、ファイルが変更されることはありません。

このスキルを使用する場面

  • CIS ベンチマークの準拠状況評価や外部監査に備える場合
  • 新しいセルフホスト型 CockroachDB の本番デプロイメントを強化する場合
  • 業界標準のベンチマークに照らしてセキュリティ態勢を検証する場合
  • セキュリティ運用の一環として定期的な準拠状況チェックを行う場合
  • CockroachDB のセキュリティ管理策を CIS Controls フレームワークにマッピングする場合
  • CIS ベンチマークの証拠を求める監査人の依頼に対応する場合

前提条件

アクセス要件:

要件目的
クラスターノードへの SSH/シェルアクセスOS レベルのチェック(systemd、スワップ、THP、ファイルディスクリプター、証明書)
SQL アクセス(admin または VIEWACTIVITY)クラスター設定、ユーザー/ロールの監査、ロギング設定
systemd サービスファイルへのアクセスサービス設定の検証
証明書ディレクトリへのアクセス証明書の権限と有効性のチェック

ツール:

ツール必須目的
cockroach CLIはいバージョン確認、証明書の検査、SQL アクセス
systemctlはいサービスの状態、NTP の検証
openssl推奨証明書の検証と有効期限のチェック
標準 Unix ツールはいps、ls、cat、grep、swapon、ulimit

監査の深度

このスキルでは、2 段階の監査に対応しています。ニーズに応じて選択してください。

深度使用する場面実施内容
クイックスキャン定期チェック、CI/CD ゲート、迅速なトリアージ各管理策について 1 行のシェル/SQL コマンドを実行し、合格/不合格を返します
完全監査準拠状況の証拠、外部監査人からの依頼、詳細な評価CIS 公式ベンチマークに基づき、各管理策の複数ステップの手順を実施します

ステップ 0 で、希望する深度をユーザーに確認してください。両方を組み合わせることもできます。最初にクイックスキャンを実行して不合格項目を特定し、証拠を収集するために、その不合格項目について完全監査を実施します。

CIS ベンチマークの構成

CIS CockroachDB Benchmark v1.0.0 Level 1 プロファイルには、6 つのセクションに分類された 30 項目の管理策があります。

セクションドメイン管理策自動化手動
1インストールとパッチ1.1–1.7(7)34
2システムの強化とトポロジー2.1–2.7(7)52
3ロギングとモニタリング3.1–3.4(4)13
4ユーザーアクセスと認可4.1–4.4(4)04
5データ保護5.1–5.3(3)03
6CockroachDB の設定6.1–6.5(5)14

各管理策の定義と、クイックスキャン用コマンドおよび完全監査の手順については、CIS controls reference を参照してください。

評価ワークフロー

ステップ 0:監査範囲の確認

開始する前に、ユーザーに次の項目を確認します。

  1. 監査の深さ — 簡易スキャン、完全監査、または両方
  2. 対象ノード — 監査するノード(すべてのノードを推奨)
  3. CockroachDB サービスアカウント — CockroachDB を実行するユーザー名(デフォルト:cockroach)
  4. 証明書ディレクトリ — TLS 証明書へのパス(デフォルト:/var/lib/cockroach/certs)
  5. データディレクトリ — CockroachDB データストアへのパス(デフォルト:/var/lib/cockroach)
  6. ログディレクトリ — ログへのパス(デフォルト:/var/lib/cockroach/logs または <store>/logs)
  7. Enterprise ライセンス — Enterprise 機能(EAR)が利用可能かどうか

これらの値を記録してください。以下のチェックでは、これらの値をパラメーターとして使用します。

ステップ 1:インストールとパッチ(コントロール 1.1~1.7)

これらのコントロールでは、バイナリの整合性、systemd によるサービス管理、TLS の初期化、バージョンの統一性、アップグレード手順、保存データの暗号化を確認します。

主なチェック:

  • 1.1:公式ソースからバイナリをダウンロードし、SHA-256 を検証済み(手動)
  • 1.2:systemctl is-enabled cockroach.service → enabled(自動)
  • 1.3:--insecure フラグがなく、certs ディレクトリが存在し、有効な CA 署名付き証明書がある(自動)
  • 1.4:ps aux | grep -c insecure → 0(自動)
  • 1.5:すべてのノードが同じバージョンを実行している — cockroach version による簡易スキャン、DB Console の Node List と crdb_internal.gossip_nodes による完全監査(自動)
  • 1.6:ローリングアップグレードのランブックが存在し、テスト済み(手動)
  • 1.7:外部 KMS を使用して --enterprise-encryption が設定され、キーがディスク上にない(手動)
ステップ 2:システムの強化とトポロジー(コントロール 2.1~2.7)

これらのコントロールでは、時刻同期、プロセスの分離、ネットワークのセグメント化、メモリ設定、ファイルディスクリプター、権限の制限など、OS レベルの設定を確認します。

主なチェック(各ノードで実行):

  • 2.1:NTP/chrony が有効で、オフセットが --max-offset 未満(自動)
  • 2.2:各ホストで CockroachDB プロセスが 1 つだけ実行されている(自動)
  • 2.3:専用サブネットを使用し、ポート 26257/8080 の受信トラフィックを制限している(手動)
  • 2.4:swapon --show | wc -l → 0(自動)
  • 2.5:THP が madvise または never に設定されている(自動)
  • 2.6:cockroach ユーザーのファイルディスクリプター上限が 15,000 以上(自動)
  • 2.7:cockroach ユーザーに sudo 権限がない(自動)
ステップ 3:ログ記録とモニタリング(コントロール 3.1~3.4)

これらのコントロールでは、ログ設定、ローテーション、認証イベントの記録、モニタリングとアラートを確認します。

主なチェック:

  • 3.1:ログディレクトリが存在し、所有者が cockroach で、権限が 700(手動)
  • 3.2:CockroachDB の設定または logrotate によるログローテーションが構成されている(手動)
  • 3.3:server.auth_log.sql_connections.enabled と server.auth_log.sql_sessions.enabled の両方が true(自動)
  • 3.4:モニタリングシステムがメトリクスをスクレイピングし、アラートが設定されている(手動)
ステップ 4:ユーザーアクセスと認可(コントロール 4.1~4.4)

これらのコントロールでは、ホストベースの認証、パスワードのセキュリティ、root ユーザーの強化、ID 管理の一元化を確認します。

⚠️ コントロール 4.2(完全監査のみ): 保存されたパスワードハッシュの検査には、SET allow_unsafe_internals = true が必要です。これは緊急時の監査専用操作です。許可されたオペレーターが専用の管理者セッションでのみ実行し、直後に SET allow_unsafe_internals = false で必ずリセットしてください。アプリケーションのワークロードでは使用しないでください。

主なチェック(すべて SQL):

  • 4.1:HBA で特定の IP 範囲と強力な認証方式を指定し、すべてを拒否するルールを設定している(手動)
  • 4.2:password_encryption が scram-sha-256 で、保存されたハッシュが SCRAM 形式(手動)
  • 4.3:HBA の証明書方式を使用して root を特定のホストに制限し、アクティビティを監査している(手動)
  • 4.4:OIDC/LDAP が有効で、ID マッピングが設定され、ローカルアカウントが最小限に抑えられている(手動)
ステップ 5:データ保護(コントロール 5.1~5.3)

これらのコントロールでは、バックアップの暗号化、復旧テスト、マルチリージョンでのデータローカライズを確認します。

主なチェック項目:

  • 5.1:バックアップで kms または encryption_passphrase を使用しているか、ストレージレイヤーの暗号化が適用されています(手動)
  • 5.2:復旧手順を四半期ごとにテストし、結果を文書化しています(手動)
  • 5.3:マルチリージョンテーブルで、データレジデンシーのために REGIONAL BY ROW またはゾーン制約を使用しています(手動)
ステップ 6:CockroachDB の設定(コントロール 6.1~6.5)

これらのコントロールでは、証明書のセキュリティ、設定の秘匿化、監査ログ、セッションタイムアウト、OCSP を確認します。

主なチェック項目:

  • 6.1:秘密鍵のアクセス権が 0600 で、証明書の有効期限が 90 日以上です(自動)
  • 6.2:デバッグバンドルで --redact を使用し、ログにシークレットが含まれていません(手動)
  • 6.3:sql.log.user_audit が空でなく、sql.log.admin_audit.enabled = true で、セキュリティチャネルが設定されています(手動)
  • 6.4:sql.defaults.idle_in_session_timeout が設定されています(例:15m)(手動)
  • 6.5:security.ocsp.mode = strict または lax です(手動)

レポート形式

サンプルレポートの構成に従って、Markdown レポートを生成してください。

ステータスマーカー:

  • [PASS] — コントロールを満たしています
  • [FAIL] — コントロールを満たしていないため、修正が必要です
  • [MANUAL] — 人による確認が必要です。自動チェックではコンプライアンスを判定できません
  • [N/A] — コントロールの適用対象外です(例:Enterprise ライセンスなしでの EAR)

他のセキュリティスキルとの関係

CIS セクション関連する修正スキル
1 インストールmanaging-tls-certificates, enabling-cmek-encryption
3 ログ記録configuring-audit-logging, configuring-log-export
4 ユーザーアクセスhardening-user-privileges, enforcing-password-policies, configuring-sso-and-scim
5 データ保護preparing-compliance-documentation
6 設定managing-tls-certificates, configuring-audit-logging

Cloud とセルフホストの両方を対象とした、より広範なセキュリティ態勢の評価には、auditing-cloud-cluster-security を使用してください。

安全上の考慮事項

  • すべての操作は読み取り専用です。 クラスター設定、OS 設定、ファイルは変更されません。
  • シェルコマンドでは読み取り専用のツールを使用します: ps、ls、cat、grep、systemctl is-enabled/is-active、swapon --show、ulimit、openssl x509、openssl verify。
  • SQL クエリでは SHOW と SELECT のみを使用します。 DDL 文や DML 文は使用しません。
  • 例外が 1 つあります(4.2): パスワードハッシュの検査を含む完全な監査手順では、SET allow_unsafe_internals = true が必要です。これは読み取り専用の緊急アクセス操作で、直後に (SET allow_unsafe_internals = false) でリセットする必要があります。この手順を実行できるのは、認可されたオペレーターのみです。
  • シークレットは記録されません。 証明書の秘密鍵やパスワードは、レポート出力に含まれません。
  • 権限の確認: 一部の SQL クエリには、admin または VIEWACTIVITY 権限が必要です。レポートには、権限の不足があればその内容が記載されます。

参考資料

スキルの参考資料:

信頼できる情報源:

関連スキル:

CockroachDB 公式ドキュメント:

コメント