Java・Log4jライブラリの脆弱性「Log4Shell」に対応する方法などをまとめたチートシートが公開中、影響のあるプロダクトも一目で明らかに
サイバーセキュリティ企業のAlaskan Cyber Watchに勤めるロイス・ウィリアムズ氏が、Javaのログ出力ライブラリ・Log4jに発見されたゼロデイ脆弱性「Log4Shell」に関するチートシートを公開しています。チートシートは随時更新されており、Log4Shellのエクスプロイトから身を守るための対応や回避策、Log4Shellの影響があるプロダクトやすでに対策を講じたと発表しているサービスもまとめられているので、お役立ちです。
Tech Solvency: The Story So Far: CVE-2021-44228 (Log4Shell log4j vulnerability).
https://www.techsolvency.com/story-so-far/cve-2021-44228-log4j-log4shell/
ゼロデイ脆弱性「Log4Shell」については、以下の記事でまとめられています。
JavaのLog4jライブラリで発見された脆弱性「Log4Shell(CVE-2021-44228)」はなぜ世界中に大きな影響を与えるのか? - GIGAZINE
チートシートの「Remediation」を見ると、以下の通りに対策や回避策がまとめられています。
◆直接的な対策
・Log4jをバージョン2.15.0以降にアップグレードする。ただし、Log4j バージョン2.15.0以降を利用するには、実行環境をJava 8にアップグレードする必要あり。
・GitHubでLog4jにマージされている「JNDIからLDAPサーバーへのアクセスの制限」を適用する。
・JndiLookup.classを削除するかリネームする。
・trustURLCodebase=falseに依存している場合は、Javaのバージョンに関係なくすぐにLog4jを更新する。
◆Apacheが提示している回避策
・Log4j バージョン2.10以降のユーザーはコマンドラインオプションとして「-Dlog4j2.formatMsgNoLookups=true」を追加するか、クラスパス上のlog4j2.component.propertiesに「log4j2.fatormatMsgNoLookups=true」を追加することで、イベントログメッセージの検索を防止する。
・Log4j バージョン2.7以降のユーザーはPatternLayoutで「%m{nolookups}」を設定することで、イベントログメッセージの検索を防止する。
・JndiLookupとJndiManagerクラスをlog4j-corejarから削除する。ただし、JndiManagerを削除するとJndiContextSelectorとJMSAppenderが機能しなくなるので注意が必要。
◆簡単な回避策
・Log4jをアップグレードできない場合は、Java仮想マシンのコマンドラインで-Dlog4j2.formatMsgNoLookups=trueを実行し、log4j2.formatMsgNoLookupsをtrueに設定する。
・Cloudflareを利用する。ただし、HTTPリクエストのうちJNDI Lookupをブロックしているだけなのであくまでも部分的な対策という点に注意が必要。
◆回避策
・エクスプロイトクエリを制限する。
・予期せぬアウトバウンド・トラフィックをブロックし、信頼できるIPアドレス以外からの送信を遮断するイグレス・フィルタリングを行う。
・サイバーセキュリティ企業のCyberreasonが提供しているワクチンアプローチ「Logout4Shell」を利用する。これはLog4Shellを利用してLog4Shellを修正するという、いわば「毒をもって毒を制す」といった修正パッチ。
・Java仮想マシンにAWSが提供しているホットパッチを適用する。
・log4j-jndi-be-goneを適用する。
・スイスのISPであるInfinirootが提供するNginxおよびLUAスクリプトを使用する。
・エクスプロイトを実行したと報告されているドメインをブロックする。
・CloudflareやGoogle Cloudなどが展開するウェブアプリケーションファイアーウォール(WAF)を利用する。
「Affected (and unaffected) products」という項目には、「以前は脆弱だったが今は修正パッチを適用済みと発表しているプロダクト」「バージョンによってはLog4Shellの影響を受けることが確認されているプロダクト」「Log4Shellの影響を受けず脆弱ではないとするプロダクト」「デフォルトではLog4Shellの影響を受けないとするプロダクト」「脆弱なままか、あるいは対応が不明であるプロダクト」「Log4Shellの影響を受ける可能性があるプロダクト」「公式の回答がはっきりしていないプロダクト」「中継・転送・統合は可能だが、Log4jにデフォルトで依存していないプロダクト」がまとめられています。
・関連記事
JavaのLog4jライブラリで発見された脆弱性「Log4Shell(CVE-2021-44228)」はなぜ世界中に大きな影響を与えるのか? - GIGAZINE
Log4jライブラリのゼロデイ脆弱性「Log4Shell」で脆弱なサーバーを標的にした攻撃が続発中、仮想通貨マイナーのインストール・ボットネット拡散・データ盗難などやりたい放題 - GIGAZINE
世界中を揺るがすJavaライブラリのゼロデイ脆弱性「Log4Shell」を突く攻撃は発覚前からすでに始まっていた - GIGAZINE
・関連コンテンツ