更新日: 2020年10月22日
HIRTが関わったインシデント対応を記録として残していくこともCSIRTの役割であると考えています。本ページは、インシデント対応記録のアーカイブを目的としています。
[出典] https://www.sdl.hitachi.co.jp/csec/css2008-cfp-secinfo.html
偽css2008-cfp.pdfは、PDFデータフォーマットの領域と、エンコードされたバイナリ領域の2つの部位で構成されている。PDFデータフォーマットの領域内には zlibで圧縮されたJavaScriptのコードが存在し、偽css2008-cfp.pdfを開くと、この部分が読み込まれて攻撃が行われる。解析では、この圧縮された領域を解凍し、Exploit Code(攻撃コード)を確認した(図1参照)。
図1:偽PDFファイルの構成 PDFファイルは通常のPDFフォーマットの部分と エンコードされたバイナリの領域が存在する。 PDFフォーマット部分にJavaScriptで記述された Exploit Codeがzlibで圧縮された状態で配置されている。 |
出現したExploit Codeは、Adobe Reader等に存在するCVE-2007-5659(JVNDB-2008-001095)の脆弱性(collectEmailInfoのStack Buffer Overflow)に対して攻撃を行うものであった。コードは主に
ShellcodeはPDFファイルの後方に配置されているバイナリ領域をXORによりデコードする。デコードされた領域にはWindowsの実行ファイルと、その実行ファイルを切り出して実行するためのアセンブリコードが出現する(図3中A)。切り出しと実行を行うコードにより、Windowsの実行ファイル部分(マルウェア)がC:\WINDOWS\Temp\csrse.exeにコピーされ、実行される(図3中B)。
図3:PDFファイルからのマルウェア切り出し @Shellcode実行前 AShellcodeによりPDFファイルの後方がデコードされる。デコードされた領域の後方にWindowsの実行ファイルと、それをインストールするためのコードが存在している。 B実行ファイル部分はC:\WINDOWS\Temp\csrse.exeにコピーされ、その後、実行される。 |
PDFファイルから切り出されたファイル「C:\WINDOWS\Temp\csrse.exe」は次の2つの動作を行う。
図4:csrse.exeのファイル構成 CFPのPDFファイルを表示した上で、さらにマルウェアがインストールされる。CFPのファイル名は元々のものとは異なり「1.pdf」で固定されている。 |
マルウェアにはその解析を困難にするための手法(Anti-RCE)を備えたものが存在する。今回解析したマルウェアの場合、逆アセンブルとデバッガによる解析を困難にするための手法が備わったパッカーが用いられていた。●逆アセンブル対策
マルウェアの静的解析を行う際には、プログラムコードの逆アセンブルが行われる。本マルウェアのパッカーでは、逆アセンブルを困難にする、または逆アセンブルされたコードを読みにくくするいくつかの対策が施されていた。その例を以下に示す(図5参照)。
- 命令の中間へジャンプすることで、正常な逆アセンブル結果を出力できないようにする
- 分岐が不要な箇所にジャンプ命令を挿入することにより、コードを読みにくくする
図5:パッカーによるAnti-逆アセンブルの例
@命令の中間へのジャンプ命令を挿入することで、正常な逆アセンブルが出ないようにされている。
A本来分岐する必要のない箇所にジャンプ命令を挿入し、コードを読みにくくしている。
●デバッガ対策
マルウェア解析ではOllyDbg等のデバッガを用いた動的解析が有効な手段となる。本マルウェアのパッカーでは、デバッガによる解析を困難にするための対策が施されていた。マルウェアがデバッガを検出するとプロセスが終了してしまうため、これらのデバッガ対策を回避しなければ解析を継続することができない。以下にその例を示す。
- IsDebuggerPresent()を用いたデバッガ検出
- FindWindowA()を用いたOllyDbgによるデバッガ検出
- Int3や0除算による例外発行と例外ハンドラを用いたデバッガ検出
- API呼び出し前に、APIのエントリにソフトウェアブレークポイント(0xCC)が張られていないかを調査
- ZwQueryInformationProcess()を用いたデバッガ検出
lightmidi.exeが実行されると、「C:\WINDOWS\system32\wmxdmod.dll」というファイルが作成される。このファイル用いてsvchostが次のようなサービスを起動する。このサービスはインターネット上のあるホストからファイルをダウンロードし、実行するためのものである。ファイルのダウンロードは次のような手順で行われる。
- ◆サービス名
- WNMMD
- ◆表示名
- Windows Net Management Mode Driver FrameWork
- ◆説明
- Enables Windows Net Management mode drivers. If this service is disabled, any services that explicitly depend on it will fail to start.
- ◆サービスDLL
- %SystemRoot%\system32\wmxdmod.dll
- http://xx.xxxxx.net/mydn/index.txtをダウンロード
- (ダウンロードしたファイルの一行目に記載されている値)×2秒間Sleep
- 再度http://xx.xxxxx.net/mydn/index.txtをダウンロード
- ダウンロードしたファイルの2行目以降に記載されているファイルをhttp://xx.xxxxx.net/mydn/以下からダウンロード
図6:マルウェア実行後の挙動@ 1. 偽css2008-cfp.pdfが添付されたメールを受信。 2. 添付ファイル実行により、画面上にCFPが表示される。同時にレジストリの改変が行われ、ダウンロードを行うサービスが登録される。 3. xx.xxxxx.netからHTTPによりファイルを取得。 |
図7:マルウェア実行後の挙動A 4. 取得したファイルに記載されている値を元に一定時間待機する。 5. 指定された待機時間経過後、再びxx.xxxxx.netからファイルを取得。 |
図8:マルウェア実行後の挙動B 6. 2回目に取得したファイルの二行目以降に記載されているファイルをxx.xxxxx.net/mydn/以下から取得。ファイル名が複数記載されている場合はすべてダウンロードする。 7. ダウンロードしたファイルを実行(ダウンロードしたファイルの拡張子が".txt"の場合にはデコード処理を施した後実行)。 |
担当:寺田、大西
グローバルサイン:
重要な電子文書にデジタル署名。広報にも役立っています