Blog
Threat Finds
RESPOND
Log4Shellの実際の検知と対処



このブログでは、Log4Shell脆弱性について解説し、実際にLog4Shellを悪用しようとした攻撃に対してDarktraceがどのように検知し対処するかについて事例をもとに説明します。
Log4Shell とは、CVE-2021-44228 – Log4j と呼ばれる有名なJavaロギングユーティリティを悪用したSeverityレベル10ゼロデイのよく知られた名前です。脆弱性は毎日のように見つかっており、その深刻度はさまざまですが、このオープンソースユーティリティがMars Ingenuityドローンを含むありとあらゆる製品に組み込まれていることから、この脆弱性は格段に危険なものとなっています。本ブログ公開時点でもLog4Shellの詳細や最新情報が次々と明らかになっています。
通常、このように多数のシステムに影響する力を持ったゼロデイは秘匿され国家レベルの攻撃者が高価値な標的や作戦に使用されます。しかし、このゼロデイは最初に発見されたのは、ゲーマー内のチャットで知られていたMinecraftゲームサーバーに対する攻撃でした。
Log4Shell脆弱性を修正するためにあらゆる手段を講じるべきですが、これには時間がかかります。この事例が示す通り、行動検知を使ってスキャニング、コインマイニング、水平移動その他の侵入後のアクティビティの兆候を探すことができます。
Darktraceが最初に検知したのはある顧客のインターネットに接続されたサーバーを標的としたLog4Shell脆弱性攻撃でした。これについての実際の調査を匿名化して詳しく以下に説明しています。これはCyber AI Analystを使って分析およびレポートされたもので、DarktraceのSOCチームから提供されたものです。特に、これが既存のアルゴリズムを使った結果であり、分類器の再トレーニングや、Log4Shellサイバー攻撃を受けての対処メカニズムの調整などは行っていないことにご注目ください。
Log4Shell の仕組み
この脆弱性はJava Naming and Directory Interface(JNDI)による不適切な入力検証を利用したものです。コマンドはHTTPユーザーエージェントとして、暗号化されたHTTPS接続、時にはチャットルームメッセージにより送信され、JNDIはそれをターゲットシステムに転送し、そこでコマンドが実行されます。ほとんどのライブラリやアプリケーションはこうしたことが起こらないためのチェックおよび保護機能を備えていますが、この例が示しているように、見逃されてしまうこともあります。
さまざまな脅威アクター達が、攻撃に脆弱性を利用しています。これらの攻撃は無差別のクリプトマイニング攻撃から、標的型のより高度な攻撃まで多様です。
実例1:CVE IDリリース日にエクスプロイトされたLog4Shell
Darktraceが最初の例を観測したのは12月10日でしたが、これはCVE IDがリリースされたのと同じ日でした。当社は文書が公開された脆弱性が脅威アクターにより数日のうちに兵器化される事例をしばしば観測しています。この攻撃は、ある組織のDMZ内にあった、インターネット接続されたデバイスを襲いました。Darktraceはこのサーバーの動作に基づき、このサーバーをインターネットに接続されているデバイスと自動的に分類していました。
この組織ではDarktraceを、クラウド、Eメール、SaaSを含む多くのカバレッジエリアの1つであるオンプレミスネットワーク内に導入していました。この環境では、DarktraceはDMZトラフィックに対する良好な可視性を持っていました。Antigenaはアクティブにされておらず、Darktraceは検知のみのモードで運用されていました。それにも関わらず、この顧客は最初のアラート発生から数時間のうちにこのインシデントを特定し修正することができました。この攻撃は自動化されており、Kinsingと呼ばれるクリプトマイニングマルウェアの展開を目的としていました。
この攻撃では、よく見られるHTTPではなくHTTPSを使って最初のコマンド注入を暗号化することにより侵入の検知を難しくしていました。この手法により従来型のルールおよびシグネチャベースのシステムをすり抜けることができますが、Darktraceは最初の接続が行われてから数秒のうちに複数の不審な挙動を検知していました。
最初の侵害の詳細
ピア分析を通じてDarktraceは事前にこのDMZデバイスおよびそのピアグループが環境内で通常どのように動作しているかを学習していました。最初のエクスプロイトが実行されている間、Darktraceはさまざまな微細な異常を検知し、これらを総合することにより攻撃が明らかになりました。
- 15:45:32 未知のロシアにある IP — 45.155.205[.]233 よりDMZサーバーに対してインバウンドHTTPS接続;
- 15:45:38 DMZ サーバーが新規のアウトバウンド接続を同じ未知のロシアにあるIPに対し、2つの新しいユーザーエージェントを使って実行:Javaユーザーエージェントおよびcurlを以前の動作と比べてHTTPを扱うには不審なポートで使用;
- 15:45:39 DMZサーバーがHTTP接続を別の新しいcurl ユーザーエージェント (‘curl/7.47.0’) を使って同じロシアのIPに対して実行。URIにはDMZサーバーからの偵察情報が含まれていました。
こうしたアクティビティのすべてが検知された理由は、Darktraceがそれを以前に見たことがあるからではなく、このサーバーおよびこの組織内の他のサーバーの通常の「生活パターン」から大きく逸脱していたからです。
このサーバーは、インターネット上の未知のIPアドレスに対し、今まで使ったことのないユーザーエージェントを使い、普段は使わないプロトコルとポートの組み合わせを使って接続するということはこれまで無かったのです。その時々の異常はそれだけではわずかに通常と異なる程度の動作だったかもしれません。しかしそれらを組み合わせて当該デバイスおよび環境のコンテキストで分析することにより、これらの検知結果はより大きな進行中のサイバー攻撃のストーリーを明確に語ります。
Darktraceはこのアクティビティを、さまざまなモデルによって検知しました。たとえば次のようなモデルです:
- Anomalous Connection / New User Agent to IP Without Hostname
- Anomalous Connection / Callback on Web Facing Device
さらなるツールやクリプトマイナーのダウンロード
最初の侵害が発生してから90分以内に、感染したサーバーは未知のウクライナのIP、80.71.158[.]12から悪意あるスクリプトおよび実行形式ファイルをダウンロードし始めました。
その後このウクライナのIPから以下のペイロードが次の順序でダウンロードされました:
- hXXp://80.71.158[.]12//lh.sh
- hXXp://80.71.158[.]12/Expl[REDACTED].class
- hXXp://80.71.158[.]12/kinsing
- hXXp://80.71.158[.]12//libsystem.so
- hXXp://80.71.158[.]12/Expl[REDACTED].class
脅威インテリジェンスや、IP、ドメイン名またはファイルハッシュなどの静的なIoC(Indicators of Compromise)を使用することなく、Darktraceはこの攻撃の次の段階をリアルタイムに検知しました。
問題のDMZサーバーはこのウクライナのIPアドレスと通信したことは過去になく、使われたポートも標準的ではありませんでした。また、このデバイスまたはその仲間がスクリプトや実行形式ファイルをこのようなタイプの外部接続から、こうしたやり方でダウンロードすることはきわめて異例でした。これらのダウンロードが行われてほどなく、DMZサーバーはクリプトマイニングを開始しました。
Darktraceはこのアクティビティを、さまざまなモデルによって検知しました。たとえば次のようなモデルです:
- Anomalous File / Script from Rare External Location
- Anomalous File / Internet Facing System File Download
- Darktraceはこのアクティビティを、さまざまなモデルによって検知しました。たとえば次のようなモデルです:
Log4Shell インシデントを即座に検知
Darktraceがこの攻撃の個々のステップをリアルタイムに検知したことに加え、Darktrace Cyber AI Analystはこのセキュリティインシデント全体を明らかにし、攻撃全体の包括的な説明をまとめ、Darktraceで検知された1週間のインシデントおよびアラートのうち最も優先的な対応が必要なインシデントとして提示しました。つまり、このインシデントはその進行とともに、最も明白な、緊急の項目として人間のセキュリティチームに対して提示されたことを意味します。DarktraceのCyber AI Analystはこのインシデントの各段階を特定し、人間のSOCアナリストであれば必ず問うであろう質問をしています。Cyber AI Analystが生成した自然言語のレポートには、インシデントの各段階のサマリーとそれに続いて人間のアナリストが必要とする主要なデータポイントが、わかりやすい形式で示されています。それぞれのタブはインシデントのさまざまな部分を表し、各調査プロセスで実行された具体的なステップの概要が説明されています。
つまり、低レベルのアラートをふるい分けする必要もなく、ある時点での検知結果をトリアージする必要もなく、検知結果をインシデントのコンテキストに当てはめて考察する必要もなく、レポートを書く必要もありません。これらの作業はすべてAI Analyst が自動的に完了し、人間のチームの貴重な時間を節約します。
以下のインシデントレポートは自動的に作成されたものであり、さまざまな言語でPDFとしてダウンロードできます。

図1:DarktraceのCyber AI Analystは攻撃のあらゆる段階を特定し、調査プロセスを説明します
実例2:Log4Shellを使った別の攻撃への対処
12月12日、別の組織のインターネットに接続されたサーバーがLog4Shell経由で侵害されました。この侵害の内容は違っていました(別のIoCが関係していました)が、Darktraceは最初の事例と同じようにこの攻撃を検知し、解明しました。
興味深いことに、この組織はこのサーバー上でDarktrace RESPONDを自律モードで運用していました。つまりAIが進行中のサイバー攻撃に対処するための自律的なアクションをとることができたのです。これらの対処は、ファイアウォールや他のセキュリティツールとのAPIによる連携、あるいはDarktraceが発行するネイティブな対処などさまざまなメカニズムで実行できます。
この攻撃では異常な外部IP 164.52.212[.]196 が88番ポートを使ったHTTP通信でC2通信およびマルウェアのダウンロードに使われ、これはそのデバイス、およびそのピアグループ、そして組織にとってきわめて特異なものでした。
この組織ではRESPONDがリアルタイムに反応し、この攻撃特有のコンテキストに基づいて、人間が関与することなく対処しました。RESPONDはこのケースでは、ファイアウォールと連携してこの悪意あるIPアドレス(このケースでは164.52.212[.]196)との88番ポートを使ったすべての接続を2時間に渡りブロックし、攻撃が継続するようであればブロックおよび期間をエスカレーションするオプションを用意しました。このことは以下の図で確認できます。

図2:RESPONDによる対処
その仕組みはこうです:自己学習型AIにより、Darktraceはこのインターネットに接続されたサーバーが通常何を行い、何を行わないかについて、個別のデータポイントのレベルまで知り尽くしていたのです。さまざまな異常から、Darktraceはこれが深刻なサイバー攻撃であると確信を持っていました。
そこでRESPONDが登場し、DMZ内のこのサーバーに対する通常の生活パターンを強制します。つまり、このサーバーは普段行っていることはすべて続けることができます。しかし高度に異常なアクションはすべて発生次第リアルタイムに中断されます。たとえば88番ポートでHTTPを使って未知の外部IPと通信し実行形式をダウンロードしようとすることなどです。
もちろん、人間がいつでもこのブロックを変更または解除することは可能です。また、RESPONDは人間の確認を必要とするモードに設定することも可能で、組織のニーズおよび必要条件によって日中(たとえば業務時間内)のみ、あるいは常時、人間をループに入れておくこともできます。
結論
このブログではLog4Shell脆弱性を利用したサイバー攻撃のさまざまな側面について紹介しました。また、攻撃されたエンティティがDarktraceの視界に入っていれば、Darktraceはゼロデイ攻撃も検知し対処できることも確認しました。
Log4ShellはITおよびセキュリティのニュースを席巻していますが、同様の脆弱性は過去にも発生していますし、将来また出現するでしょう。私達はこれまでにも、類似の脆弱性やそれを取り巻くサイバー攻撃の検知と対処へのアプローチについて語ってきました。たとえば次のようなものがあります:
- 最近のGitlab脆弱性
- まだゼロデイであった時のProxyShell Exchange Server脆弱性
- Citrix Netscaler 脆弱性
従来から言われてきたことですが、企業は予防的セキュリティコントロールと検知および対処のメカニズム、そして強力なパッチ管理などを組み合わせた、多層的な防御戦略を目指すべきです。
この脅威事例についての考察はBrianna Leddy(DarktraceのDirector of Analysis)が協力しました。