[アップデート]Amazon GuardDutyのMalware Protectionが2TiBまでのEBSボリュームをスキャン出来るようになりました

今まで1TiBだったAmazon GuardDuty - Malware ProtectionのEBSボリュームスキャン上限が2TiBに緩和されました
2024.05.31

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

みなさん、Amazon GuardDuty(以下GuardDuty)で検知してますか?

What's Newに載っていない小さなアップデートですが、先日GuardDutyのユーザーガイドが更新されました。

Updated functionality in GuardDuty Malware Protection

For each Amazon EBS volume that is attached to your Amazon EC2 instances and container workloads, GuardDuty Malware Protection has increased the size of the EBS volume that it scans to up to 2048 GB. For information about scanning Amazon EBS volumes attached to your instances, see GuardDuty Malware Protection.

(訳) Amazon EC2 インスタンスおよびコンテナワークロードに接続されている各 Amazon EBS ボリュームについて、GuardDuty マルウェア保護はスキャンする EBS ボリュームのサイズを最大 2048 GB まで増やしました。インスタンスに接続されている Amazon EBS ボリュームのスキャンについては、「GuardDuty マルウェア保護」を参照してください。

ということで、今まで 1 TiB までのEBSボリュームにしか対応していなかったMalware Protectionのスキャンが 2 TiB までのボリュームに対応しました。

※本記事執筆時点では英語版のユーザーガイドのみ上記内容に更新されています。

ざっくりまとめ

  • Malware Protectionのスキャンが 2 TiB までのEBSボリュームに対応した
  • スキャンを行うかどうかは、そもそものEBSボリュームの定義サイズに左右される
    • 例えば、2048 GiB のEBSボリュームの場合はスキャンされるが、2049 GiB のEBSボリュームはスキャンそのものがスキップされる
  • Malware Protection のスキャン料金は実際に存在するファイル容量に依存する
    • 例え大容量のボリュームでも、空の場合はスキャンを行なっても料金は発生しない

何が変わったのか?

上述の通り、今回のアップデートはGuardDutyのMalware Protectionというマルウェアを検知する機能に関するものです。

Malware ProtectionはEC2インスタンスにアタッチされたEBSボリュームをスキャンしてマルウェアを検知するのですが、サイズが1TiB(1024GiB)までのEBSボリュームが対象という制限がありました。

この制限が2TiB(2048GiB)まで増えた、というのが今回のアップデート内容です。

Malware Protectionの機能そのものについては下記ユーザーガイドをご参照ください。

Malware Protectioに関するクォータはこちら。本記事執筆時点では日本語版ドキュメントのクォータは更新されていません。

確認してみた

早速確認してみました。

スクリーンショットは割愛しますが、適当にEC2インスタンスを立て、そこに2048GiBと2049GiBのEBSボリュームをアタッチしました。ボリュームの中身は空です。

上記EC2インスタンスを対象にMalware Protectionのオンデマンドスキャンをした結果が以下です。

{
  "DetectorId": "22c7e24c2b39b2246edcf4e403c7de0c",
  "AdminDetectorId": "22c7e24c2b39b2246edcf4e403c7de0c",
  "ScanId": "624ec67c2ef3b3fbc33aa52651203c2f",
  "ScanStatus": "COMPLETED",
  "ScanStartTime": "2024-05-31T07:33:31.000Z",
  "ScanEndTime": "2024-05-31T07:43:01.000Z",
  "TriggerDetails": {},
  "ResourceDetails": {
    "InstanceArn": "arn:aws:ec2:ap-northeast-1:123456789012:instance/i-05e79b758943708e7"
  },
  "ScanResultDetails": {
    "ScanResult": "CLEAN"
  },
  "AccountId": "123456789012",
  "TotalBytes": 1691687869,
  "FileCount": 40463,
  "AttachedVolumes": [
    {
      "VolumeArn": "arn:aws:ec2:ap-northeast-1:123456789012:volume/vol-04d1a5f220064c037",
      "VolumeType": "gp3",
      "DeviceName": "/dev/xvda",
      "VolumeSizeInGB": 8,
      "EncryptionType": "EBS_MANAGED",
      "SnapshotArn": "arn:aws:ec2:ap-northeast-1:123456789012:snapshot/snap-02ce491e4801594f1",
      "KmsKeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/**************"
    },
    {
      "VolumeArn": "arn:aws:ec2:ap-northeast-1:123456789012:volume/vol-0a4b4d05ee5d84eb1",
      "VolumeType": "gp3",
      "DeviceName": "/dev/sdb",
      "VolumeSizeInGB": 2048,
      "EncryptionType": "EBS_MANAGED",
      "SnapshotArn": "arn:aws:ec2:ap-northeast-1:123456789012:snapshot/snap-01cad67d931426c3d",
      "KmsKeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/**************"
    },
    {
      "VolumeArn": "arn:aws:ec2:ap-northeast-1:123456789012:volume/vol-0c491249af3d688cc",
      "VolumeType": "gp3",
      "DeviceName": "/dev/sdc",
      "VolumeSizeInGB": 2049,
      "EncryptionType": "EBS_MANAGED",
      "KmsKeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/**************"
    }
  ],
  "ScanType": "ON_DEMAND"
}

スキャン自体は正常に終了しましたが、一番最後の2049GiBのボリュームだけ SnapshotArn が表示されていませんね。

Malware ProtectionではCloudWatch ロググループにスキャンのログを出力するため、スキップされたスキャンがある場合はそのログでスキップ理由を確認することが出来ます。

以下が出力されたログです。

{
    "@timestamp": "2024-05-31 07:33:32.513",
    "@message": {
        "eventDetails": {
            "accountId": "706587535044",
            "eventType": "EC2_SCAN_STARTED",
            "eventTime": "2024-05-31T07:33:32.513Z",
            "detectorId": "22c7e24c2b39b2246edcf4e403c7de0c",
            "schemaVersion": "1.0"
        },
        "scanRequestDetails": {
            "requestType": "ON_DEMAND",
            "scanId": "624ec67c2ef3b3fbc33aa52651203c2f"
        },
        "resourceDetails": {
            "resourceType": "EC2_INSTANCE",
            "instanceDetails": {
                "instanceId": "i-05e79b758943708e7",
                "volumeDetailsList": [
                    {
                        "volumeId": "vol-04d1a5f220064c037",
                        "deviceName": "/dev/xvda",
                        "volumeSizeGb": 8
                    },
                    {
                        "volumeId": "vol-0a4b4d05ee5d84eb1",
                        "deviceName": "/dev/sdb",
                        "volumeSizeGb": 2048
                    },
                    {
                        "volumeId": "vol-0c491249af3d688cc",
                        "deviceName": "/dev/sdc",
                        "volumeSizeGb": 2049,
                        "skipReason": "UNSUPPORTED_VOLUME_SIZE"
                    }
                ]
            }
        }
    }
}

ということで、2049GiB以上のEBSボリュームは UNSUPPORTED_VOLUME_SIZE ということでスキャンそのものがスキップされたようです。2048GiBのボリュームはちゃんとスキャンされたようですね。

また、このMalware Protectionは東京リージョンだと 0.05 USD/GiB のスキャン料金がかかるのですが、これは実際に存在するファイルの容量に依存するようです。例えば今回であれば、実際に存在するファイル約1.6GiBにのみスキャン料金が発生しました。

最後に

些細なアップデートですが、純粋にスキャンサイズの上限が緩和されたのは嬉しいですね。

6/10から始まるre:Inforceに向け、これからセキュリティ系のアップデートがどんどん出てくるのではないでしょうか。楽しみです。

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

以上、べこみんでした。