国内アンチウイルスソフトに対する新たな無力化の試み (GandCrab v5.0.4)

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

[図1] 従来の V3Lite アンインストール関連コード (GandCrab v5.0.3)

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

[図2] 感染の順序

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

[図3] 不正なdllが含まれた javascript ファイル

以下のようなコマンドを通して「ランダム名.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 スクリプトである。

[図4] エンコードされた PowerShell スクリプト(ランダム名.log)
[図5] デコードされた PowerShell スクリプト

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

[図6] 内部のDelphiコードの一部

[図6] コードのうち赤枠の部分は、国内のアンチウイルスプログラム2つを無力化するための機能であり、青枠の部分は既存の GandCrab ランサムウェアの感染行為と同じである。すなわち、実行の順序は次の通りである。

(1) V3 サービスの作動確認 (「V3 Service」)

(2) 15分間 Sleep()

(3) V3 サービスの終了を試行

(4) DLL 形式のランサムウェア駆動

(5) 他の国内アンチウイルスサービスの作動確認 (「ALYac_RTSrv」)

(6) 他のアンチウイルス Decoy フォルダ回避を試行

[図7] 内部 dll コード

従来の GandCrab はアンチウイルスを削除する機能がキャプチャコードの適用により削除が不可能になると、アンチウイルスを終了させる方法へと手段を変更した。[図7] のように「V3 Service」という名前のサービスを検索して V3 の実行有無を確認し、実行中の場合は15分間待機(Sleep()関数)した後、V3 製品に対するサービス終了を試みる。

AhnLabだけでなく、他の国内のアンチウイルスメーカーの場合にもドライブの特定ディレクトリに任意の名前の Decoy フォルダを作成しておき、フォルダ内部のドキュメントに暗号化が行われる場合、ランサムウェア行為として検出するDecoyの方法を使用している。

そのようなアンチウイルスメーカーの Decoy 診断を回避するため、各ドライブのルートにフォルダ名の文字列から特定の文字列([表2])が発見された場合、そのフォルダのファイルに対して感染を回避する機能が発見された。例えば、Cドライブに「!@GNNh」という Decoy フォルダを生成しておいた場合、パスは [表1] の通りである。

Decoyフォルダのパス[ C:\!@GNNh\ ]
GandCrabの回避文字列 [ C:\!@GNNh\ ]
[表1] Decoy フォルダの例

上記の例において、GandCrab は Decoy パス名の最初の文字が特殊文字(!)であることから、9個の特定文字列で Decoy を回避する手法を試みた。回避文字列は以下の [表2] の通りである。

番号フィルター文字列
1:\!
2:\@
3:\#
4:\$
5:\%
6:\^
7:\&
8:\=
9:\-
[表2] 国内の他のアンチウイルスの Decoy フォルダ検出文字列
0 0 vote
Article Rating
guest
0 Comments
Inline Feedbacks
View all comments