Windowsの 「デフォルトの印刷モニター」として登録される悪意のあるダウンローダー DePriMonを検出

ESETの研究者は、これまで実環境で確認されてきたインストール手法とは異なる特異な手法を用いる悪意のあるダウンローダーDePriMonを検出しました。

ESET Research 21 Nov 2019

DePriMonは、いくつかの攻撃段階があり、これまでに公開されたことのない新しい手法を使用しています。このマルウェアは、常駐するために新しいローカルポートモニターを登録します。この手法は、MITRE ATT&CKナレッジベースでは「ポートモニター」のカテゴリに分類されます。「Windowsのデフォルトの印刷モニター(Default Print Monitor)」の名前を使用しているため、ESETはこのマルウェアをDePriMonと命名しました。複雑な仕組みとモジュールアーキテクチャが採用されていることから、攻撃のための一種のフレームワークと考えることができます。

ESETが収集している情報から、DePriMonは少なくとも2017年3月から活動を続けており、中央ヨーロッパに本拠を置く民間企業および中東地域の数十台のコンピューターで検出されました。

C&Cサーバーとして使用されるドメイン名の一部にはアラビア語が含まれており、特定の地域を狙った攻撃であることがわかります。DePriMonは、標的がいくつかの地域に分散している以外に、非常に精緻に作成されたマルウェアであり、暗号化が多くかつ適切に使用されている点でも注目に値します。

この脅威からユーザーを保護するため、ESETではダウンローダーに焦点を当てて、この新しく検出されたマルウェアを徹底的に分析しました。ESETは最初の攻撃段階についての情報を入手していないため、最初の配信方法とセキュリティ侵害方法を把握していません。この攻撃で使用される最終的なペイロードの種類も、今後明らかにするべき課題として残っています。

しかし、同じコンピューターでDePriMonは、同時期にColoredLambertマルウェアと一緒に検出されていたことには注意が必要です。ColoredLambertは、サイバースパイグループのLamberts(別名Longhorn)が使用していたマルウェアであり、CIAの極秘作戦に関する機密文書Vault 7の漏洩に関連しています。シマンテックカスペルスキーのアナリストは、2017年4月にこの攻撃に関する分析を公開しています。

技術的な分析

第2段階

DePriMonの2番目と3番目の攻撃段階は、最初の攻撃段階で標的ユーザーのディスクに配信されて準備されます。2番目の段階ではマルウェア自身をインストールし、暗号化およびハードコーディングされたパスを使用して3番目の攻撃をロードします。最初の攻撃段階を起点にして後続の攻撃を実行していることが考えられます。

このマルウェアのインストール方法は独特です。これは、MITRE ATT&Cの攻撃分類では、常駐化と権限昇格の両方の手法に属する「ポートモニター」と説明されています。DePriMonは、これまでに公開されたことのない手法を使用したマルウェアの最初の例であるとESETは考えています。

2番目の攻撃段階では、次のレジストリキーと値を作成して、3番目の攻撃段階のDLLをポートモニターとして登録します。

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Windows Default Print Monitor
Driver = %PathToThirdStageDLL%

このレジストリキーを作成するには、管理者権限が必要です。

システムの起動時に、登録されたDLLは、SYSTEM権限でspoolsv.exeによってロードされますが、ここでは独自の手法が取り入れられており、攻撃者にとって非常に効果的になっています。

2番目の段階では、%system32%フォルダに3番目の攻撃段階のDLLファイルと同じ名前で「.dll」拡張子のないファイルがあるかどうかを定期的にチェックします。このファイルはアンインストールを開始するために使用されます。DePriMonがこのファイルを検出すると、バイナリを上書きしてから削除することにより、このファイルとそのコンポーネントの両方を安全な方法で削除します。

第3段階

DePriMonのオペレーターからメインペイロードをダウンロードする第3の段階でも、いくつかの興味深い手法が使用されています。

C&Cとの通信では、WinHTTPWinInetなどの一般的なAPIではなく、MicrosoftのSSL/TLS実装であるセキュアチャネルを使用します。この構成は非常に複雑であり、マルウェアによる処理方法も複雑です。このマルウェアの作成者は、暗号化に膨大な努力を費やしており、DePriMonマルウェアの分析を困難にしています。

C&Cとの通信

DePriMonは、TLSを介して安全に通信しますが、マルウェアで多く見られるような上位レベルでの通信ではありません。接続はWindowsソケットで開始され、NTLM SSPとのネゴシエーションで認証されたセキュリティサポートプロバイダーインターフェイス(SSPI)セッションを開始して続行できます。その後、DePriMonはSchannelを使用します。

SSPIは、構成ファイル内の特定のフラグに応じて、使用されることも使用されない場合もあります。SSPIはマシンのローカルプロキシ設定を利用できます。この実装は、Microsoftが提供しているこのサンプルに似ています。

Schannelを介したこのマルウェアのTLSの実装は、Coast Research & Developmentのこのサンプルに似ています。このサンプルには、認証情報の作成、クライアントハンドシェイクの実行、サーバー証明書の検証が含まれます。

図1 Hex-Rays Decompilerによる出力されたSSPI実装の一部

通信が確立されると、第3の攻撃段階では、毎回メッセージが手動で暗号化および復号化されます。

構成

DePriMonの第3の攻撃段階の構成データには27個の要素が含まれていますが、これはダウンローダーとしては非常に多い数字です。この構成データはAES-256で暗号化され、バイナリに埋め込まれます。

最初の実行で、DePriMonの第3段階(ダウンローダー)は、構成データをキー2(IoCのセクションを参照)で復号化し、キー3で暗号化し、暗号化された構成ファイルを一時フォルダに保存します。構成ファイルのファイル名は、次に説明するプロセスで作成されます。2番目のバイトから開始して、キー2の値はbase 36の数値に変換されますが、独自の英数字「abc…xyz012…789」を使用してエンコードされます。構成ファイルの拡張子は「.tmp」です。

構成ファイルのパスの例: %temp%\rb1us0wm99sslpa1vx.tmp.

第2の攻撃段階を実行するときに、ダウンローダーは自分自身からではなく構成ファイルから構成データを読み取ります。この方法では、攻撃者は構成を簡単に更新できます。

安全を確保する設計がされており、構成は暗号化されずにメモリに残ることはありません。ダウンローダーは、構成ファイルの要素を使用する必要がある場合には毎回、構成ファイルを復号化し、その要素を取得して、ファイルを再度暗号化します。

この設計は、マルウェアの主要な機能であるC&Cとの通信をメモリフォレンジックから保護します。

図2 Hex-Rays Decompilerで確認されたコードの一部。DePriMonマルウェアは、構成ファイルを復号化し、いくつかの要素をローカル変数に保存し、再度暗号化している。

構成ファイルの重要な要素は以下があります。

  • ユーザーネーム用の2つのエントリとパスワード用の2つの要素(プロキシサーバーがマシンに設定されている場合)。これは、認証情報が設定されているプロキシを介して攻撃する準備をしていることを示唆してします。ただし、これらの詳細情報を盗む能は確認されていないため、攻撃の他の段階で実行されていると考えられます。
  • 3つのC&Cサーバーの3つのエントリ。それぞれが異なるケースに使用されています。
  • 3つのポートの3つのエントリ。それぞれが異なるケースに使用されています。
  • ダウンローダーが、適切なプロキシまたはソケットのみを使用してセキュリティサポートプロバイダーインターフェイス(SSPI)を介して接続を開始するかを示すフラグ(後述)。

マルウェアの検体から抽出されたC&Cサーバーに加えて、このマルウェアに関連する可能性のある別のドメインとサーバーについてもESETは特定しています。

暗号化

このマルウェアは、異なる目的のために3つの異なる256ビットキーでAES暗号化アルゴリズムを使用します(これらのキーはIoCセクションに記載されています)。

キー1:マルウェア内のさまざまな機密性の高い文字列を復号するためのキー。

キー2:メモリ内の構成データを暗号化および復号化するキー(前述)。このキーは、3番目のキーの生成にも使用されます。

キー3:ディスクの構成ファイルを暗号化および復号化するキー。

このキーはハードコーディングされていませんが、32バイトの配列を使用して導出され、暗号化されます。配列は以下のように生成されます。最初の4バイトはシステムドライブのボリュームシリアル番号で、残りの28バイトには値5〜32が含まれます。この配列はキー2で暗号化され、キー3になります。

結論

DePriMonは非常に精緻に作成されたダウンローダーであり、この開発者はアーキテクチャの設定と最重要コンポーネントの作成に膨大な労力を費やしています。

DePriMonはメモリにダウンロードされ、反射型のDLL読み込み手法を使用して、DLLを直接実行します。ディスクに保存されることがなく、驚くほど大規模な構成ファイルがあり、いくつかの興味深い要素が含まれています。暗号化が適切に実装されており、C&C通信を効果的に保護しています。

DePriMonは、ペイロードをダウンロードして実行し、システムとそのユーザーに関する基本的な情報を収集するように設計された、強力で柔軟に利用できる常駐型のツールです。

セキュリティ侵害の痕跡(IoC)

ESETの検出名

Win32/DePriMon
Win64/DePriMon

SHA-1ハッシュ

02B38F6E8B54885FA967851A5580F61C14A0AAB6
03E047DD4CECB16F513C44599BF9B8BA82D0B7CB
0996C280AB704E95C9043C5A250CCE077DF9C8B2
15EBE328A501B1D603E66762FBB4583D73E109F7
1911F6E8B05E38A3C994048C759C5EA2B95CE5F7
2B30BE3F39DEF1F404264D8858B89769E6C032D9
2D80B235CDF41E09D055DD1B01FD690E13BE0AC7
6DB79671A3F31F7A9BB870151792A56276619DC1
6FAB7AA0479D41700981983A39F962F28CCFBE29
7D0B08654B47329AD6AE44B8FF158105EA736BC3
7E8A7273C5A0D49DFE6DA04FEF963E30D5258814
8B4F3A06BA41F859E4CC394985BB788D5F76C85C
94C0BE25077D9A76F14A63CBF7A774A96E8006B8
968B52550062848A717027C512AFEDED19254F58
9C4BADE47865E8111DD3EEE6C5C4BC83F2489F5B
AA59CB6715CFFF545579861E5E77308F6CAEAC36
C2388C2B2ED6063EACBA8A4021CE32EB0929FAD2
CA34050771678C65040065822729F44B35C87B0C
D38045B42C7E87C199993AB929AD92ADE4F82398
E272FDA0E9BA1A1B8EF444FF5F2E8EE419746384
E2D39E290201010F49652EE6116FD9B35C9AD882
F413EEE3CFD85A60D7AFC4D4ECC4445BB1F0B8BC

ドメイン

ドメインIPアドレス
img.dealscienters[.]net138.59.32.72
teknikgorus[.]com88.119.179.17
wnupdnew[.]com190.0.226.147
babmaftuh[.]com185.56.89.196
alwatantrade[.]com188.241.60.109
shayalyawm[.]com5.226.168.124
elehenishing[.]com185.225.17.77
almawaddrial[.]com46.151.212.202
mdeastserv[.]com46.151.212.201

キーの例

キー1: C097CF17DC3303BC8155534350464E50176ACA63842B0973831D8C6C8F136817
キー2: 8D35913F80A23E820C23B3125ABF57901BC9A7B83283FB2B240193ABDEDE52B9
キー3: Derived as described earlier.

ファイル名

dpnvmrs.dll
hp3mlnv.dll
hp4mlnv.dll
hp5nhd.dll
hp6nhd.dll
hpjdnb64.dll
hpmdnel3b.dll
ifssvc.dll
ifssvcmgr.dll
msprtmon64.dll
msptromn.dll
plamgr.dll
ppcrlchk.dll
ppcrlupd.dll
printmon.dll
prntapt.dll
prntqdl64.dll
pscript6f.dll
pscript6s.dll
shprn64.dll
stprn32.dll
tzutil.dll
winmnprt.dll

MITRE ATT&CKの手法

手段ID名称説明
常駐化T1013ポートモニターDePriMonは、常駐化するためにコンポーネントの1つをポートモニターとしてインストールします。
防御回避T1036偽装偽装 DePriMonは、一般的なシステムDLLのような名前でコンポーネントをSytem32フォルダに配置します。
T1107ファイル削除DePriMonは、ファイルをランダムなデータで上書きしてから削除することにより、安全に自身を削除します。
T1112レジストリの変更DePriMon は、HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors. にレジストリエントリを追加し、常駐化します。
T1134アクセストークンの操作DePriMonは、マシンのプロキシ設定に関する情報を取得するためのユーザートークンを取得します。
T1140ファイルや情報の難読化/復号化DePriMonは、AES-256を使用して文字列と構成ファイルの一部を暗号化します。
検出T1007システムサービスの検出DePriMonは、システムに登録されているサービスを一覧表示できます。
T1057プロセス検出DePriMonは、システムで実行中のプロセスを一覧表示できます。
T1082システム情報検出DePriMonは、システムに関するさまざまな情報を収集します。
T1124システム時刻の検出DePriMonはシステムの時刻を定期的にチェックし、それに基づいてアンインストールなどのさまざまなアクションを実行します。
C&CT1043通常使用されるポートDePriMonは、C&C通信にポート443および8080を使用します。
T1071標準アプリケーションレイヤープロトコルDePriMonは、C&C通信にHTTPを使用します。
T1090通信プロキシDePriMonはローカルプロキシ設定を使用して、通信が疑われないようにします。