AhnLab セキュリティセンター

【分析レポート】 金融取引情報を狙うマルウェア 「Emotet」

2017-10-17

アンラボは、2017年8月、クラウド基盤の脅威分析および対応システムである ASD (AhnLab Smart Defense) により、金融情報を搾取するマルウェア 「Emotet (エモテット)」 がスパムボットネットを通じて配布されていることを確認した。Emotet が初めて発見されたのは2014年である。

今回発見された Emotet は、ユーザーの金融取引情報を盗み取る目的で、悪性行為に必要な機能をモジュール化し、C&C サーバーから当該モジュールをダウンロードして動作する特徴を持っている。

 

以下では、Emotet の配布および動作方式、主な悪性行為について説明する。

 

 

1. Emotet の配布および動作方式

 

Emotet の配布および動作方式は、[図 1] のとおりである。

 

 

 

[図 1] Emotet の配布および動作方式

 

 

アンラボの分析結果によると、2017年8月に確認された Emotet は、以下の方式で動作する。

---------------------------------------------------------------------------------

① スパムメールに添付されたファイルを通じて Emotet をダウンロードおよび実行

② 自動実行サービスに Emotet を登録

③ OS 情報、実行中のプロセスリスト、Emotet の PE CRC、コンピューター名、ボリュームシリアル番号を暗号化して転送

④ C&C サーバーから、悪性行為を追加で行うためのモジュールをダウンロード

⑤ ダウンロードしたモジュールを実行

---------------------------------------------------------------------------------

 

ボットネットを通じて送信されるスパムメールには Word ファイルが添付されており、ファイルには悪性マクロが含まれている。

 

 

 

[図 2]スパムメールの添付ファイルに含まれた悪性マクロ

 

 

Word ファイルには、「このファイルは保護されています。マクロの実行を許可してください。」 のような悪性マクロの実行を誘導するメッセージが表示される。ユーザーが許可すると、[図 3] のように難読化された PowerShell コマンドが実行され、Emotet (以下、Emotet ローダー) が外部 URL からシステムにダウンロード・実行される。

 

 

 

[図 3]難読化された PowerShell コマンド

 

 

 

2. 主な悪性行為

 

悪性 URL からダウンロードされた Emotet ローダーが実行されると、真っ先にサービス登録を行う。その後、ユーザー情報を収集し、C&C サーバーと通信して悪性行為を追加で行うためのモジュールをダウンロードする。

以下は、Emotet ローダーが行う主な悪性行為の流れである。

---------------------------------------------------------------------------------

① Emotet ローダーの再実行のため、サービス登録

② コンピューター名および OS 情報、実行中のプロセスリスト情報を収集

③ CryptoAPI を利用して、収集した情報を暗号化

④ C&C サーバーと通信

⑤ C&C サーバーから送信されたデータを復号化した後、モジュールを実行

---------------------------------------------------------------------------------

 

 

2-1. サービス登録

 

Emotet ローダーは、サービスの生成および列挙に関する権限を確認するため、OpenSCManagerW API を呼び出す。この際、サービスの生成および列挙に関する権限を獲得すると、Emotet ローダーのサービスへの登録を行い、[%Windir%\System32] に自らを複製する。

 

 

 

[図 4]OpenSCManagerW の呼び出しおよび権限確認

 

 

[図 4] の 0x40884A コードを見ると、OpenSCManagerW API 呼び出しの結果の値によって DS:[40B2A4] 値が変わるのが分かる。

また、[図 5] の 0x4088EC コードで DS:[40B2A4] の 1 Byte 値は、Emotet ローダーが自らを複製するパスを決定する。

 

 

 

[図 5]DS:[40B2A4] の値による、自己複製パス決定コードの一部

 

 

権限獲得の有無によって、以下のように Emotet ローダーの自己複製パスが変わる。

---------------------------------------------------------------------------------

・ ​権限の獲得に成功した場合

 :%Windir%\System32

・ 権限の獲得に失敗した場合​

 :%Appdata%\Local\Microsoft\Windows

---------------------------------------------------------------------------------​

 

Emotet ローダーは、自己複製したファイルの名前を決めるため、サービスおよびファイルの生成に使用する以下のキーワードから2つのキーワードをランダムに選択する。

---------------------------------------------------------------------------------

agent,app,audio,bio,bits,cache,card,cart,cert,com,crypt,dcom,defrag,

device,dhcp,dns,event,evt,flt,gdi,group,help,home,host,info,iso,launch,

log,logon,lookup,man,math,mgmt,msi,ncb,net,nv,nvidia,proc,prop,prov,

provider,reg,rpc,screen,search,sec,server,service,shed,shedule,spec,srv,

storage,svc,sys,system,task,time,video,view,win,window,wlan,wmi

---------------------------------------------------------------------------------

 

選択されたキーワードは、自己複製されるファイル名とサービス名に適用される。

 

サービス生成後、Emotet ローダーは、サービス説明値を変更する ChangeSer- viceConfig2W API を呼び出す。呼び出された API は、既存のサービス説明からランダムに選択された値をコピーして説明値を変更する。

 

 

  

[図 6] サービス説明値の変更

 

 

 

2-2. ユーザー情報の収集

 

サービス生成終了後、Emotet ローダーはユーザー情報 (OS バージョン、コンピューター名、ボリュームシリアル番号、実行中のプロセスリスト、PE CRC) を収集する。収集されたデーターは暗号化され、C&C サーバーに転送される。

 

 

 

2-3. CryptoAPI を利用したデータ暗号化

 

Emotet ローダーは、収集したユーザー情報を暗号化する。

暗号化には、カスタム暗号化方式と CryptoAPI を利用した方式が使用される。CryptoAPI を利用した方式の場合、[図 7] のようにファイル内部に RSA 公開キーが存在し、当該キーは CryptGenKey API で呼び出したランダムの AES-128 対象キー値の暗号化に使用される。

 

 

 

[図 7] ファイル内部に存在する RSA 公開キーの獲得および AES-128 ランダムキー値の生成

 

 

Emotet ローダーファイル内には RSA 公開キーが存在し、CryptDecodeObjectEx API により復号化された RSA 公開キーは [図 9] のとおりである。

 

  

[図 8] ファイル内部の RSA 公開キー

 

 

[図 9] 復号化された RSA 公開キー

 

 

最終的に Emotet ローダーは、CryptEncrypt API を利用して AES-128 CBC モード暗号化を実行し、データに対するハッシュ値を生成する。

また、CryptExportKey API を利用して、暗号化に使用された AES-128 キー値を抽出してメモリにコピーする。

 

 

 

[図 10] データの暗号化

 

 

 

2-4. C&C サーバーへの転送

 

Emotet ローダーは POST 送信方式を使用して暗号化されたデータを C&C サーバーに転送する。 

 

 

 

[図 11] データの転送

 

 

C&C サーバーはクライアント側にレスポンスとして 404 エラー値を返すが、データ内部には追加で悪性行為を行うためのモジュールが含まれている。

 

 

  

[図 12] 404 エラー

 

 

分析した際には C&C サーバーへのアクセスが遮断されていたため、悪性モジュールを確認することができなかったが、C&C サーバーから実際に悪性モジュールが送信される場合、返されるレスポンスのサイズは 0x1c000 以上であると言われている。

 

 

 

2-5. C&C サーバーから送信されたデータの復号化および実行

 

C&C サーバーへのアクセスが遮断されていたため、悪性モジュールは確保できなかったが、静的分析によりモジュールのダウンロード後に行われる悪性行為を確認した。

 

Emotet ローダーは、C&C サーバーから送信されたデーターを復号化した後、悪性モジュールと推定されるファイルを実行する。

 

 

  

[図 13] 追加モジュールファイルの生成および実行コードの一部

 

 

システムが Emotet に感染し、追加で悪性行為を行うモジュールが実行されると、PC で実行中の Web ブラウザにユーザー情報を搾取するモジュールがインジェクションされ動作する。

 

C&C サーバーからダウンロードされる悪性モジュールは、以下のとおりである。

---------------------------------------------------------------------------------

・ ネットワークを介したマルウェア配布に使用されるモジュール

・ スパムメールの送信に使用されるモジュール

・ Web ブラウザにインジェクションされ、金融情報の搾取に使用されるモジュール

---------------------------------------------------------------------------------

 

 

アンラボ V3 製品では、当該マルウェアを以下の検知名で検知できる。

- Trojan/Win32.Emotet (2017.09.20.00) ​ 

top