- 2021年12月13日
- その他脆弱性情報
Java用のログ出力ライブラリ「Log4j」にリモートコード実行の脆弱性
Log4jにリモートコード実行の脆弱性
2021年12月10日(金)、Java用のログ出力ライブラリ「Apache Log4j」(以降はLog4j)でリモートコード実行(CVE-2021-44228)の脆弱性が公表されました。
この脆弱性の危険度は「緊急」レベルであり攻撃が成立した場合、遠隔の第三者が任意のコードを実行する可能性を含んだ脆弱性となります。
したがって、攻撃者によりWebサーバー上の情報を改ざん・窃取される恐れがあり、早急な対応が必要です。
この脆弱性の修正バージョンとしてApache Log4j 2.15.0がリリースされていますが、特定の構成ではこの修正が不十分であることが判明し、12月14日(火)に最新バージョンとしてApache Log4j 2.16.0がリリースされています。また、Java 7実行環境バージョンの最新版である2.12.2がリリースされています。
この脆弱性の影響を受けるLog4jを使用している方は、公開されている情報を確認し、対策を実施することを推奨します。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.16.0
https://logging.apache.org/log4j/2.x/security.html
Log4jの脆弱性について
Log4jとは、Java用のログ出力ライブラリのことですが、このLog4jには出力されたログの中に特定の文字列が含まれた場合、自動で変数に置換する機能があります(この機能はLookupと呼称されています)。
今回、問題となっているのはJNDI(Java Naming and Directory Interface)のLookup機能にあります。
このJNDI Lookup機能は、ネットワーク上から値を取得し置換することが可能です。その中に、LDAPやRMIなどの通信手段があり、これを悪用することで攻撃者が用意した外部のサーバーと通信し、悪意のあるJava classファイルを読み込ませることで任意のコードを実行させることができます。
影響を受けるバージョン
下記のLog4jバージョンが影響を受けます。
- Apache Log4j 2.15.0-rc1、およびそれ以前の2系のバージョン
基本的な攻撃の流れ
- 攻撃者は、攻撃者が用意したLDAPサーバーのURLを含む文字列をHTTPヘッダーに埋め込んだHTTPリクエストを送信します
- 脆弱性のあるJavaアプリケーションはその通信をログに出力します
- JNDI Lookupはそのログ内の文字列を変数に置換するため、攻撃者が用意したLDAPサーバーへLDAP queryを送信します
- 攻撃者が用意したLDAPサーバーは、悪意あるJava classファイルのURLを応答し、ダウンロードさせメモリ内に読み込み実行させます
- 本格的に攻撃開始
対策・対応について
最新版へのアップデートを推奨します。最新版は、Log4jダウンロードページで配布されています。
また、攻撃の影響を受けている可能性がある場合、不審なプロセスの起動や第三者によるファイルの作成が行われていないか確認してください。
アップデートがすぐに行えない場合について
回避策が公開されています。詳細につきましては、公開されている情報をご確認ください。
Log4j 2.10以上のバージョン
- Log4jを実行するJava仮想マシンを起動する際に log4j2.formatMsgNoLookups を true に設定しLookup機能を無効化する
- 環境変数 LOG4J_FORMAT_MSG_NO_LOOKUPS を true に設定しLookup機能を無効化する
Log4j 2.10 より前のバージョン
- JndiLookupクラスをクラスパスから除外する
また、セキュリティ製品やサービスでも対応状況が公開されています。
- Cloudflare CVE-2021-44228 – Log4j RCE 0-day mitigation
- AWS Apache Log4j2 Issue (CVE-2021-44228)
- Scutum Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)について
- Akamai Technologies CVE-2021-44228 – Zero Day Vulnerability in Apache Log4j That Allows Remote Code Execution (RCE)
- Microsoft Microsoft’s Response to CVE-2021-44228 Apache Log4j 2
- Palo Alto Networks Another Apache Log4j Vulnerability Is Actively Exploited in the Wild (CVE-2021-44228)
- Trend Micro SECURITY ALERT: Apache Log4j “Log4Shell” Remote Code Execution 0-Day Vulnerability (CVE-2021-44228)
- Zscaler Security Advisory: log4j 0-day Remote Code Execution Vulnerability (CVE-2021-44228)
参考情報
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 and Log4j 2.16.0
https://logging.apache.org/log4j/2.x/security.html
JPCERT/CC
Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起
https://www.jpcert.or.jp/at/2021/at210050.html
【セキュリティ ニュース】人気ライブラリ「Apache Log4j」に深刻な脆弱性、悪用も – 影響の確認や対策の実施を(1ページ目 / 全1ページ):Security NEXT
https://www.security-next.com/132376
IPA 独立行政法人 情報処理推進機構
更新:Apache Log4j の脆弱性対策について(CVE-2021-44228)
https://www.ipa.go.jp/security/ciadr/vul/alert20211213.html