【アップデート】AWS Security Hub の『基礎セキュリティのベストプラクティス』に新たに9個のチェック項目が追加されました

2023.02.13

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

みなさん、こんにちは。

AWS事業本部コンサルティング部の芦沢(@ashi_ssan)です。

Security Hub、運用されていますか?

昨年末にAWS Security Hubの『AWS 基礎セキュリティのベストプラクティス v1.0.0』に新たに 9個のチェック項目(コントロール)が追加されました。AWS公式からも以下のようにアナウンスされています。

本エントリでは、新規追加されたコントロールに関する情報のまとめを簡単なコメント付きで紹介していきます。

新規コントロール一覧

  • [Account.1] AWS アカウントのセキュリティ連絡先情報を提供してください
  • [APIGateway.8] Websocket と HTTP の API ゲートウェイルートに認証タイプを指定してください
  • [APIGateway.9] API Gateway V2 ステージのアクセスログを有効にしてください
  • [CloudFront.12] CloudFront ディストリビューションが存在しない S3 オリジンをポイントしないようにしてください
  • [CodeBuild.3] CodeBuild S3 ログは暗号化してください
  • [EC2.25] EC2 起動テンプレートがネットワークインターフェイスにパブリック IP を割り当てないようにしてください
  • [SageMaker.2] SageMaker ノートブックインスタンスはカスタム VPC で起動してください
  • [SageMaker.3] ユーザーに SageMaker ノートブックインスタンスへのルートアクセス権を付与しないようにしてください
  • [WAF.10] AWS WAFv2 ウェブ ACL に少なくとも 1 つのルールまたはルールグループを用意してください

AWSアカウント

[Account.1] AWS アカウントのセキュリティ連絡先情報を提供してください

重要度: 中(MEDIUM)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-account-1

コメント:

  • AWSアカウントの「代替の連絡先」のセキュリティ通知設定を要求するチェック項目です。
  • 「代替の連絡先」を指定すると、お客様不在時にAWS SupportやAWSサービスチームからのセキュリティ関連(不正利用を含む)があった場合の代理の通知先を指定出来ます。
  • 特別な理由がない限り設定しておくようにしましょう(クラスメソッドメンバーズの契約アカウント場合、原則として設定は不要です)

API Gateway

[APIGateway.8] Websocket と HTTP の API ゲートウェイルートに認証タイプを指定してください

重要度: 中(MEDIUM)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-apigateway-8

コメント:

  • HTTP APIおよびWebSocket APIについて、Lambdaオーソライザー、JWTオーソライザー、IAM認証のいずれかの設定が実施されているかどうかを確認します。
  • APIをパブリックに公開して良いと判断した場合、対応必須ではありません。

[APIGateway.9] API Gateway V2 ステージのアクセスログを有効にしてください

重要度: 中(MEDIUM)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-apigateway-9

コメント:

  • HTTP API ではアクセスログをWebSocket API では実行ログとアクセスログを記録できますが、それぞれのAPIでアクセスログの有効化を求めます。
  • CloudWatch Logsが必須になるため、追加費用を考慮した上で有効化して下さい。
  • 不特定多数のユーザーからのアクセスが無い、検証環境等であれば対応必須ではありません。

CloudFront

[CloudFront.12] CloudFront ディストリビューションが存在しない S3 オリジンをポイントしないようにしてください

重要度: 高(HIGH)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-cloudfront-12

コメント:

  • 存在しないS3バケットをオリジンとして設定している場合、悪意のある第三者が参照先のバケットを作成し、ディストリビューションを通して独自のコンテンツを供給される恐れがあります。
  • ルーティング動作に関係なくすべてのオリジンをチェックして、ディストリビューションが適切なオリジンを設定してください。

CodeBuild

[CodeBuild.3] CodeBuild S3 ログは暗号化してください

重要度: 低(LOW)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-codebuild-3

コメント:

EC2

[EC2.25] EC2 起動テンプレートがネットワークインターフェイスにパブリック IP を割り当てないようにしてください

重要度: 高(HIGH)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-ec2-25

コメント:

  • EC2起動テンプレートのオプションで【パブリックIPの自動割り当て】を「有効化」に設定している場合に検知します。
  • インターネットからの意図しないアクセスを防ぐために「無効化」に設定することを推奨します。アウトバウンド通信はNATGWやVPCエンドポイントで実現できるため、一般的にパブリックIPを割り当てる必要はありません。

SageMaker

[SageMaker.2] SageMaker ノートブックインスタンスはカスタム VPC で起動してください

重要度: 高(HIGH)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-sagemaker-2

コメント:

  • カスタムVPCを使うことで、プライベート通信やインターネット接続の柔軟な制御が可能になります。対応することを推奨します。
  • VPCの設定はノートブックインスタンスの作成時のみにしか設定することが出来ません。 是正の際には対象のノートブックインスタンスを削除し、再作成して下さい。

[SageMaker.3] ユーザーに SageMaker ノートブックインスタンスへのルートアクセス権を付与しないようにしてください

重要度: 高(HIGH)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-sagemaker-3

コメント:

  • ルートアクセスのデフォルト設定である「有効化」にしていると検知されます。
  • 開発・検証環境や本番ワークロードの初期のプロセスでは違反状態を許容しても問題ありませんが、運用が落ち着いたフェーズには最小特権の原則による「無効化」にすべきです。
  • ルートアクセス無効化の状態でも、ノートブックインスタンスのライフサイクル設定によってライブラリ等のインストールが可能です。ライフサイクル設定は常にルート権限で実行されます。

WAF

[WAF.10] AWS WAFv2 ウェブ ACL に少なくとも 1 つのルールまたはルールグループを用意してください

重要度: 中(MEDIUM)

AWSドキュメント: https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-waf-10

コメント:

  • web ACLにルールやルールグループが設定されてないと、リクエストが検査されないためWAFとして機能しません。必ずなんらかのルールを設定してください。
  • web ACLにルールが設定されていなくても、利用料金が課金されるため不要なweb ACLは削除しましょう。

おわりに

以上、追加されたSecurity Hubの新規コントロールについて確認してみました。

重要度が高い(HIGH / CRITICAL)のコントロールは、以下となっております。

  • HIGH [CloudFront.12] CloudFront ディストリビューションが存在しない S3 オリジンをポイントしないようにしてください
  • HIGH [EC2.25] EC2 起動テンプレートがネットワークインターフェイスにパブリック IP を割り当てないようにしてください
  • HIGH [SageMaker.2] SageMaker ノートブックインスタンスはカスタム VPC で起動してください
  • HIGH [SageMaker.3] ユーザーに SageMaker ノートブックインスタンスへのルートアクセス権を付与しないようにしてください

CRITICALの新規コントロールはありませんでしたが、HIGHで失敗しているものについては優先度を上げて確認しておきましょう。

ここまで読んでくださりありがとうございました。どなたかのお役に立てば幸いです。

以上、AWS事業本部コンサルティング部の芦沢(@ashi_ssan)でした。