Dridexが用いる新たなUAC回避手法 (2015-02-09)
今回は、マルウエアDridexが2014年12月頃から用いるようになった、新しいUAC回避手法について紹介します。
Dridexは、インターネットバンキングの不正送金に関係するマルウエアの1種として知られている、C&CサーバとHTTPで通信するボットです。
JPCERT/CCで確認しているDridexの多くは、図 1のような過程をたどって、Word文書(マクロ付き)タイプのマルウエアによってダウンロード・実行されます。また、Dridexは2つのモジュールから構成され、最初のモジュールが本体モジュールをダウンロードする2段階の構成になっています。
従来のUAC回避手法
新しいUAC回避手法について述べる前に、まず従来の手法について解説します。UAC回避を行う代表的なマルウエアとして、前回の記事で紹介したPlugXがあります。PlugXが行う典型的なUAC回避手法は、図 2のとおりです。
|
図 2: 従来のUAC回避手法
この手法では、次のようなWindows 7の挙動を悪用することで、UACの警告を表示させないまま管理者権限への昇格を実現しています。
- explorer.exeのような、Windows Publisherによってデジタル署名されているプログラムで、かつセキュリティで保護されたフォルダに存在するプログラムは、管理者権限が必要となる一部の処理(ここではC:\Windows\System32\sysprep\へのDLLの移動)を、UACの警告表示無しで実行可能である。
- sysprep.exeのような自動昇格プログラムと呼ばれるプログラムは、起動時にUACの警告表示無しで管理者権限に自動的に昇格する。
- C:\Windows\System32\sysprep\sysprep.exeを実行し、sysprep.exeにC:\Windows\System32\sysprep\cryptbase.dllを管理者権限でロードさせる。
自動昇格に関する詳細な情報は、参考文献[1]をご参照ください。
アプリケーション互換性データベースを用いた新たなUAC回避手法
Dridexの分析によりJPCERT/CCが確認した新たなUAC回避手法は、アプリケーション互換性データベースを用いる点に特徴があります。アプリケーション互換性データベースとは、互換性に問題のあるアプリケーションを実行する際のルールを設定するファイルで、拡張子はsdbです。Dridexはこの仕組みを用いることで、図 3のようにしてUACを回避していました。
|
図 3: 新たなUAC回避手法
この手法は、次のようなWindows 7の仕様を悪用しているだけで、従来の手法に比べよりシンプルです。これにより、Windowsの仕様が変更されたとしても、継続してこの手法を用いることができる可能性が高まります。
- sdbinst.exeやiscsicli.exeのような自動昇格プログラムは、プログラム起動時にUACの警告表示無しで管理者権限に自動的に昇格する。
- 他のプログラムの動作を変更可能であるsdbinstコマンドが、自動昇格プログラムとなっている。
では、実際にインストールされる$$$.sdbを見てみましょう。次のようにHEXエディタで確認すると、iscsicli.exeの実行時に、iscsicli.exeが$$$.batを実行するよう指定したデータベースであることが分かります。
00000190 2e 00 33 00 00 00 01 88 12 00 00 00 69 00 73 00 |..3.........i.s.|
000001a0 63 00 73 00 69 00 63 00 6c 00 69 00 00 00 01 88 |c.s.i.c.l.i.....|
000001b0 1a 00 00 00 69 00 73 00 63 00 73 00 69 00 63 00 |....i.s.c.s.i.c.|
000001c0 6c 00 69 00 2e 00 65 00 78 00 65 00 00 00 01 88 |l.i...e.x.e.....|
000001d0 0c 00 00 00 50 00 61 00 74 00 63 00 68 00 00 00 |....P.a.t.c.h...|
000001e0 01 88 14 00 00 00 4d 00 69 00 63 00 72 00 6f 00 |......M.i.c.r.o.|
000001f0 73 00 6f 00 66 00 74 00 00 00 01 88 04 00 00 00 |s.o.f.t.........|
00000200 2a 00 00 00 01 88 18 00 00 00 52 00 65 00 64 00 |*.........R.e.d.|
00000210 69 00 72 00 65 00 63 00 74 00 45 00 58 00 45 00 |i.r.e.c.t.E.X.E.|
00000220 00 00 01 88 52 00 00 00 25 00 4c 00 4f 00 43 00 |....R...%.L.O.C.|
00000230 41 00 4c 00 41 00 50 00 50 00 44 00 41 00 54 00 |A.L.A.P.P.D.A.T.|
00000240 41 00 25 00 4c 00 6f 00 77 00 5c 00 24 00 24 00 |A.%.L.o.w.\.$.$.|
00000250 24 00 2e 00 62 00 61 00 74 00 00 00 00 00 00 00 |$...b.a.t.......|
また、作成後に管理者権限で実行される$$$.batは次のようになっており、Dridexのコピーであるedg3FAC.exeを実行することが分かります。さらに、$$$.batは、UAC回避後すぐに、インストールされたアプリケーション互換性データベースをアンインストールし、UAC回避の痕跡を消しています。
start C:\Users\user_name\AppData\Local\edg3FAC.exe C:\Users\user_name\Desktop\malware.exe
sdbinst.exe /q /u "C:\Users\user_name\AppData\LocalLow\$$$.sdb"
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom\iscsicli.exe" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB\{f48a0c57-7c48-461c-9957-ab255ddc986e}" /f
del C:\Windows\AppPatch\Custom\{f48a0c57-7c48-461c-9957-ab255ddc986e}.sdb
del %LOCALAPPDATA%Low\$$$.sdb
del %LOCALAPPDATA%Low\$$$.bat
おわりに
ここで紹介した新しいUAC回避手法は、Dridexだけでなく、既に別のマルウエアでの使用も確認されています。また、UACを回避して得た管理者権限では、管理者権限が必要なマルウエアの実行以外に、Windows ファイアウォールの設定変更が行われるケースも見つかっています。
分析センター 中津留 勇
2015年5月12日追記
2015年4月29日に、アプリケーション互換性データベースに関する更新プログラム(KB3045645)がマイクロソフト社より公開されました。
この更新プログラムを適用した環境で、本手法が用いられた場合には、図4の警告が表示されます。本手法によるUAC回避を防ぐためにも、更新プログラムの適用をお勧めします。
Update to force a UAC prompt when a customized .sdb file is created in Windows
https://support.microsoft.com/en-us/kb/3045645
参考文献
ユーザー アカウント制御: Windows 7 ユーザー アカウント制御の内部
https://technet.microsoft.com/ja-jp/magazine/2009.07.uac.aspx
Appendix A: 検体のSHA-256ハッシュ値
- bc93e9bdf92f0a9fb24ccbf053f59d79e31588a956204b4d09efff1091a40c89
- 1cff58a3f08fec11dededd2df09e0e1425466886ab8f154561108e9d564e5c36
- 3eab2a09fe6cc433cbb7567bfdde81ba9edc4f8af01ffc869394fe93983d7b7d