GuardDuty, Inspector, Macie などによって検出されたセキュリティ上の問題を AWS Security Hub で確認する
awsAWS Security Hub は 各種サービスによって検出されたセキュリティ上の問題をまとめて確認できるサービス。
セキュリティ標準
Security Hub は次のセキュリティ標準をサポートしており、有効にすると AWS Config にルールが作成される。
- AWS Foundational Security Best Practices: 各サービスのベストプラクティス
- Center for Internet Security (CIS) AWS Foundations Benchmark: NSAなどによって設立されたセキュリティ標準化団体 CIS による認証の要件を満たしたもの
- Payment Card Industry Data Security Standard (PCI DSS): クレジットカード業界のセキュリティ基準
しばらく待つとスコアとチェック結果が表示される。
GuardDuty
GuardDuty は CloudTrail や VPC フローログなどを分析して悪意のあるアクティビティを検出する。
例えば、EC2 インスタンスの credential でローカルから API を呼ばれると UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS が検知されるので、何らかの経路でインスタンスへ侵入された可能性が高いことに気づける。
[[email protected] ~]$ ROLE_NAME=assume_role_test
[[email protected] ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
[[email protected] ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/iam/security-credentials/$ROLE_NAME
{
"Code" : "Success",
"LastUpdated" : "2022-12-03T06:25:39Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAxxxxxxxxxx",
"SecretAccessKey" : "xxxxxxxxxx",
"Token" : "xxxxxxxxxx",
"Expiration" : "2022-12-03T13:01:09Z"
* Closing connection 0
(local)$ % AWS_ACCESS_KEY_ID="ASIAxxxxxxxxxx" AWS_SECRET_ACCESS_KEY="xxxxxxxxxx" AWS_SESSION_TOKEN="xxxxxxxxxx" aws s3 ls <bucket_name>
その後 /var/log/secure を見て ssh ログインの履歴などを確認することになる。
[[email protected] ~]$ tail /var/log/secure
Dec 3 08:15:33 ip-172-31-2-24 sshd[1713]: Accepted password for cracker from xxx.xxx.xxx.xxx port 47158 ssh2
Investigate with Detective のリンクから Amazon Detective に飛ぶと、 IP アドレスなどから影響範囲を調べることができる。 CloudTrail の Event history に出ない S3 のオブジェクトレベルのログは出なかったので Trail のログを併せて見る必要がありそうだ。
CloudTrail で AWS 上のリソースの操作記録を確認する - sambaiz-net
Inspector
Inspector は EC2 や Lambda などの脆弱性を検出する。
EC2 インスタンスは Systems Manager に登録されている必要がある。
Macie
Macie は S3 のセンシティブなデータを検出する。
Bucket やサンプリングレートなどを設定して Job を作成する。
Macie がオブジェクトを暗号化して書き込めるような Bucket policy を付与した Bucket と、 暗号化に用いる KMS の Key を設定して Job を実行すると検知されたセンシティブなデータの例を確認することができる。
Athenaで他アカウントのテーブルを参照するために必要な設定 - sambaiz-net
ドライバーの著作権表記にある名前に反応した。