ランサムウェアに感染してみた
川崎 隆哉
こんにちは!Recruit-CSIRTです。
先日は、ランサムウェアLocky(拡張子.zepto)の流行とダウンローダーNemucodの解析結果についてご報告しました。
今回は、キャンペーンで届いたランサムウェアのダウンローダーを検証環境上で実行、観測し、その後コンピュータフォレンジックの観点からPC上の痕跡を元にランサムウェア本体を特定しました。
実行したファイルは前回のブログでも触れた弊社環境宛に届いたメールの添付ファイルです。
〈弊社環境宛に届いたメール〉
添付のzipファイルの中には、「profile-072f..wsf」というファイルが格納されていました。
〈添付ファイルの中身(フォレンジックツール FTK Imager Lite Ver.3.1.1.8を利用)〉
添付ファイルのzipを展開し、中のwsfファイル(windows script file)を実行しました。
一見何の変化もありませんが、しばらくすると下記のようにファイルを復号化したければ指示に従うように促す日本語の脅迫文が壁紙に設定され、ディスク中に「E80A65CD-2E84-F806-4桁-12桁.zepto」といったファイルが作成されました。
このファイルが、暗号化されてしまったPC上のファイルです。元のファイル名も暗号化されることと、「.zepto」という拡張子がつくところが今回のマルウェアの特徴です。
〈壁紙に設定された日本語の脅迫文〉
次に、フォレンジックツール上(FTK Imager Lite Ver.3.1.1.8)で感染前後のファイルの様子を比較しました。
下記の2つの画面内(上が感染前、下が感染後)で選択されているファイルは、パスやファイルサイズから考えて同一のファイルであったと考えられますが、感染後はファイルの中身が変更され暗号化されていることがわかります。
また、暗号化前後のファイルのディスク上のロケーションを確認したところ、暗号化前のファイルと暗号化後のファイルが同じ場所に存在している事がわかりました。(実際は暗号化後にサイズが若干増加しているため、ファイルの終わる場所は少し異なります)
このことから、元のファイルが暗号化されたファイルによって上書き(もしくは更新)されており、データカーブ(データ復元)は難しいことがわかります。
暗号化されたファイルがディスク上に新たに作成され、元のファイルが削除されるというようなロジックならファイルのデータカーブ(データ復元)が可能であったかもしれませんが、やはりそうもいかないようです。
〈感染前のファイル(内容が一部読み取れる)〉
〈感染後のファイル(暗号化されていて内容が読み取れない)〉
この他にも、「_数字_HELP_instructions.html」や「_HELP_instructions.bmp」といった脅迫文ファイルもディスク中に作成されました。内容は、壁紙に設定されるものと同じで、綺麗な日本語で書かれています。
脅迫文内のURLにアクセスすると、下記のようなページで、ビットコインの購入と送金を促されます。要求される金銭は、2.00ビットコイン=2016/7/19 13:30時点で142,000円程のようです。
〈ビットコインの購入、送金を促す画面〉
コンピュータフォレンジックによるランサムウェア本体の特定
次に、PC上に残る痕跡からwsfファイルを実行した際にダウンロードされるランサムウェアの本体を特定しました。
フォレンジックツール(EnCase Ver.7.12)で、wsfファイルの実行後から暗号化ファイルが作成される間に実行されたファイルを調べます。
時間軸に沿って痕跡を追うと、wsfファイルを実行した痕跡(~.wsf.lnk:リンクファイル)の直後に、「UhQ5ieywem」というファイルが「%USERPROFILE%\AppData\Local\Temp配下」に作成され、更に実行された痕跡(UHQ5IEYWEM~.pf:プリフェッチファイル)があることが明らかになりました。その直後から、脅迫文(_数字_HELP_instructions.html)の作成や「.zepto」ファイルとしての暗号化が開始されました。
このことから、「UhQ5ieywem」がwsfファイルによってダウンロートされるランサムウェアの本体だとわかりました。なお、レジストリからマルウェアの痕跡が残る場所を調査すると、マルウェア本体のパス等の情報が残されている場合もありますが、今回はそのような痕跡はありませんでした。
〈時間軸に沿った痕跡の調査〉
ランサムウェアLockyにおいては、これらの挙動がPC上で確認された場合、感染端末にマウントされているファイルサーバーなども暗号化の被害にあう可能性があります。マルウェアの詳細な挙動を調査したい場合は、このようにファイルの実行履歴(.lnkや.pf、レジストリファイル)やファイルのタイムスタンプを調査しマルウェアを特定、取り出して解析することができます。
なお、ランサムウェアが発生させる通信の情報は本手法では確認できないため、ネットワークフォレンジックやメモリフォレンジックなどを併用します。