ページの本文へ

セキュリティ

「Log4j」の脆弱性とは? リスクや対策など

Webサーバーを運用する上で、ログの運用・管理は欠かせない要素の一つです。Webサーバーではアクセスログなどの大量のログを取り扱いますが、その運用・管理を効率的に行うための仕組みとして「Log4j」があります。しかし、2021年にLog4jには深刻な脆弱性が発見され、世間を賑わすこととなりました。
この記事では、Log4jの概要から脆弱性の内容、対策方法について解説します。

  1. 「Log4j」の脆弱性とは?
  2. Log4jの脆弱性によるリスク
  3. Log4jの脆弱性への対策
  4. 企業に求められるサイバーセキュリティ対策

「Log4j」の脆弱性とは?

はじめに、Log4jの概要から2021年に公表された脆弱性の内容について見ていきましょう。

そもそも「Log4j」とは何か

Log4jは正式には「Apache Log4j」という名称ですが、単に「Log4j」と表されることが多いといえるでしょう。Log4jとは、オープンソースのJavaプログラム用のロギングAPI(Application Programming Interface)です。APIはプログラム同士を接続する窓口のことであり、特定のサービスやプログラムの機能を共有するために利用されます。

2001年にリリースされて以降、Webサーバーのアクセスログやプログラム内のデバッグ情報、エラー情報など、さまざまなログを管理しやすい形で出力するための機能として、世界中で広く利用されています。

Apache Log4jの深刻な脆弱性

Log4jは2021年12月に「CVE-2021-44228」として、深刻な脆弱性「Log4jShell」が報告されました。Log4jShellはJNDI Lookup機能(ログとして記録された文字列から、一部の文字列を変数として置きかえる機能)を悪用してログに書き込まれた特殊な文字列を実行し、第三者が遠隔地からjava classファイルを読み込んで実行できるという脆弱性です。

遠隔地から任意のコードを容易に実行でき、Log4jを利用するシステムが多数存在していたことから話題となりました。実際に、Log4jShellが公表された直後から、脆弱性を悪用しようとする通信が多く確認されています。

Log4jの脆弱性によるリスク

Log4jShellの攻撃の例として、簡易的にWebサーバーを対象とした攻撃の流れを紹介します。

  1. 特殊な文字列を含んだHTTPリクエストをサーバーに送信する
  2. サーバーは処理した結果をログに書き込む
  3. JDNI Lookup機能がログに書き込まれた特殊な文字列を実行
  4. Log4jが悪意のあるプログラムをダウンロードして読み込み、実行する

このように、Log4jShellは遠隔地から簡単に任意のコードを実行できてしまうのです。Log4jShellが危険たる由縁は、特別なソフトウェアなどがなくても悪用できる容易さ、任意のコードを実行できることからさまざまなサイバー攻撃が可能である多様さ、Log4jを利用するシステムが非常に多く、影響範囲の広大さにあります。

Log4jの脆弱性への対策

Log4jの提供元であるThe Apache Software Foundationから、Log4jShellの対策がなされたバージョンがリリースされています。そのため最も簡単な対策方法としては、Log4jをバージョン2.15.0以降にバージョンアップすることです。

その他、Log4jの外部サーバーへの通信を制限したり、WAF(Web Application Firewall)によって通信を監視・保護したりすることも検討するとよいでしょう。もし、Log4jのバージョンアップが難しい場合は、設定変更によって対応することも可能です。

技術的な話になるため、バージョンアップしない場合の具体的な対策方法については、JPCERT/CCのページをご覧ください。

企業に求められるサイバーセキュリティ対策

今回はLog4jにて深刻な脆弱性が発見されましたが、脆弱性はOSを含むほぼすべてのソフトウェアに存在します。プログラムのバグや構成上の欠陥などから発生するものであり、根絶することは不可能です。

Log4jのように、さまざまなソフトウェアに内在する脆弱性はいつ発見されるかわかりません。発見されれば開発元や提供元などがすぐに対策を取りますが、実際に利用している側の対応が遅れてサイバー攻撃の被害に遭うケースも多く存在します。

企業がもつさまざまなデータは情報資産として価値が高く、攻撃者に常に狙われていると考えたほうがよいでしょう。サイバー攻撃は年々高度化・巧妙化しているため、脆弱性の情報について常に情報をキャッチできるようにし、即座に対策が取れる環境を構築することが重要です。

Log4jShellは世界中で話題となり、容易に悪用できることや想定される被害の甚大さから深刻な脆弱性として注目されました。今回はLog4jの脆弱性でしたが、今後はどのようなソフトウェアで深刻な脆弱性が発見されるかわかりません。

仮に脆弱性が発見されたとしても、即座に対応できる環境やシステム的にサイバー攻撃から身を守るための仕組みを作ることが重要です。また、どれだけ強固なセキュリティの仕組みを作ったとしても、最終的には人が実行します。そのため、システム的な対策だけでなく、人的なセキュリティ対策も重要です。

日立ソリューションズ・クリエイトでは、セキュリティの基礎から高度なセキュリティ人材の育成まで対応した「サイバーセキュリティトレーニング」を提供しています。

動画配信とライブ中継を融合し、受講者のレベルに合わせてしっかりと教育できるサービスです。セキュリティ対策の一環として、サイバーセキュリティトレーニングの導入を検討してみてはいかがでしょうか。

※「Apache」「Log4j」は、The Apache Software Foundationの登録商標です.

当社の関連ソリューション/サービス

関連記事はこちら