KNOWLEDGE - COLUMN ナレッジ - コラム

EC2インスタンスのマルウェア対策もサービスにお任せ?

col230_main

関連するソリューション

ID-Cross/クラウドサービス

デジタルソリューション本部
エバンジェリスト 松岡 政之 matsuoka2_274x380

こんにちは。エバンジェリストの松岡です。
もう夏も後半に差し掛かりましたが、相変わらず暑い日々が続いています。皆様いかがお過ごしでしょうか。
少し涼しくなったようでも日向はまだまだ暑いので熱中症には十分お気を付けください。

1.はじめに

それでは本題です。
今回はAmazon GuardDuty Malware ProtectionというAmazon GuardDutyのマルウェア対策機能に触れていきます。
こちらの機能は2022年7月26日にリリースされたばかりの機能です。リリースノートは下記URLにあります。
 Amazon GuardDuty がマルウェア対策機能を追加(※外部リンク)

いわずと知れたAWSの仮想コンピューティングサービスであるEC2では標準では、マルウェア対策にあたる機能は存在しませんでした。マルウェア対策には別途マルウェア対策ソフトを自身で準備してインストールするか、Marketplaceからマルウェア対策ソフトが含まれたAMIを選んで利用する必要がありました。
ですが、新しくリリースされたAmazon GuardDuty Malware Protectionでは特にインスタンスに何かをインストールする必要がなく、GuardDutyのコンソールから有効化するだけでマルウェア対策ができるようです。
今回は市販のマルウェア対策ソフトとどう違うのかも含めて、こちらの機能の使い方と動作の確認をしていきたいと思います。

2.機能概要

2-1. スキャン対象

まず、スキャンの対象はEBSボリュームです。
EBSボリュームを使用していれば、EC2インスタンスに限らずECSやEKS等のコンテナサービスも対応しているようです。ただし、現状では1TB未満のボリュームに限られるようです。
また、リージョンについては米国や中国の特殊なリージョンを除くほぼすべてのリージョンで対応しています。

2-2. スキャン動作 

次にスキャンの動作についてですが、スキャンのトリガーはEC2インスタンス等でC2サーバとの通信や、DoS攻撃の発生源になっている等の不審な動作がGuardDutyで検知された場合に実施されます。市販のマルウェア対策ソフトと違ってスケジュールスキャン等で積極的に見つけに行くことはできません。
また、スキャン時にはスキャン対象のEBSのスナップショットを作成し、それから復元した新たなEBSをスキャンするようです。そのため、元のインスタンスやボリュームには全く影響を与えずスキャンが行われます。市販のマルウェア対策ソフトではフルスキャンが行われると、パソコンが重くて使えないといったことがよく見受けられますが、本機能ではそういったことはありません。
スキャン後の動作としてはGuardDutyのコンソールに検出結果が表示されます。メール等で通知を行いたい場合は、GuardDutyとSNSを連携させることで実現可能です。また、重要な違いとして市販のマルウェア対策ソフトと異なりスキャン後の駆除や隔離はしてくれません。対処が必要な場合は、コンソールから感染のタイミングを特定してそれ以前のバックアップで環境を復元するか、別途市販のマルウェア対策ソフトを使用して駆除/隔離を行う必要があります。

3.検証準備

3-1.GuardDutyの準備

まずは、GuardDutyを有効化していない場合はGuardDutyのコンソールから有効化します。
有効化してMalware Protectionの設定画面を確認するとMalware Protectionもデフォルトで有効化されていることが確認できます。ちなみにGuardDutyをすでに有効化している場合は、デフォルトでは無効となっているようです。
また同画面のスナップショットの保持について、スキャンのために作成されたスナップショットは通常スキャン後に削除されるのですが、こちらを有効にするとスキャン後もスナップショットを保持してくれるようです。ただし、保持した分のスナップショットの料金が課金されますのでご注意ください。今回は検証のため、試しに有効化してみます。

GuardDuty 設定画面

また、スキャンオプションのタブを見てみると、タグを使用してスキャン対象の制御ができるようです。包含または除外の設定ができるので、対象としたいインスタンスの数に応じて手間の少ない方で設定するとよさそうです。
スキャンオプション画面
次に、マルウェアスキャンの項目を確認するとここでスキャン結果を確認できそうなことがわかります。もちろん現状では対象のインスタンスがなくスキャンを行っていないので結果は何もありません。

3-2.スキャン対象の準備

続いて、スキャン対象となるEC2インスタンスを準備します。インスタンスの詳細は下表のとおりです。1点注意が必要なのは、GuardDuty Malware Protectionでは暗号化されていないボリュームと作成したKMSキーで暗号化されたボリュームのみがスキャン対象となり、EBSのデフォルトキーで暗号化されたボリュームはスキャンされません。(検証時にEBSのデフォルト暗号化を有効化にしていてハマってしまいました・・・)


Linuxインスタンス
AMI
amzn2-ami-kernel-5.10-hvm-2.0.20220719.0-x86_64-gp2 /
ami-0ecb2a61303230c9d
インスタンスタイプ
t2.micro
ボリューム
8 GiB / gp2 / 暗号化なし

ここまででGuardDuty Malware Protectionの準備は完了です。 ですが、現状ではどのインスタンスがスキャン対象になっているのかGuardDutyのコンソール画面からは確認できないようです。包含/除外タグの設定でスキャン対象を制御できるので、EC2のコンソールでインスタンスのタグでフィルタをかければ確認できますが少し不便に感じますね。この辺りは今後のアップデートに期待です。

4.実証

4-1.EC2インスタンスにマルウェアを設置

まずは検知させるマルウェアをインスタンスに設置します。とはいえ実際に害を与えるものを気軽に入手・使用するわけにはいかないため、EICARと呼ばれるマルウェア対策ソフトのテストに使用されるファイルを利用します。

EICAR

4-2.スキャン確認

それでは配置したEICARファイルをスキャンしていきたいと思います。スキャンさせるためには前述の通りGuardDutyで不審な動作を検出させる必要があります。
EICARファイルは不審な動作を行わないため、別途自身で不審な動作を起こす必要があります。スキャンを開始するには特定の検出結果が必要になりますが、必要になる検出結果については下記を参照してください。
Malware Protection スキャンを開始する GuardDuty の検索結果(※外部リンク)
 
これらの内、「CryptoCurrency:EC2/BitcoinTool.B!DNS」については、仮想通貨マイニングプールの名前解決で検出させることができます。また、「Backdoor:EC2/C&CActivity.B!DNS」については検出結果を出力させるテストドメインがGuardDutyのドキュメントに記載されていますので、そちらを使って試してみます。実際に行ってから検出されるまでは十数分~数十分程度かかります。
実際の検出結果は以下の通りです。

検出結果

それでは無事検出されたところで、マルウェアスキャンの項目を見ていくと以下のようにすぐにスキャンが開始されていました。

マルウェアスキャン

スキャンが完了すると以下のような画面になります。以下の通り問題なく検出されているのがわかります。

スキャン完了

ですが、この画面では何が検出されたのかはわかりません。「クリックしてマルウェアの検出結果を表示」をクリックすると検出結果の画面で詳細を確認することができます。こちらを確認すると、今回の場合EICARファイルが検出されていることがわかります。今回はEICARでしたが本来ならばここでどのようなマルウェアが検出されたのか確認できます。

検出結果の画面

また、EC2のコンソールからスキャンされたボリュームのスナップショットが作成されていることも確認できました。 ちなみに、検出されたEICARファイルをインスタンスにログインして確認してみると、もちろん駆除されずに残っていました。

まとめ

今回はGuardDutyに新たに追加されGuardDuty Malware Protectionについて、その動作について確認してみました。結果として、問題なくスキャンされ検出されることが確認できました。

今回確認した通り、特別なソフトウェアを追加する必要がないため気軽に利用できます。また、利用中のインスタンスでスキャンが行われるわけではないので、マシンへの負荷やソフトウェアの競合を気にする必要がないことも嬉しい点です。「ちょっとしたサーバだから有償のマルウェア対策入れるまでもないけどどうしようかな」といった場合には検討する価値のある機能かと思います。

一方、市販のマルウェア対策ソフトと異なりスケジュールスキャン等によって能動的にスキャンを行うことはできないため、動かずに潜んでいるマルウェアについては見つけ出すことができません。また、すでに活動を始めたものについても、スキャンして見つけ出してもブロックしたり駆除したりは自動で行われません。そのため、検出結果を確認して手動で対処を行う必要があります。

AWS ShieldやAWS WAF、GuardDuty等を組み合わせることによって、外部からの攻撃や不審な動作については概ね対処可能かと思いますし、インタンス自体を構築時点に初期化することで対処できる場合など限られた環境では活躍するかもしれません。ですが、万が一マルウェアが検出された場合のことを考慮すると、GuardDuty Malware Protectionのみにマルウェアの対処を任せるのは難しく、要件に応じて適切に市販のマルウェア対策ソフトと組み合わせて利用するのが現実的かと思います。

それぞれのメリット・デメリットを確認してうまく付き合っていきたいですね!
それではよいクラウドライフを!

当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エバンジェリストによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。

メルマガ登録ボタン


松岡 政之

株式会社インフォメーション・ディベロプメント デジタルソリューション営業部 エバンジェリスト

この執筆者の記事一覧

関連するソリューション

ID-Cross/クラウドサービス

関連するナレッジ・コラム

ITエンジニアの現地作業 ミスを減らす!作業本番のポイントとは

NTTのIP網移行と、通信の未来とは

ITエンジニアの現地作業 ミスを減らす!事前準備のポイントとは