アンチウイルス完全に理解した!? Emotetから学ぶウイルス感染対策

 日本国内では2019年10月末から2020年2月にかけて「Emotet(エモテット/イモテット)」と呼ばれるマルウェアの感染を狙ったばら撒き型攻撃の観測及び感染事案の報告が日本国内において多数されました。一旦は攻撃は落ち着いたものの、2020年7月から再び攻撃が始まっている状況です(マルウェア Emotet の感染拡大および新たな攻撃手法について)。マカフィーでも同様に、Emotet感染に係るお問い合わせを頂き、お客様のご要望に応じて、マカフィー プロフェッショナルサービスがオンサイトにてインシデント対応を行うケースが発生していました。そこで感じる事は、製品の機能をもっと知りそれを駆使することで、マルウェア感染の未然対策や、マルウェア感染後の挙動(拡散や自己増殖)をある程度抑止することができるのに、もっと効率的に発見することができるのに、という事です。これはEmotet以外のマルウェア感染事案の対応の際にも同様に感じる事です。弊社としても機能を活用いただけるように、そのメリットをお伝えしていく必要を感じております。

 そこで今回を含めて3回に分け、Emotetを事例としてウイルスの脅威に対応するためのテクニック についてご紹介していきたいと思います。

 第1回(今回)はウイルス対策ソフトウェアの機能を活用した、マルウェア感染抑止のテクニックについてご紹介をさせていただきます。今回、新たな投資は最小限とし、EDR(Endpoint Detection and Response)製品を使わず、従来型のウイルス対策製品を使い対応を行うシナリオを想定しています。なお、本ブログではエンタープライズ向けウイルス対策製品を対象とさせていただきました。
 第2回はePOを活用したEmotetを事例とした感染時の対策、第3回はEmotetを事例とした監視の技術についてご紹介をします。
 それでは第1回、ウイルス対策ソフトウェアの機能を活用した、マルウェア感染抑止のテクニックについてご紹介をさせていただきます。


1. コンシューマ 製品とエンタープライズ製品の違いとは?

 冒頭で、本ブログはエンタープライズ向け製品を対象とさせていただく、と書きました。マカフィーのウイルス対策製品のラインナップは、コンシューマ向けとエンタープライズ向けに分かれています。両製品ともマルウェアを見つける検知エンジンとウイルス定義(McAfeeの製品ではこれらをAMcoreと呼びます)に違いはありません。大きな違いは①ソフトウェアの挙動に関わる設定の粒度 と②管理サーバを用いたクライアントの集中管理の可否です。

 コンシューマ製品は、ウイルス対策製品をインストールしていただくだけで一定のセキュリティレベルの確保と、インストール後のコンピュータの利用に対して可能な限り支障がないよう最適化されています。一方、エンタープライズ向け製品は、管理者の方が、組織固有の背景やその時々の事情に合わせた設定を細かく、かつ多数のエンドポイントを集中的に管理が行えるような機能が提供されています。エンタープライズ製品の場合、より積極的な制御を行う事が可能である反面、設定によってはコンピュータの動作に支障を来すリスクがあります。プロフェッショナルの要求に対応できる機能が装備されているのが、エンタープライズ向けウイルス対策製品である、と言えるかもしれません。

 それでは、Emotetへの感染を狙う攻撃をモデルケースとしてマルウェア感染防止に有効なエンドポイントの設定テクニックをご紹介をします。


2. ウイルス対策ソフトを支えるマルウェアを検知する基本的な技術

 ウイルス対策ソフトについてはマルウェアを検知する為の技術が大きく二つあります。一つ目はウイルス定義ファイル(DAT/AMcore)による静的なファイル検査の手法、二つ目はコンピュータ内の動作を監視の対象とし、不審な挙動を定義してその挙動を検知する手法です。

2.1. 静的なファイル検査技術

 静的なファイル検査技術のベースであるウイルス定義ファイルには検知対象となるファイル(マルウェア)の特徴が書かれています。この手法は、定義された特徴を持つファイルをファイルを実行する前に見つける事が可能という技術的なメリットがあります。他方、未知のマルウェアやファイルの特徴が異なる亜種については検知ができないといったデメリットがあります。
 
 実はEmotetのダウンローダーでも、新たに見つかった検体(亜種)はファイルの挙動自体は従前踏襲であるものの、静的なファイル検査技術では検知できない、といった事象も発生しています。検知を逃れるためファイルの特徴を変える事は難しい事ではない事がその背景にあります。

2.2. 不審な挙動を検知する技術

 ファイルの挙動についてはファイルの特徴を変更する事と比較して、変更は容易ではありません。これは開発者側の“事情”です。そのため、亜種はファイルは異なっていても動作は同じ、といった状態が発生します。これはEmotetに限らず、サイバー攻撃全般に言える事です。つまり、この動作を捉える事ができれば、マルウェアを捕捉することもできます。これが二つ目の手法になります。
 他方、同じような動きをしてしまう悪意のないファイルの動作を不審と判断してしまうデメリットもあります。ただし、これは静的なファイル検査手法でも発生しうる事です。最大のデメリットは、ファイルが動かなければ検知が出来ない事です。
 ウイルス対策ソフトは大きく、この二つの技術によって悪意のあるファイルを見つけ出します。


3. Emotetへの感染を阻止: ウイルス対策ソフトの活用・実践テクニック

 静的なファイル検査技術についてはウイルス対策ソフトの最も基本的な要素です。細かいチューニングをすることで検知率を上げる事は可能ですが、最も重要な事は定義ファイルを最新化する事ですので、詳細は割愛します。本Blogではあまり触れられることのない、二つ目の手法、「不審な挙動を検知する技術」を使った検知テクニックについてご紹介します。

3.1. 敵を知る:Emotetの感染動作を理解する

まずは敵の「手口」を理解する必要があります。Emotetの感染の概要を下図にまとめました。

 Emotetは攻撃者がメールを経由してMalDoc(マルウェアに感染させるためのドキュメント。MalDocはマルウェアのダウンローダーになります)をターゲットに送付することから始まります。ターゲットがこのMalDocを開く事で感染動作が始まります。

 この動作については検体が手元に無いと理解は難しいのですが、最近ではOSINT(OpenSourceIntelligence)サイトでファイルの挙動を簡単に見る事が可能です。最近ではANY.RUNが人気です。このなかでEmotetの検体を検索していただければ、見つける事が可能です。検索キーワードは「emotet-doc」です。実際に見つけたものを一つ、ご紹介しておきます。“仕事への招待.doc

3.2. Emotetのダウンローダーの動作の特徴を知る

 ここまででEmotetのダウンローダーの動作概要を説明しましたが、もう少し詳しく見ると特徴のある動きを見つける事が出来ます。ここでは解析環境にて実際に動作させた結果をみてみましょう。(以降の確認では実際にマルウェアを動作させて検証をした結果を掲載しています。マルウェアの扱いについては注意が必要であることに留意いただくよう強くお願いをします。)

 McAfee EDRで捉えられた動作についてもご紹介をします。このMcAfee EDRの検知では、Emotetに感染をしてしまっている状態であることを指しています(この感染はラボ環境で起きていることであり、意図的に感染動作をさせています) 。

3.2.1. 特徴1: WMIを経由したPowershellの実行

 これらの動作から、(トリガーとなるWordのマクロが)svchostを使いWMIを経由してPowershellを起動するプロセスチェーンであることがわかります。通常の運用では、WordからPowershellを実行する事は、あまりないかと思われます。

3.2.2. 特徴2: 難読化したPowershellスクリプトの実行

 次の特徴は、感染させるために使われている使われるPowershellにあります。スクリプトに意味不明な文字列が使われていることが特徴として考えられます。

 コマンドは”powershell -e”となっていますが、これはエンコードしたデータをデコードして実行するオプション(-EncordedCommand の略で-e)になります。

 実際にデコードをするとその内容がわかりやすくなるかと思います。デコードにはリバースエンジニアリングでも使われるツールであるCyberChefを使用しました。

 この結果をみると何をしようとしているのか、わかりやすいかと思います。
 この特徴1、特徴2のどちらかの実行を阻止することで既知のEmotetへの感染手法に対応できると考えます。

3.3. 不審な挙動を捉えるアンチウイルスソフトの設定テクニック

 それではこの二つの攻撃について対応できるENSの機能についてご紹介をします。McAfee ENSにはふるまいを検知するための技術として、アクセス保護機能とエクスプロイト防止機能があります。はじめに、エクスプロイト防止機能を使ってこのふるまいを検知して阻止します。

3.3.1. 「特徴1: WMIを経由したPowershellの実行」を捉えるテクニック

 まずは特徴1のWordのマクロからWMIを経由してPowershellを起動する手法ですが、これは既存のルールで対応が可能です。シグネチャID 6131 WMIを介した攻撃力の強いOLEオブジェクト感染 です。シグネチャは設定画面内の[クイック検索] からWMIのキーワードを使って見つけています。

 このシグネチャを、ブロックとレポートの設定を有効化して適用します。適用後、Emotetのダウンローダーを実行した結果がこちらになります。

 ePOの画面を確認した結果、シグネチャID6131が反応してWordがWMIを経由してPowershellを実行しようとする動きを阻止していることがわかります。この動作についてはWindowsのイベントログでも確認をしています(Powershellが実行されていないことを確認)。この結果、Emotetがダウンロードされず、感染を未然に防げたことも併せて確認ができました。

3.3.2. 「特徴2: 難読化したPowershellスクリプトの実行」を捉えるテクニック

 続いて特徴2について対応をします。特徴2の難読化したPowershellの実行を見つけてブロックをします。実は難読化したPowershellについてはシグネチャID6087 「Powershellコマンドの制限 – EncordedCommand」が存在します。
 しかし、Powershellについてはコマンドオプションの省略が可能等、検知回避に悪用可能な機能が多数存在しており、このシグネチャについても検知回避が否定できません。そこで今回は、ENSのエクスプロイト防止機能にある「エキスパートルール」の機能を用いて分析結果をベースにルールを作成して確実に止めていきます。
 エキスパートルールは独自のルールを作成できる機能です。技術力があるエンジニアには最強のツールに成り得る機能です。実際に作成をしたルールがこちらになります。

 こちらを適用して、EmotetのMalDocを実行してみましょう。

 結果、攻撃を検知してブロックすることができました。
ただ、残念なことに、このPowershellの記述テクニックはすぐに(9月14日)変更されてしまいました。最近(2020年10月)に観測されたものはこのような書き方になっています。

 Powershellについてはスクリプトの記述テクニックが多種存在しており、すべてを網羅することが難しく、Blue teamとしては攻撃者のテクニックの変更に追随していくことが難しいというのが本音です。そういった観点から、特徴1と特徴2を捉えるテクニックを平行して使う事が、検知テクニックとしては重要となると言えます。

3.4. Emotetに感染!最終防衛ラインを守るテクニック

 ここまでご紹介した設定は皆様の環境に依存はしますが、設定を行ったとしてもコンピュータの利用に大幅な影響を与える可能性が低いルールになると考えます。これからご紹介するルールについてはEmotetへの感染防止にはなるものの、ブロックする設定を行う事で、運用上支障を来す可能性が高いルール になります。
 ここまで、EmotetのMalDocを開いた後、検体をダウンロードする動作を検知・阻止するためのテクニックになります。ここからは、これらの防御策をすり抜けてしまったケースに対応するテクニックです。

3.4.1. MalDocを開いてしまってからの動作を知る

 MalDocを開いた後、Powershellが実行されEmotetの検体をダウンロード、実行した後、Emotetはコンピュータに感染します。感染時の動作はおおよそ次のような動作をします。

3.4.1.1. Emotetをダウンロードする

 Powershellの実行に成功してしまうと、Emotetをダウンロードしてきます。ダウンロードしたファイルは%USERPROFILE%[文字列]\[文字列]\[文字列].exeに保存、ファイル(Emotet)を実行して感染動作を開始します。

3.4.1.2. Emotet自身をコピーする

 実行されたEmotetは自身を%USERPROFILE%\AppData\Local\[文字列]\[文字列].exeにコピーします。

3.4.1.3. スタートアップに登録して永続化を図る

 Emotetは感染後、動作し続けるための永続化を図ります。その為にスタートアップにプログラムを登録をします。スタートアップはレジストリ登録(\HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)によって行われます。

 これらを動作をブロックすることで感染を阻止することが可能です。

3.4.2. Emotetの実行・感染を阻止するテクニック

 これら動作を前提として、Emotetの実行・感染動作を阻止するテクニックをご紹介します。

3.4.2.1. 任意の場所へのファイル作成・実行を阻止するテクニック

 Emotetのファイル作成を阻止するテクニックは、アクセス保護ルールを使用します。ルールはデフォルトにはありませんのでカスタムルールを使い対応をします。実際に作成したルールがこちらになります。

 これらをアクセス保護ルールで作成して適用をします。

3.4.2.2. Emotetの永続化を阻止するテクニック

 Emotetのスタートアッププログラムへの登録阻止には、エクスプロイト防止機能の標準で用意されているルールを使って対処します。ルール名はシグネチャID344: 新規起動プログラムの作成 です。

 このルールを有効化してブロックする設定とすることで、永続化を図るEmotetの動きを阻止することができます。
 先にも書きましたが、これらのルールについてはEmotetへの感染防止にはなるものの、ブロックする設定を行う事で、運用上支障を来す可能性が高いルールになります。その為、常時有効化することを推奨できる設定ではありません。常時監視をされる場合はブロックではなく、報告の設定を行い、これらログを監視することで可用性リスクを回避する事を検討してください。

 また、これら運用上リスクが高い設定については非常時の設定として、管理サーバであるMcAfee ePolicy Orchestrator(ePO)内に設定を保持しておき、非常時、またはなんらかの条件にマッチした際に手動、または自動的に設定が適用されるように用意しておくことは、インシデント対応のベストプラクティスとして推奨される事です。ePOを活用した非常用設定の運用テクニックについては次回のBlogにてご紹介をさせていただきます。


4. まとめ

 今回はEmotetを事例として感染に対する未然対策を解説しました。このテクニックは他のMalDocにも応用が可能なテクニックです。最近ではEmotetのMalDocをまるでコピーしたかのようなDridex(別のマルウェア)のMalDocも出現していますが、この中のテクニックを使う事で、感染の未然対策が可能となっています。

 ウイルス対策製品については最新へのアップデート、OSやアプリケーションへの最新パッチの適用、従業員へのセキュリティ教育など、基本的な対処はセキュリティ対策の大前提となります。しかし、その上で、より高度な対処を考えた際、攻撃者の手法を研究して独自に対策を考えて行く事は、より高度なセキュリティ対策を実現していく為には重要なキーとなると考えます。

 今回ご紹介した以外にも、基本的な設定としてやるべきことも沢山あります。弊社パートナー様を始め、マカフィー プロフェッショナルサービス部では弊社製品やマルウェア等攻撃に関するナレッジを持っております。お困りでしたら是非ご相談いただければと思います。


5. 謝辞

 本Blogを執筆するにあたり、インターネット上のコミュニティには大変お世話になりました。Emotetについては世界中のセキュリティリサーチャーが追いかけており、日々分析をして世界に貢献しています。日本国内で観測される攻撃を分析して発信するチーム「ばらまきメール回収の会」のメンバーには知見を多数いただきました。また、世界ではEmotetの追跡を行っているセキュリティリサーチャーのチーム、Cryptolaemusの知見も参考にさせていただきました。We appreciate your contribution. Thank you very much!


6. 参考

Using Expert Rules in ENS to Prevent Malicious Exploits
Leveraging McAfee Endpoint Security to Protect Against Emotet and Other Malware
How to protect against Emotet

About the author:
小川泰明(Hiroaki Ogawa)
プロフェッショナルサービス プリンシパルコンサルタント
 マカフィーではソリューション提供業務に従事。製品の導入に係る設計、構築の他、お客様のSOC、CSIRTにアドバイザーとして常駐、最新の脅威情報の分析結果をもとに、お客様にアドバイスを行っている。その他、最新の脅威について独自にリサーチを行い、国内外のセキュリティカンファレンスにて研究成果を発表。最新の脅威について知見の提供を行っている。
Read more post from Hiroaki Ogawa

川端啓之(Hiroyuki Kawabata)
プロフェッショナルサービス セキュリティコンサルタント
 マカフィーでは、製品を使用したセキュリティシステムの設計、構築、運用支援を行っている。特に、大手通信キャリア向けSOC構築業務、運用支援では長期に渡る難易度の高いプロジェクトを成功させるなど高い評価を得ている。また、複数のマカフィー製品を組み合わせたソリューションの提案、導入支援、ユーザ目線での運用保守を得意とし、多くのソリューションサービスを提供している。