【アップデート】AWS Security Hub のセキュリティ標準に新たに6個のチェック項目が追加されました(2023/6/6)
みなさん、こんにちは。
明るい笑顔がトレードマーク、ルイボスティーが大好きな芦沢(@ashi_ssan)です。
みなさん、Security Hubの運用されていますか?
AWS Security Hubのセキュリティ標準に新たに 6個のチェック項目(コントロール)が 追加されました。
AWS公式ブログでのアナウンスはありませんが、Security Hub公式ドキュメントのDocument Historyから更新を確認できました。
Security Hub has added the following security controls:
- [ACM.2] RSA certificates managed by ACM should use a key length of at least 2,048 bits
- [AppSync.2] AWS AppSync should have request-level and field-level logging turned on
- [CloudFront.13] CloudFront distributions should use origin access control
- [ElasticBeanstalk.3] Elastic Beanstalk should stream logs to CloudWatch
- [S3.17] S3 buckets should be encrypted at rest with AWS KMS keys
- [StepFunctions.1] Step Functions state machines should have logging turned on
読者のみなさんがよく使っているであろう『AWS 基礎セキュリティのベストプラクティス v1.0.0』に追加されたのは、このうちの1つ(S3.17)を除いた以下のコントロールとなります。
- [ACM.2] RSA certificates managed by ACM should use a key length of at least 2,048 bits
- [AppSync.2] AWS AppSync should have request-level and field-level logging turned on
- [CloudFront.13] CloudFront distributions should use origin access control
- [ElasticBeanstalk.3] Elastic Beanstalk should stream logs to CloudWatch
- [StepFunctions.1] Step Functions state machines should have logging turned on
本エントリでは、新規追加されたコントロールについて公式ドキュメントの情報ベースで内容を確認していきます。
早速確認してみましょう。
各コントロール毎に以下の情報をまとめていきます。
項目 | 概要 |
---|---|
AWSドキュメント | Security HubコントロールのドキュメントのURLのリンクを記載します。 |
重要度 | Security Hubが定める検出結果の重要度を表します。Critical > High > Medium > Lowの順に重要度が高いことを示します。 |
Configルール | 環境のリソースに対してセキュリティチェックを実行するためにSecurity Hubによって作成されるConfigカスタムルール(サービスリンクルール)が稼働しています。Security Hubによるチェックが実際にどのようにリソースをチェックしているかはConfigルールを確認すると良いです。 |
概要 | コントロールでチェックされる内容を簡単にまとめています。 |
AWS Certificate Manager
[ACM.2] RSA certificates managed by ACM should use a key length of at least 2,048 bits
- 重要度:High
- Configルール: acm-certificate-rsa-check
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/acm-controls.html#acm-2
- 概要:
- ACMによって管理される RSA 証明書が少なくとも 2,048 ビットのキー長を使用しているかどうかをチェックします。キー長が 2,048 ビット未満の場合、違反となります。
- 暗号化の強度はキー長のサイズと直接関係があるため、AWSリソースを保護するためにキー長は少なくとも2,048ビットにすることをお勧めしていています
AWS AppSync
[AppSync.2] AWS AppSync should have request-level and field-level logging turned on
- 重要度:Medium
- Configルール: appsync-logging-enabled
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/appsync-controls.html#appsync-2
- 概要:
- AWS AppSync GraphQL APIのログ設定 および フィールドレベルのロギングが有効化されていることをチェックします。リクエストレベルのログがオフに設定されている場合、またはフィールドリゾルバのログレベルが”None”に設定されている場合、違反となります。
- ログを利用すると、GraphQLクエリの特定、トラブルシューティング、最適化の際に役立ちます。
Amazon CloudFront
[CloudFront.13] CloudFront distributions should use origin access control
- 重要度:Medium
- Configルール: cloudfront-s3-origin-access-control-enabled
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/cloudfront-controls.html#cloudfront-13
- 概要:
- S3オリジンを持つ、CloudFrontディストリビューションにOrigin Access Control(OAC)が設定されているかをチェックします。OACが設定されていない場合、違反となります。
- OACを利用すると、指定された CloudFront ディストリビューションを介してのみバケット内のコンテンツへのアクセスが許可され、バケットまたは別のディストリビューションからの直接アクセスが禁止されます。
- CloudFrontではOrigin Access Identity(OAI)をサポートしていますが、OACではきめ細かなポリシー設定、KMS暗号化のサポートなど追加機能が提供されているため、OAIからの移行を推奨します。
AWS Elastic Beanstalk
[ElasticBeanstalk.3] Elastic Beanstalk should stream logs to CloudWatch
- 重要度:High
- Configルール: elastic-beanstalk-logs-to-cloudwatch
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/elasticbeanstalk-controls.html#elasticbeanstalk-3
- 概要:
- Elastic Beanstalk環境が CloudWatch Logs にログを送信するように設定されているかどうかをチェックします。ログを送信するように設定されていない場合、違反となります。
Amazon S3
[S3.17] S3 buckets should be encrypted at rest with AWS KMS keys
- 重要度:Medium
- Configルール: s3-default-encryption-kms
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/s3-controls.html#s3-17
- 概要:
- Amazon S3 バケットが AWS KMS キー (SSE-KMS) で暗号化されているかどうかをチェックします。S3 バケットがデフォルトの暗号化 (SSE-S3) で暗号化されている場合、違反となります。
- Amazon S3 バケットはデフォルトで SSE-S3 を使用してオブジェクトを暗号化しますが、AWS KMS キー (SSE-KMS) を使用したサーバー側の暗号化を設定すると暗号化の制御をより強化できます。
AWS StepFunctions
[StepFunctions.1] Step Functions state machines should have logging turned on
- 重要度:Medium
- Configルール: step-functions-state-machine-logging-enabled
- AWSドキュメント: https://docs.aws.amazon.com/securityhub/latest/userguide/stepfunctions-controls.html#stepfunctions-1
- 概要:
- StepFunctions ステートマシンのログ記録が有効化されているかどうかをチェックします。ログ記録が有効になっていない場合、違反となります。
- ログ設定を有効化すると、CloudWatch Logsで実行履歴と結果を追跡できます。
最後に
以上、今回追加されたSecurity Hubの新規コントロールについて確認してみました。
特に[CloudFront.13]のコントロールの追加について、期待されていた方も少なくないんじゃないでしょうか? これまでのコントロールはOAIのみの対応だったため、OACを有効しているのに[CloudFront.2]で違反と検知されてモヤッとされてた方もこれで安心ですね。
ちなみに、重要度が高い(HIGH / CRITICAL)のコントロールは、以下となっております。
- [ElasticBeanstalk.3] Elastic Beanstalk should stream logs to CloudWatch
- [ACM.2] RSA certificates managed by ACM should use a key length of at least 2,048 bits
CRITICALの新規コントロールはありませんでしたが、HIGHで失敗しているものについては優先度を上げて確認しておきましょう。
ここまで読んでくださりありがとうございました。どなたかのお役に立てば幸いです。
以上、芦沢(@ashi_ssan)でした。