Sophos News

Rapid Response: 正規ツール「Ngrok」を悪用するインシデントへの対策ガイド

** 本記事は、Rapid Response: The Ngrok Incident Guide の翻訳です。最新の情報は英語記事をご覧ください。**

本記事は、インシデント対応の担当者やセキュリティ運用チームが、一般的な脅威で利用されているツール、テクニック、行動を特定して修復できるように、ソフォスの Rapid Response チームが作成したインシデントガイドシリーズの一部です。

Ngrok の機能と攻撃者による悪用方法

Ngrok は、安全なトンネルを介してローカルネットワークのポートをインターネットに公開するツールであり、さまざまなプラットフォームで利用されています。ファイアウォールやネットワークアクセス変換 (NAT) ソリューションの内側で動作し、伝送制御プロトコル (TCP) を使用するコンピュータシステムとインターネットとの間で安全なトンネルを作成します。使用する通信チャネルとしてポートが選択されると、必要なトンネル設定が ngrok プロセスで行われます。ngrok のクラウドサービスは、実行中の ngrok プロセスに再度リレーされ、指定されたローカルポートにネットワークトラフィックを転送する双方向のネットワークトラフィックを促進します。

Ngrok の限定バージョンは、非商用のものであれば ngrok.com で自由に利用でき、高機能なバージョンはライセンスを取得して商用で利用できます。しかし残念ながら、このツールは攻撃者によっても、さまざまな攻撃で悪用されています。攻撃者はこのツールのトンネリングの機能を利用して、ネットワーク保護をバイパスしながらコマンドアンドコントロール (C2) サーバーに接続し、悪意のあるコードをダウンロードしています。

また、Ngrok が攻撃者に多用されている理由として、以下が考えられます。

インシデントガイドの背景

本ガイドでは、ネットワークで ngrok が検出されるインシデントの調査と緩和策について取り上げます。 緩和策を実施する前に、ネットワークで ngrok が正当な目的で使用されているかどうかを確認することを強く推奨します。

さらに、本ガイドでは、Sophos XDR Live Discover や Live Response  などの機能を用いて、防御者が取るべき手順を説明しています。Sophos XDR を使用していない場合でも、OSQuery などの他のツールを利用できるセキュリティ専門家であれば、それぞれのニーズに合わせてこれらの情報を応用できます。

本ガイドで言及されているクエリやコマンドは、インシデント対応時に  Sophos Rapid Response チームが使用した手法の一部です。これらはあくまで推奨事項であり、各タスクを遂行する方法は他にもあります。

設定などの削除が指示される場合は、正規のクライアント設定が誤って削除されないように、ダブルチェックする必要があります。

調査

本セクションの目標は、影響を受けるシステムに ngrok に関連する IoC (セキュリティ侵害の痕跡) があるかどうかを確認することです。以降のセクションでは、調査結果を分析し、対応するための手順を説明します。説明にあたって、これらのセクションでは 2 つの別々の対応シナリオを用います。また重要な点については、緑色のテキストを使用することがあります。

ライブプロセスの確認

まず、ネットワーク上でクエリを実行し、現在実行中のプロセスを確認します。

Sophos XDR のユーザーは、新しい Live Discover クエリを作成して実行できます。Live Discover に不慣れで方法が分からない場合は、まずヘルプガイドを参照することを推奨します。基本的な手順は次のとおりです。

  1. まず、Sophos Central にログインし、Threat Analysis Center から Live Discover に移動します。
  2. 「Designer Mode (デザイナーモード)」を有効にします。
  3. 「Create new query (新規クエリ作成)」を選択します。
  4. クエリの名前と詳細を設定し、保存するカテゴリとして「Live Endpoint」を選択します。
  5. Rapid Response の Github ページ(Process.01.0 – List running processes tool.txt) から SQL の詳細をコピーします。
  6. クエリを保存します。

この調査例では、DNS、HTTP、PowerShell でいくつかのクエリを実行し、ngrok の痕跡を確認しました。これらは調査結果とともに下記で紹介しています。

続いて、DNS、ジャーナル、その他のログデータをさらに詳しく見ていきます。これらのオプションは、調査結果と共に下記で紹介しています。 and

分析

以下の情報は、ngrok が標的のネットワークに導入され、攻撃者に悪用された 2 つのインシデント対応の調査で収集された情報に基づいています。

インシデント 1

インシデント 2

ここで、ngrok のアーティファクト (ngrok TCP 3389 のバインディングと Web プロトコル経由のペイロード取得に基づく痕跡) が見つかりました。これらのアーティファクトは、その場所と一緒に以下にリストアップされています。緑でハイライトされた値は、ngrok の存在 / 活動を示唆するために使用できるデータを表します。

対応策

Sophos Central (または他のインストール済みセキュリティソリューションとポリシー) を活用してアプリケーションをブロックすることで、調査や分析から得られた情報をもとに、ビジネスの目的で使用されていない不要な ngrok インスタンスを特定し、ネットワークやエンドポイントをクリーンアップすることが可能になります。これを実現するには、さまざまな方法があります。

Sophos Central には、ハッシュによるグローバルブロックリストが存在します (ただし、ハッシュが追加されている ngrok のバージョンだけがブロックされます)。

ngrok のバイナリは現在デジタル署名されていないため、署名されていないバイナリに関する Microsoft AppLocker ポリシー / ルールセットも、これに対抗するために利用できます。

また、プロキシサーバーやファイアウォール (DNS リクエスト / TLS 復号化パケットインスペクションを確認する場合) においても対策が可能です。ngrok バイナリは、名前、ハッシュ、場所などが異なることがありますが、ngrok のパブリックインフラストラクチャを使用するための最初に静的なネットワーク通信を実行しているように見えます。以下にその例を示します。

同様に、DNS リクエストについても、ngrok トラフィックをブロックし、どのマシンが DNS リクエストを開始したかを識別するために、同様のアプローチを実行できます。上記のさまざまな例で示されているように、ngrok は複数のトップレベルドメイン (.com、.io) を使用していることに注意してください。

バックアップからリストアする前に、バックアップ自体に問題がないことを忘れずに確認してください。<