2022年 9月20日公開

企業のITセキュリティ講座

「Log4j」で話題になった脆弱性、検知と対処法は?

ライター・吉澤亨史

  • セキュリティ

2021年末に公表された「Log4j」の脆弱性は、その広範さと悪用のたやすさにより、重大な影響を受ける可能性があることから話題になった。脆弱性はしばしば発見されるが、「Log4j」はさまざまなソフトウェアに使用されるライブラリであったため、自社に存在するか把握することさえ困難であった。ここでは、「Log4j」の脆弱性と影響、対策方法について説明する。

1. さまざまな種類がある「脆弱性」とは

「脆弱性」という言葉を耳にする機会が増えた。しかも、テレビのニュースで聞くことが多くなった。主に情報漏えいのニュースで「ソフトウェアの脆弱性を突かれ」という具合に取り上げられる。従来、脆弱といえば素材などのもろさを表す言葉として使われた。「この素材は、長時間、直射日光にさらされることには脆弱で、突然破損したりする」といった使われ方だ。

ところが現在、よく耳にする脆弱性は、ソフトウェアのことを指している。ソフトウェアの脆弱性とは、ソフトウェアのプログラムにおける不具合のことで、開発者が意図しない形で紛れ込んでしまうケースと、第三者が意図的に組み込むケースがある。いずれにしても、悪用されてしまうと少なからず影響を受ける可能性がある。その対象は、OS、製品としてのソフトウェア、サービスとしてのソフトウェア(Webアプリケーション)、機器のドライバーソフトなど広範に及ぶ。

脆弱性には複数の種類があり、それによる影響もさまざまである。IPA(情報処理推進機構)による最新のレポートでは、2022年第1四半期(1~3月)に報告された脆弱性を影響別にみると、「任意のスクリプトの実行」が全体の35%を占め、「任意のコマンドの実行」(12%)、「情報の漏えい」(10%)、「なりすまし」(8%)と続いている。

脆弱性の危険度を表す国際基準に「CVSS」がある。CVSSはCommon Vulnerability Scoring Systemの略で、基本評価基準、現状評価基準、環境評価基準の三つの観点からスコアを算出し、危険度としている。最大(最も危険な)スコアは10.0だ。例えば、脆弱性にはローカルからしか悪用できないものと、リモートから悪用できるものがある。ローカルの場合は、脆弱性が存在するパソコンの前に行かなければ悪用できないため、危険度は低くなるといった具合だ。

ソフトウェア製品の脆弱性がもたらす影響別の届出状況

参照元:IPA「ソフトウェア等の脆弱性関連情報に関する届出状況」

目次へ戻る

2. 脆弱性の検知と対応の難しさ

2021年12月、「Apache Log4j(以下、Log4j)」の脆弱性が公開された。Log4jは、Apacheが提供するオープンソースのライブラリで、主にエラー情報などのログ(記録)を外部に出力する機能を持つ。ライブラリとは、ソフトウェアに組み込まれるコンポーネントのようなもので、これにより特定の機能を自社で開発することなくソフトウェアに追加できる。

Log4jの脆弱性は複数公開され、リモートから任意のコードを実行されるCVSS 10.0の脆弱性も含まれていた。一般的に、脆弱性が公開される際には、その脆弱性を解消するパッチやアップデート、あるいは緩和策も合わせて公開される。Log4jにおいても同様で、脆弱性の公開とともにアップデートも提供された。しかし、このアップデートにも脆弱性が確認され、これが繰り返された。

パッチやアップデートは、該当するソフトウェアに対して実行すれば脆弱性は解消できる。しかし、Log4jはライブラリであるため、さまざまなソフトウェアに搭載されている可能性がある。アプリ開発の際に、しばしばライブラリセットのようなものが使われる。これはアプリに共通して必要な機能、例えばネットワーク機能や通信機能、各種連携機能などのライブラリをまとめたもので、オープンソースのため無料で利用できる。

ライブラリセットを使うことで、アプリの開発者は独自機能の開発のみに専念できる。しかし、こうしたライブラリセットにもLog4jが含まれていることが多いため、実はほとんどの企業内に膨大な数のLog4jが潜在しており、大量の脆弱性を抱えていることが明らかになってしまった。Log4jがテレビのニュースで取り上げられたのは、このためだ。

アプリケーションとライブラリの関係

目次へ戻る

3. 適切なパッチマネジメントを実施するためには

その深刻さから各所で注意喚起が出されたLog4jの脆弱性であるが、それにより被害を受けたという情報はあまりない。もちろん、国内でも複数の被害報告はあるものの、これまでの脆弱性に関する被害よりは少ない印象だ。被害事例の多くは、Log4jの脆弱性を悪用されて社内システムに侵入され、情報を盗まれたりランサムウェアを仕掛けられたりしたと考えられる。また、Log4jが原因と気づかずに同様の被害を受けたケースもあるだろう。

こうした脆弱性情報は日々、公開されている。IPAなどでも脆弱性情報を公開しているが、比較的メジャーなソフトしか公開されない。理想は自社で使用しているソフトのWebサイトをこまめにチェックし、脆弱性情報が公開されたら対応することであるが、現実的ではないだろう。それでも放置してしまうと、なすすべなく攻撃されてしまう。

これまで、脆弱性に対するパッチマネジメントのためには、自社で使用しているソフトウェアを棚卸してバージョンとともに把握し、パッチやアップデートに対応していくことが必要とされてきたが、Log4jのようなライブラリまで把握することは困難である。また、脆弱性が確認されても、パッチの適用には検証を含めて大きな工数がかかる。

最近では、脆弱性の管理サービスや調査サービスが登場しているので、これらの活用が現実的であるといえる。そして、WAF(Webアプリケーション・ファイアウォール)を併用すれば、たとえ脆弱性が存在していても悪用を狙う攻撃を検知して遮断できるので、攻撃を防ぎつつパッチ適用のスケジュールを組むことができる。脆弱性は今後もサイバー攻撃の標的になり得るため、現実的な対策が必要といえる。

IPAではソフトのバージョンを把握できる「MyJVNバージョンチェッカ」
(https://jvndb.jvn.jp/apis/myjvn/vccheckdotnet.html)を提供している

目次へ戻る

関連記事