[アップデート] Security Hub に PCI DSS にあわせた自動セキュリティチェックが追加されました!

Security Hub で PCI DSS の自動セキュリティチェックができるようになったよ!
2020.02.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Security Hub が PCI DSS バージョン 3.2.1 にあわせた自動セキュリティチェックをサポートするようになりました。

これまで CIS ベンチマーク (CIS AWS Foundations Benchmark) に対応していた Security Hub ですが、今回のアップデートにより PCI DSS v3.2.1 の要件チェックできるわけですね。すばらしい。

14 サービス 32 要件に対するチェック

今回の自動セキュリティチェックでは 14 の AWS サービスで 32 の PCI DSS 要件に対して継続的なチェックを行うことで、PCI DSS セキュリティのアクティビティを支援することが出来ます。

大前提としてですが、当該機能はあくまで支援ツールです。Security Hub は、システムが PCI DSS に準拠しているかどうかを確認するものではなく、また PCI DSS 評価に合格することを保証することも出来ません。

とはいえ、QSA に認定された、AWS Security Assurance Services LLC(AWS SAS)によって検証されたツールであるため、PCI DSS 評価の準備を支援してくれるツールであることは間違いなさそうです。

必要な AWS Config リソース

正確な結果を報告するために、以下の AWS Config リソースを有効にする必要があります。

  • Amazon ES domain
  • Auto scaling group
  • CloudTrail trail
  • CodeBuild project
  • Amazon EC2 elastic IP
  • Amazon EC2 security group
  • Amazon EC2 volume
  • IAM user
  • AWS KMS key
  • IAM policy
  • Lambda function
  • Amazon RDS DB instance
  • Amazon RDS snapshot
  • Amazon Redshift cluster
  • S3 bucket
  • Systems Manager patch compliance

PCI DSS コントロール

ボリュームが多いので、ざっとチェックできる項目のみをご紹介します。

詳細は公式ガイドを参照いただきたいのですが、各 PCI DSS 要件に対して、AWS 環境に置き換えるどのような点を考慮すべきか、が解りやすくまとまっています。

また、それらの改善方法についての設定手順も記載されているのでおすすめです。

チェック項目

安全なネットワークの構築

  • [PCI.S3.1] S3 バケットは、パブリック書き込みアクセス禁止
  • [PCI.S3.2] S3 バケットは、パブリック読み取りアクセス禁止
  • [PCI.RDS.1] RDS スナップショットはパブリックアクセス禁止
  • [PCI.RDS.2] RDS DB インスタンスはパブリックアクセス禁止
  • [PCI.Lambda.1] Lambda 関数はパブリックアクセス禁止
  • [PCI.Lambda.2] Lambda 関数は VPC にあるか
  • [PCI.Redshift.1] Amazon Redshift クラスターはパブリックアクセス禁止
  • [PCI.ES.1] Amazon Elasticsearch Service ドメインは VPC にあるか
  • [PCI.EC2.1] EBS スナップショットは、一般に復元できないようにする
  • [PCI.EC2.2] VPC デフォルトセキュリティグループは、インバウンドおよびアウトバウンドトラフィック禁止

データの保護

  • [PCI.IAM.1] IAM ルートユーザーアクセスキーは存在しない
  • [PCI.AutoScaling.1] ロードバランサーに関連付けられた自動スケーリンググループは、ヘルスチェックを使用する
  • [PCI.S3.3] S3 バケットでは、クロスリージョンレプリケーション有効
  • [PCI.EC2.3] 未使用の EC2 セキュリティグループは削除
  • [PCI.EC2.4] 未使用の EC2 EIP は削除
  • [PCI.S3.4] S3 バケットではサーバー側の暗号化を有効
  • [PCI.ES.2] Amazon Elasticsearch Service ドメインでは、保存時の暗号化を有効
  • [PCI.CloudTrail.1] CloudTrail ログは、AWS KMS CMK を使用して保存時に暗号化
  • [PCI.KMS.1] 顧客マスターキー(CMK)ローテーションを有効

脆弱性管理の整備

  • [PCI.SSM.1] Systems Manager によって管理される EC2 インスタンスは、パッチのインストール後にCOMPLIANT のパッチコンプライアンスステータスを持つ

アクセス制御

  • [PCI.IAM.2] IAM ユーザーには IAM ポリシーをアタッチしない
  • [PCI.IAM.3] IAM ポリシーでは、フル管理者権限を許可しない
  • [PCI.CW.1] root ユーザーの使用には、ログメトリックフィルターとアラームが存在
  • [PCI.CodeBuild.1] CodeBuild GitHub または Bitbucket ソースリポジトリ URL は OAuth を使用
  • [PCI.CodeBuild.2] CodeBuild プロジェクトの環境変数にクリアテキストの資格情報を含めることはできません
  • [PCI.IAM.4] root ユーザーに対してハードウェア MFA を有効
  • [PCI.IAM.5] root ユーザーに対して仮想MFAを有効
  • [PCI.IAM.6] MFA はすべての IAM ユーザーに対して有効

監視・モニタリング

  • [PCI.CloudTrail.2] CloudTrail を有効
  • [PCI.CloudTrail.3] CloudTrail ログファイルの検証を有効
  • [PCI.Config.1] AWS Config を有効
  • [PCI.CloudTrail.4] CloudTrail はCloudWatch Logs と統合して追跡

やってみる

有効化

Security Hub の管理コンソールを開き、[Compliance standards] 内の PCI DSS v3.2.1 を有効化するだけです。

上記画像では CIS ベンチマークのチェックが外れていますが、もちろん、併用することも可能です。(むしろ、併用するべきかと思います)

AWS Config ルールを確認してみると、必要な Config ルールが設定されていますね。

チェック結果

[Findings] をクリックすると、以下のように結果が確認できます。(個人の検証環境なので、真っ赤ですが。。)

あわせて読みたい

当ブログにも PCI DSS に関する記事がございますので、あわせてお読みいただくことで、より理解が深まるかと思います。

さいごに

Security Hub が CIS ベンチマークに次いで、PCI DSS の自動チェックにも対応しましたね。PCI DSS 評価を受ける必要がある環境においては、非常に強力な支援ツールとして利用できるのではないかと思います。

また、ご紹介した上記ブログのように、弊社では AWS 環境における PCI DSS 対応に向けて QSA パートナーとの情報交換会を実施するなどの取り組みも行っています。

「AWS」、「PCI DSS」 2つのキーワードでご相談がございましたら、ぜひ、弊社にお声掛けください。

以上!大阪オフィスの丸毛(@marumo1981)でした!

参考