SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

今更ながらEmotetについて調べてみた

どうも!脆弱性診断士の西尾です!
今回は今更ながらEmotetについて調べてみたので、全体的な攻撃の流れや、各フェーズでの動作についてまとめてみました。

正直この記事を書くか迷ったのですが、Emotetの全体像を分かりやすく解説されてる記事があまりないなぁと感じたので、勇気を出して書いてみます。

【2020/9/4 追記】
先日より国内でのEmotet被害が急増しており、新しい攻撃パターンも確認されているようです。
具体的には攻撃メールにWordファイルを直接添付せず、パスワード付きZIPファイルを添付しています。 詳細は下記のサイトをご参照ください。

www.ipa.go.jp

www.jpcert.or.jp

また、Wordファイルの見た目もよく変化するようなので注意しましょう。

Emotetとは

Emotetとは攻撃メールを経由して感染するマルウェアで、感染するとメールクライアントなどの認証情報やメールアドレスが漏えいする可能性があります。また、ダウンローダー*1としても働くため、他のマルウェアに二次感染する場合もあります。最終的には、感染端末から取得した情報を悪用して攻撃メールを送信し、社内や取引先等にまでEmotetの感染を広げていきます。

Emotetはファイルレスな仕組み*2を取り入れており、耐検知・耐解析機能に優れています。他にも様々な機能を有しているため、高度化されたマルウェアであると考えられます。

国内では2019年の10月以降から検出数が急増しており、2019年11月には日経新聞1でも取り上げられていました。そのため、「エモテット」という名前だけでも知っている方は多いのではないでしょうか。

f:id:swime:20200819185423p:plainf:id:swime:20200819185754p:plain
(左)トレンドマイクロによる2019年のEmotet検出数2
(右)ESETによる2019年のEmotet検出数3

2020年は2月上旬以降に攻撃が観測されなくなったそうですが、7月17日頃から活動を再開したとのことです4

攻撃の全体像

全体的な攻撃の流れは下図のようになります。

f:id:swime:20200819182437p:plain
攻撃の全体像

ここからはフェーズ毎にざっくりと説明していきます。

攻撃メールの送信(①~②)

Emotetに感染させる攻撃の起点はメールです。攻撃メールは大きく2種類に分けられ、ばらまき型と返信型が存在します。

ばらまき型は一般的なスパムメールと同様で、不特定多数の宛先に同じ内容のメールを一括で送信します。
実在する企業や組織を装って送信することが多く、メールタイトルは「賞与支払届」など、興味を持たせるものが多いです。
また、最近では新型コロナウイルスに便乗した攻撃メールも確認されているそうです。

f:id:swime:20200819195856p:plain:w400
コロナに便乗した攻撃メール
(IPAより引用5

返信型は、攻撃対象者が過去にメールのやりとりをしたことのある人物の氏名・メールアドレスを利用し、さらに実際に送信されたメール本文を引用することで、本人からの返信メールを装った巧妙な攻撃メールです。

f:id:swime:20200819201536p:plain:w400
返信型メールの例
(IPAより引用)

攻撃メールの詳細についてはIPAのWebサイトが分かりやすいです。
また、実際に確認された攻撃メールは様々な組織が公開しているので、ネットで検索するとすぐに見つかると思います。


次に、Wordファイルのダウンロードについて説明します。
悪意のあるWordファイルをダウンロードさせるパターンも2種類に分けられ、添付ファイルパターンとURLパターンがあります。
添付ファイルパターンはその名の通りで、攻撃メールにWordファイルが添付されています。また、パスワード付きZIPファイルが添付されているケースも確認されています。
URLパターンは、メール本文にWordファイルをダウンロードさせるURLが記載されていたり、PDFファイルを添付し、そのPDF内にURLが記載されているものがあります。それらのURLは攻撃者のWebサイトではなく、正規サイトを改ざんしたものである場合が多いようで、アンチウイルスソフトでは検出されない可能性があります。また、下図のように「見た目のURL」と「実際にアクセスするURL」が異なる場合もあるので注意が必要です。

f:id:swime:20200820180950p:plain:w500
URLパターンの例
(NICTER BLOGより引用6

NICTER BLOGによると、以前は添付ファイルパターンが主流だったのですが、2019年12月以降はURLパターンも増加しているようです。

f:id:swime:20200820181636p:plain
誘導パターンの件数
(NICTER BLOGより引用)

Wordのファイル名は「請求書」のように興味を惹かせるものもあれば、日付やランダムな値になっているものもあるそうです。

Emotet感染まで(③~④)

ここでは悪意のあるWordファイルを開いてEmotet本体に感染するまでの流れを説明します。
以降の内容は主にMBSDさんの記事を参考にしています。Emotetの挙動がかなり詳しく書かれているので、セキュリティ技術者の方は一読されることをオススメします。

www.mbsd.jp


Wordファイルを開くと、下図のような画面が表示されます。

f:id:swime:20200820183020p:plain
悪意のあるWordファイルを開いたときの画面例
(IPAより引用)

ファイルの見た目は様々なパターンがあるそうですが、いずれも画面右上の「コンテンツの有効化」ボタンをクリックするよう促す文章が記述されています。
この「コンテンツの有効化」ボタンをクリックすると、不正なマクロが実行されて最終的にはEmotetに感染します。(※間違えてWordファイルを開いてしまった場合、「コンテンツの有効化」ボタンは絶対にクリックしないようにしてください!

具体的には以下のように、マクロを実行するとコマンドプロンプトを経由してPowerShellを起動します。コマンドプロンプトは複数実行する場合もあるみたいです。

f:id:swime:20200820192201p:plain
Emotetダウンロードまでの流れ

このように複数のコマンドを経由することで、分析をしにくくしています。さらに、マクロのコードや各コマンドは難読化が施されており、セキュリティ技術者による解析を妨害しています。
PowerShellを起動すると、複数のURLにアクセスし、特定のURLからEmotet本体(EXEファイル)をダウンロード・実行します。この時点でEmotetに感染します。
また、 PowerShellではなくJavaScriptを使用してEmotetをダウンロード・実行するケースもあり、この場合もJavaScriptのコードは難読化されています。

Emotet本体の動作(⑤~⑦)

Emotet本体が実行されると、複数のC&Cサーバへ接続を試み、応答があったサーバと定期的に通信を行うようになります。C&Cサーバの接続先リストはEmotet本体に暗号化された状態でハードコードされています。
その後、コンピュータ名、環境識別子、起動しているプロセスリストをC&Cサーバへ送信し、感染した端末が解析環境であるかどうかをC&Cサーバ側でチェックします。解析環境と判定された場合はダミーレスポンスが返され、攻撃が行われないと思われます。
このようにサーバ側で端末の環境をチェックすることで、解析環境の検出ロジックを分からないようにし、さらに解析環境に対しては本来の挙動を示さないことから、解析を回避しようとする意図が汲み取れます。

f:id:swime:20200821130640p:plain
Emotetによる環境チェック

解析環境ではないと判定されると、まずはEmotet自身を最新の状態にアップデートします。Emotetは常に最新の状態を保つように設計されているそうです。

そして攻撃を開始するのですが、Emotet本体には攻撃を行うような不正なコードが記述されていないため、攻撃コードをモジュールとしてC&Cサーバからダウンロードします。
ダウンロードしたモジュールはファイルとして存在しておらず、プロセスハロウイング(Process Hollowing)という手法を用いてファイルレスでコードを実行します。プロセスハロウイングとは、正当なプロセスの中身をくり抜き、マルウェアコードに置き換える手法です。
簡単な流れは次のようになります。

f:id:swime:20200821140943p:plain
プロセスハロウイングの流れ

まず、Emotetが自身をコピーし、子プロセスとして実行した後に一時停止させます。停止している間に、子プロセスの中身をくり抜き、先ほどモジュールとしてダウンロードした不正なコードに置き換えます。そしてプロセスを再生し、不正なコードを実行させます。
あくまでもプロセスの中身を入れ替えただけで、ファイル自体には変化がないため、実行ファイルを検査しても悪意のあるコードを見つけることはできません。

このように不正なコードをファイルとして存在させずに実行することで、アンチウイルスソフトによる検出や解析作業が難しくなります。
また、モジュール型のメリットとして、感染端末の環境によって実行コードを変えるなど、常に挙動を変化させることが可能になります。
プロセスハロウイングについては私も完全に理解しているわけではないので、興味のある方はこちらの記事を読んでいただけると良いと思います。

www.mbsd.jp

このような手法によってEmotetが主に行う攻撃は、認証情報の窃取です。
具体的にはWebブラウザに保存された認証情報や、様々なメールクライアントの認証情報を取得します。
また、Microsoft Outlookに関しては、過去に送受信したメールからメールアドレスや表示名を収集していることが確認されています。
こうして不正に取得された認証情報やメールに関する情報は、C&Cサーバへ送信されます。

さらなる攻撃と拡散(⑧)

Emotetはダウンローダーとしても働くため、情報を窃取した後に他のマルウェアに二次感染させる場合があります。
具体的には「TrickBot」という別のマルウェアをダウンロード・実行し、そのTrickBotがさらに「Ryuk」というランサムウェアに感染させるケースが確認されています7
そのため、Emotetに感染してしまうと情報窃取だけでは済まない可能性があります。

また、感染を広げる活動も積極的に行っており、感染端末から窃取したメールアドレスを利用し、更なる攻撃メールを送信します。感染端末のアカウントになりすます場合もあれば、「感染端末と過去にやり取りをしたことがある人」になりすます可能性もあります。そのため、社内の1台のPCがEmotetに感染してしまうと、社内や取引先にまで感染が拡大してしまう恐れがあります。

対策

Emotetの対策はシンプルで、

  • 不審なメールの添付ファイルは開かない
  • 不審なメールのURLをクリックしない
  • 万が一ファイルを開いてしまっても「コンテンツの有効化」をクリックしない(マクロを実行しない)

ことが重要です。マクロの自動実行はあらかじめ無効化しておきましょう。(Wordのオプション → トラストセンター or セキュリティセンター → マクロの設定)

f:id:swime:20200821182017p:plain
マクロの設定画面

攻撃メールは巧妙化しているため、文面だけでは不審に感じない場合もあります。ちょっとでも違和感を覚えた場合や、興味・関心を惹く内容のメールが届いた場合は安易に添付ファイルやURLをクリックせず、一度考えるように心がけましょう。

もしEmotetに感染してしまった場合は、下記のWebサイトが参考になると思います。

blogs.jpcert.or.jp

また、JPCERT/CCはEmotet検出ツールである「Emocheck」を公開しています。
ただし、Emotetは現在も進化し続けており、検出できなくなる可能性もあるので過信しないようにしましょう。

github.com

最後に参考情報として、国内の被害状況はこちらのWebサイトが参考になるかと思います。

piyolog.hatenadiary.jp

【2020/10/5 追記】
piyolog.hatenadiary.jp

まとめ

Emotetの攻撃の起点はメールで、添付ファイル等から悪意のあるWordファイルを開き、マクロを実行することで感染します。
感染すると様々な認証情報やメールアドレスが窃取され、その情報をもとに更なる攻撃メールが送信される可能性があります。また、ダウンローダー機能によって他のマルウェアに二次感染する可能性もあります。
Emotetの大きな特徴は、返信型の巧妙な攻撃メールを送信してくることや、ファイルレスで不正なコードを実行するなど、耐検知・耐解析機能に優れています。
対策は、不審なメールの添付ファイルやURLをクリックしないこと、マクロを実行しないことが重要です。

本記事を通して、Emotetの全体像をなんとなく理解していただければ幸いです。

Emotetに関する注意喚起 【2020/9/4 追記】

Emotetに関する情報

更新履歴

  • 2020/8/24 公開
  • 2020/9/4 冒頭に新しい攻撃パターン(パスワード付きZIPファイル)について追記。「Emotetに関する注意喚起」を追記。
  • 2020/9/8 「Emotetに関する情報」にITmedia エンタープライズの記事を追加。
  • 2020/10/5 国内の被害状況についてpiyologさんの記事を追加
記事を書いたメンバー
nishio

西尾(id:swime

新卒入社3年目の脆弱性診断員。サイバー犯罪全般に興味があり、診断業務以外にもサイバー攻撃の動向調査などを行っている。アイコンはペットのとげまる🦔

*1:自身とは別のマルウェアをダウンロード・実行するマルウェア

*2:不正な動作を行うコードをファイルとして存在させずに実行する仕組み