Meta DPA
Meta社のデータ保護評価の一環として、Shisho Cloudを使用したクラウドセキュリティポスチャ管理の実装に関する証拠を収集する必要がある場合があります。
このドキュメントでは、Meta社のデータ保護評価のために、クラウドセキュリティ監査の証拠を収集する方法を説明します。
このドキュメントは、Meta社によって公式に承認されたものではありません。Meta社のデータ保護評 価の準備をする際には、このドキュメントを参照として使用してください。 これは、クラウドデータ保護のためにShisho Cloudがどのように機能するかを評価者に説明する際に役立つ場合があります。
概要
以下のステップ(A)~(F)に従うことで、Shisho Cloudを使用したクラウドセキュリティポスチャ管理の実装に関する基本的な情報を確認できます。
$ EXPORT ORG_ID=flatt-security
# (A) すべてのリソースレビューが有効になっていることを表示する
####################
$ shishoctl workflow list --org $ORG_ID | jq -r
# (B) ワークフローが適切に実行されていることを示す
####################
$ shishoctl run list --org $ORG_ID | jq -r
# (C) プラットフォームデータを処理するための、Shisho Cloudとクラウドアカウント間の連携が現在利用可能であることを示す
####################
$ shishoctl integration aws list --org $ORG_ID | jq -r
$ shishoctl integration googlecloud list --org $ORG_ID | jq -r
# (D) プラットフォームデータを処理するクラウドアカウントがカバーされていることを示す
####################
$ shishoctl cloud-account list --org $ORG_ID | jq -r
# (E) これまでに確認されたリソースの数とセキュリティの状況を示す
####################
$ shishoctl finding aggregate per-resource-kind --org $ORG_ID | wc -l
# 補足: 特定のフレームワーク/ベンチマーク、例えばCISベンチマークに対するコンプライアンスレポートのみを表示したい場合は、代わりに以下のコマンドを実行できます。
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:aws/cis-benchmark/v1.5.0" --org $ORG_ID | wc -l
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:googlecloud/cis-benchmark/v1.3.0" --org $ORG_ID | wc -l
# (F) アクティブなクリティカル重大度の指摘事項がないことを示す。同様のコマンドを実行して、高重大度の指摘事項(SeverityHigh)を収集することもできます。
####################
$ shishoctl finding aggregate per-resource-kind --org $ORG_ID | jq -r '.entries[] | select(.highestSeverity == "SeverityCritical")'
# 補足: 特定のフレームワーク/ベンチマーク、例えばCISベンチマークに対するコンプライアンスレポートのみを表示したい場合は、代わりに以下のコマンドを実行できます。
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:aws/cis-benchmark/v1.5.0" --org $ORG_ID | jq -r '.entries[] | select(.highestSeverity == "SeverityCritical")'
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:googlecloud/cis-benchmark/v1.3.0" --org $ORG_ID | jq -r '.entries[] | select(.highestSeverity == "SeverityCritical")'
詳細
(A) 有効化されたワークフローの一覧
以下のコマンドを実行すると、有効化されたワークフローの一覧が表示されます。
# (A) すべてのリソースレビューが有効になっていることを表示する
####################
$ shishoctl workflow list --org $ORG_ID | jq -r
出力例は以下のとおりです。
[
{
"id": "notification-security",
"snapshotID": "WS01H1SGHWKRKCWNPRNMXAQX16BP",
"manifest": {
"id": "notification-security",
"version": "0.1.0",
"name": "Prebundle: Notify important security events"
}
},
// 省略...
flatt-security/shisho-cloud-managed-workflows には、デフォルトで有効になっているワークフローのセットが含まれています。 CIS ベンチマーク、AWS Foundational Security Best Practices、Google Cloud Security Command Center (SCC) の指摘事項などに対応するワークフローが含まれています 。
DPA の評価者は、評価の範囲を理解するために、この情報が役立つ場合があります。上記の GitHub リポジトリ内の各ワークフローには、ほとんどの組織のセキュリティ体制で必要とされるワークフローのセットである、プリバンドルワークフローが含まれています。 "prebundle-aws-config" のようなリポジトリ内のすべての manifest ID がコマンド出力に存在する場合、すべてのプリバンドルワークフローが有効になっていることを示す証拠となります。
(B) 最近のワークフローの実行
以下のコマンドを実行すると、最近のワークフローの実行結果が表示されます。
# (B) ワークフローが適切に実行されていることを示す
####################
$ shishoctl run list --org $ORG_ID | jq -r
出力例は以下のとおりです。
[
{
"id": "WH01HCTCWPCPNW318JG0RSJ62PTD",
"workflowId": "new-workflow-2",
"workflowSnapshotId": "WS01HARP70FMPK8DWV32Y1NZ84A1",
"startedAt": "2023-10-15T19:27:01Z",
"runningState": "SCompleted",
"cause": "IScheduled"
},
// 省略...
DPA の評価者は、ワークフローが適切に実行されていることを確認するために、この情報が役立つ場合があります。コマンド出力でワークフローが適切に実行されていることが報告され、その他の連携状況にも問題がない場合、クラウドセキュリティの状況を評価するのに十分なデータが収集され、積極的にレビューされていることを示す証拠となります。
(C) 連携の健全性
以下のコマンドを実行すると、プラットフォームデータを処理するための、Shisho Cloudとクラウドアカウント間の連携の状態が表示されます。
# (C) プラットフォームデータを処理するための、Shisho Cloudとクラウドアカウント間の連携が現在利用可能であることを示す
####################
$ shishoctl integration aws list --org $ORG_ID | jq -r
$ shishoctl integration googlecloud list --org $ORG_ID | jq -r
出力例は以下のとおりです。
[
{
"federationId": "AWSOIDC01GXBAY25BGGK741PTHH66HA9S",
"availability": {
"available": true,
"unavailableReason": null
},
"body": {
"__typename": "AWSRoleOIDCFederationBody",
"roleArn": "arn:aws:iam::065248681517:role/shisho-cloud-integration",
"type": "SINGLE_ACCOUNT"
}
},
// 省略...
DPA の評価者は、availability
フィールドを確認することで、プラットフォームデータを処理するための、Shisho Cloud とクラウドアカウント間の連携が適切に機能していることを理解できます。
(D) 連携済みのスコープ
以下のコマンドを実行すると、これまでに確認されたクラウドアカウント(Google Cloud プロジェクト、AWS アカウントなど)が表示されます。
# (D) プラットフォームデータを処理するクラウドアカウントがカバーされていることを示 す
####################
$ shishoctl cloud-account list --org $ORG_ID | jq -r
出力例は以下のとおりです。
{
"pageInfo": {
"totalEntries": 240
},
"entries": [
{
"id": "aws-account|779392188153",
"displayName": "779392188153",
"highestSeverity": "SeverityCritical",
"actionNeededDecisions": 124,
"__typename": "AWSAccountResource"
},
// 省略...
DPA の評価者は、評価の範囲を理解するために、この情報が役立つ場合があります。アカウント一覧には、プラットフォームデータを処理するためのアカウントが含まれている必要があります。
(E) リソースタイプごと、またはコンプライアンス項目ごとの指摘事項
以下のコマンドを実行すると、これまでに確認されたリソースの数とセキュリティの状況が表示されます。
# (E) これまでに確認されたリソースの数とセキュリティの状況を示す
####################
$ shishoctl finding aggregate per-resource-kind --org $ORG_ID | wc -l
# 補足: 特定のフレームワーク/ベンチマーク、例えばCISベンチマークに対するコンプライアンスレポートのみを表示したい場合は、代わりに以下のコマンドを実行できます。
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:aws/cis-benchmark/v1.5.0" --org $ORG_ID | wc -l
$ shishoctl finding aggregate per-annotation-value "decision.api.shisho.dev:googlecloud/cis-benchmark/v1.3.0" --org $ORG_ID | wc -l
最初のコマンド shishoctl finding aggregate per-resource-kind --org $ORG_ID
は、これまでに確認されたリソースの数とセキュリティの状況を表示します。例えば、以下のように表示されます。
{
"entries": [
{
"kind": "aws-account",
"count": 4,
"decisions": 123,
"decisionGroups": 31,
"allowedDecisions": 24,
"deniedDecisions": 99,
"neededActions": 85,
"highestSeverity": "SeverityHigh"
},
{
"kind": "aws-cloudfront-distribution",
"count": 6,
"decisions": 36,
"decisionGroups": 6,
"allowedDecisions": 15,
"deniedDecisions": 21,
"neededActions": 20,
"highestSeverity": "SeverityCritical"
},
// 省略...
各フィールドは、以下の情報を示しています。
kind
: リソースタイプcount
: スキャンされたリソースの総数 (リソースタイプごと)decisions
: Shisho Cloud における当該リソースタイプに対する判定の数。- ここでの判定とは、当該リソースが特定のコンプライアンス項目に準拠しているかどうかを表すものです。
- 簡単に言うと、判定とは1 つのリソースを 1 つの観点からレビューした結果と考えることができます。例えば、ある S3 リソースが 2 つの CIS ベンチマーク項目でレビューされた場合、その S3 リソースには 2 つの判定が存在します。
decisionGroups
: 当該リソースタイプに対する判定グループの数。- ここでの判定グループとは、判定をそのタイプで集約したものです。
- 簡単に言うと、判定グループとはレビューのポイントと考えることができます。例えば、いくつかの S3 リソースが 2 つの CIS ベンチマーク項目でレビューされた場合、リソースタイプ S3 に対して 2 つの判定グループがカウントされます。
allowedDecisions
: 当該リソースタイプに対する許可判定の数。- 許可判定とは、リソースが特定のコンプライアンス項目に準拠していることを表す判定です。
deniedDecisions
: 当該リソースタイプに対する拒否判定の数。- 拒否判定とは、リソースが特定のコンプライアンス項目に準拠していないことを表す判定です。
- この値が 0 より大きい場合、一部のリソースが一部のコンプライアンス項目に準拠していないことを意味します。ただし、必ずしも注意が必要な指摘事項があることを意味するわけではありません。詳細については、
neededActions
およびhighestSeverity
を参照してください。
neededActions
: 当該リソースタイプに対する必要なアクションの数。- Shisho Cloud のユーザーは、クラウドセキュリティの状況に関係のない指摘事項を承認することができます。例えば、S3 バケットが意図的に公開されている場合、ユーザーは S3 バケットが公開されているという指摘事項を正当に承認することができます。
- 必要なアクションの数は、拒否され、かつ承認されていない判定の数です。
- この値が 0 より大きい場合、注意が必要な指摘事項があることを意味します。
highestSeverity
: 当該リソースタイプに対する必要なアクションの中で最も高い重要度。