[アップデート]Amazon GuardDutyが漏洩したAWS Lambda認証情報の不正利用を検出できるようになりました(InsideAWS編)
こんにちは、臼田です。
みなさん、AWSで脅威検出してますか?(挨拶
今回はAmazon GuardDutyでAWS LambdaのUnauthorizedAccess:IAMUser/ResourceCredentialExfiltration.InsideAWSが検出されるようになったので検証してみます。
概要
Amazon GuardDutyでは様々な脅威を検出できますが、AWS上の認証情報を不正に取得して利用された場合に検出されるFinding TypeがCredentialExfiltration系の検出です。
EC2ではInstanceCredentialExfiltrationが、ECS/LambdaではResourceCredentialExfiltrationが対応しています。
CredentialExfiltrationにはInsideAWSとOutsideAWSがあり、それぞれ不正利用が別のAWSアカウントからか、あるいはAWS外部から実行されている検出に対応しています。
ただこれまでAWS LambdaではOutsideAWSのみ検出に対応しており、InsideAWSに今回対応した形です。
まとめると以下の対応表になります。
| Finding type | ECS | Lambda |
|---|---|---|
| ResourceCredentialExfiltration.OutsideAWS | ○ | ○ |
| ResourceCredentialExfiltration.InsideAWS | ○ | ○(今回追加) |
今回の対応で、EC2/ECS/Lambdaすべての環境でどちらも検出できるようになった、ということです。
ちなみに今回のアップデートの通知は以下のように通知が来ていました。
{
"version": "1",
"type": "NEW_FINDINGS",
"findingDetails": [
{
"findingType": "UnauthorizedAccess:IAMUser/ResourceCredentialExfiltration.InsideAWS",
"link": "https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#unauthorizedaccess-iam-resourcecredentialexfiltrationinsideaws",
"findingDescription": "We have extended this finding type to inform you that a host within AWS has attempted to run AWS API operations using temporary AWS credentials that were created on a Lambda resource in your AWS environment."
}
]
}
例のごとくNEW_FINDINGSと書いてありますがアップデートなんですね。
過去のCredentialExfiltration系の記事も記載しておきます。
やってみた
ではAWS Lambdaの認証情報を漏洩させましょう!(コンテキストが大事な文章
でもやり方は省略します。載せる必要がないからネ☆ミ
そしてここにあらかじめ用意した別のAWSアカウントがあります。
EC2を起動してエイヤと操作します。
しばらく待つと…

検出できました!
ちゃんとUnauthorizedAccess:IAMUser/ResourceCredentialExfiltration.InsideAWSとなっていますね。
そしてリソースについて「Function name」と表記されていたりARNにもlambdaと含まれているので対象がAWS Lambdaであることが分かります。

詳細情報では不正利用に使われたAWSアカウントのIDや送信元IPアドレスも確認できます。きちんとInsideAWSの検出の仕事を果たしています。
実行したAPIも分かりますが、これの詳細調査はAWS CloudTrailを見に行く必要があります。
ちなみにこの検出も例外があり、VPCエンドポイント経由で別のAWSアカウントのネットワークに集約して外部アクセスをしている場合などには誤検知されます。対処法含めて詳しくはユーザーガイドを参照してください。
AWS CloudTrailを調査してみる
少し前まではAWS CloudTrailのログを調査するときにはAmazon Athenaを利用するか、あるいは調査自体をAmazon Detectiveにやってもらう感じでした。
でも最近はAmazon Qが結構上手くやってくれます。
試しに以下のように指示してみます。
「GuardDutyの検出2cd0xxxxxxxxxxxxxxxxxxxxxxxxで不正利用されたIAMの挙動をCloudTrailのログを調査して整理して」

すると色んな情報を調べてしばらくするとハイこんな感じ。

めっちゃよくないですか…!?
まず左側のチャット欄で説明が続いています。こちらを読んでもよいですが、アーティファクトとして右側にレポートが出ています。
サマリーもわかりやすいですがちゃんとAWS CloudTrailのログを取得してイベント一覧にしてくれています。
その下には以下のように不正操作部分だけ抽出した表もありました。

もちろん、チャットが左側にそのままありますので、ここから更に対話的な調査なども行えます!
いやーAmazon Qを使ったインシデントの調査も捗りますね。
まとめ
Amazon GuardDutyでAWS LambdaのUnauthorizedAccess:IAMUser/ResourceCredentialExfiltration.InsideAWSも検出できるようになりました。
これで認証情報の漏洩に死角はありません(たぶん
Amazon GuardDutyとAmazon Qをガンガン活用しましょう!









