ExtraHopの脅威研究者は、Log4Shell攻撃の検知を回避するために暗号化されたトラフィックが使用されていることを発見しました。これは、攻撃の初期侵入や横方向の移動などの段階で検知を回避するために暗号化を利用する、サイバー攻撃者の一般的な傾向と一致しています。
暗号化されたトラフィックを使用することで、多くのセキュリティ検知/調査ツールから、侵入後に行われるLog4Shellのアクティビティを完全に隠すことができます。そのためセキュリティ担当者は、暗号化されたLog4Shellに関連するエクスプロイトを捕捉し、侵入後の脅威行動(コインマイナのインストール、ランサムウェアの配布、データの流出など)を捕らえるために十分な復号機能とトラフィック検査機能をセキュリティ・ツールが備えているかどうか確認する必要があります。
暗号化されたLog4Shell攻撃のしくみ
Log4jエクスプロイトは、Log4jライブラリに攻撃者の管理下にある外部ソースにアクセスさせ、Javaクラスを取得して実行させることで動作します。以下の動画で一連の流れを図解しています。
{{< video type="wistia" id="1i2cx04gg9" >}}
Log4Shell攻撃には複数の暗号化されたプロトコルを使用できます。この例では、最も一般的なHTTPSに焦点を当てます。攻撃の成功に必要な初期侵入時と侵入後の攻撃手順は、暗号化されていないHTTPでも暗号化されたHTTPSでも実行できます。これらの手順では、悪意のあるJNDI要求が、すべてのHTTPS要求の1つまたは複数のフィールドに含まれる可能性があります。
このJNDI要求は、暗号化されていないHTTPトラフィックからは検知できますが、暗号化されていると、なんらかの方法で復号しない限りセキュリティ・アナリストやそのツールの目を逃れます。Reveal(x)は、HTTPSトラフィックの安全な復号を完全に帯域外で行い、悪意のあるJNDI文字列へのフル・アクセスが得られるため、この攻撃を検知して調査することができます。復号機能のないセキュリティ・ツールは、暗号化されている場合にこの攻撃を捉えることができません。
下の注釈付きスクリーンショットは、ExtraHop Reveal(x)が観測したHTTPとHTTPSのトランザクション記録です。要求には、以下のようなさまざまな特徴が見られます。
- 要求にどのポートが使われたか:ポート80(暗号化されていないHTTPのデフォルト)とポート443(暗号化されたHTTPSのデフォルト)を確認できます。
- 悪意のあるJNDIペイロードを含んだUser Agentフィールド(Log4jエクスプロイトを示唆)
- 悪意のあるJNDIペイロードを含んだOriginフィールド
ここで重要なのは、どのデバイスがLog4Shellエクスプロイトで攻撃されたか(そして、どのように対応したか)という重要な情報は、ポート443の暗号化されたトラフィックの中に完全に隠されてしまっていたということです。このスクリーンショットでそれが確認できるのは、Reveal(x) 360がセキュリティやプライバシーの要件に違反しない安全な方法でHTTPSトラフィックを復号して検査できるためです。この機能がなければ、パターンや文字列の照合、挙動などにある程度依存している脅威検知ツールは、まったく役に立たないものになっていたでしょう。セキュリティ・アナリストや調査担当者は、こういった詳細にアクセスできないため、攻撃者は自由にエクスプロイトを続けることになります。
{{< caption alt="Reveal(x) 360での調査のために安全に復号されたHTTPトラフィック" src="https://assets.extrahop.com/images/blog/log4shell-example.png" caption="このスクリーンショットの識別情報は修正されています。" >}}
Log4Shell攻撃の侵入後アクティビティ
リモートコード実行(RCE)の脆弱性であるLog4Shell脆弱性は、ほぼあらゆる種類の攻撃キャンペーンの出発点とすることができます。Log4Shellエクスプロイトに続いて発見されている侵入後アクティビティには、次のようなものがあります。
- コインマイナアクティビティ:特にXMrigのインストール。Reveal(x)は、Stratumコインマイニングプロトコルの使用を特定することで、この侵入後アクティビティを検知できます。
- ランサムウェアの配信:攻撃者にとって最も収益の多い戦略の一つであるため、Log4Shellを利用したランサムウェアの配信が始まるのは避けられないことでした。Reveal(x)は、ランサムウェア攻撃を検知して対応するための仕組みをいくつか備えています。Reveal(x)のランサムウェア検知は、挙動監視によるもので、配信メカニズムに関係なく機能します。
- 横方向の移動:ターゲット環境のマシンが侵害されても攻撃者の手は止まりません。横方向に移動し、暗号化されたプロトコルを使用してネットワーク上の他のデバイスに影響を与え、永続性を確立し、データの流出やランサムウェアの広範囲への配布など、最終的により大きな影響を与えるために力の及ぶ範囲を広げます。Reveal(x)は、Active DirectoryシステムやMSRPC、PSExecなどのリモート・アクセス・プロトコルの悪用を含む環境寄生戦術と横方向の移動を検知できます。
Log4jとサプライチェーン攻撃に関するメモ
2021年になり、ソフトウェア・サプライチェーンが誰にでも影響を与える可能性のあるリスクの元になることがますます明白になりました。SolarWinds SUNBURST攻撃とKaseya/REvil攻撃は、ソフトウェア・サプライチェーンを利用して不正アクセスを行い、数千の組織に多大な損害を与えました。Log4Shellエクスプロイトは、利用するゼロデイ脆弱性が悪意を持って導入されたものではないという点で異なります。しかし、Log4jは広範囲に使われており、特に開発環境や継続的インテグレーションと継続的デリバリ(CI/CD)のパイプラインにおいて、多くのベンダが影響を受けます。このようにゼロデイ脆弱性が広く存在することから、それが利用される可能性が高くなります。ソフトウェアを使用するにあたっては、その供給側にも脆弱性があると考え、自分らのネットワークだけでなくサプライチェーンの安全性を確保するための対策も講じる必要があります。
Log4jは広く使われているコンポーネントであり、世界中の多くのシステムやソフトウェアに存在しています。多くの人々や企業はこの攻撃に脆弱である上、自分らが脆弱であることに気付いていない可能性があります。セキュリティの担当者やベンダなどは、内部での調査だけでなく、取り引きしているベンダやサービス・プロバイダが自社やあなたを守るための対策を行っているかを確認することも重要です。
暗号化されたトラフィック内のLog4Shell攻撃を検知する方法
暗号化されたLog4Shell攻撃を検知するには、正しいトラフィックを復号する必要があります。トラフィックを復号して検査する機能は、Reveal(x)の標準機能です。お客様は、有効にするかどうかを完全にコントロールでき、どのトラフィック・ストリームを復号して検査するかを細かく制御できます。ExtraHopをご利用のお客様は、Log4Shell攻撃が発生する可能性の高いHTTPSトラフィック・ストリームの復号を有効にしていると、攻撃の検知と調査を上のスクリーンショットのような画面で行うことができます。
現在ご利用中のお客様で、Reveal(x)の復号機能を有効にしたい場合は、ExtraHopのドキュメントWebサイトでSSL/TLSの復号に関するページにアクセスしてください。
どのトラフィックを復号すればLog4Shellの検知と対応が容易になるかについてサポートが必要なお客様は、ExtraHopアカウントの担当者にご連絡ください。
ExtraHopをご利用でない方で、戦略的な復号と、それが今日の高度な攻撃の検知にどのように役立つかについて詳しく知りたい方は、ホワイトペーパー『暗号化と可視性:SecOpsがトラフィックを復号化して分析する必要がある理由』をご覧ください。