脅威のスポットライト:オンラインバンクを狙う Gootkit

By Masaki Kasuya

本ブログ記事は、2020年4月13日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。

Gootkit は 2014 年の夏に現れたウェブインジェクション、パスワード搾取機能、スクリーンショット機能、ビデオ録画機能など多くの機能を持つバンキングトロイです。Gootkit のコアモジュールは node.js のランタイムを含む数多くの JavaScript ファイルを含んでいるため、そのファイルサイズは総じて大きくなります。事実、我々が解析した Gootkit のコアモジュールのファイルサイズは 6 MB を超えていました。

BlackBerry Cylance は 2019 年の 2 月から 4 月にかけてAZORult を経由して Gootkit をばらまくキャンペーンを観測しました。弊社によるモニタリングではGootkit が保存されている URL が頻繁に変わり、Gootkitの実行ファイルのハッシュがほぼ毎日変更されていることを確認しました。

本記事では AZORult を媒介とした Gootkit キャンペーンの情報を明らかにします。また、今回のキャンペーン期間中にフランスのオンラインバンクのアカウント情報を狙ったサンプルの解説を行います (a3c243afceb1fb38f25ae81816891d7d7c11ae76e80a43f31d2ceb9833f2f3df)。

 

技術的解説

AZORult を経た Gootkit キャンペーン

AZORult のブログで、BlackBerry Cylance はその C2 通信の詳細なプロトコルを明らかにしました。これを応用し、AZORult の C2 サーバから設定情報を収集するためのカスタムスキャナを実装しました。その結果、AZORult から Gootkit をばらまくキャンペーンを観測しました。その時期は下記のとおりです (表 1 と表 2 を参照)。

1. 2019 年 2 月 9 日 – 2019 年 2 月 11 日
2. 2019 年 2 月 15 日 – 2019 年 3 月 7 日
3. 2019 年 3 月 12 日 – 2019 年 3 月 13 日
4. 2019 年 3 月 31 日 – 2019 年 4 月 1 日

 

SHA256 (Gootkit)

URL

日付

879b1f79cbd105ff52ac9a0b01cee4be
f921df59e72fb7f5e41db48430ca9a85

hxxp://hairpd[.]com/stat/sputik[.]exe

2019 年 2 月 9 日

1d62fec40f14dd0458556f0211529df88
d19fe0249d195d6153388610c5525df

hxxp://camdunki[.]com/gx/Aleto[.]exe

2019 年 2 月 11 日

b9440e407b971def1d8a3d19c2da0e81
145aad4b29e51602fc11f566e9854537

hxxp://camdunki[.]com/gx/wipip[.]exe

2019 年 2 月 15 日

d01defb4fe8db26ea0151afa1c4e817db
1aba1c8464127110f7ef860164ed79a

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 16 日

6b19c0ec581ca24ef2a35d37af523ab2a
f19740585ad653d98593a057268e01c

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 17 日 - 2019 年 2 月 18 日

2a1dd210ed71e33e58aadd9157eebb35
ad38eb70cb182d244a8f9879f195b930

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 18 日

1b052c6d721f4dc36b3e58192ac6c664
d43aec8f15fcd2a8f91616f705192ebb

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 19 日

6a9b222b7be97ed608bcbef6dc05cff9f
b16ae9a31a08e719857cad6146dc8d7

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 20 日

e67ec7af646f6b9bdfe59e3549f84bd30
71c72386de57e9a9a5fe58982dbdd49

hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe

2019 年 2 月 21 日

5eb54a536d9b560b79c7113efa5eebcb
e21e9aede3f751d14a98b38c829a53b5

hxxp://chermin[.]tweakdsl[.]nl/loges/zip[.]exe

2019 年 2 月 22 日 AM

6c2d6abc2e130092f414d4f64adeb22d
ac56e8f802d4250c84db62a563bf99ec

hxxp://chermin[.]tweakdsl[.]nl/loges/zip[.]exe

2019 年 2 月 22 日 PM

9f6881386d0ff9a0cd2bc49da21b999d1
3e4ebdc858bdad755ee26898c567a3d

hxxp://chermin[.]tweakdsl[.]nl/loges/zip[.]exe

2019 年 2 月 23 日

ab54b89a75ee9d858b734e927ff16aef3
d5c8137552c9973864d7eed8aa5e472

hxxp://chermin[.]tweakdsl[.]nl/loges/zip[.]exe

2019 年 2 月 23 日 - 2019 年 2 月 24 日

3974b0985d524dd38a9d040c9eaf880c
421411210e0bdd577ac2306f6471a413

hxxp://chermin[.]tweakdsl[.]nl/loges/remove[.]exe

2019 年 2 月 24 日 - 2019 年 2 月 25 日

81a2c4c708c13338ed7aac439aa876c5
e1d2116afb23e7cf8a345a05ebd55eed

hxxp://chermin[.]tweakdsl[.]nl/loges/Atrip[.]exe

2019 年 2 月 26 日

fb05723ac5960a5776d7432429998d4a
48a3f7e74761046352c16712208bd983

hxxp://chermin[.]tweakdsl[.]nl/loges/
DlKitlMNdktild[.]exe

2019 年 2 月 28 日 AM

983b39b339bc62a09c20ea2f1b1360e1
7bf9431587e2a257ec4f3a62b4489ff4

hxxp://chermin[.]tweakdsl[.]nl/loges/
aHdBhBjUhBHm[.]exe

2019 年 2 月 28 日PM

212aeaf6cec0884743c2c3079dab17eb
581dc28329be3e023f62c751cd01169f

hxxp://chermin[.]tweakdsl[.]nl/loges/Astart[.]exe

2019 年 3 月 1 日 AM

fcbe6c55b2b092b1d97aa2d8a9ac6f356
5b10c47ae7d59b08552d0e2ee11d102

hxxp://chermin[.]tweakdsl[.]nl/loges/Astart[.]exe

2019 年 3 月 1 日 PM

729502b7b074e55f1e7d364ae3917043
76480a28081ca0d7eba4495fca3b1367

hxxp://kbhookah[.]com/loggers/repost[.]exe

2019 年 3 月 2 日 - 2019 年 3 月4 日

e70a9cfd7c9f1a23d00cdc5eba866ea6
c80a4a555498f8d0feba58a765b9aa39

hxxp://kbhookah[.]com/loggers/repost[.]exe

2019 年 3 月 5 日

d5ba0f1c01cf12f57cca93996d2f87191
c9420afbbd116d3757060d780338d29

hxxp://startintern[.]terweij[.]nl/wp-admin/repox[.]exe

2019 年 3 月 6 日

5766bffa91f87cd08582fac05209c5d8d
9356ad88e15499038dc624c0ccbc468

hxxp://startintern[.]terweij[.]nl/wp-admin/repox[.]exe

2019 年 3 月 7 日

c1ae38afb6c82b9107868d66318095f1
c00f1e92dddc0ee953c23a8de4ace353

hxxp://new[.]eltrans53[.]ru/uploads/utf8[.]exe

2019 年 3 月 12 日 - 2019 年 3 月 13 日

表1: ssl[.]admin[.]itybuy[.]it (AZORult C2 server) からの Gootkit キャンペーン

SHA256 (Gootkit)

URL

日付

a3c243afceb1fb38f25ae81816891d7d
7c11ae76e80a43f31d2ceb9833f2f3df

hxxp://ccleanerhome[.]com/fonts/igfpers[.]exe

2019 年 3 月 31 日 - 2019 年 4 月 1 日

表2: triangularty[.]com (AZORult C2 server) からの Gootkit キャンペーン

 

ローダーとコア DLL モジュール

図 1 に示すように Gootkit にはローダーとコア DLL モジュールの 2 つがあります 。ローダーの役割は解析回避、永続性の確保、コア DLL モジュールのダウンロードであり、コア DLL モジュールの主な役割は下記のとおりです。

  • ウェブインジェクション
  • キーロギング
  • VNC サーバの立ち上げ
  • ビデオ録画機能
  • その他

図1: Gootkit のローダとコア DLL モジュール

 

解析回避

Gootkit は下記の 4 つの解析回避テクニックを利用します。

1.   サンドボックスに関連する DLL ファイルのチェック
          a.    dbghelp.dll (Windows の標準デバッガモジュール)
          b.    sbiedll.dll (Sandboxie のモジュール)

2.   ユーザ名のチェック
          a.    CurrentUser
          b.    Sandbox

3.   コンピュータ名のチェック
          a.    SANDBOX
          b.    7SILVIA

4.   表 3 に示す Hardware BIOS 情報に関連するレジストリキーのチェック

レジストリキー

レジストリエントリ

データ

HKLM\HARDWARE\DESCRIPTION\System

SystemBiosVersion

  • AMI
  • BOCHS
  • QEMU
  • SMCI
  • INTEL – 6040000
  • FTNT-1
  • VBOX
  • SONI

HKLM\HARDWARE\DESCRIPTION\System

VideoBiosVersion

  • VirtualBox

HKLM\Software\Microsoft\Windows\CurrentVersion

SystemBiosVersion

  • 55274-640-2673064-23950
    (JoeSandbox に関連)
  •  76487-644-3177037-23510
    (CWSandbox に関連)
  •  76487-337-8429955-22614
    (Anubis に関連)

表3: 解析回避のためのレジストリチェック

図 2 は Hardware SystemBiosVersion をチェックするコードです。

図2: 解析回避のための Hardware SystemBiosVersion チェック

Gootkit が使う解析回避テクニックはアンチフォレンジックの側面も持ちます。表 3 で示す文字列は一時的なヒープ領域に保持されます。解析回避の最後でそのヒープ領域を解放します (図 3 参照)。これによりメモリフォレンジックによる情報収集を困難にします。

図3: メモリ解放により特徴的な文字列を消去  

 

永続性

Gootkit は永続性を保つために Pending GPO を利用します (図 4 を参照)。まず Gootkit はローダーの実行ファイルが存在するディレクトリに .inf ファイルを作成します。そのファイル名はローダーの実行ファイルと同じ名前となります。例えば、ローダーの実行ファイルの名前が “igfpers.exe” の場合、.infファイルの名前は“igfpers.inf” となります。

図4: Gootkit により作成された .inf ファイル

その後、図5に示すように “HKCU\Software\Microsott\IEAK\GroupPolicy\PendingGPOs” の配下に “Count”、“Path1” 及び “Section1” の 3 つのエントリを作成します。“Path1” は .inf ファイルのフルパスを含み、“Section1” は .inf ファイルに記載されているセクション名 (“DefaultInstall”) を保存しています。

図5: 永続性に関わるレジストリ

 

コア DLL モジュールのインストール

Gootkit ローダーは “--vwxyz” の引数を加えて自身を再起動し、C2 サーバから DLL モジュールをダウンロードします。その際、適切な “UserAgent” が付与されていないと DLL モジュールは取得できません。DLL モジュールをダウンロードすると、Gootkit はそれを最大 512,000 バイトのチャンクに分解し、“HKCU\Software\AppData\Low\finget_{index number}” にそのチャンクを保存します (図 6 参照)。これにより Gootkit は再起動後もコア DLL モジュールをロードすることが可能となります。このため、Gootkit のコア DLL モジュールはファイルレスの性質を持ちます。

図6: コア DLL モジュールの保存

この DLL モジュールは復号され、“RTLDecompressBuffer” API で解凍されます。解凍された DLL モジュールの内部には数多くの JavaScript ファイルを含みます。多くの JavaScript ファイルは Node.js に関わりのあるライブラリですが、一部の JavaScript ファイル (“malware.js”、“spyware.js”、“zeusmask.js” など) は悪意ある動作を行うことを目的に作成されています。これらの悪意ある JavaScript ファイルにより Gootkit は様々な機能を持ちます。

  • コア DLL モジュールのアップデート
  • VNC サーバの起動
  • キーロギング
  • オンラインバンクの ID / パスワードを盗むスクリプトの挿入
  • ビデオ録画
  • E メール情報の搾取
  • その他

また図 7 のように Gootkit のコアモジュールは仮想環境を検知することを目的とした JavaScript ファイルも含みます。

図7: VM チェック

 

ウェブインジェクション

今回解析した Gootkit のコア DLL モジュールを経由して取得したウェブインジェクションスクリプトは、フランスのオンラインバンクのユーザアカウント情報を盗むことを目的としていました。図 8 はウェブインジェクションスクリプトの一部を記載しています。図 8 の赤枠に囲った URL は5 つのオンラインバンクごとにカスタマイズされたウェブインジェクションスクリプトがありました。いずれのスクリプトもブラウザを監視し、特定のオンラインバンクに訪れた際にアカウント情報を盗むように設計されていました。

図8: フランスにあるオンラインバンクに対するウェブインジェクションスクリプト

また、ソフトウェアキーボードを使って入力する PIN コードも取得できるスクリプトも実装されていました。セキュリティを意識し、オンラインバンクのパスワードや PIN をソフトウェアキーボードで入力する注意深いユーザであっても、Gootkit は偽のソフトウェアキーボードを表示することにより、ソフトウェアキーボード経由で入力された情報も取得することができます。

 

まとめ

本ブログでは AZORult を経由した Gootkit キャンペーンについて解説しました。本キャンペーンでは、攻撃者は定期的に Gootkit の実行ファイルのハッシュやそのファイルを保持している URL を変更していました。我々のモニタリングでは、本キャンペーンは 2019 年の 2 月から 4 月の間に観測できました。解析した Gootkit ファイルは 5 つのフランスにあるオンラインバンクのユーザ情報を盗むことを目的としていました。

BlackBerry Cylance の AI は、百万を超えるファイルの脅威の特徴に基づいて様々な脅威を特定できるようトレーニングされています。BlackBerry Cylance のセキュリティエージェントは、マルウェアの DNA に基づいて脅威を特定し、防御します。予測防御により既知及び未知の脅威から保護する BlacyBerry Cylance はあらゆるマルウェアから様々な特徴を学習し、Gootkit を検出することができています。

CylancePROTECT® をご利用中のお客様は、BlackBerry Cylance の機械学習モデルによってこの攻撃から既に防御されています。詳しくは こちらを御覧ください。 

 

付録

侵入の痕跡 (IoC)

  • SHA256
    o   Gootkit ローダー
    • a3c243afceb1fb38f25ae81816891d7d7c11ae76e80a43f31d2ceb9833f2f3df        
    • c1ae38afb6c82b9107868d66318095f1c00f1e92dddc0ee953c23a8de4ace353
    • 5766bffa91f87cd08582fac05209c5d8d9356ad88e15499038dc624c0ccbc468
    • d5ba0f1c01cf12f57cca93996d2f87191c9420afbbd116d3757060d780338d29
    • e70a9cfd7c9f1a23d00cdc5eba866ea6c80a4a555498f8d0feba58a765b9aa39
    • 729502b7b074e55f1e7d364ae391704376480a28081ca0d7eba4495fca3b1367
    • fcbe6c55b2b092b1d97aa2d8a9ac6f3565b10c47ae7d59b08552d0e2ee11d102
    • 212aeaf6cec0884743c2c3079dab17eb581dc28329be3e023f62c751cd01169f
    • 983b39b339bc62a09c20ea2f1b1360e17bf9431587e2a257ec4f3a62b4489ff4
    • fb05723ac5960a5776d7432429998d4a48a3f7e74761046352c16712208bd983
    • 81a2c4c708c13338ed7aac439aa876c5e1d2116afb23e7cf8a345a05ebd55eed
    • 3974b0985d524dd38a9d040c9eaf880c421411210e0bdd577ac2306f6471a413
    • ab54b89a75ee9d858b734e927ff16aef3d5c8137552c9973864d7eed8aa5e472
    • 9f6881386d0ff9a0cd2bc49da21b999d13e4ebdc858bdad755ee26898c567a3d
    • 6c2d6abc2e130092f414d4f64adeb22dac56e8f802d4250c84db62a563bf99ec
    • 5eb54a536d9b560b79c7113efa5eebcbe21e9aede3f751d14a98b38c829a53b5
    • e67ec7af646f6b9bdfe59e3549f84bd3071c72386de57e9a9a5fe58982dbdd49
    • 6a9b222b7be97ed608bcbef6dc05cff9fb16ae9a31a08e719857cad6146dc8d7
    • 1b052c6d721f4dc36b3e58192ac6c664d43aec8f15fcd2a8f91616f705192ebb
    • 2a1dd210ed71e33e58aadd9157eebb35ad38eb70cb182d244a8f9879f195b930
    • 6b19c0ec581ca24ef2a35d37af523ab2af19740585ad653d98593a057268e01c
    • d01defb4fe8db26ea0151afa1c4e817db1aba1c8464127110f7ef860164ed79a
    • b9440e407b971def1d8a3d19c2da0e81145aad4b29e51602fc11f566e9854537
    • 1d62fec40f14dd0458556f0211529df88d19fe0249d195d6153388610c5525df
    • 879b1f79cbd105ff52ac9a0b01cee4bef921df59e72fb7f5e41db48430ca9a85
       
  • ドメイン名
    o   Gootkit の C2 サーバ
    • sillikogermin[.]com
    • feferturietan[.]com
    • manjuorlidnqo[.]com
    • chechelderpos[.]com
    • kalamindridro[.]com
    • avant-garde[.]host
    • kinzhal[.]online
    • servicemanager[.]icu
    • partnerservice[.]xyz
    o  ウェブインジェクションスクリプトを保持していたドメイン
    • mabanquesecure[.]com
       
  • URLs
    o   Gootkit DLL モジュール
    • sillikogermin[.]com/rbody32
       
  • Gootkit ローダーを保有していた URL
    • hxxp://ccleanerhome[.]com/fonts/igfpers[.]exe
    • hxxp://new[.]eltrans53[.]ru/uploads/utf8[.]exe
    • hxxp://startintern[.]terweij[.]nl/wp-admin/repox[.]exe
    • hxxp://kbhookah[.]com/loggers/repost[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/Astart[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/aHdBhBjUhBHm[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/DlKitlMNdktild[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/Atrip[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/remove[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/zip[.]exe
    • hxxp://chermin[.]tweakdsl[.]nl/loges/tlss[.]exe
    • hxxp://camdunki[.]com/gx/wipip[.]exe
    • hxxp://camdunki[.]com/gx/Aleto[.]exe
    • hxxp://hairpd[.]com/stat/sputik[.]exe
       
  • 永続性
            o   .INI ファイル
                  ▪    e.g., C:\Users\USERNAME\Desktop\igfpers.inf
            o   レジストリキー
                  ▪    HKCU\Software\Microsott\IEAK\GroupPolicy\PendingGPOs
            o   レジストリバリュー / データ
                  ▪    Path1 / Path to Gootkit loader
                  ▪    
    Section1 / DefaultInstall (.inf file に存在するあるセクション名を指す)

  • 特徴的な文字列
            o   --vwxyz (C2 サーバから Gootkit DLL モジュールをダウンロードするためのプロセスを起動する際に使用)

 

著者について

 

 

 

Tags: