当社ブログで以前から掲載してきたように、GandCrab は様々な方式で拡散している。これまでに GandCrab はバージョンをアップデートして変化してきたが、現在までに確認されている最新の内部バージョンはv5.2である。当社では、このv5.2バージョンの暗号化対象の拡張子を確認する方法と、これにより暗号化方式が以前のバージョンと異なるという点を発見した。
GandCrab v5.2 は拡張子リストを3つのグループに分類して管理および確認しているが、その構成は以下の通りである。

上で述べたように、一番上の拡張子リストは該当する拡張子の場合に暗号化から除外し、2つ目の拡張子リストの場合、事実上内部コードで比較した後に使用される部分がないため、フェイクとしてリストのみを持っていることが推測される。したがって、実際に暗号化を実行し、3つ目の拡張子リストに含まれていないため、0x100000サイズの暗号化を実行する。 (この内容は後で詳しく説明する)また、最後の3つ目の拡張子リストの場合、この拡張子にマッチする場合とそうでない場合に応じて、暗号化を行う方式に違いがあることが分かった。
GandCrab v5.2 の暗号化に必要なキーを使用する方式は、過去に当社が公開した従来のv4.xと変わらない。ただし、従来は暗号化されたSalsa20キーやローカルの秘密鍵をレジストリに保存していたが、現在は保存せずにランサムノートにのみBase64で暗号化して保存するため、攻撃者に復旧を要求するときにランサムノートが不可欠であるものと考えられる。

ファイルを暗号化する際、従来のバージョンと同じくSalsa20アルゴリズムを利用する。ファイルの前から0x100000のサイズに分けて暗号化を実行する。3つ目の拡張子リストにマッチした場合はファイル全体を暗号化し、マッチしない場合はファイルの一番最初から0x100000の位置までを暗号化する。そして、ファイルの下位に「暗号化されたサイズ」が保存されるとき、最終的に3つ目の拡張子リストにマッチする場合は暗号化対象の元のファイルのサイズと同じデータが保存され、マッチしない場合は0x100000が保存(ファイルサイズが0x100000よりも小さい場合)される。したがって、ファイルサイズが0x100000より大きく、上の3つ目のリストにマッチしない場合は、データが保存される。
そして、拡張子ごとに暗号化を区別して実行するルーティンによって暗号化除外条件を追加で確認できるのだが、その内容は以下の通りである。
1. [図2] のように暗号化した後、下位に保存されるデータのうち、固定された値で「0x1829899381820300」を確認できるが、この値が存在する場合、暗号化の対象から除外される。したがって、一度暗号化されたファイルは再感染(暗号化)しない。
2. 対象ファイルにアクセスする際に CreateFile API を使用するが、この時、dwFlagsAndAttributes 属性に0x88000000をセットするため、暗号化対象に含まれる拡張子であっても属性が「読み取り専用」の場合、暗号化から除外される。
したがって、暗号化除外条件を総整理すると、以下の通りとなる。
1.拡張子が以下に当てはまる場合(上記テーブルの1つ目の拡張子リスト)
ani, cab, cpl, cur, diagcab, diagpkg, dll, drv, lock, hlp, ldf, icl, icns, ico, ics, lnk, key, idx, mod, mpa, msc, msp, msstyles, msu, nomedia, ocx, prf, rom, rtp, scr, shs, spl, sys, theme, themepack, exe, bat, cmd, gandcrab, KRAB, CRAB, zerophage_i_like_your_pictures (42個) |
2.ファイル名に以下のようなデータが含まれる場合
desktop.ini ntuser.dat iconcache.db bootsect.bak boot.ini ntuser.dat.log thumbs.db -DECRYPT.txt -DECRYPT.html CRAB-DECRYPT.html KRAB-DECRYPT.txt CRAB-DECRYPT.txt ntldr NTDETECT.COM Bootfont.bin |
3.フォルダパスに以下のようなデータが含まれる場合
\program data\ \IETIdCache\ \Boot\ \Program Files\ \Tor Browser\ \All Users\ \Local Settings\ \Windows\ |
4.ファイル末尾に以下のような値が存在する場合
0x1829899381820300 |
5.ファイル属性が「読み取り専用」の場合
当社では、継続的に GandCrab の拡散および細部機能の変化を監視しており、診断法についてもアップデートを継続している。
ファイルの診断
Trojan/Win32.Agent
Trojan/Win32.Gandcrab
Malware/Win32.Generic
行為診断
Malware/MDP.Ransom.M1171
Categories:マルウェアの情報