SECURITY

脅威の最新情報:DoubleZero Destructor

Splunk脅威調査チームは、現在進行している地政学的な問題を起因とした、サイバー領域の新たな脅威の出現を積極的に監視しています。過去に公開した複数の記事でHermeticWiperやCaddyWiperなどについて指摘したのと同様に、この攻撃を主導する攻撃者グループは、悪質なペイロードをばらまきながらアップデートと修正を繰り返してステルス性を高めています。2022年3月17日、ウクライナのCERT(CERT-UA)が新たに発見した悪質なペイロードは「DoubleZero Destructor」と名付けられました(CERT-UA #4243)。このペイロードには以下の特徴があります。

  • ドメインコントローラーをリスト化する関数を有し、ドメインコントローラーであることを検出するとキルスイッチを実行します。これは、敵味方を自動で識別する関数で、その目的は、ドメインコントローラーの破壊を避けて、攻撃者が侵入先のネットワークでアクセス権を維持したり権限を昇格(GPOを作成)したりできるようにすることです。
  • 上記の関数は、標的に関する情報収集と標的とそれ以外の判別にも使用されます。
  • ファイルを4096バイトのゼロブロックで上書きします。この操作では、NtFileOpenやNtFsControlFileなどのAPIコールが使用されることもあります。
  • システムファイルをリストしてから、ファイルを破壊します。
  • レジストリハイブを削除します。対象となるのは、HKCU (現在ログインしているユーザー)、HKLM (現在インストールされているソフトウェアの構成)、HKU (システム内のすべてのアクティブユーザーの情報)、HKLM \BCD (UEFIや従来のBIOSシステムのブート構成データ)です。削除後にコンピューターをシャットダウンします。
  • ジャンクコードを挿入してさらに難読化し、フォレンジック分析を妨害します。

分析

標的となるファイルパスの探索

このマルウェアは.NETでコンパイルされたバイナリで、分析を困難にするためにカスタマイズされた難読化手法が使用され、大量のジャンクコードが挿入されています。破壊行為を実行する前に、複数のディレクトリ名とパスをリストし、消去するファイルを探します。 

ファイルパスの探索

ドメインコントローラーのキルスイッチ 

このマルウェアには、侵入先のホストに接続するドメインコントローラーをリスト化する関数もあります。この関数は、侵入先のホストがドメインコントローラーである場合に、攻撃をスキップするキルスイッチの役割を果たします。次の図に、すべてのドメインコントローラーを列挙するコード部分を示します。実際にはジャンクコードが挿入されているため、全体はもっと長くなります。

ドメインコントローラー

ファイルの消去

このマルウェアは、最初の図に示したようにディレクトリ名をリストする以外に、侵入先のホストにマウントされたすべてのドライブも列挙して、消去するファイルをさらに探します。次の図に、侵入先のホスト内でドライブ情報を取得するコードを示します。

コード

次に、自らのプロセスのトークンの権限とSecurityIdentifier(SID)を調整して、「FullControl」のファイルシステム権限を取得します。これは、侵入先のホストで見つけた通常のファイルやシステムファイルを消去する際にエラーやアクセス拒否が発生するのを回避するためです。次の図に、権限を調整してファイルのアクセス制御の権限を「FullControl」、タイプを「Allow」(許可)に設定するコードを示します。

アクセス制御の権限

続いて、ネイティブAPIのNtOpenFile()を使用して標的ファイルを開き、ゼロを書き込むか、ネイティブAPIのNtFsControlFile()を使用して、指定したファイルシステムにIOCTL (I/O制御コード: Device Input and Output Control)「FSCTL_SET_ZERO_DATA」を直接送信することで、標的ファイルを消去します。これによってシステムファイルを消去し、侵入先のホストが再起動後に起動できないようにします。次の図に、このAPIを使用して破壊行為を実行するコードを示します。

実行するコード

次の図に、攻撃を再現したテストラボでファイルが消去されたときに発生したイベントの例を示します。IOCTLコード「FSCTL_SET_ZERO_DATA」を呼び出した後、「MimeWriter.py」ファイルにゼロバイトが書き込まれて消去されています。

イベント例

 

消去のための別の関数も見つかりました。この追加の関数は、.NET関数のFileStream.Writeを使用して、標的のファイルにゼロのバッファを書き込みます。下の図に、一部のジャンクコードを取り除いた後のこの関数のコードを示します。

関数のコード

レジストリサブキーの削除

このマルウェアは、破壊行為の一部として既知のレジストリハイブも消去します。まずはプロセスを列挙して、「lsass」という名前のプロセスを探し、見つかったら終了(kill)します。次の図に、すべてのプロセスを列挙して、「lsass」プロセスが見つかったらprocess.Kill()関数を実行するコードを示します。

process.Kill()関数

次に、レジストリのオーナーを現在のログオンユーザーに変更し、アクセス制御をフルアクセスに変更して、HKLM、HKCU、HKUの各レジストリハイブのすべてのサブキーを削除します。次の図に、レジストリのオーナーとアクセス制御を変更して、そのレジストリのすべてのサブキーを削除するコード部分を示します。実際には、これらのコードはあるクラス内の複数個所に分散しています。

サブキーを削除するコード

検出

Splunk脅威調査チームは、このペイロードを検出するための専用のサーチを開発しました。また、破壊的なソフトウェアを対象とする複数の分析ストーリー(WhisperGateHermeticWiperCaddyWiper)をすでにリリースしています。これらの分析ストーリーも、このペイロードの検出に役立ちます。

Windows Terminating Lsass Process

このサーチでは、Lsassプロセスを終了させる不審なプロセスを検出します。Lsassプロセスは、セキュリティポリシーの適用を担う重要なプロセスとして知られています。この手口は、侵入先のホストのファイルやレジストリを消去しようとするDoubleZeroマルウェアで見られます。

`sysmon` EventCode=10 TargetImage=*lsass.exe GrantedAccess = 0x1
  | stats count min(_time) as firstTime max(_time) as lastTime by SourceImage, TargetImage,
  TargetProcessId, SourceProcessId, GrantedAccess CallTrace, Computer
  | rename Computer as dest 
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)`

Windows Terminating Lsass Process

Windows Deleted Registry By A Non Critical Process File Path

このサーチでは、不審なプロセスファイルパスによるレジストリの削除を検出します。この手口は、標的ホストへの破壊行為の一部としてHKLM、HKCU、HKUレジストリハイブのすべてのサブキーを削除しようとするワイパー型DoubleZeroマルウェアで見られます。

| tstats `security_content_summariesonly` count from datamodel=Endpoint.Registry
  where Registry.action=deleted by _time span=1h Registry.dest Registry.user
  Registry.registry_path Registry.registry_value_name Registry.registry_key_name 
Registry.process_guid
  Registry.registry_value_data Registry.action | `drop_dm_object_name(Registry)` 
|rename process_guid
  as proc_guid |join proc_guid, _time [| tstats `security_content_summariesonly` count
  FROM datamodel=Endpoint.Processes where NOT (Processes.process_path IN 
("*\\windows\\*", "*\\program files*")) by _time span=1h Processes.process_id 
Processes.process_name
  Processes.process Processes.dest Processes.parent_process_name 
Processes.parent_process Processes.process_path
  Processes.process_guid | `drop_dm_object_name(Processes)` |rename process_guid as
  proc_guid | fields _time dest user parent_process_name parent_process process_name
  process_path process proc_guid registry_path registry_value_name registry_value_data
  registry_key_name action] | table _time parent_process_name parent_process 
process_name
  process_path process proc_guid registry_path registry_value_name registry_value_data
  registry_key_name action dest user 
  | `windows_deleted_registry_by_a_non_critical_process_file_path_filter`

 

Windows Deleted Registry By A Non Critical Process File Path



サーチ名

ATT&CK

説明

Technique ID

Tactic

Executables Or Script Creation In Suspicious Path

T1036

防御回避

このサーチでは、Windows内の不審なファイルパスのリストの中から不審な実行可能ファイルやスクリプト(既知のファイル拡張子)を検出します。 

Suspicious Process File Path

T1543

永続化、権限昇格

このサーチでは、通常はプロセスが実行されないファイルパスと悪質なソフトウェアがよく使用するファイルパスでの不審なプロセスの実行を検出します。 

Windows Terminating Lsass Process

T1562.001

防御回避

このサーチでは、Lsassプロセスを終了させる不審なプロセスを検出します。Lsassプロセスは、セキュリティポリシーの適用を担う重要なプロセスとして知られています。この手口は、侵入先のホストのファイルやレジストリを消去しようとするDoubleZeroマルウェアで見られます。



Windows Deleted Registry By A Non Critical Process File Path

T1112

防御回避

このサーチでは、不審なプロセスファイルパスによるレジストリの削除を検出します。



ファイル名/説明

Sha256

DoubleZeroマルウェア

3b2e708eaa4744c76a633391cf2c983f4a098b46436525619e5ea44e105355fe

詳細情報

セキュリティ分析ストーリーの最新コンテンツは、research.splunk.comからダウンロードできます。すべてのセキュリティコンテンツの一覧は、Splunk Docsリリースノートに掲載されています。

貢献者

この記事の執筆にあたってご協力いただいた以下の方々に感謝を申し上げます。

  • Teoderick Contreras
  • Rod Soto
  • Jose Hernandez
  • Patrick Barreiss
  • Lou Stella
  • Mauricio Velazco 
  • Michael Haag
  • Bhavin Patel
  • Eric McGinnis

このブログはこちらの英語ブログの翻訳、小川 泰明によるレビューです。

 

The Splunk Threat Research Team is an active part of a customer’s overall defense strategy by enhancing Splunk security offerings with verified research and security content such as use cases, detection searches, and playbooks. We help security teams around the globe strengthen operations by providing tactical guidance and insights to detect, investigate and respond against the latest threats. The Splunk Threat Research Team focuses on understanding how threats, actors, and vulnerabilities work, and the team replicates attacks which are stored as datasets in the Attack Data repository

Our goal is to provide security teams with research they can leverage in their day to day operations and to become the industry standard for SIEM detections. We are a team of industry-recognized experts who are encouraged to improve the security industry by sharing our work with the community via conference talks, open-sourcing projects, and writing white papers or blogs. You will also find us presenting our research at conferences such as Defcon, Blackhat, RSA, and many more.


Read more Splunk Security Content