FireEye社から APT 28に関するレポート「APT28 Targets Hospitality Sector, Presents Threat to Travelers」が出ており、下記で日本語に翻訳された関連記事も読めます。ただ、横展開に関する手法や Responder の仕組みについて扱われていますが、マルウェアの自動起動登録の手法など細かい点は書かれていません。
FireEye のレポートに関連し、マルウェアの挙動を解析したレポートが2本出ていますので、こちらで TTPs について確認しておきたいと思います。
上記レポート内では、まずファイルとしては「%APPDATA%\user.dat」が作成されることが分かります。ファイル作成については NTFS USN ジャーナルで確認できると推測されますが、拡張子 .dat に対して中身が実行形式であるかは、ジャーナルの情報だけでは判断が出来ない部分ですね。
・拡張子不一致(実行形式のシグネチャと拡張子が一致しない)
・コード署名の有無
がどのように反応するのか興味あるところです。
例えばディスクイメージ全体ではなく、$MFT と USN ジャーナル、レジストリだけを取得しているようなケースにおいては、このファイルの中身を確認する事ができません。プログラムの実行痕跡で関連性を見つけられるか?がポイントになりそうです。
Rundll32 経由の起動については、AppCompatCache 辺りに残る可能性があるかもしれませんが、Windows 10 では Rundll32 で呼ばれた DLL の痕跡がレジストリやプリフェッチに残らないのではないかと思いますので、調査手順としては少し検討の余地があるかもしれません。RunDll32 経由で呼ばれたDLLのパスが追跡できるようにログが取得されていれば、追跡しやすくなるでしょうか。
次のパート2のレポートでは Persistent に関する記述があります。
上記解析結果によると、HKCU\Environment というレジストリキーが登場し、値としては『UserInitMprLogonScript』が登録されるようですが、このレジストリキーについては下記で詳細が紹介されています。
Beyond good ol’ Run key, Part 18
http://www.hexacorn.com/blog/2014/11/14/beyond-good-ol-run-key-part-18/
登録される値の内容としては、%appdata%\mrset.bat とバッチファイルを登録する流れになるようですが、このレジストリキーと値は Autoruns ツールで反応しないようです。
テスト環境でレジストリに値を作成してみます。
上記環境で Autoruns 13.71 を利用してレジストリキーやバッチファイルの登録を探してみましたが、この登録は確認できませんでした。(バッチファイルの中には単純に Notepad.exe だけを記載していますが、ログオンするとメモ帳が起動していました)
Autorunsでは検出されないレジストリキーですが、呼び出されるファイル(今回のケースであれば.batファイル)は作成されますから、常駐化の仕組みとして作成されるファイルを見つけ出す手順を組んでおく必要がありますね。
USN ジャーナルの削除
今回の件とは直接関係ありませんが、マルウェアによっては NTFS USN ジャーナルを削除する場合があり、ジャーナルに依存していると困るケースもあります。過去の事例としては、petya が Fsutil コマンドによりジャーナルを削除していますが、日本語で解説されている資料としては下記があります。
Quick Response Tipper Petya - the latest wave(最新の猛威)
https://www.pwc.com/jp/ja/japan-service/cyber-security/assets/pdf/petya.pdf
ディスクイメージがあればカービングする方法も考えられますが、削除されている場合も想定しておく必要があります。
fsutil コマンドは一般的に利用されるコマンドでは無い、という部分ではプログラムの実行を監視するポイントとして面白いかもしれません。