ランサムウェア
ランサムウェア「Kasseika」によるBYOVD攻撃:リモート管理ツール「PsExec」やドライバ「Martini」を不正利用
新型ランサムウェア「Kasseika」によるBYOVDを用いた手口の詳細や、今回の攻撃者が別の悪名高いランサムウェア「BlackMatter」からソースコードを流用した可能性について解説します。
2023年のランサムウェア攻撃では、脆弱なドライバを標的端末に配布する「BYOVD(Bring-Your-Own-Vulnerable-Driver)」の手口が多用されました。この動向に合致する最新のランサムウェアとして、「Kasseika」が挙げられます。本ランサムウェアは、AkiraやBlackByte、AvosLockerと同様、アンチウイルスのプロセスやサービスを強制停止することにより、感染の効力を強めています。今回のKasseikaによる攻撃例では、被害端末のアンチウイルス関連プロセスを停止させる手段として、ドライバ「Martini」が不正利用されました。
ランサムウェア「Kasseika」の攻撃チェーンを分析したところ、ランサムウェア「BlackMatter」との類似点が見出されました。具体的には、暗号化済みファイルに付与する拡張子を疑似ランダム文字列で構成する点、ランサムノート(脅迫状)を「{当該の拡張子}.README.txt」という名前で作成する点が挙げられます。
詳細な調査の結果、BlackMatterに使用されたソースコードの大半は、Kasseikaにも流用されていることが判明しました。トレンドマイクロの分析によると、BlackMatterのソースコードが広く出回っている様子はなく、それを入手できるのは少数の精鋭グループに限定されます。ランサムウェア「Kasseika」の開発には、そうしたグループが関与していると考えられます。
BlackMatterは、DarkSideの後継として出現した後、ランサムウェア「BlackCat(ALPHV)」の土台に応用されたことが知られています。BlackMatter自体は2021年に停止されましたが、類似する技術やツールが他のさまざまなランサムウェアグループに受け継がれ、利用されました。こうしたグループの中には、BlackMatterが用いた過去のソースコードにアクセスし、それを流用して新たな亜種を生み出したものさえ存在します。
標的型フィッシングメールによる初期アクセス
今回ランサムウェア「Kasseika」を展開した攻撃者は、初期アクセスの手段として標的型フィッシングメールを用い、標的企業に属する従業員の認証情報を窃取しました。次に、リモート管理ツール(RAT:Remote Administration Tool)を利用して権限昇格を行い、標的ネットワーク上で水平移動・内部活動を実行しました。
PsExecによって不正な処理を実行
Kasseikaは、不正な処理の実行手段として、Windowsの正規なRAT「PsExec」を利用しました。PsExecは本来ネットワークの管理に使用されるものですが、今回のように、不正なバッチファイル(.bat)の配備に利用される場合もあります。
はじめにランサムウェア「Kasseika」はバッチスクリプトを起動し、不正な機能を読み込みます。本スクリプトが起動すると、まず、プロセス「Martini.exe」の存在をチェックします。存在する場合はそれを停止し、当該プロセスのインスタンスが1つのみ稼働している状態を作ります。
Kasseikaによる防御回避の手口:アンチウイルス用ツールを強制停止
分析によると、Martini.exeは、はじめにドライバ「Martini.sys」が標的システム内にダウンロードされたかをチェックします。このドライバはもともと「viragt64.sys」という名前を冠し、TG Softが開発したVirIT Agent Systemに組み込まれていたものです。実際に、その署名も付与されています。Kasseikaは、本ドライバの脆弱性を巧妙に利用し、セキュリティツールを強制的に停止します。また、本ドライバが存在しない場合は、以降の活動を行わずに処理を終了します。
ドライバの存在を確認した後、KasseikaはWindowsのサービスを作成し、これを始動します。
この後、Martini.exeが関数「CreateFileW」を用いてドライバ「Martini.sys」を読み込みます。
以降、Martini.exeは、システム内でアクティブ状態の全プロセスをスキャンし続けます。監視対象プロセスリストに含まれるものが見つかった場合は、関数「DeviceIoControl」を用いて当該プロセスに関する情報をドライバ側に伝達します。
ドライバ「Martini.sys」が上図に記載の制御コード「0x82730030」を受け取ると、監視対象プロセスリストに含まれるプロセスを強制的に停止します。このリストに含まれるプロセス数は計991個に及び、アンチウイルス製品、解析ツール、システムユーティリティツールなどが網羅されています。本リストの内容については、こちらからご参照いただけます。
Kasseikaには、API「FindWindowA」を用いて文字列を比較する処理が存在します。
こうした比較処理を通し、Kasseikaは、プロセス監視やシステム監視、解析ツールに関連するアプリケーションを検知します。対象ツールを下記に示します。
- OLLYDBG
- 18467-41
- GBDYLLO
- FilemonClass
- pediy06
- File Monitor - Sysinternals: www.sysinternals.com
- RegmonClass
- PROCMON_WINDOW_CLASS
- Registry Monitor - Sysinternals: www.sysinternals.com
- Process Monitor - Sysinternals: www.sysinternals.com
さらにKasseikaには、特定のセキュリティツールや解析ツールが稼働している際に、自身の処理をそのまま終了させる仕組みが存在します。これは防御回避の追加手段として機能します。対象のツールを下記に示します。
- ntice.sys
- iceext.sys
- Syser.sys
- HanOlly.sys
- extrem.sys
- FRDTSC.SYS
- fengyue.sys
- Kernel Detective
- CisUtMonitor
- FileMonitor.sys
- REGMON
- Regsys
- Sysregm
- PROCMON
- Revoflt
- Filem
図12に、不正なバッチスクリプトの配下にある全ディレクトリを削除し、クリーンな状態を構築するスクリプトを示します。削除後は、さまざまなパスや実行ファイルの名前を変数で設定します。これは、将来的にファイルのパスや名前を柔軟に変更しやすくするための手段です。
次にKasseikaは、さまざまなファイルを共有ネットワークからローカルディレクトリにコピーします。図14のオプション「/E」は、空ディレクトリを含む全サブディレクトリをコピーするように指示するものです。この後Martini.exeが起動し、アンチウイルス関連のさまざまなプロセスを強制的に停止します。続いて、ランサムウェア「Kasseika」のバイナリ「smartscreen_protected.exe」が起動します。当該処理の完了後、バッチファイル「clear.bat」が起動し、これによって端末内での活動履歴や痕跡を消去します。
Kasseikaのペイロードを解析
ランサムウェア「Kasseika」は、32ビットのWindows PEファイルであり、Themidaによって圧縮(パッキング)されています。Themidaで圧縮されたファイルには高度な難読化やデバッグ妨害の技法が施され、解析しにくいものとなっています。
Kasseikaは、暗号化の処理に入る前に、Windowsの再起動マネージャにアクセス中のプロセスやサービスを調べ、その全てを強制停止します。そのためにまず、新規セッションを開始し、下記リストに示すレジストリキーのOwner値を書き換えます。次に、同リストのレジストリキーから、対象プロセスやサービスのセッションハッシュ値(SessionHash)を抽出します。強制停止処理の完了後、停止対象ファイルのパスを取得します。本パス情報は、後の暗号化処理でチェックされます。
HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{数字}
Owner = {HEX値}
HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{数字}
SessionHash = {HEX値}
HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{数字}
Sequence = 0x01
HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{数字}
RegFiles{HEX値} = {暗号化対象のパスおよびファイル}
HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{数字}
RegFilesHash = {HEX値}
ランサムウェア「Kasseika」は、標的システムのシャドーコピーを削除します。この際、WMI(Windows Management Instrumentation)のコマンドラインクエリを使用し、削除対象を検索します。
SELECT * Win32_ShadowCopies
この後Kasseikaは、ファイル拡張子用文字列の復号処理を行います。まず、ハードコーディングされた文字列を「CryptoPP::StringSinkTemplate」から抽出します。次に、その最初の9文字をBase64でエンコードします。最後に、Base64で表出する「+」、「/」、「=」は拡張子として使用できないため、それぞれ「a」、「l」、「e」で置換します。
Kasseikaは、対象ファイルの暗号化アルゴリズムとして「Chacha20」と「RSA」を、実装手段としてC++によるオープンソース・ライブラリ「CryptoPP」を使用します。まず、ChaCha20で用いる行列(内部状態)の改変版を、ランダムなバイト列によって作成します。次に、この行列を別のバッファにコピーし、RSAの公開鍵によって暗号化します。さらに、この暗号化結果を、元の行列に上書きします。最後に、こうして得られたChaCha20の行列をもとに、対象ファイルを暗号化します。
暗号化に成功した場合、Kasseikaは対象の暗号化済みファイルをリネームします。リネーム後のファイル名は下記の通りであり、末尾に暗号化状態の拡張子が付加されます。
{元のファイル名}.{元の拡張子}.CBhwKBgQD
Kasseikaは、暗号化対象の全ディレクトリ配下にランサムノートを作成します。そのファイル名は、上記で付加した拡張子を再利用する形で「CBhwKBgQD.README.txt」となります。
暗号化処理の完了後、Kasseikaは標的システムの壁紙を図20のように変更します。
攻撃の履歴を消去
ランサムウェア「Kasseika」は、活動の履歴や痕跡を消し去るため、図21のコマンドによってシステムのイベントログを削除します。
コマンド「wevutil.exe」により、Windowsシステムのアプリケーション、セキュリティ、システム関連のイベントログが消去されます。これは隠密な活動に際して使用される手口であり、セキュリティツール側から見た場合、不正な活動の検知や対応が一層困難なものとなります。
セキュリティ推奨事項
今回挙げた「Kasseika」をはじめとするランサムウェア攻撃から企業や組織のシステムを保護するためには、下記に示すベストプラクティスが有効です。
- 必要な場合を除き、従業員に管理者権限やアクセス権限を付与しない。
- 定期的にセキュリティ製品をアップデートし、定時スキャンを実行する。
- 重要データが失われる事態を想定し、定期的にバックアップを取り、かつ、厳重に保護する。
- メールおよびWebサイトの安全な用法を実践する。添付ファイルのダウンロード、URLのクリック、プログラムの実行に際しては、まず提供元の信頼性を確認する。
- 不審なメールやファイルの疑いがある場合には、セキュリティチームに報告するようにユーザに促す。また、不正なメールのブロック機能を備えたツールの導入を推奨する。
- ソーシャルエンジニアリングの危険性や兆候に関する訓練や教育を、ユーザに対して定期的に実施する。
企業や組織では、マルチレイヤーのアプローチを採用することにより、システムへの侵入経路(エンドポイント、メール、Web、ネットワーク)を厳重に保護することが可能です。また、セキュリティソリューションを導入することで、不正なコンポーネントや不審な挙動を検知し、攻撃を的確に阻止できるようになります。
Trend Vision One™は、マルチレイヤーによる挙動検知と保護の機能を提供します。これにより、ランサムウェア攻撃が実行される前の早い段階で、不審なツールや挙動をブロックすることが可能です。
Trend Cloud One™ - Workload Securityは、既知、未知を問わず、脆弱性を突いた脅威からシステムを保護します。この保護機能は、仮想パッチや機械学習などの技術によって実現しています。
Trend Micro™ Deep Discovery™ Email Inspectorは、独自のサンドボックスと高度な解析技術を備えています。フィッシングメールなどの不正なメールを的確にブロックすることで、ランサムウェアの侵入を阻止します。
Trend Micro Apex One™は、次世代の脅威検知・応答機能を提供します。本機能は、ファイルレス攻撃やランサムウェアなどの高度な手口にも対処可能であり、エンドポイントを安全に保護します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)について、こちらで確認してください。
参考記事:
Kasseika Ransomware Deploys BYOVD Attacks, Abuses PsExec and Exploits Martini Driver
By: By: Emmanuel Panopio, Christian Jason Geollegue, Julius Keith Estrellado, Christian Alpuerto, Shawn Austin Santos, Emmanuel Roll, Rhio Manaog, Gerald Fernandez, Don Ovid Ladores, Raighen Sanchez, Raymart Yambot, Francesca Villasanta, Sophia Nilette Robles
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)