EDR Killer
脅威の調査

ランサムウェアグループが利用する新たな EDR キラー

ソフォスは EDRKillShifter を使用したランサムウェア「RamsomHub」を用いる攻撃者を特定しました。

** 本記事は、Ransomware attackers introduce new EDR killer to their arsenal の翻訳です。最新の情報は英語記事をご覧ください。**

ソフォスのアナリストは先日、RansomHub と呼ばれるランサムウェアを用いて組織への攻撃を試みる犯罪グループによって展開された新しい EDR キラーユーティリティを発見しました。このランサムウェア攻撃は失敗に終わりましたが、事後分析により、エンドポイント保護ソフトウェアを終了させるように設計された新しいツールの存在が明らかになりました。ソフォスはこのツールを EDRKillShifter と呼んでいます。

2022 年以降、エンドポイントの保護に EDR ツールを採用するお客様が増加するにつれ、マルウェアも巧妙化し、感染したシステム上の EDR システムを無効にするよう設計されるようになっています。Sophos X-Ops が昨年発見し、以前にも記事にした EDR キラーツール「AuKill」は、犯罪マーケットプレイスで大々的に販売されていました。

5 月に発生したインシデントでは、攻撃者は EDRKillShifter を使用して、標的となったコンピューターでソフォスによる保護を停止しようとしましたが、失敗に終わりました (このツールが複数の攻撃者によって使用されていることにソフォスは一定の確信を持っています)。その後、攻撃者はアクセス権を入手したマシン上でランサムウェアの実行ファイルを実行しようとしましたが、エンドポイント保護エージェントの CryptoGuard 機能がトリガーされたため、この試みも失敗しました。

EDRKillShifter の仕組み

EDRKillShifter ツールは「ローダー」実行ファイルであり、悪用されやすい正規のドライバーの配信メカニズムです (「脆弱なデバイスの持ち込み (BYOVD)」ツールとしても知られています)。 このツールは攻撃者の要求に応じて、さまざまな異なるドライバーのペイロードを配信できます。

このローダーの実行プロセスには 3 つのステップがあります。まず、攻撃者は、パスワード文字列を含むコマンドラインで EDRKillShifter を実行する必要があります。正しいパスワードで実行されると、実行ファイルは BIN という名前の埋め込みリソースを解読し、メモリ内で実行します。

最後に、BIN のコードが最終的なペイロードを解凍して実行します。この最終的なペイロードは Go (プログラミング言語) で書かれており、EDR ツールの保護を解除するのに十分な権限を得るために、さまざまな脆弱性のある正規のドライバーのいずれかをドロップして悪用します。

A diagram shows a High-level overview of the EDRKillShifter loader execution process.
ローダーが実行されるプロセスの概要

最初の攻撃段階

表層分析から、すべてのサンプルが同じバージョンデータを共有していることが判明しました。元のファイル名は Loader.exe で、製品名は ARK-Game です。(研究チームの一部のメンバーは、攻撃者が最終的なペイロードを「ARK: Survival Evolved」という人気コンピューターゲームに見せかけようとしたのではないかと推測しています。)

バイナリの言語設定はロシア語であり、マルウェアの作者がロシア語に設定されたコンピューター上で実行ファイルをコンパイルしたことを示しています。

Version info of EDRKillShifter as shown in CFF Explorer
CFF エクスプローラーで表示された EDRKillShifter のバージョン情報

すべてのサンプルは、コマンドラインに渡される 64 文字の一意のパスワードを必要とします。パスワードが間違っている (あるいは与えられていない) 場合は、実行されません。

Execution fails if the user doesn't provide the correct password. A screenshot of the command line with the password added as a command flag
プログラムの実行時にユーザーがコンソールに正しいパスワードを入力しない場合、実行は失敗します

EDRKillShifter は実行されると、自身に埋め込まれた BIN という暗号化されたリソースをメモリにロードします。また、そのデータを Config.ini という新しいファイルにコピーし、バイナリが実行されたのと同じファイルシステムの場所に書き込みます。

その後、ローダーコードは VirtualAlloc を使って新しいメモリページを割り当て、暗号化されたコンテンツをそのページに書き込みます。さらに、マルウェアは config.ini ファイルを削除し、次の一連のペイロード (悪用可能なドライバーと Go バイナリ) を復号します。ローダーは、入力されたパスワードの SHA256 ハッシュを第 2 段階のペイロードの復号キーとして使用します。

Pseudocode of the EDRKillShifter malware second-layer decryption routine
EDRKillShifter マルウェアの第 2 段階復号ルーチンの疑似コード

マルウェアは第 2 段階のペイロードの解読に成功すると新しいスレッドを作成し、そのスレッドで実行を開始します。

最終的な EDR キラーをメモリにロード

第 2 段階は、自己改変コード技術を使って難読化されます。実行中、第 2 段階は自身に対する命令を変更します。実際に実行される命令はその最中にのみ明らかにされるため、解析には追加のツールやエミュレーションが必要となります。

下図はその手法を詳しく図示したものです。最初のセクションは、自己改変コード層の開始点を示しています。逆アセンブルの最初の呼び出し以降の命令は、この時点ではすべて無意味です。最初のコールを実行した後に同じ命令ブロックを再確認すると、異なる命令セットへと変わっています。最初のコールが次の命令セットを改変し、そのセットがさらに次の命令セットを改変するという手順です。

A diagram illustrates how The EDRKillShifter uses self-modifying code to change every subsequent instruction
EDRKillShifter は自己改変コードを使用して、後続のすべての命令を変更します。

最終的にデコードされる層の唯一の目的は、最終的なペイロードを動的にメモリにロードし、実行することです。

最終的なペイロードの分析

私たちが分析したサンプルはすべて、メモリ内で異なる EDR キラーの亜種を実行していました。これらのサンプルはすべて Go で書かれており、(おそらく gobfuscate いうオープンソースのツールを使って) 難読化されています。難読化ツールは、リバースエンジニアリングを妨害するように設計されたツールです。競合他社による知的財産の窃盗を防ぐためなど、ソフトウェアエンジニアがソフトウェアを難読化すること自体には正当な理由があるかもしれません。しかしマルウェアの作者は、セキュリティ研究者によるマルウェアの分析を妨げるために難読化ツールを使用しています。

ほとんどのリバースエンジニアは Go で書かれたマルウェアを分析する際、この難読化されたデータを解析しますが、この事例では、コンパイルされたコードでは重要なデータが不明瞭になっています。たとえば、以下のような問題が生じています。

  • 文字列が暗号化されています。これらは実行時に復号されます。
  • Go のバージョン情報が削除されています。多くのオープンソースのリバースエンジニアリングツールは、逆アセンブルの構造を再構築する際に、この Go バージョン情報を利用します。
  • 有用なパッケージ情報やパッケージパスは暗号化されるか、最終的なマルウェアから取り除かれています。

しかしソフォスは、Mandiant の GoReSym ツールを用いることで、重要な情報の抽出に成功しました。

最終的なペイロードの類似点

解凍された EDR キラーはすべて、.data セクションに脆弱なドライバーを埋め込んでいました。ツールの動作は、ソフォスが分析した他の EDR キラー [1][2][3] と同様に単純明快です。調査した 2 種類の亜種に存在する唯一の大きな違いは、ロードされ悪用される脆弱なドライバーです。

実行されると、どちらの亜種もドライバーをロードするのに必要な権限を取得し、悪用可能な sys ファイルを \AppData\Local\Temp フォルダにドロップします。このマルウェアは、実行されるたびにランダムなファイル名を生成し、各ドライバーに割り当てます。

A Process Monitor log shows the malware dropping the abusable driver into the TEMP folder
マルウェアが悪用可能なドライバーを TEMP フォルダにドロップしていることを示す Process Monitor のログ

マルウェアは、ドライバー用の新しいサービスを作成・開始し、ドライバーをロードした後、実行中のプロセスを継続的に列挙する無限ループに入ります。ハードコードされた標的リストに名前が記入されると、マルウェアはプロセスを終了します。この動作は両方の亜種で共通しています。

また、どちらの亜種も Github で入手可能な概念実証のエクスプロイトを使用して、(脆弱ではあるものの) 正規のドライバーを悪用していることも注目に値します。ソフォスは、攻撃者がこれらの概念実証の一部をコピー、改変し、コードを Go 言語に移植したと推測しています。この操作は、Terminator のような他の EDR キラーにも見られる一般的な傾向です。

同一のローダー、異なる最終ペイロード

451f5aa55eb207e73c5ca53d249b95911d3fad6fe32ee78c58947761336cc60 の SHA256 ハッシュを持つサンプルは、実際の攻撃でも悪用されている脆弱なドライバーを悪用しており、RentDrv2 と命名されています。このドライバーの悪用に関する概念実証は Github で入手可能です。

この亜種はまた、追加のコマンドライン引数として「-list」を受け取ることができ、攻撃者は標的とするプロセス名の追加リストを渡せます。

The first variant can also accept additional command line arguments as input, including a custom list of processes to target. The screenshot shows the program targeting various Sophos tools as well as Notepad and CalculatorApp on Windows.
最初の亜種も同じく、標的とするプロセスのカスタムリストを含む、 追加のコマンドライン引数を入力として受け取れる

一方、d0f9eae1776a98c77a6c6d66a3fd32cee7ee6148a7276bc899c1a1376865d9b0 の SHA256 ハッシュを持つ亜種は、ThreatFireMonitor と呼ばれる既知の脆弱なドライバーを悪用していました。 このドライバーに関する概念実証Github で入手可能です。

EDRKillShifter をより広範な脅威環境にマッピング

ローダーに組み込まれる最終的なペイロードは、インシデントごとに (そしておそらくは作成者ごとに) 異なります。EDRKillShifter をより広範な脅威環境にマッピングすると、ローダーと最終的なペイロードが別々の攻撃者によって開発されている可能性も示唆されます。

ローダーや難読化ツールの販売は、犯罪フォーラムでは有力なビジネスです。Sophos X-Ops は、ローダーの唯一の目的は最終的な BYOVD ペイロードを展開することであり、犯罪フォーラムで入手されたものである可能性が高いと考えています。最終的な EDR キラーペイロードは、上記の分析で説明した第 1 層と第 2 層で構成されるローダー自身によって配信されます。

Example of an obfuscator tool advertisement for sale on a dark net criminal forum
犯罪フォーラムにおける難読化ツールの販売広告の例

現時点では、この仮説を裏付ける証拠はありません。

緩和策とアドバイス

ソフォスは現在、EDRKillShifter を Troj/KillAV-KG として検出します。さらに、防御回避や権限昇格からマシンを保護する動作検知ルールが、これらのシステムコールが通過するのをブロックします。組織や個人は、ドライバーの悪用からマシンを保護するために以下のような追加手段を講じることもできます。

  • Sophos X-Ops は、お使いのエンドポイントセキュリティ製品が改ざん防止機能を実装しており、その機能が有効になっているかどうかを確認することを強く推奨します。このような改ざん防止機能は、これらの攻撃に対して強力な保護レイヤーになります。ソフォス製品を使用しており、改ざん防止機能を有効にしていない場合には、今すぐに有効にしてください。
  • Windows のセキュリティロールの管理を徹底してください。この攻撃は、攻撃者が権限を昇格するか、管理者権限を取得できる場合にのみ可能です。ユーザー権限と管理者権限を適切に分離し、最小権限の原則を適用することで、攻撃者は簡単にドライバーをロードできなくなります。
  • システムは常にアップデートして最新の状態を維持してください。昨年以降、Microsoft は過去に悪用されたことが確認されている署名付きドライバーの認証を解除するアップデートを推し進めています。

コメントを残す

Your email address will not be published. Required fields are marked *