4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS GuardDuty Malware ProtectionでEICARテストファイルを使って検知を試してみた

4
Last updated at Posted at 2025-12-04

本記事は、BIPROGY / ユニアデックス社内AWSコミュニティ「BIPROGY AWS SPARK」の定期投稿企画第13回目の記事です。他の定期投稿企画の記事は、#BIPROGY_AWS_SPARKタグ または Organizationページ をご覧ください。

背景

AWS GuardDutyにはコンソール上からワンクリックで生成できる「疑似攻撃サンプル」が用意されていますが、Malware Protectionには公式のテスト用サンプルがありません。
そこで今回は、EICARテストファイルを利用してMalware Protectionでマルウェア検知を実際に試した手順をまとめました。
スキャン対象はEC2とし、OSはRHEL9.6 で検証しました。

AWS GuardDuty Malware Protectionとは

EC2インスタンスやコンテナにアタッチされたEBSボリュームをスキャンし、マルウェアの潜在的な存在を検出する機能です。
AWS GuardDuty Malware Protection公式ドキュメント

手順

① テスト用インスタンスへの接続

② EICARテストファイルの作成

  • 下記のコマンドでEICARテストファイルをダウンロード
curl -O https://secure.eicar.org/eicar.com

下記のステータスが表示されれば、問題なく実行できています。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0100    68  100    68    0     0     67      0  0:00:01  0:00:01 --:--:--    67
  • pwdで絶対パスを確認+lsコマンドでファイルが保存されたことを確認
pwd
/home/ec2-user
ls -l
-rw-r--r--. 1 ec2-user ec2-user 68 Nov dd hh:mm eicar.com

③オンデマンドスキャンの実行

  • AWSコンソールで「GuardDuty」 → 「Malware Protection」 → 「EC2」を選択
  • 「オンデマンドのマルウェアスキャン」欄に対象EC2のARNを入力
  • 「スキャンを開始」を選択
    image.png

※CLIでマルウェアスキャンを開始する場合は、以下のコマンドを実行します。

ls -l
aws guardduty start-malware-scan --resource-arn "arn:aws:ec2:ap-northeast-1:<アカウントID>:instance/<インスタンスID>"

※アカウントIDとインスタンスIDは対象EC2のものを指定

④ スキャン結果の確認

  • AWSコンソール上にて"スキャン結果": "INFECTED" となっていれば検知成功
    ※"スキャンステータス"が"Completed"となるのに10分程度かかります。
    image.png

※CLIでマルウェアスキャンを結果を確認する場合は、以下のコマンドを実行します。

  • 下記コマンドでDetector IDを取得
aws guardduty list-detectors

Detector IDが出力されます。

 {
    "DetectorIds": [
        "XXXXXXXXXXXXXXXX"
    ]
}
  • 下記コマンドでスキャン結果を確認
    ※先ほど取得したDetector IDを指定
aws guardduty describe-malware-scans --detector-id XXXXXXXXXXXXXXXX

コマンドでは下記の表記でスキャン結果が表示されます。

"ScanResult": "INFECTED"

⑤ スキャン結果(詳細)の確認

AWS GuardDuty Malware Protectionでは、スキャン結果に 「INFECTED」「CLEAN」 は表示されますが、感染ファイルのパスや場所はコンソール上では直接表示されません
そのため、ファイル名やパスを取得するには、GuardDutyの検出結果(Finding)を確認する必要があります。 下記の手順で確認します。

  • 下記コマンドでファインディングIDを取得
    ※先ほど取得したDetector IDを指定
aws guardduty list-findings --detector-id XXXXXXXXXXXXXXXX

実行するとFinding IDが出力されます。

{
    "FindingIds": [
        "YYYYYYYYYYYYYYY"
    ]
}
  • 下記コマンドで感染ファイルの詳細を確認(整形表示)
    ※先ほど取得したDetector IDとFinding IDを指定

aws guardduty get-findings \
--detector-id XXXXXXXXXXXXXXXX \
--finding-ids YYYYYYYYYYYYYYYY \
--query "Findings[0].{Threat:Service.EbsVolumeScanDetails.ScanDetections.HighestSeverityThreatDetails.ThreatName,File:Service.EbsVolumeScanDetails.ScanDetections.ThreatDetectedByName.ThreatNames[0].FilePaths[0].FilePath,Severity:Severity}" \
--output table

実行すると感染したファイル場所が表示されます


-----------------------------------------------
|              GetFindings                   |
+-----------+--------------------------------+
|  Threat   |  EICAR-Test-File              |
|  File     |  /home/ec2-user/eicar.com     |
|  Severity |  5                            |
+-----------+--------------------------------+

⑥EICARテストファイルの削除

  • 下記コマンドでファイルを削除
rm -i /home/ec2-user/eicar.com
  • lsコマンドで削除確認→ファイルが一覧になければOK!
ls -l

まとめ

今回の検証では、EICARテストファイルを使ってAWS GuardDuty Malware Protectionの検知動作を確認しました。
公式のテストサンプルがない中で、EICARファイルは安全に検証できる有効な方法ですのでセキュリティ検証や運用確認の参考にしていただけると嬉しいです。

We Are Hiring!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?