[アップデート]AWS Security Hubのセキュリティ基準に “CIS AWS Foundations Benchmark v1.4.0” が追加されました
こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。
Security Hubのセキュリティ基準に待望のアップデートが来ましたね。
そうです、CISのベンチマーク "CIS AWS Foundations Benchmark v1.4.0" が利用可能になりました。
ざっくりまとめ
- AWS Security Hubで利用可能なCISベンチマークの新しいバージョンが出た
- v1.2.0も引き続き利用可能
- 最新の "CIS Amazon Web Services Foundations Benchmark v1.5.0" は未対応
- v1.2.0とv1.4.0では差異がある
- v1.4.0にはv1.2.0に無かった9件のコントロールが追加された
- ID"2.x"にストレージ関連のコントロールが追加された。その影響で既存の2以降のIDはメジャー番号が1つずつズレている。
- v1.2.0に存在した14件のコントロールがv1.4.0には存在しない
- IAMパスワードポリシーなどクレデンシャルに関するコントロールが多め
- v1.2.0にもv1.4.0にも存在するが、タイトルやコントロールIDが変更されたものが30件
CISベンチマークとは
CIS(Center for Internet Security)は米国政府機関や企業、学術機関などが運営する非営利団体で、最新のサイバーセキュリティに関するベストプラクティスソリューションを開発・検証しています。
CISベンチマークとは、そのCISが出しているセキュリティベストプラクティス集です。様々なベンチマークが存在し、下記から確認することが出来ます。また、メールアドレスを登録することで最新のベンチマークだけでなく過去のベンチマークも無料でダウンロード可能(PDF形式)です。
ちなみに "CIS Amazon Web Services Foundations Benchmark" の最新バージョンはv1.5.0ですが、AWS Security Hubでは未対応です。
v1.2.0とv1.4.0の差異
今回のアップデートでv1.4.0が追加されましたが、まだv1.2.0も利用可能です。何が違うのか確認しましょう。
ありがたいことにAWS公式ドキュメントに比較結果がまとめられています。
追加されたコントロール
ID | タイトル | 重要度 |
---|---|---|
1.12 | Ensure credentials unused for 45 days or greater are disabled | MEDIUM |
2.1.1 | Ensure all S3 buckets employ encryption-at-rest | MEDIUM |
2.1.2 | Ensure S3 bucket policy is set to deny HTTP requests | MEDIUM |
2.1.5.1 | S3 Block Public Access setting should be enabled | MEDIUM |
2.1.5.2 | S3 Block Public Access setting should be enabled at the bucket level | HIGH |
2.2.1 | Ensure EBS volume encryption is enabled | MEDIUM |
2.3.1 | Ensure that encryption is enabled for RDS Instances | MEDIUM |
3.6 | S3 bucket server access logging should be enabled | LOW |
5.1 | Ensure no Network ACLs allow ingress from 0.0.0.0/0 to remote server administration ports | MEDIUM |
新たに"2.x"にS3を始めとしたストレージ関連のコントロールが追加されました。
削除されたコントロール
ID | タイトル |
---|---|
1.1 | Avoid the use of the root user |
1.3 | Ensure credentials unused for 90 days or greater are disabled |
1.5 | Ensure IAM password policy requires at least one uppercase letter |
1.6 | Ensure IAM password policy requires at least one lowercase letter |
1.7 | Ensure IAM password policy requires at least one symbol |
1.8 | Ensure IAM password policy requires at least one number |
1.11 | Ensure IAM password policy expires passwords within 90 days or less |
1.16 | Ensure IAM policies are attached only to groups or roles |
2.3 | Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible |
2.6 | Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket |
3.1 | Ensure a log metric filter and alarm exist for unauthorized API calls |
3.2 | Ensure a log metric filter and alarm exist for AWS Management Console sign-in without MFA |
4.1 | Ensure no security groups allow ingress from 0.0.0.0/0 to port 22 |
4.2 | Ensure no security groups allow ingress from 0.0.0.0/0 to port 3389 |
※削除されたコントロールの重要度は記載しません。
IAMパスワードポリシー関連の項目削除が多い印象を受けますね。
"4.1", "4.2"は新規追加された"5.1"でNACLでポートを塞いでいるという理由で削除されたのでしょうか。ちなみにAWS Security Hubのセキュリティ基準には採用されていませんが、CISのページからダウンロード可能なオリジナルの"CIS Amazon Web Services Foundations Benchmark v1.4.0"には 5.2: Ensure no security groups allow ingress from 0.0.0.0/0 to remote server administration ports
というものがあります。
ID/タイトルが変更されたコントロール
v1.2.0 ID | v1.2.0 タイトル | v.1.4.0 ID | v.1.4.0 タイトル |
---|---|---|---|
1.2 | Ensure multi-factor authentication (MFA) is enabled for all IAM users that have a console password | 1.10 | (変更なし) |
1.4 | Ensure access keys are rotated every 90 days or less | 1.14 | (変更なし) |
1.9 | Ensure IAM password policy requires minimum password length of 14 or greater | 1.8 | Ensure IAM password policy requires minimum length of 14 or greater |
1.10 | Ensure IAM password policy prevents password reuse | 1.9 | (変更なし) |
1.12 | Ensure no root user access key exists | 1.4 | Ensure no 'root' user account access key exists |
1.13 | Ensure MFA is enabled for the root user | 1.5 | Ensure MFA is enabled for the 'root' user account |
1.14 | Ensure hardware MFA is enabled for the root user | 1.6 | Ensure hardware MFA is enabled for the 'root' user account |
1.20 | Ensure a support role has been created to manage incidents with AWS Support | 1.17 | (変更なし) |
1.22 | Ensure IAM policies that allow full ":" administrative privileges are not created | 1.16 | Ensure IAM policies that allow full ":" administrative privileges are not attached |
2.1 | Ensure CloudTrail is enabled in all Regions | 3.1 | (変更なし) |
2.2 | Ensure CloudTrail log file validation is enabled | 3.2 | (変更なし) |
2.3 | Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible | 3.3 | (変更なし) |
2.4 | Ensure CloudTrail trails are integrated with CloudWatch Logs | 3.4 | (変更なし) |
2.5 | Ensure AWS Config is enabled | 3.5 | Ensure AWS Config is enabled in all Regions |
2.7 | Ensure CloudTrail logs are encrypted at rest using AWS KMS keys | 3.7 | (変更なし) |
2.8 | Ensure rotation for customer-created KMS keys is enabled | 3.8 | (変更なし) |
2.9 | Ensure VPC flow logging is enabled in all VPCs | 3.9 | (変更なし) |
3.3 | Ensure a log metric filter and alarm exist for usage of root user | 1.7 | Eliminate use of the 'root' user for administrative and daily tasks |
3.4 | Ensure a log metric filter and alarm exist for IAM policy changes | 4.4 | (変更なし) |
3.5 | Ensure a log metric filter and alarm exist for CloudTrail configuration change | 4.5 | (変更なし) |
3.6 | Ensure a log metric filter and alarm exist for AWS Management Console authentication failures | 4.6 | (変更なし) |
3.7 | Ensure a log metric filter and alarm exist for disabling or scheduled deletion of customer managed keys | 4.7 | (変更なし) |
3.8 | Ensure a log metric filter and alarm exist for S3 bucket policy changes | 4.8 | (変更なし) |
3.9 | Ensure a log metric filter and alarm exist for AWS Config configuration changes | 4.9 | (変更なし) |
3.10 | Ensure a log metric filter and alarm exist for security group changes | 4.10 | (変更なし) |
3.11 | Ensure a log metric filter and alarm exist for changes to Network Access Control Lists (NACL) | 4.11 | (変更なし) |
3.12 | Ensure a log metric filter and alarm exist for changes to network gateways | 4.12 | (変更なし) |
3.13 | Ensure a log metric filter and alarm exist for route table changes | 4.13 | (変更なし) |
3.14 | Ensure a log metric filter and alarm exist for VPC changes | 4.14 | (変更なし) |
4.3 | Ensure the default security group of every VPC restricts all traffic | 5.3 | (変更なし) |
全体的な印象としては、新たにID"2.x"にストレージ関連のコントロールが追加されたことにより、元々の2以降のIDメジャーNo.が1つずれています。
あとはコントロールの削除や追加に伴ってのID変更、タイトル自体の変更もほとんどが軽微な表記揺れが多い印象です。
有効化してみた
セキュリティ基準を "CIS AWS Foundations Benchmark v1.4.0" にしてAWS Security Hubを有効化してみます。
AWS Security Hubを有効化していなかった環境なのでAWS Security Hubの有効化から行います。既に有効化している場合はセキュリティ標準ページから有効化してください。
確かにv.1.4.0が追加されていますね。文面が英語になっていますが。(AWSへUIのフィードバックをしておきました。)
コンソール上で確認します。コントロール数は全部で39件のようですね。
下記がコントロールの一覧です。
ID | タイトル | 重要度 |
---|---|---|
1.4 | IAM root user access key should not exist | CRITICAL |
1.5 | Virtual MFA should be enabled for the root user | CRITICAL |
1.6 | Hardware MFA should be enabled for the root user | CRITICAL |
1.7 | A log metric filter and alarm should exist for usage of the "root" user | LOW |
1.8 | Ensure IAM password policy requires minimum password length of 14 or greater | MEDIUM |
1.9 | Ensure IAM password policy prevents password reuse | LOW |
1.10 | MFA should be enabled for all IAM users that have a console password | MEDIUM |
1.12 | IAM user credentials unused for 45 days should be removed | MEDIUM |
1.14 | IAM users' access keys should be rotated every 90 days or less | MEDIUM |
1.16 | IAM policies should not allow full "*" administrative privileges | HIGH |
1.17 | Ensure a support role has been created to manage incidents with AWS Support | LOW |
2.1.1 | S3 buckets should have server-side encryption enabled | MEDIUM |
2.1.2 | S3 buckets should require requests to use Secure Socket Layer | MEDIUM |
2.1.5.1 | S3 Block Public Access setting should be enabled | MEDIUM |
2.1.5.2 | S3 Block Public Access setting should be enabled at the bucket-level | HIGH |
2.2.1 | EBS default encryption should be enabled | MEDIUM |
2.3.1 | RDS DB instances should have encryption at-rest enabled | MEDIUM |
3.1 | CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events | HIGH |
3.2 | CloudTrail log file validation should be enabled | MEDIUM |
3.3 | Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible | CRITICAL |
3.4 | CloudTrail trails should be integrated with Amazon CloudWatch Logs | LOW |
3.5 | AWS Config should be enabled | MEDIUM |
3.6 | Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket | LOW |
3.7 | CloudTrail should have encryption at-rest enabled | MEDIUM |
3.8 | Customer master key (CMK) rotation should be enabled | MEDIUM |
3.9 | VPC flow logging should be enabled in all VPCs | MEDIUM |
4.4 | Ensure a log metric filter and alarm exist for IAM policy changes | LOW |
4.5 | Ensure a log metric filter and alarm exist for CloudTrail configuration changes | LOW |
4.6 | Ensure a log metric filter and alarm exist for AWS Management Console authentication failures | LOW |
4.7 | Ensure a log metric filter and alarm exist for disabling or scheduled deletion of customer created CMKs | LOW |
4.8 | Ensure a log metric filter and alarm exist for S3 bucket policy changes | LOW |
4.9 | Ensure a log metric filter and alarm exist for AWS Config configuration changes | LOW |
4.10 | Ensure a log metric filter and alarm exist for security group changes | LOW |
4.11 | Ensure a log metric filter and alarm exist for changes to Network Access Control Lists (NACL) | LOW |
4.12 | Ensure a log metric filter and alarm exist for changes to network gateways | LOW |
4.13 | Ensure a log metric filter and alarm exist for route table changes | LOW |
4.14 | Ensure a log metric filter and alarm exist for VPC changes | LOW |
5.1 | Network ACLs should not allow ingress from 0.0.0.0/0 to port 22 or port 3389 | MEDIUM |
5.3 | The VPC default security group should not allow inbound and outbound traffic | HIGH |
まとめ
v1.2.0では現在AWSから推奨されていないようなコントロールも存在していたため、私自身CISベンチマークのアップデートを待ち侘びていました。
コントロールの網羅度を考慮すると"AWS 基礎セキュリティのベストプラクティス v1.0.0"がおすすめですが、案件の要件でCISベンチマークを適用する方もいらっしゃるかと思います。
現在v1.2.0をご利用の方はこの機会にv1.4.0に切り替えられてみてはいかがでしょうか。
本記事がどなたかのお役に立てれば幸いです。
以上、べこみんでした。