2013-03-27 緊急レポート:韓国サイバー攻撃マルウェア詳細解析結果
プロダクト開発第二部の岡野です。
先日のFFRI BLOG「緊急レポート:韓国サイバー攻撃マルウェア検証」にて報告したマルウェアの詳細解析を行い、本検体の挙動を把握いたしましたので、今回はその情報をお伝えしようと思います。
今回入手した検体の概要は下記のとおりです。
FileName | ApcRunCmd.exe |
Size | 24.0KB |
MD5 | db4bbdc36a78a8807ad9b15a562515c4 |
本体の処理内容
本検体が実行されると、はじめに下記の43個のAPIのアドレスを取得します。
OpenProcessToken | LookupPrivilegeValueA | AdjustTokenPrivileges | OpenFileMappingA |
CreateFileMappingA | GetWindowsDirectoryA | InitializeCriticalSection | CreateThread |
WaitForSingleObject | RtlLeaveCriticalSection | GetVersionExA | Sleep |
GetDriveTypeA | RtlEnterCriticalSection | FindFirstFileA | RemoveDirectoryA |
FindNextFileA | FindClose | CreateFileA | WriteFile |
CloseHandle | DeleteFileA | SetFilePointer | GetSystemDirectoryA |
GetDiskFreeSpaceA | GetDiskFreeSpaceExA | ReadFile | WinExec |
GetCurrentProcess | RtlGetLastWin32Error | LoadLibraryA | GetProcAddress |
_mbscat | memset | _mbscpy | memcpy |
strlen | sprintf | strcmp | malloc |
free | PathFileExistsA | ExitWindowsEx |
次に「JO840112-CRAS8468-11150923-PCI8273V」という名前のファイルマッピングオブジェクトを作成し、自身を参照します。
「C:\WINDOWS\Temp\~v3.log」の有無を確認し、存在しない時にだけ処理を続けます。本検体は実行後に当該のファイルを作成することはありませんが、本検体のドロッパーなどの別の検体が作成する可能性があります。
その後、下記のようにWinExec経由でtaskkillコマンドを実行し、アンチウィルス製品のプロセスの動作を停止させます。ここで停止されるpasvc.exeおよびclisvc.exeは韓国製のセキュリティ製品のプロセスであり、本マルウェアが韓国を標的としたものであることが推測されます。
その後、MBR改竄スレッドを作成します。
MBR改竄スレッドの処理内容
MBR改竄スレッドでは感染したPCに搭載されているHDDのマスターブートレコード(MBR)を「PRINCPES」という文字列で上書きします。この時、HDDのRAWパーティションのシンボリックリンク「\\.\PhisicalDriveN」に対して書き込みを行います。Nには0から9までの数値が入ります。下図はHDDのMBRを改竄している部分です。図中(1)のsprintfでシンボリックリンク名を生成しています。この名前を(2)のCreateFileAで開き、ハンドルを変数に格納します。(3)にあるcall命令で呼ばれるサブルーチンでバッファに「PRINCPES」という文字列の羅列を設定し、WriteFileを利用してMBRをバッファの内容で上書きします。
MBRの改竄が完了すると、B:\からZ:\までのドライブを検査します。固定ディスクまたはリムーバブルディスクのドライブを見つけると、ドライブ名を引数に別スレッド(ドライブ内容改竄スレッド)を作成します。その後、MBR改竄スレッドは一定時間待機し、次のようにしてシステムを再起動させます。
ただし、MBRが上記の攻撃によって破壊されているため、OSが起動できない状態となります。
ドライブ内容改竄スレッドの処理内容
ドライブ内容改竄スレッドでは、引数として受け取ったドライブ名を基に、シンボリックリンク名「\\.\*:」を生成し、シンボリックリンクを開きます。*は引数に渡されたドライブ名となります。下図ではドライブ名がCの場合の例です。その後、「PRINCIPES」という文字列で埋められたバッファを作成します。
ドライブのファイルハンドルのファイルオフセットをSetFilePointerでずらしつつ、複数回上記のバッファ内容をWriteFileで書き込みます。これによって、対象ドライブの内容がバッファの内容で埋められます。前回の記事でお伝えしたドライブへの大量アクセスはこの処理で発生したものと考えられます。システムを完全に利用できないようにするためにMBRとドライブ内容の両方を改竄しているものと思われます。
まとめ
本検体の動作は次のようになります。本体はAPIアドレスを取得し、ファイルマッピングオブジェクトを生成、ファイルの有無を確認し、セキュリティ製品を停止させてMBR改竄スレッドを生成します。MBR改竄スレッドではMBRを改竄し、ドライブを検査します。固定またはリムーバブルディスクを発見すると、ドライブ内容改竄スレッドを生成してドライブ内容を改竄します。
MBRとドライブ内容の両方が改ざんされるため、MBRを復旧してもファイルへのアクセスができず、被害にあったドライブは利用できない状態になります。
また、FFRIではこの検体にはネットワーク通信やレジストリの改竄、自己複製などの機能の存在を確認していません。そのため、このマルウェアによる情報搾取などの被害は発生せず、ファイルシステムの破壊を目的にしていると思われます。