CISA Apache Log4j 脆弱性ガイダンス 日本語抄訳

概要

Log4jの悪用から身を守るためにすぐにできること

    • データ入力を許可するすべてのインターネット向けリソースから、スタックのあらゆる場所で使用するlog4j Javaライブラリを検出します。
    • log4j ライブラリを使用しているすべてのリソースを確認してください。
    • 影響を受けるリソースを更新または隔離する。
    • 侵害を想定し、侵害後の一般的なソースとアクティビティを特定し、悪意のあるアクティビティの兆候を探します。
    • 異常なトラフィックパターンを監視する。(例:JDNI LDAP/RMI アウトバウンドトラフィック、DMZシステムによるアウトバウンド接続の開始)

 注:CISAは、提供すべきガイダンスやベンダーの追加情報がある場合、このウェブページとコミュニティが提供するGitHubリポジトリを継続的に更新します。

https://www.cisa.gov/uscert/apache-log4j-vulnerability-guidance

Apache Log4j Vulnerability Guidance / CISA

CISAとそのパートナーは、統合サイバー防衛コラボレーションを通じて、ApacheのLog4jソフトウェアライブラリ、バージョン2.0-beta9から2.14.1において、”Log4Shell” および “Logjam” として知られるリモートコード実行(RCE)脆弱性 (CVE-2021-44228) が活発かつ広範囲に悪用されていることに対応している。Log4j は、セキュリティやパフォーマンス情報を記録するために、様々な消費者や企業のサービス、ウェブサイト、アプリケーション、および運用技術製品で非常に広く使用されています。認証されていないリモートの行為者は、この脆弱性を悪用して、影響を受けるシステムを制御することができます。

  • (2022年4月8日更新) 組織の環境内で脆弱なLog4jインスタンスの特定と修復を継続し、長期的な脆弱性管理のため計画を立てる必要があります。計画にあたっては、以下の点を考慮してください。
    • 対象となる資産の範囲:初期の情報が限られていたため、特定と緩和の取り組みが、組織の限られた数の資産に適用された可能性があります。長期的な影響緩和のためには、内部で開発されたソフトウェアやインターネットに接続されていない技術スタックを含め、すべての資産における log4j の普及を考慮し対処する必要があります。
    • 継続的な列挙と分析: 包括的な分析を行い、すべての Log4J の脆弱性を完全に列挙する必要があります。これには、スキャン(ネットワークとホスト)、インストールされたソフトウェアと CISA の Log4j 脆弱性ソフトウェアデータベースにリストされたソフトウェアとの比較を含む必要があります。
      • 高精度スキャン:File system scanning scriptsを使用して、脆弱な Log4j ファイルを識別するか、ファイルスキャンを活用する脆弱性スキャナを使用することを検討してください。
      • 新規に脆弱性を持つサードパーティソフトウェア:SaaS(Software as a Service)ソリューションやその他のクラウドリソースなど、特定のアプリケーションに対する洞察力が不足している場合があります。 CISA log4j vulnerable software databaseを確認し、使用中のソフトウェアとのクロスリファレンスを行う必要があります。
    • 緩和よりもパッチを適用する:アップデートが可能な場合は、直ちに適用する。製品がアップデートできない場合、Mitigating Log4Shell and Other Log4j-Related Vulnerabilitiesにある一時的な緩和策を適用する必要があります。注:脆弱性クラスの削除など、特定のミティゲーション対策は悪用を防ぐことができますが、各資産のミティゲーションステータスを追跡すると管理上のオーバーヘッドになるため、パッチを適用することを推奨します。パッチやミティゲーションが適用できない資産は、ネットワークから削除することを検討してください。
  • (2021年12月28日更新)組織は、Log4j 2.17.1 (Java 8), 2.12.4 (Java 7), 2.3.2 (Java 6) にアップグレードし、Apache Log4j Security Vulnerabilities Web ページで最新情報と緩和策を確認・監視するよう強く推奨します。

    詳細については、CISAの共同・アラート AA21-356A: Mitigating Log4Shell and Other Log4j-Related Vulnerabilities を参照してください。

    Log4j の影響を受けるバージョンを使用する製品やサービスにおいて脆弱性が修正されるためには、それらの製品やサービスの保守者は、これらのセキュリティアップデートを実装する必要があります。そのような製品やサービスのユーザーは、これらの製品/サービスのベンダーにセキュリティアップデートを参照する必要があります。CISAは、この脆弱性の深刻さと、巧妙なサイバー攻撃者による悪用が増加する可能性を考慮し、ベンダーとユーザーに対して、以下の対応をとることを強く推奨します。

  • ベンダー
    • Log4j を使用している製品のうち、影響を受ける製品を直ちに特定し、軽減し、最新バージョンに更新してください。
    • これらの脆弱性を含む製品をエンドユーザーに知らせ、ソフトウェアアップデートを優先するよう強く要請してください。
  • 影響を受ける組織

技術的な詳細

RCE 脆弱性 CVE-2021-44228 は、Apache の Log4j ライブラリ バージョン 2.0-beta9 から 2.14.1 が対象で、Java Naming and Directory Interface (JNDI) が変数解決に取る動作に存在します。CVE-2021-44228 によると、影響を受けるバージョンの Log4j には、メッセージ検索置換などの JNDI 機能があり、「敵に制御された LDAP [Lightweight Directory Access Protocol] およびその他の JNDI 関連エンドポイントから保護されない」ことが判明しています。

(2021年12月15日更新)注意:CVE-2021-45046脆弱性に対応したApache Log4jバージョン2.16.0セキュリティアップデートはJDNIを無効化します。
敵対者は、特別に細工したリクエストを脆弱なシステムに送信することで、この CVE-2021-44228 を悪用し、そのシステムで任意のコードを実行させることができます。このリクエストにより、敵はシステムを完全に制御することができます。このリクエストにより、敵はシステムを完全に制御できるようになり、情報を盗んだり、ランサムウェアを起動したり、その他の悪意のある活動を行うことができます。

Log4jで製品を運用している組織のためのアクション

CISAは、影響を受ける事業者に推奨します。

  • Log4j を使用している組織の製品が脆弱であるかどうかを、以下の表に従い、両方の検証方法を用いて判断してください。
  1. CISAのGitHubリポジトリ
  2. CERT/CCのCVE-2021-44228_scanner
  • 追加情報については、Apache の Log4j Security Vulnerabilities のページを参照し、適切であれば、提供されている回避策を適用してください。
  • 利用可能なパッチを直ちに適用する。
  • ミッションクリティカルなシステム、インターネットに接続されたシステム、ネットワークに接続されたサーバーから、優先的にパッチを適用する。その後、影響を受けるその他の情報技術および運用技術資産に優先的にパッチを適用する。
  • 上記のとおり、緊急指令(ED) 22-02: Apache Log4jの脆弱性を緩和する では、インターネットにつながった脆弱性のあるリソースへ、直ちにパッチを適用するよう関係機関に求めている。
  • セキュリティ上の懸念または侵害があるかどうかを判断するために、セキュリティレビューを実施する。影響を受ける Log4j のバージョンを使用しているサービスのログファイルには、ユーザーが制御する文字列が含まれます。
  • CISAFBIに直ちに侵害を報告することを検討してください。

Log4jを使用した製品を運用している組織への対応について

CISAは、影響を受ける企業に対して次のことを推奨します。

  • Apache の Log4j Security Vulnerabilities のページで追加情報を確認し、必要であれば提供されている回避策を適用してください。
    • リリース2.10以降では、システムプロパティlog4j2.formatMsgNoLookupsまたは環境変数LOG4J_FORMAT_MSG_NO_LOOKUPSをTrueに設定すると、この動作を緩和することができる。
    • 2.7 から 2.14.1 までのリリースでは、すべての PatternLayout パターンは、メッセージコンバータを単に %m ではなく %m{nolookups} として指定するように修正することができます。
    • 2.0-beta9 から 2.7 までのリリースでは、クラスパスから JndiLookup クラスを削除することが唯一の緩和策です: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.
  • 利用可能なパッチをすぐに適用してください。CISAのGitHubリポジトリで、既知の影響を受ける製品とパッチ情報を参照してください。
    • パッチ適用の優先順位は、ミッションクリティカルなシステム、インターネットに接続されたシステム、ネットワークに接続されたサーバーから始めてください。その後、影響を受けるその他の情報技術および運用技術資産へのパッチを優先的に適用する。
    • パッチが適用されるまで、アプリケーションを起動するJava Virtual Machineコマンドに-Dlog4j2.formMsgNoLookups=Trueを追加して、log4j2.formMsgNoLookupsをTrueに設定してください。注意:これは、メッセージのフォーマットをルックアップに依存している場合、システムのロギングの動作に影響を与える可能性があります。また、この緩和策はバージョン2.10以降にのみ有効です。
    • 上記のとおり、BOD 22-01は、連邦民間機関に対して、2021年12月24日までに、Known Exploited Vulnerabilities Catalogの一部であるCVE-2021-44228を緩和するように指示しています。
  • セキュリティレビューを実施し、セキュリティ上の懸念または侵害があるかどうかを判断する。影響を受ける Log4j のバージョンを使用しているサービスのログファイルには、ユーザーが制御する文字列が含まれます。
  • CISA と FBI に直ちに侵害を報告することを検討してください。

リソース

この情報は、情報提供のみを目的として、現状のまま提供されています。CISAは、以下の企業、製品、サービスを推奨するものではありません。

影響を受ける製品およびデバイスの継続的なリスト

CISAは、コミュニティが提供するGitHubリポジトリで、Log4jの脆弱性に関する一般に公開されている情報やベンダーが提供するアドバイザリの一覧を管理しています。

継続的な検知ルールの提供

CISAは検出ルールのソースを入手次第、更新していきます。

検出ルールについては、Florian Roth氏のGitHubページ、log4j RCE Exploitation Detectionを参照してください。注:この情報を共有することが緊急であるため、CISAはまだこのコンテンツを検証していません。

Javaアプリケーションが脆弱なバージョンのLog4jを実行しているかどうかを判断するのに役立つハッシュのリストについては、Rob Fuller氏のGitHubページ、CVE-2021-44228-Log4Shell-Hashesを参照してください。注:この情報を緊急に共有するため、CISAはまだこのコンテンツを検証していません。

JCDCパートナーからの緩和ガイダンス

追加リソース

投稿者: 二本松 哲也

SPbD:Security&Privacy by Design Founder ー OWASP Member ー ITは人々の生活をあらゆる面でより良い方向に変化させること ー 競争原理から共創原理へ