12月30日に発表したLog4jセキュリティ脆弱性の内容をお知らせします。
上記の脆弱性は以下のように対処する可能性があります。
※ log4j-core-.jarファイルなしでlog4j-api-.jarファイルのみを使用する場合、上記の脆弱性の影響を受けない
新しいアップデートができない場合は、以下の方法を適用できます。(CVE-2021-45105限定)
PatternLayoutで${ctx:loginId}または${ctx:loginId}を(%X、%mdc、or%MDC)に変更
${ctx:loginId} または ${ctx:loginId} を削除
こんにちは、WhaTap Labsのベッキーです。 以前のポストでは、Log4jの脆弱性と確認方法について簡単に紹介しました。
以後、Log4jの最新バージョンでもバイパス攻撃時に脆弱性にさらされるというニュースに触れました。以降、新たな対応策があるか、あのベッキーがまとめてご案内いたします。
Log4jはJAVAベースのオープンソースユーティリティで、エンタープライズアプリケーションやウェブサイトで多く使用されています。サービスの動作中に起こるすべての記録を残します。侵害事故の発生と異常の兆候を確認するためにLog4jを使用してください。
このLog4jの脆弱性は、JNDI(Java Naming and Directory Interface)とLDAP(Lightweight Directory Access Protocol)で発生します。JNDIは1990年代後半からJavaに追加されたインタフェースです。Javaプログラムがディレクトリを介してデータを見つけることができるディレクトリサービス。
Javaプログラムは、前述のJNDIとLDAPを介してJavaオブジェクトを見つけることができます。ここで問題のLog4jに使いやすくするために、特定の文法でJavaオブジェクトを見ることができます。これらの文法は、ログが記録されたときにも使用できます。ハッカーはログが記録される場所を見つけて脆弱性を利用できるようになります。
脆弱性ごとに影響を受けるLog4jのバージョンは若干異なります。12月13日に発表されたところによると、Log4j 2.0-beta9から2.14.1バージョンと(2.12.2を除く)サブバージョンである1.xまで影響を受けました。しかし、12月15日に発表されたところによると、バイパス攻撃をする場合、最新バージョンの2.15.0も危険だという発表がありました。
1.CVE-2021-44228:Apache Log4j 2で発生するリモートコード実行の脆弱性(Log4j 2.0-beta9〜2.14.1バージョン、2.12.2を除く)
2.CVE-2021-45046:Apache Log4j 2で発生するサービス拒否の脆弱性(Log4j 2.0-beta9〜2.12.1および2.13.00〜2.15.0)
3.CVE-2021-4104: Apache Log4j 1.2 で発生するリモートコード実行の脆弱性 (Log4j 1.x)
上記のバージョンが脆弱だと Log4j 2.x バージョンから 1.x バージョンにダウングレードする場合があります。Log4j 1.xバージョンは2015年以降、技術サポートが終了しました。ダウングレードをすると技術サポートを受けることができません。むしろ、セキュリティ脅威にさらされる可能性が高くなります。このポストをお読みの方はバージョンアップすることをお勧めします。
脆弱なLog4jを使用しているか、以下の方法で確認が可能です。
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
-find / -name 'log4j*'
Windowsでlog4jがインストールされているかどうかを確認する
公開ツールを使用する方法もあります。
a. SyftとGrypeツールの使い方:https://github.com/anchore/grype
b. 脆弱性スキャナーを使用する方法:https://github.com/logpresso/CVE-2021-44228-Scanner
a. [インスタンス性能管理]→[ライブラリバージョン]機能で確認することがで きます。log4j-coreを検索してください
b. 別の方法として、アプリケーションの pom.xml または gradle.build ファイルを開いて log4j- coreで検索してみることもできます。
まず、最新バージョンにアップデートをするのが最善の方法です。 Download Apache Log4j 2で最新バージョンが確認できます。
*ブログコンテンツを掲載した日付に基づいて、Log4jの最新バージョンが変更されました。Log4j 2.17.0の脆弱性も発見される可能性がありますので、最新のバージョン情報を随時確認してアップデートしてください。
https://logging.apache.org/log4j/2.x/download.htmlで最新バージョンが確認できます。
ただし、早い時間内にライブラリを更新して再検証するのが現実的に難しいかもしれません。バージョンに応じた先制措置を以下のように取ることができます。
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Log4jバージョンが2.10から2.14.1の場合:lo4j2.formatMsgNoLookupsまたはLOG4J_FORMAT_MSG_NO_LOOKUPS環境変数をtrueに設定します。
JVM オプションで JndiLookup 機能を制限する方法: -Dlog4j2.formatMsgNoLookups=true オプションを指定してアプリケーションを実行します。
java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar
多くのIT担当者の方々が、Log4jの最新バージョンさえ迂回攻撃時に脆弱であるという情況まで捉えられ、多くの心配があると思います。WhaTab Labsも同じIT業界でSaaSサービスを提供するだけに、状況を鋭意注視しています。
WhaTapサービスはLog4jセキュリティの脆弱性とは関係ありません。
WhaTapサービスを使用している担当者の80%以上が開発者、オペレーター、DevOpsエンジニアです。WhaTap Labsは、問題が発生したときに投稿を更新し、正確な情報を提供します。