自分の勉強のために、CISが公開している資料を読んでみました。
CISとは
CIS(Center for Internet Security)は、セキュリティ推進のためのアメリカの非営利団体で、セキュリティの基準等を公開しています。
CISにはCIS WorkBenchというコミュニティがあり、そこでCISベンチマークを含むツールが作成されています。
CISの作成しているツールには以下のものがあります。
- CIS Contorols:セキュリティ全体のガイドライン
CIS Controlsは、米国国家安全保障局(NSA)等の米国の公的機関や情報セキュリティ専門企業等が共同で研究し、米国のセキュリティ専門団体であるSANS Instituteが取りまとめたCSC(Critical Security Controls)をルーツとしており、NIST Cyber Security FrameworkやISMS(ISO/IEC27001、27002)とならんでグローバルで普及しているフレームワークです。
- CIS Benchmark:各機器におけるベストプラクティスです。(本記事の対象)
CISベンチマークとは
CISでは、AWSのセキュリティ設定のガイドとして、ベンチマークを公開しています。
このベンチマークでは、チェック項目を確認することで、定量的な評価が可能となります。
各項目には以下の分類があります。Level1でかつSocredなものは設定が推奨と考えることができます。
Level
- Level1: 設定必須
- Level2: 環境によっては設定が必要なもの
Score
- Scored: 減点対象項目
- Unscored: 減点対象項目ではないが設定が推奨
ベンチマークの概要
1.Identity and Access Management | ||
Level 1 | 1.1 Avoid the use of the "root" account (Scored) | rootアカウントは使用しない |
Level 1 | 1.2 Ensure multi-factor authentication (MFA) is enabled for all IAM users that have a console password (Scored) | IAMユーザすべてにMFAを有効化している |
Level 1 | 1.3 Ensure credentials unused for 90 days or greater are disabled (Scored) | 90日以上利用の無いアカウントは無効化されるように設定している |
Level 1 | 1.4 Ensure access keys are rotated every 90 days or less (Scored) | 90日以内にアクセスキーがローテーションされるように設定している |
Level 1 | 1.5 Ensure IAM password policy requires at least one uppercase letter (Scored) | IAMパスワードは英大文字を含む |
Level 1 | 1.6 Ensure IAM password policy require at least one lowercase letter (Scored) | IAMパスワードは英小文字を含む |
Level 1 | 1.7 Ensure IAM password policy require at least one symbol (Scored) | IAMパスワードは記号を含む |
Level 1 | 1.8 Ensure IAM password policy require at least one number (Scored) | IAMパスワードは数字を含む |
Level 1 | 1.9 Ensure IAM password policy requires minimum length of 14 or greater (Scored) | IAMパスワードは14文字長以上 |
Level 1 | 1.10 Ensure IAM password policy prevents password reuse (Scored) | IAMパスワードは過去のパスワードの再利用を禁止 |
Level 1 | 1.11 Ensure IAM password policy expires passwords within 90 days or less (Scored) | IAMパスワードはパスワードの有効期限が90日以内 |
Level 1 | 1.12 Ensure no root account access key exists (Scored) | rootアカウントのアクセスキーを削除している |
Level 1 | 1.13 Ensure MFA is enabled for the "root" account (Scored) | rootアカウントはMFA認証によって保護している |
Level 2 | 1.14 Ensure hardware MFA is enabled for the "root" account (Scored) | rootアカウントのMFA保護は、ハードウェアのセキュリティキーを使用する |
Level 1 | 1.15 Ensure security questions are registered in the AWS account (Not Scored) | セキュリティ質問がAWSアカウントに設定されている |
Level 1 | 1.16 Ensure IAM policies are attached only to groups or roles (Scored) | IAMポリシーは、グループやロールにのみ紐づいている |
Level 1 | 1.17 Maintain current contact details (Not Scored) | コンタクト詳細が常に更新されている |
Level 1 | 1.18 Ensure security contact information is registered (Not Scored) | セキュリティコンタクト情報が登録されている |
Level 2 | 1.19 Ensure IAM instance roles are used for AWS resource access from instances (Not Scored) | インスタンスからのAWSリソースアクセスには、IAMインスタンスロールが利用されている |
Level 1 | 1.20 Ensure a support role has been created to manage incidents with AWS Support (Scored) | AWSサポートでインシデントを管理するためのサポートロールが作成されている |
Level 1 | 1.21 Do not setup access keys during initial user setup for all IAM users that have a console password (Not Scored) | コンソールパスワードを持つIAM ユーザについては、セットアップ時にアクセスキーを作成しない |
Level 1 | 1.22 Ensure IAM policies that allow full "*:*" administrative privileges are not created (Scored) | フル特権(*.*) を持つIAMポリシーを作成しない |
2.Logging | ||
Level 1 | 2.1 Ensure CloudTrail is enabled in all regions (Scored) | 全リージョンで、CloudTrailが有効 |
Level 2 | 2.2 Ensure CloudTrail log file validation is enabled (Scored) | CloudTrail ログバリデーションが有効である |
Level 1 | 2.3 Ensure the S3 bucket used to store CloudTrail logs is not publicly accessible (Scored) | CloudTrail ログを保管する S3 Bucket のパブリックアクセスは無効化されている |
Level 1 | 2.4 Ensure CloudTrail trails are integrated with CloudWatch Logs (Scored) | CloudTrail 記録は、CloudWatch Logsに連携されている |
Level 1 | 2.5 Ensure AWS Config is enabled in all regions (Scored) | 全リージョンで、AWS Configが有効である |
Level 1 | 2.6 Ensure S3 bucket access logging is enabled on the CloudTrail S3 bucket (Scored) | CloudTrailログを保管するS3 Bucketにおいては、アクセスログが有効化されている |
Level 2 | 2.7 Ensure CloudTrail logs are encrypted at rest using KMS CMKs (Scored) | CloudTrailログは、KMS CMKを用いて暗号化されている |
Level 2 | 2.8 Ensure rotation for customer created CMKs is enabled (Scored) | ユーザ作成CMKのローテーションが設定されている |
Level 2 | 2.9 Ensure VPC flow logging is enabled in all VPCs (Scored) | 全VPCで、フローログが取得できる |
3.Monitoring | ||
Level 1 | 3.1 Ensure a log metric filter and alarm exist for unauthorized API calls (Scored) | 不正なAPIコールに関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.2 Ensure a log metric filter and alarm exist for Management Console sign-in without MFA (Scored) | MFA認証を用いないコンソールログインに関する ログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.3 Ensure a log metric filter and alarm exist for usage of "root" account (Scored) | root利用に対するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.4 Ensure a log metric filter and alarm exist for IAM policy changes (Scored) | IAMポリシーの変更処理に関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.5 Ensure a log metric filter and alarm exist for CloudTrail configuration changes (Scored) | CloudTrail の構成変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 2 | 3.6 Ensure a log metric filter and alarm exist for AWS Management Console authentication failures (Scored) | AWSマネジメントコンソール認証の失敗に関するログメトリックフィルタおよびアラームが定義されている |
Level 2 | 3.7 Ensure a log metric filter and alarm exist for disabling or scheduled deletion of customer created CMKs (Scored) | ユーザ作成CMKについて、スケジュールされた削除処理および無効化に関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.8 Ensure a log metric filter and alarm exist for S3 bucket policy changes (Scored) | S3 bucketポリシー変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 2 | 3.9 Ensure a log metric filter and alarm exist for AWS Config configuration changes (Scored) | AWS Configサービスの構成変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 2 | 3.10 Ensure a log metric filter and alarm exist for security group changes (Scored) | セキュリティグループの設定変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 2 | 3.11 Ensure a log metric filter and alarm exist for changes to Network Access Control Lists (NACL) (Scored) | NACLの設定変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.12 Ensure a log metric filter and alarm exist for changes to network gateways (Scored) | ネットワークゲートウェイについての変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.13 Ensure a log metric filter and alarm exist for route table changes (Scored) | ルートテーブルの変更に関するログメトリックフィルタおよびアラームが定義されている |
Level 1 | 3.14 Ensure a log metric filter and alarm exist for VPC changes (Scored) | VPCの設定変更に関するログメトリックフィルタおよびアラームが定義されている |
4.Networking | ||
Level 1 | 4.1 Ensure no security groups allow ingress from 0.0.0.0/0 to port 22 (Scored) | 全セキュリティグループにおいて、port 22(ssh)を不特定多数(0.0.0.0/0)に公開していない |
Level 1 | 4.2 Ensure no security groups allow ingress from 0.0.0.0/0 to port 3389 (Scored) | 全セキュリティグループにおいて、port 3389(ssh)を不特定多数(0.0.0.0/0)に公開していない |
Level 2 | 4.3 Ensure the default security group of every VPC restricts all traffic (Scored) | 全てのVPCの、defaultセキュリティグループは、全ての通信を拒否する設定となっている |
Level 2 | 4.4 Ensure routing tables for VPC peering are "least access" (Not Scored) | VPCピアリングのルーティングテーブルは、必要最小限のものにしている |
参考にさせていただいたサイト
貴重な情報をありがとうございます。