正規サービス「ngrok」を悪用する複雑な攻撃をXDRで特定

トレンドマイクロが提供する製品「Trend Micro XDR™ Add-on: Apex One SaaS」は、攻撃を初期段階で検出し、発生中のインシデントを視覚化するために必要な可視性を提供します。これは企業のネットワーク防御の維持と解析を行うセキュリティ担当者、いわゆる「ブルーチーム」にとって、非常に有益な情報となります。弊社の「Trend Micro ™ Managed XDR 」チーム(以下XDRチーム)が最近対処したあるインシデントでは、悪意を持った攻撃者が特定の手法を攻撃に組み込んだことが明らかになりました。この攻撃手法は、ブルーチームとセキュリティリサーチャにとって、一連のイベントの解析がより困難化する複雑なものでした。本記事ではXDRチームが特定した複雑な攻撃手法と、特定に至った調査内容について解説します。

■最初の調査

トレンドマイクロのXDRチームでは2020年7月、「Apex One Endpoint Sensor™」を介して、弊社の顧客の環境内で以下の不審なイベントを確認しました。

Process: c:\windows\system32\reg.exe CommandLine: REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v <value> /t REG_SZ /d “\”c:\Windows\system32\<random name>\”” /f

特筆すべき点としてはまず初めに、作成されるレジストリの値名は、特定のセキュリティベンダに倣ってパターン化されたことがわかっています。そして、レジストリ名の綴りに、意図的である可能性はありますが、誤りが見られました。具体的な文字列は上記の<value>部分となりますが、本記事では被害者のプライバシー上の理由から含めません。最後に、システムディレクトリにランダムに名前が付けられた実行可能ファイルが存在していました。これらの点すべてを含めて考えると、明らかな危険信号と判断できました。

実行可能ファイルは、マウス動作とキー入力の情報を外部に送信し、Gmailアカウントのネットワーク通信を盗聴するキーロガーであることが判明しました。不正コード内にハードコードされた情報が見つかり、対象の企業を狙って作成された標的型攻撃であるという確証が得られました。さらに、バイナリから、攻撃者が対象の企業に関する既存の知識を持っていることもわかりました。

XDRチームでは、更にキーロガーのファイル名とハッシュを使用して記録およびイベントを検索したところ、以下を確認しました。

  • ファイルのイベント

作成された解析の流れに基づいて、キーロガーはプロセス「ntoskrnl.exe」によって削除されます。このことは、キーロガーがネットワーク共有を介して、あるいはカーネルに影響を与える脆弱性攻撃コードを使用して作成されたことを示唆しています。

図1:プロセス「ntoskrnl.exe」によって作成されたキーロガー

  • コマンドラインパラメータを使用したイベント

調査のきっかけとなったことからも、識別されたランダムなファイル名を含む「reg.exe」プロセスイベントを発見したのは予想の範囲内ではありましたが、reg.exeに先行する一連のプロセスを予測するのはより困難をきたしました。

図2:reg.exeプロセスに至るまでの一連のイベント

キーロガーがreg.exeを呼び出して持続性機能を生成する一方で、もう一つのプロセス「services.exe」が攻撃経路となっているようです。このことは、攻撃者が一連のプロセス「cmd.exe」を起動して、reg.exeを使用して持続性機能を構築するサービスを作成したことを意味します。

  • レジストリのデータ

XDRチームは調査中に、reg.exeに渡されたコマンドラインパラメータを含むサービスレジストリエントリを確認しました。

Reg Key: hklm\system\currentcontrolset\services\<random>
Reg Value: imagepath
Reg Data: %COMSPEC% /C echo REG ADD
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v <value> /t REG_SZ /d
“\”c:\Windows\system32\<random>\”” /f ^> %SYSTEMDRIVE%\WINDOWS\Temp\<random>.txt >
\WINDOWS\Temp\<random>.bat & %COMSPEC% /C start %COMSPEC% /C
\WINDOWS\Temp\<random>.bat

このレジストリエントリは、上述のreg.exeにつながるチェーン内の複数のプロセスcmd.exeについて説明しています。最初のcmd.exeのコマンドラインには%COMSPEC%の後の文字列が含まれており、さらに二番目のコマンドラインには二番目の%COMSPEC%の後の文字列が以降順番に含まれます。

  • 詳細

コマンド起動のためのサービスを作成する動作は、バックドアシェルのシェル部分を実装するために利用されていました。XDRチームは、文字列「%COMSPEC%」を使用して他のサービスレジストリエントリを検索および調査し、最終的にこのメソッドを使用して実行された複数のツールとコマンドを確認しました。

XDRチームはまた、複数のコンピュータ上で、「queryuser」、「net user <user account> /domain」、「ping <ip address>」などのサービスレジストリエントリから派生したコマンドを確認しました。新しいバックドアシェルが実際に実装された場合でも、サービスエントリを作成する部分だけでなく、外部と通信するコンポーネントを確認する必要がありました。

さらに、コマンド「<random> tcp –authtoken <token> -config <config file> <ip>:445」も確認しました。パラメータのみに基づくと、この特定のツールは、企業環境で広く使用されている共通ポート(SMB / TCP 445)を利用するネットワーク通信に関係していると見られます。

トレンドマイクロは対象のファイルを収集後、このツールは「ngrok」を悪用するためのものであると結論づけました。ngrokとは、LAN内で稼働しているサービスを外部からアクセス可能にするWebサービスです。サイバー犯罪者はこのサービスを悪用し、ツールが存在した2台のコンピュータに外部からアクセスしていたものと考えられます。ngrokを不正な目的で使用する手法については、以前にこちら(英語)で説明しています。

サービスエントリがどのように作成されるかは、現時点ではまだ明らかになっておりません。 PsExecのサーバ部分「psexesvc.exe」と「remotesvc.exe」のインスタンスを検索しましたが、侵入の痕跡(IoC)でのスキャン結果は決定打とはなりませんでした。ただし、サービスエントリの一つで、Metasploitのコマンド実行に似た文字列「admin/smb/psexec_command」が見つかりました。現時点でのトレンドマイクロの見解では、オープンソースのプロジェクト「Metasploit」のモジュール「PsExec」は対象のコンピュータにバイナリを作成しません。さらなる調査によれば、「Mimikatz」と「Impacket」の一部のバージョンには対象の機能が搭載されているようです。

  • 攻撃をシミュレーション

攻撃の仕組みを理解するために、外部からは見えず、アクセスも不可となっているコンピュータの一つ(コンピュータA)にngrokをインストールして、簡単に攻撃のシミュレーションを試みました。

図3:コンピュータAにngrokをインストール

ngrokは、自身を含むコンピュータAがアクセス可能な内部ネットワーク内のオープンなIPポートをインターネットに露出すると見られています。今回の例では、ngrokはngrokサーバを介して別のコンピュータ「コンピュータB」のIPポート「192.168.19.129:445」を露出しました。その後、「2.tcp.ngrok.io:14139」を介して「192.168.19.129:445」へのアクセスを成功させました。

「Impacket」ツールキットのサービス「Smbexec」モジュールとコンピュータBの認証情報を使用することで、外部のコンピュータからコンピュータBに簡単なpingコマンドの送信が可能でした。

図4:外部のコンピュータからコンピュータBに簡単なpingコマンドを送信

結果から得られた動作は、今回のインシデントの被害環境で確認された、ランダムに名前が付けられたサービスエントリが作成されてから削除されるものと類似していました。pingコマンドは、対象のコンピュータにバイナリを作成することなく実行されました。

さらに、コマンドはサービスとして実行されたため、昇格された権限で実行されます。ネットワーク通信がngrokサービスを介してトンネリングされたため、C&Cサーバは事実上隠匿されていました。攻撃者がngrokによって割り当てられた公開アドレスを知っている限り、日時や場所を問わず侵害されたエンドポイントに接続可能です。

図5:ngrokが割り当てた公開アドレスを使用して侵害したコンピュータに接続する

今回行った攻撃のシミュレーションが、攻撃者の活動を完全に再現することは期待していませんでしたが、攻撃発生の経緯を知るに至りました。

今回シミュレーションした事例の場合、内部コンピュータにインストールされたngrok、ngrokサーバのドメインとポート、および管理者アカウントが必要となりました。攻撃者がngrokをコンピュータ内にインストールして、攻撃対象の環境に関する特定の詳細を知るのに十分な時間があったことを考えると、攻撃者は上記三つのすべてを所有していたと考えられます。また、高い特権が付与されているアカウントを侵害することもできました。このことに基づいて、トレンドマイクロが行ったこのシミュレーションは攻撃特性に適合しています。

■「Trend Micro XDR™ Add-on: Apex One SaaS」で対抗する

以下の図6は、典型的なバックドアシェルの根本原因解析(R C A)の流れを示しています。

図6:典型的なバックドアシェルのRCAの流れ

Shell.exeはcmd.exeを起動し、cmd.exeはツールを起動して指定されたコマンドを実行します。また、Toola.exeなどのインストールしたツールの起動も見られます。図6のような解析の流れは単純で、不審な対象を簡単に識別し、攻撃で物事がどのように機能するのか基本的な流れが判断可能となります。

このインシデントでは、RCAはservices.exeから始まり、実行されたツールまたはコマンドで終わります。他のツールをドロップする多段階ツールが使用されたという証拠はなく、この攻撃モデルにおいて攻撃者が持っていたアクセス権に基づくと、多段階ツールを使用しなかった可能性が高いと見られます。コンピュータへのアクセスは非常に容易なため、攻撃者は、コンピュータ間で横方向移動を行うなど、バイナリをインストールするための巧妙な仕組みを考えることなく必要なツールを実行できます。つまり、ツールは事実上オンデマンドで実行可能です。

たとえば、キーロガーのインストールについて考えてみましょう。攻撃者はサーバメッセージブロック(SMB)を介してキーロガーファイルを作成し、持続性機能を作成するために別のコマンドを発行しました。攻撃者は、独自の持続化機能を作成するキーロガーを使用しませんでした。おそらく、持続化のためのレジストリエントリを遠隔から作成することは難しくないからでしょう。

意義あるRCAの流れは、すべてが一度に1つのコマンド/ツールを実行するservices.exe、あるいはファイルをドロップする場合は別のWindowsプロセスで始まるため、実現するのが困難です。解析結果から得られた攻撃の流れは、services.exeが中央にある「木」のように見えます。各分岐は、services.exeを介して実行されるコマンドを表しています。トレンドマイクロの解析によれば、攻撃に使用された手法は、セキュリティリサーチャがR C Aを介して一連のイベントをつなぎ合わせようとするのを妨げています。ただし、E D Rソリューションに搭載されている特定の機能は、このようなインシデントを処理するように設計されています。

■不審なイベントを利用した影響の軽減

不審なイベントはE D Rソリューションの効果的なトリガーであり、ブルーチームにとってはこの対策製品を介して軽減するのは理想的な機能です。本記事で紹介したインシデントでは、トレンドマイクロのManaged XDRがApex Oneの機能を利用して、同じソフトウェアスイート内の脅威を調査および軽減しました。

ログに記録されたイベントを利用した調査

従来のインシデント対応方法では、不審なホストから証拠を取得するためのツールを実行する必要がありました。この調査では、EDRでログに記録されたイベントの調査を通じてすべてが行われました。調査のためにメモリまたはディスクイメージの取得は行われませんでした。つまり、EDRによって収集されたデータは、同様の攻撃がどう機能するかを判断するのに十分でした。コマンドの時系列は、イベントのタイムスタンプから取得されました。EDRが作成する明瞭なR C Aがなくても、攻撃発生の経緯を判断することは可能です。

■新しいアラート

EDRを使用して、簡単にアラートを作成して調査をトリガーすることが可能です。この場合、services.exeがcmd.exeを起動し、%comspec%が自動起動レジストリエントリに書き込まれる度に新しいアラートを作成できます。これは、ブルーチームが将来の脅威を捕捉する際に役立ちます。

■トレンドマイクロの対策

Trend Micro XDR」は高度な分析と人工知能(AI)技術を使用して、エンドポイント、メール、ネットワークなどのアラートを相関させ、一つの防御ポイントの情報だけではわからないような脅威を可視化し、深刻度のレベルに応じて優先順位を付けます。これにより、企業は攻撃がどのように開始され、どの程度拡散しているかを迅速に把握でき、被害を最小化することができます。

参考記事:

翻訳:下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)