Petyaの動作について Fortinet社が公表

Fortinet社の研究グループが実際にPetyaの亜種の動作のテストを行い、平成29年6月28日(米国時間)にFortinet社がWebサイトにて同マルウェアの動作の概要について公表を行いました。


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

概要

同社の見解としては、Petyaの亜種が標的のMBRを上書きする機能を持つかは定かではないものの、ランサムウェアのように身代金を要求する要素と、ワームのように増殖をする要素が含まれていることは明らかであるとのことです。
しかし、身代金を要求する一方で、仮に支払いが行われたとしても暗号化されたファイルの復号化は無いと同社は確信しています。
Fortinet社もPetyaの亜種をランサムウェアとして定義し、Petyaの亜種が含むワームは、WannaCryと同じメカニズムでインターネットで拡散されているとのことです。

攻撃手法

Petyaの亜種はDLLとしてコンピュータへ侵入しますが、同時に最初にエクスポートされた機能でPetyaの亜種の動作が検出されます。
それらの動作が実行されると、「SeShutdownPrivilege」「SeDebugPrivilege」「 SeTcbPrivilege」の3つの要素の特権が有効化されます。
(画像1)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

次に、プロセス名を暗号化して実行中の各プロセスを確認します。
その際の暗号化アルゴリムは以下の通りです。
(画像2)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

結果の値が以下のいずれかであるかを確認し、それぞれへ対応した変数を割り振ります。
0x2E2A4B44
0x6403527E
0x651B3005
実行中のプロセスの確認を終えると、各プロセスは「GetModuleFileNameW」にて、独自のファイル名を取得します。
(画像3)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

Petyaはコマンドラインを確認し、その後、「test」に続く「MFlag_adjustedPrivuleges」の変数が有効であるかを確認します。
これが有効であれば「SeDebugPrivilege」も有効であることがわかり、2つの関数を用いて「Msub_Shutdown」の実行、つまり、システムを強制終了させます。
(画像4)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

同社の研究グループによると、下の赤線枠内(画像5)の「ExitProcess」が、キルスイッチ(マルウェアを意図的に停止させる仕組み)である可能性が高いとのことです。
(画像5)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

コードを確認してみると、この「ExitProcess」は、赤線枠内(画像6)の「pszPath」という名前のメモリに保存されていることがわかります。
(画像6)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

Msub_AppendToWindir」という関数を用いて入力することで、pszPathPetyaの亜種の要素を含むデータ(画像7)が保存されているかを確認することができます。
(画像7)


引用元:https://blog.fortinet.com/2017/06/28/a-technical-analysis-of-the-petya-ransomworm

 

画像7の「CALL」にて何が実行されているか

画像7におけるDLLのファイル名とフルパス(ディレクトリで指定されたファイル)は「C:\_Virus\Petya.dll」であり、画像3においてのコードで返されたものとします。

・1番目のAPI呼び出し「PathFindFileNameW」によりPetya.dll(ディレクトリ名を削除)を返す。
・2番目のAPI呼び出し「PathCombineW」により難読化されたパス「C:\ Windows」をPetya.dllに結合させ「C:\ Windows \ Petya.dll」へ変更。
・3番目のAPI呼び出し「PathFindExtensionW」によりパラメータとして「C:\ Windows \ Petya.dll」を使用し、拡張子(.dll)のアドレスを返し、このアドレスはレジスタEAXへ格納。
上記のコードでは、Petyaの亜種はこのアドレスに値0x00を格納し、文字列を終了します。文字列が「C:\ Windows \ Petya」に変更される。

上記の動作を終えるとPetyaの亜種は関数を終了します。

関連リンク

WannaCryについての報告一覧

Petyaの亜種への感染経路 Kasperskyが公表

国内で検知された新種ランサムウェア「.oni」

マルウェア感染50の挙動

HTML HTML HTML

UTM導入サービス
お問い合わせ 045-311-6820 セキュリティに関するお問い合わせ 無料相談受付中
PageTop