本連載「企業セキュリティの歩き方」では、セキュリティ業界を取り巻く現状や課題、問題点をひもときながら、サイバーセキュリティを向上させていくための視点やヒントを提示する。
これまで、以下の記事でソフトウェアの脆弱性の対応およびその解決策としての「ソフトウェア部品表」(SBOM:Software Bill Of Materials)の有効性などについて述べてきた。
- セキュリティ管理者を悩ませる「脆弱性まつり」がもっと深刻になる理由
- セキュリティ管理者が脆弱性の影響をベンダーに聞かなければ判断できない裏事情
- 「ソフトウェアサプライチェーン」の部品の中の脆弱性にまつわる深刻なリスク
- 米国政府が「SBOM」による管理を大統領令に盛り込んだ意味
今回は、2021年12月に公開された脆弱性「Log4Shell」が2022年秋現在に至ってもなお攻撃が継続している事実と、この状況にSBOMによるシステムと脆弱性の管理がどのように関連していくかについて述べる。
Apache Log4jとは?
「Apache」をウェブサーバーの代名詞として認識している人は、今でも多いだろう。インターネットの草創期にApacheは、インターネットそのものの普及と同じ曲線を描いて急激に利用され、圧倒的なシェアを持つウェブサーバーの定番ソフトウェアとなった。そのApacheが今ではウェブサーバーにとどまらず、ウェブ周辺のさまざまな機能を持つソフトウェアの集合体となった。また、そうしたソフトウェアの開発プロジェクトは「Apache Software Foundation」という組織によって運営されている。
そして、「Apache Log4j」は、そのApacheのソフトウェア群の1つである。Log4jは、プログラミング言語の一種である「Java」で使用されているライブラリーで、主にJava言語で開発されたソフトウェアにおいてログ出力機能を提供するものだ。ちなみに、Log4jの末尾の「j」はJavaの頭文字である。
Log4jはオープンソースソフトウェア(OSS)のため無償で使え、さらに柔軟な機能がそろっていたこともあって、非常に使い勝手が良かった。そのため、Javaシステムにおけるログ出力の定番モジュールとなった。その用途は多岐にわたるが、その利用方法の例を以下に示す。
例えば、チャットアプリでは、メッセージの履歴を記録するために、ユーザーからアクセスされたURLの履歴を記録するために使われる。また、アプリケーションエラーの詳細などの履歴を管理するためにもしばしば使われる。結局、システム管理をする上で、ログ出力は非常に重要な意味を持つため、自然とLog4jはさまざまな場所で利用されるようになったのだろう。