[アップデート]Amazon GuardDutyでLambdaの不審なネットワークアクティビティを検知出来るようになりました

Amazon GuardDutyがLambdaの不審なネットワークアクティビティを検知するようになりました。
2023.04.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

みなさん、Amazon GuardDutyは使ってますか?

GuardDutyはマネージド型の脅威検出サービスで、AWSのアカウントやワークロード上で発生した悪意のあるアクティビティや動作を検知してくれます。

そんなGuardDutyが遂に、AWS Lambdaに対応しました。

[追記: 2023/04/27 21:30]

ごめんなさい!!! Lambda ProtectionはVPC外のLambdaにも対応していました!!ということで訂正記事を執筆しました。(本記事の内容は一部訂正しておきます。)

ざっくりまとめ

  • 概要
    • 機能名は Lambda Protection
    • Lambdaが実行される度にLambdaのネットワークアクティビティを監視
      • 現時点での対応はVPCフローローグのみ(VPC Lambdaのみ)
      • 今後DNSクエリデータなど他のネットワークアクティビティへも対応予定
  • 検出項目
    • Backdoor:Lambda/C&CActivity.B
      • C&Cサーバーへのクエリ
    • CryptoCurrency:Lambda/BitcoinTool.B
      • 暗号通貨関連のアクティビティ
    • Trojan:Lambda/BlackholeTraffic
      • 既知のブラックホールIPアドレスへのアクセス
    • Trojan:Lambda/DropPoint
      • マルウェアによって取得された資格情報やその他の盗まれたデータを保持していることが知られているIPアドレスへのアクセス
    • UnauthorizedAccess:Lambda/MaliciousIPCaller.Custom
      • カスタム脅威リストのIPアドレスへのアクセス
    • UnauthorizedAccess:Lambda/TorClient
      • Tor Guard、またはAuthorityノードへのアクセス
    • UnauthorizedAccess:Lambda/TorRelay
      • Torリレーとして通信しているかどうか
  • 料金
    • 有効にするための追加コストは不要
    • 料金は結果を生成するために処理されたネットワークアクティビティログデータ(GB単位)に対する従量課金

アップデート内容

タイトル通り、Amazon GuardDutyがAWS Lambdaに対応する機能 Lambda Protection が実装されました。

内容としては、Lambda関数実行時に発行されるネットワークアクティビティ(現時点ではVPCフローログのみ)から対象の関数がどのようなリクエストを外部に行っているかを確認しているようです。

Presently, these network logs include VPC flow logs and are subject to change, including expansion to other network activity such as DNS query data generated by invoking the Lambda functions.
(訳)現在、このネットワークログはVPCのフローログを含んでおり、Lambdaファンクションの呼び出しによって生成されるDNSクエリデータなど、他のネットワークアクティビティへの拡張を含め、変更する可能性があります。

とのことなので、今後別のネットワークアクティビティにも対応する可能性があるそうです。

検出項目(Finding Types)

検出項目は全部で7つ。まだ日本語のページはありませんが、下記公式ドキュメントにまとまっています。

下記はその一覧です。

検出項目 分類 内容
Backdoor:Lambda/C&CActivity.B バックドア Lambda関数は、既知のコマンド&コントロールサーバーに関連するIPアドレスにクエリしています。
CryptoCurrency:Lambda/BitcoinTool.B 暗号通貨 Lambda関数は、暗号通貨関連の活動に関連するIPアドレスにクエリしています。
Trojan:Lambda/BlackholeTraffic トロイの木馬 Lambda関数は、既知のブラックホールであるリモートホストのIPアドレスと通信しようとしています。
Trojan:Lambda/DropPoint トロイの木馬 Lambda関数は、マルウェアによってキャプチャされたクレデンシャルやその他の盗まれたデータを保持していることが知られているリモートホストのIPアドレスと通信しようとしています。
UnauthorizedAccess:Lambda/MaliciousIPCaller.Custom 不正アクセス Lambda関数は、カスタム脅威リストにあるIPアドレスに接続しようとしています。
UnauthorizedAccess:Lambda/TorClient 不正アクセス Lambda関数は、Tor GuardまたはAuthorityノードに接続しようとしています。
UnauthorizedAccess:Lambda/TorRelay 不正アクセス Lambda関数は、TorリレーとしてTorネットワークに接続しようとしています。

料金

有効化自体は無料で、かかる料金は結果を生成するために使用されるVPCフローログの量による従量課金制(GB単位)です。

また、最初の30日間は無料で利用することが可能です。

その他

今回のアップデートに伴い、検出項目のフィルターも追加されていました。

フィルター名 コンソール上の名称
Lambda function name 関数名
Lambda function ARN Function ARN
Lambda function tag key Lambda function tag key
Lambda function tag value Lambda function tag value

これらは既にGuardDutyのコンソール上で利用することが出来ます。

表記がバラバラですね。。この記事を書きながらフィードバックしておきました。

有効化の方法

有効化はGuardDutyのコンソールから可能です。

左サイドバーにあるLambda Protectionを選択します。

あとは「有効にする」をクリックして有効化するだけです。

検知してみた(追記: 2023/04/23 18:30)

カスタム脅威リストを作成し、検知させてみました。

142.250.196.99

確認するネットワークアクティビティはVPCフローログとのことですが、まずはVPC Lambdaではなく普通にVPC外のLambdaで検知するか確認してみました。

関数の中身は上記IPにgetリクエストを投げるだけのシンプルなものです。

しかし、1時間ほど待っても検知されず。。。(GuardDutyの検知間隔設定は15分)

次に同じ関数をVPC内に移してみたところ、検知されました。

下図が検知結果です。

ということで現時点で本機能はVPC Lambdaのみに対応しているようです。

まとめ

遂にLambdaもGuardDutyに対応しましたね。

GuardDutyは発見的統制をサポートする非常に大切なサービスです。GuardDutyを有効化していない人も、これを機に是非有効化してみてはいかがでしょうか。

今回は実際に検知した部分だけ書けなかったため、そのうち検知してみた記事を書きます。(それかこの記事に追記します)

本記事がどなたかのお役に立てれば幸いです。

以上、べこみんでした。