最近 ASECは、GandCrab の拡散スクリプトを監視している最中に、国内のアンチウイルスソフトを対象とする新たな無力化の方式を使用していることを捉えた。以前のバージョンでは以下の [図1] のように「Uninst.exe」の実行によって製品の削除を試みていたが、最近拡散スクリプトでは、当該方式を削除して V3 サービスを終了しようとする新たな試みが発見された。

作動方式にも変化が確認され、従来は*.JSの JavaScript ファイルによって GandCrab ランサムウェア実行ファイル(*.EXE)が生成および実行される構造だったが、現在拡散している形式は以下の [図2] のように PowerShell を利用してファイルレス(Fileless)形態で作動し、ランサムウェアの暗号化行為は PowerShell.exe により発生する。また、国内のユーザーが多くのアンチウイルスソフトを実行している場合、15分間の時間遅延(Sleep()関数)後に作動する特徴を持っている。

拡散した*.JSファイルは、以下の [図3] のように難読化形式になっており、内部で PowerShell.exe を実行する構造である。

以下のようなコマンドを通して「ランダム名.log」ファイルを実行する。
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”
-ExecutionPolicy Bypass -Command “IEX (([System.IO.File]::ReadAllText(‘C:\Users\(User_ID)\Desktop\(ランダム名).log’)).Replace(‘?’,”));”
ランダム名.logファイルは、以下の [図4] のようにBase64でエンコードされた形式であり、[図5] はデコードされた PowerShell スクリプトである。


結果的に、[図5] のスクリプトが実行され、その PowerShell スクリプトは [図6] のデルファイ(Delphi)言語で作られたコードをメモリで実行する。

[図6] コードのうち赤枠の部分は、国内のアンチウイルスプログラム2つを無力化するための機能であり、青枠の部分は既存の GandCrab ランサムウェアの感染行為と同じである。すなわち、実行の順序は次の通りである。
(1) V3 サービスの作動確認 (「V3 Service」)
(2) 15分間 Sleep()
(3) V3 サービスの終了を試行
(4) DLL 形式のランサムウェア駆動
(5) 他の国内アンチウイルスサービスの作動確認 (「ALYac_RTSrv」)
(6) 他のアンチウイルス Decoy フォルダ回避を試行

従来の GandCrab はアンチウイルスを削除する機能がキャプチャコードの適用により削除が不可能になると、アンチウイルスを終了させる方法へと手段を変更した。[図7] のように「V3 Service」という名前のサービスを検索して V3 の実行有無を確認し、実行中の場合は15分間待機(Sleep()関数)した後、V3 製品に対するサービス終了を試みる。
AhnLabだけでなく、他の国内のアンチウイルスメーカーの場合にもドライブの特定ディレクトリに任意の名前の Decoy フォルダを作成しておき、フォルダ内部のドキュメントに暗号化が行われる場合、ランサムウェア行為として検出するDecoyの方法を使用している。
そのようなアンチウイルスメーカーの Decoy 診断を回避するため、各ドライブのルートにフォルダ名の文字列から特定の文字列([表2])が発見された場合、そのフォルダのファイルに対して感染を回避する機能が発見された。例えば、Cドライブに「!@GNNh」という Decoy フォルダを生成しておいた場合、パスは [表1] の通りである。
Decoyフォルダのパス[ C:\!@GNNh\ ] GandCrabの回避文字列 [ C:\!@GNNh\ ] |
上記の例において、GandCrab は Decoy パス名の最初の文字が特殊文字(!)であることから、9個の特定文字列で Decoy を回避する手法を試みた。回避文字列は以下の [表2] の通りである。
番号 | フィルター文字列 |
1 | :\! |
2 | :\@ |
3 | :\# |
4 | :\$ |
5 | :\% |
6 | :\^ |
7 | :\& |
8 | :\= |
9 | :\- |
Categories:マルウェアの情報