AWS Security Hub の『基礎セキュリティのベストプラクティス』に追加された 18個のコントロールを見てみる【2021/08アップデート】
はじめに
2021/08/18 に Security Hub の 『基礎セキュリティのベストプラクティス』に 新しくコントロールが追加された、とアナウンスされました。
AWS Security Hub has released 18 new controls for its Foundational Security Best Practice standard to enhance customers’ cloud security posture monitoring. These controls conduct fully-automatic checks against security best practices for Amazon API Gateway, Amazon EC2, Amazon ECS, Elastic Load Balancing, Amazon Elasticsearch Service, Amazon RDS, Amazon Redshift, and Amazon SQS.
新しく SQSの項目が追加されました。 前回から登場したECSのセキュリティチェックも充実しつつありますね。
さっそく見ていきましょう。
※1) 各コントロールのドキュメントリンクも載せていますが、 2021/08/19 現在日本語訳はありません。 英語ドキュメントを御覧ください。
※2) 以前のアップデートで追加されたコントロールの紹介は↓にあります
- AWS Security Hub の『基礎セキュリティのベストプラクティス』に追加された 10個のコントロールを見てみる【2021/07アップデート】 | DevelopersIO
- AWS Security Hub の『基礎セキュリティのベストプラクティス』に追加された 16個のコントロールを見てみる【2021/05アップデート】 | DevelopersIO
- 【アップデート】AWS Security Hub の『基礎セキュリティのベストプラクティス』に新たに25個のチェック項目が追加されました | DevelopersIO
Amazon API Gateway
[APIGateway.5] API Gateway REST APIのキャッシュデータは静止時に暗号化されるべきである
重要度: MEDIUM
(コメント) キャッシュが有効になっている REST APIステージがチェック対象です。 『ディスクに保存されたデータが悪意のあるユーザーによってアクセスされる』 リスクを低減するメリットがあります。
Amazon EC2
[EC2.19] セキュリティグループは、リスクの高いポートへの無制限のアクセスを許可してはならない
重要度: MEDIUM
(コメント)
3389 (RDP), 20, 21 (FTP), 22 (SSH), 23 (Telnet), 110 (POP3), 143 (IMAP), 3306 (mySQL), 8080 (proxy), 1433, 1434 (MSSQL), 9200 or 9300 (Elasticsearch), 5601 (Kibana), 25 (SMTP), 445 (CIFS), 135 (RPC), 4333 (ahsp), 5432 (postgresql), 5500 (fcp-addr-srvr1)
上記、一般的な(全開放した際のリスクが高い)ポートをチェックします。 汎用性が高いと思います。
Amazon ECS
[ECS.2] Amazon ECSサービスは、パブリックIPアドレスを自動的に割り当ててはいけません
重要度: HIGH
(コメント) 『インターネットからコンテナへの意図しないアクセス』 のリスクを検知するために役立ちます。 アウトバウンドへの通信は NATGWや VPCエンドポイントを活用しましょう。
Elastic Load Balancing
[ELB.7] Classic Load Balancer では Connection Draining を有効にする必要があります
重要度: MEDIUM
(コメント) CLBのチェック項目。 Connection Draining は 登録解除された or Unhealthyなインスタンスへの リクエスト送信を確実に停止するためのものです。
(new) Amazon SQS
[SQS.1] Amazon SQSのキューは静止時に暗号化されるべきである
重要度: MEDIUM
(コメント) SQSのキューの内容次第で暗号化を検討しましょう。 ディスクへの物理的な不正アクセスに対する耐性が欲しい場合は、AWS管理のキーで有効化。 IAMレベルで制御したい場合は、カスタマー管理型のキーを利用しましょう。
Amazon Redshift
[Redshift.4] Amazon Redshiftクラスターは監査ログを有効にする必要があります
重要度: MEDIUM
(コメント) 監査ログはS3バケットへ保存されます。 監査および調査に役立ちます。
Amazon Elasticsearch Service
[ES.5] Elasticsearchドメインは監査ログを有効にすべきである
重要度: MEDIUM
(コメント) ESの監査ログは CloudWatch Logsへ発行します。 監査や調査で必要な場合は有効化しましょう。
[ES.6] Elasticsearchドメインは少なくとも3つのデータノードを持つべきである
重要度: MEDIUM
(コメント) 高可用性、耐障害性が求められる環境の場合は対応しましょう。
[ES.7] Elasticsearchドメインには、少なくとも3つの専用マスターノードを設定する必要がある
重要度: MEDIUM
(コメント) ES.6 同様に、高可用性、耐障害性が求められる環境の場合は対応しましょう。
[ES.8] Elasticsearchドメインへの接続はTLS 1.2で暗号化すべきである
重要度: MEDIUM
(コメント)
Elasticsearchドメインの TLSSecurityPolicy
の値をチェックします。
TLS 1.1, TLS 1.0 は非推奨となっています。基本は対応でいいでしょう。
Amazon RDS
[RDS.16] RDS DBクラスターは、スナップショットにタグをコピーするように構成されるべきである
重要度: LOW
(コメント) リソースの識別/管理のために役に立ちます。
[RDS.17] RDS DBインスタンスは、スナップショットにタグをコピーするように設定する必要があります。
重要度: LOW
(コメント) RDS.16 のインスタンス版です。
[RDS.18] RDSインスタンスはVPC内に配置すべきである
重要度: HIGH
(コメント) EC2-Classic 環境のRDSインスタンスが非準拠となります。 EC2-Classic は将来終了する計画がなされています。 ある場合は早めに対応しましょう。
- 参考
[RDS.19] RDSイベント通知で『重要なクラスターイベント』を設定する必要があります
重要度: LOW
(コメント)
DBCluster: ["maintenance","failure"]
の通知設定があるかどうかチェックします。
[RDS.20] RDSイベント通知で『重要なデータベースインスタンスイベント』を設定する必要があります
重要度: LOW
(コメント)
RDS.19 引き続き RDSイベント通知シリーズ。
DBInstance: ["maintenance","configuration change","failure"]
の通知設定があるかどうかチェックします。
[RDS.21] RDSイベント通知で『重要なデータベースパラメータグループイベント』を設定する必要があります
重要度: LOW
(コメント)
RDS.19 引き続き RDSイベント通知シリーズ。
DBParameterGroup: ["configuration change"]
の通知設定があるかどうかチェックします。
[RDS.22] RDSイベント通知で『重要なデータベースセキュリティグループイベント』を設定する必要があります
重要度: LOW
(コメント)
RDS.19 引き続き RDSイベント通知シリーズ。
DBSecurityGroup: ["configuration change","failure"]
の通知設定があるかどうかチェックします。
[RDS.23] RDSのデータベースとクラスタは、データベースエンジンのデフォルトポートを使用してはいけません
重要度: LOW
(コメント) データベースエンジンのデフォルトポート以外のポートを使用しているかどうかをチェックします。 適切なネットワーク配置・アクセス制御を行っている前提で、無理に対応しなくても良さそうです。
おわりに
これで『基礎セキュリティのベストプラクティス』でチェックできる項目は 合計 121 個となりました。凄い数ですね。 新しいカテゴリ(ECS, SQSなど)もあるので、これからもどんどん増えていくでしょう。 頑張って追っていきましょう!