Security Hubとは
Security Hubは、Amazon GuardDuty
、Amazon Inspector
、Amazon Macie
などのAWSが提供するセキュリティ関連サービスや、AWSパートナーが提供するセキュリティ製品からの セキュリティ検出結果等を統合的に閲覧可能なサービス で、本サービスを利用することで、情報の収集や優先度の決定などのコストを低減できる。発見事項は、Security Hub内に90日保管 される。Security Hubは、リージョンサービスであり、使用するリージョン毎にサービスを有効化する必要 がある。一方で、 複数アカウントをサポート しており、全てのアカウントを統合して発見事項を表示することもできる。
また、Center for Internet Security (CIS) AWS Foundations Benchmark のスコア表示にも対応しており、業界標準のベストプラクティスをどの程度満たしているかについても確認することが可能となっている。なお、この機能を正常に実行するためには、AWS Configを有効化することが必要。ベストプラクティスを満たしていない場合は、Security Hubから修復方法を確認することができる。
Amazon CloudWatch Events
との統合がサポートされているため、検出結果を受信した際に実行するカスタムアクションを規定することもできる。
また、インサイトと呼ばれるグループ化された検出結果のコレクションが存在し、コレクションを用いることで、修復が必要な問題の特定ができる。カスタムインサイトを作成することも可能。
AWS Security Hub のセットアップ
一部機能のみではあるがCloudFormationに対応しているため、CloudFormation経由でSecurity Hubをセットアップすることができる。
サービスロールの有効化
以下のサービスロールを有効化することで、AWS CloudTrail
, AWS Config
, Amazon CloudWatch Logs
および Amazon SNS
から 情報を取得する権限 を Security Hub 付与する。また、AWS Config に対して 新たなConfigルールを設定する権限 も付与される。このルールは、CIS AWS Foundationsコンプライアンスチェックに使用される。これらを正常に動作させるためには、 AWS Configを有効化 しておく必要がある。
Resources:
ServiceLinkedRoleForSecurityHub:
Type: AWS::IAM::ServiceLinkedRole
DeletionPolicy: Retain
Properties:
AWSServiceName: securityhub.amazonaws.com
Description: A service-linked role required for AWS Security Hub to access your resources.
Security Hubの有効化
Security Hubを有効化することで、CIS AWS Foundationsコンプライアンスチェックが自動で有効化される。
Resources:
SecurityHub:
DependsOn:
- ServiceLinkedRoleForSecurityHub
Type: AWS::SecurityHub::Hub
AWS Security Hubのセットアップテンプレート
AWS Security Hubを含むAWSのセキュリティサービスをまとめて有効化できるCloudFormationテンプレートを公開している。
作成されるAWSサービス | CloudFormationテンプレート |
---|---|
セキュリティサービス全般 | |
Security Hub のみ |
CIS AWS Foundationsコンプライアンスチェック
Security Hubは、AWS Configに新たなConfigルールを自動的に作成した上で、Center for Internet Security (CIS) AWS Foundations Benchmarkに適合しているかのチェックを行う。Security Hubは、AWS Security Finding
と呼ばれるテンプレートに沿って検出結果を表示するために、結果毎にデータ変換等を行う必要がない。AWS Security Finding
の構成については、下記を参照のこと。
なお、CIS AWS Foundationsは、同一リージョン内のリソースに対しての結果のみ有効であり、他のリージョンのリソースに対しての結果は FAILED が返却される。したがって、例えば複数のリージョンでCloudTrailが有効化されており、各リージョンで証跡用およびアクセスログ用のバケットが作成されている場合は、チェック 2.3 および 2.6は非準拠として表示される 。
チェックは、前回から12時間以内に再度実行 される。また、変更によってトリガーされるチェックに関しては、リソースに変更が変更された際に実行される。
AWSサービスとの統合
Security Hubは、Amazon GuardDuty
、Amazon Inspector
、Amazon Macie
など、AWSが提供するセキュリティ関連サービスで生成されたセキュリティ検索結果を統合することができる。統合を行うためには、各AWSサービスを有効化する必要がある。
CloudWatchイベントによる自動化
CloudWatchイベントを使用して、Security Hubで検知した問題やリソースの変更に自動的に対応することが可能である。以下の通知を行うことが可能である。
- 全ての結果を自動的にCloudWatchイベントに送信
- カスタムアクションに関連づけられた結果をCloudWatchイベントに送信
- カスタムアクションを使用してインサイトの結果をCloudWatchイベントに送信
1.の場合は、CIS AWS Foundationsコンプライアンスチェックに準拠している状態でも非準拠の場合でも、全ての結果が CloudWatch Events に送信されてしまうので、そのうち 準拠から非準拠となった状態のイベントのみを受信して、Amazon SNS
に送信する場合は、以下のような Amazon CloudWatch Events
を作成する。
CloudWatchEventsForSecurityHub:
Type: AWS::Events::Rule
Properties:
Description: CloudWatch Events about SecurityHub.
EventPattern:
source:
- aws.securityhub
detail-type:
- Security Hub Findings - Imported
# Events fired when status has been changed from PASSED to ARCHIVED.
detail:
findings:
Compliance:
Status:
- PASSED
RecordState:
- ARCHIVED
Name: AWS_Security_Hub
State: ENABLED
Targets:
- Arn: !Ref SnsTopicARN
Id: CloudWatchEventsForSecurityHub
これは、結果のステータスが PASSED
から FAILED
に変化した場合、
- 既存の結果のステータスを
PASSED
からARCHIVED
に設定 - 結果のステータスが
FAILE
である新たな結果を生成
という挙動となるため、1.の挙動のみを検知することで実現している。
CloudFormation Launch Stack URL
以下のボタンから上のCloudFormationテンプレートを実行することが可能である。ソースコードは、aws-cloudformation-templates/security – GitHub にて公開。
作成されるAWSサービス | CloudFormationテンプレート |
---|---|
セキュリティサービス全般 | |
Security Hub のみ |