2024年セキュリティの現状:競争が激化するAIの活用
先進的なサイバーセキュリティ対策を推進する組織がどのように課題を克服し、AIを活用してイノベーションを推進し、デジタルレジリエンスを強化しているかをご確認ください。
Splunk脅威調査チームは、現在進行している地政学的な問題を起因とした、サイバー領域の新たな脅威の出現を積極的に監視しています。過去に公開した複数の記事でHermeticWiperやCaddyWiperなどについて指摘したのと同様に、この攻撃を主導する攻撃者グループは、悪質なペイロードをばらまきながらアップデートと修正を繰り返してステルス性を高めています。2022年3月17日、ウクライナのCERT(CERT-UA)が新たに発見した悪質なペイロードは「DoubleZero Destructor」と名付けられました(CERT-UA #4243)。このペイロードには以下の特徴があります。
このマルウェアは.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()関数を実行するコードを示します。
次に、レジストリのオーナーを現在のログオンユーザーに変更し、アクセス制御をフルアクセスに変更して、HKLM、HKCU、HKUの各レジストリハイブのすべてのサブキーを削除します。次の図に、レジストリのオーナーとアクセス制御を変更して、そのレジストリのすべてのサブキーを削除するコード部分を示します。実際には、これらのコードはあるクラス内の複数個所に分散しています。
Splunk脅威調査チームは、このペイロードを検出するための専用のサーチを開発しました。また、破壊的なソフトウェアを対象とする複数の分析ストーリー(WhisperGate、HermeticWiper、CaddyWiper)をすでにリリースしています。これらの分析ストーリーも、このペイロードの検出に役立ちます。
このサーチでは、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)`
このサーチでは、不審なプロセスファイルパスによるレジストリの削除を検出します。この手口は、標的ホストへの破壊行為の一部として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`
サーチ名 |
ATT&CK |
説明 |
|
Technique ID |
Tactic |
||
防御回避 |
このサーチでは、Windows内の不審なファイルパスのリストの中から不審な実行可能ファイルやスクリプト(既知のファイル拡張子)を検出します。 |
||
永続化、権限昇格 |
このサーチでは、通常はプロセスが実行されないファイルパスと悪質なソフトウェアがよく使用するファイルパスでの不審なプロセスの実行を検出します。 |
||
防御回避 |
このサーチでは、Lsassプロセスを終了させる不審なプロセスを検出します。Lsassプロセスは、セキュリティポリシーの適用を担う重要なプロセスとして知られています。この手口は、侵入先のホストのファイルやレジストリを消去しようとするDoubleZeroマルウェアで見られます。 |
||
Windows Deleted Registry By A Non Critical Process File Path |
防御回避 |
このサーチでは、不審なプロセスファイルパスによるレジストリの削除を検出します。 |
ファイル名/説明 |
Sha256 |
DoubleZeroマルウェア |
3b2e708eaa4744c76a633391cf2c983f4a098b46436525619e5ea44e105355fe |
セキュリティ分析ストーリーの最新コンテンツは、research.splunk.comからダウンロードできます。すべてのセキュリティコンテンツの一覧は、Splunk Docsのリリースノートに掲載されています。
この記事の執筆にあたってご協力いただいた以下の方々に感謝を申し上げます。
このブログはこちらの英語ブログの翻訳、小川 泰明によるレビューです。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。