「EMOTET」の新亜種を確認。Windows APIを悪用してサンドボックス検出と解析を回避

「EMOTET」の新亜種を確認。Windows APIを悪用してサンドボックス検出と解析を回避トレンドマイクロは、2017年9月の記事で、当初オンライン銀行詐欺ツール(バンキングトロジャン)であった「EMOTET(エモテット)」が、さまざまなマルウェアを拡散するマルウェアに進化して再活発化し、金融機関以外の業界や新しい地域へと攻撃を拡大した事例について報告しました。今回は、従来の挙動にさらに変更を加え、サンドボックス検出やマルウェア解析を回避するための新しいルーチンを取り入れた亜種(「TSPY_EMOTET.SMD10」として検出)について解説します。

EMOTET にはこれまで、解析回避のために RunPE技術が利用されていましたが、今回確認された亜種では「CreateTimerQueueTimer」関数の利用へ変更されています。CreateTimerQueueTimer は、タイマキュータイマを作成する Windows API です。タイマは、指定された時刻にコールバック関数を呼び出すことのできる軽量オブジェクトです。この APIの元々の機能は、タイマルーチンを作成することによってプロセスチェーンの一部とすることですが、問題の亜種では、APIのコールバック関数が EMOTET の不正活動に利用されます。RunPE の利用は一般的になってきていますが、Windows API の悪用はまだあまり知られておらず、セキュリティスキャンによって検出されにくいことから、EMOTET が RunPE から Windows API の利用へと変更したと考えられます。

図1
図1:CreateTimerQueueTimer API ドキュメント(出典「CreateTimerQueueTimer関数」)

図2
図2:「TSPY_EMOTET.SMD10」は、複数の段階を経て展開される。次の段階で実行される0x428310の不正活動がその前の段階で CreateTimerQueueTimer に注入される

なお、CreateTimerQueueTimer を悪用するマルウェアが確認されたのはこれが最初ではありません。「PONY(ポニー)」と「VAWTRAK(バウトラック)」をダウンロードする「HANCITOR(ハンシター)」が利用する不正なマクロでもこの Windows API が利用されていました。

■サンドボックス検出およびマルウェア解析回避術

問題の亜種では、検出回避技術としての新しい挙動が確認されています。マルウェアの中には、検出を逃れるために一定期間スリープするように設計されているものがあります。そのため解析環境では、スリープ期間を非常に短時間に変更して不正な活動をスキャンします。そのような解析環境を判別するために、この亜種では CreateTimerQueueTimer を利用することで 0x3E8ミリ秒(1秒)ごとにチェックし検知することが可能になっています。

複数の段階を経て展開される「TSPY_EMOTET.SMD10」の実行過程には、自身がサンドボックスで実行されているかをチェックする機能が含まれています。サンドボックスで実行されていると検知した場合、次の段階の不正活動は続行されません。

「TSPY_EMOTET.SMD10」は、以下の場合に自身がサンドボックス環境で実行されていると判別します。

  • NetBIOS の名前が TEQUILABOOMBOOM である
  • ユーザ名が Wilber で、NetBIOS の名前が SC、あるいは CW で始まる
  • ユーザ名が adminでDnsHostNameがSystemIT のとき、C:\\ Symbols \ aagmmc.pdb のようなデバッグ補助ソフトを示すファイルがある
  • ユーザ名が admin で、NetBIOS名が KLONE_X64-PC である
  • ユーザ名が John Doe である
  • ユーザ名が John で、C:\\ take_screenshot.ps1 と C:\\ loaddll.exe の2つのファイルが存在する
  • C:\\ email.doc、C:\\ 123 \\ email.doc、C:\\ 123 \\\ email.docx というファイルが存在する
  • C:\\ a \\ foobar.bmp、C:\\ a \\ foobar.doc、C:\\ a \\ foobar.gif というファイルが存在する

図3
図3:ファイル名が “sample.”、”mlwr_smple.” 、あるいは ”artifact.exe” の場合、解析環境とみなされ不正活動は続行されない

展開過程において、「TSPY_EMOTET.SMD10」は管理者権限を持たない場合別のプロセスで実行されます。プロセスに管理者権限がある場合は、以下の処理を行います。

  1. マルウェアを常駐させるために、PC起動時に毎回自動実行されるサービスを作成する
  2. サービスについての説明を「インターネット接続共有に使用する、サード パーティーのプロトコル プラグイン用のサポートを提供します」に変更する
  3. サービスを開始する
  4. プロセス名やシステム情報などのシステム情報を収集する
  5. 収集した情報を AES-128 アルゴリズムと SHA1ハッシュアルゴリズムで暗号化する
  6. 暗号化した情報をコマンド&コントロール(C&C)サーバに送出する

図4
図4:システムプロセス情報を収集し(左)、メモリに保存する(右)

図5
図5:C:\\WOW64\下で実行される現在のアプリケーションとシステムのバージョン情報を収集する

図4
図6:EMOTET のC2 IP(赤枠)とポート(黄枠)

■感染フロー

図7
図7:確認された亜種の感染フロー

この亜種の感染フローは、フィッシングメールから始まります。Eメールに含まれる不正なURL をクリックすると、不正なマクロを含む文書ファイルがダウンロードされます。

図8
図8:EMOTET関連のフィッシングメール

図9
図9:不正なマクロが含まれる文書

図10
図10:不正なマクロが 「cmd.exe」、次に「powershell.exe」を呼び出し、暗号化および難読化されたコマンドを実行する

このコマンドによって、hxxp://bonn-medien[.]de/RfThRpWC/ から「TSPY_EMOTET.SMD10」がダウンロードされ、ダウンロードされた PEファイルが遠隔の Webサイトから実行されます。

図11
図11:bonn-medien[.]de/RfThRpWC/ から「TSPY_EMOTET.SMD10」をダウンロードする Powershell のネットワークトラフィック

企業および個人ユーザは、フィッシング攻撃に対抗するベストプラクティスに従って、EMOTET のような脅威による被害を軽減できます。個人情報を要求してくる個人や法人には常に用心してください。多くの企業は慎重に扱う必要があるような個人情報や認証情報を安易に顧客に要求することはありません。もし疑わしければ、問題が発生するのを事前に防ぐため、その企業に問い合わせてみましょう。また、一般的なルールとして、たとえそれが「信頼できる」送信元から送られてきたものであったとしても、リンクをクリックしたりファイルをダウンロードしたりするべきではありません。さらに、企業は、メールゲートウェイにしっかりとしたセキュリティポリシーを導入することによって、データの送出など悪意のあるトラフィックをフィルタリング、検証、およびブロックし、ネットワークのインフラストラクチャを保護された状態に維持することができます。

■トレンドマイクロの対策

EMOTET のような脅威に対抗するためには、ゲートウェイ、エンドポイント、ネットワークおよびサーバにいたる多層的で積極的なセキュリティ対策が必要です。法人向けエンドポイント製品「ウイルスバスター™ コーポレートエディション XG」や中小企業向けのクラウド型エンドポイントセキュリティサービス「ウイルスバスター ビジネスセキュリティサービス」は、不正なファイルを検出し、関連する不正な URL をブロックすることによって、強固な保護を提供します。また、「Deep Discovery™ Email Inspector」は、不正な添付ファイルや URL を検出し、企業ユーザを保護します。

Trend Micro Hosted Email Security™」は、トレンドマイクロがクラウド上で運営しているサービスを利用するため、機能が継続的にアップデートされ、スパムメール、不正プログラム、スピアフィッシング、ランサムウェア、標的型サイバー攻撃などを常に最新の情報でブロックすることができます。Microsoft Exchange、Microsoft Office 365、Google Apps などの SaaS およびオンプレミスのメール環境を保護します。

ウイルスバスター™ コーポレートエディション XG」はクロスジェネレーション(XGen)セキュリティアプローチにより、グローバルスレットインテリジェンスに基づくさまざまな高度なセキュリティ技術に加えて、次世代の AI技術のひとつである高度な機械学習型検索を活用し、実行前・実行後両方に対応する独自のアプローチで、未知のファイルが脅威かどうか判別します。

■侵入の痕跡(Indicators of Compromise、IoCs)

関連する SHA256値

  • 「W2KM_POWLOAD.AUSJTV」
    455be9278594633944bfdada541725a55e5ef3b7189ae13be8b311848d473b53

  • 「W2KM_EMOTET.DG」
    3f75ee07639bbcebf9b904debae1b40ae1e2f2cbfcef44caeda21a9dae71c982

  • 「TSPY_EMOTET.SMD10」
    fbff242aeeff98285e000ef03cfa96e87d6d63c41080d531edcb455646b64eec

コマンド&コントロール(C&C)サーバ

  • 164[.]208[.]152[.]175:8080
  • 66[.]234[.]234[.]36:8080
  • 62[.]210[.]86[.]114:8080
  • 162[.]243[.]154[.]25:443
  • 37[.]187[.]57[.].57:443
  • 94[.]199[.]242[.]92:8080
  • 178[.]254[.]33[.]12:8080
  • 136[.]243[.]202[.]133:8080

C&C公開鍵
—–BEGIN RSA PUBLIC KEY—–
MGcCYDeWo1m4l56rx8uAsn+gsDBAYoJARIdddsLOaiOf4oxe0GGy3IruKSmi
RSMfzj93sIHm88vzhJOeUkLES+RuDXUwSfob8u8bx5TjoSmY2kdmx5rgkp8U
NqD3z+P0m6bAxwIDAQAB
—–END RSA PUBLIC KEY—–

参考記事:

翻訳:室賀 美和(Core Technology Marketing, TrendLabs)