Log4jの脆弱性|想定被害と今すぐ取り組むべき対策

Log4jの脆弱性とは、Javaベースのログ出力ライブラリであるApache Log4jで見つかったプログラムの欠陥です。

Log4jは長年Javaのロギングツールとして使われています。しかし、2021年11月に重大な脆弱性が発見され、日本国内のみならず世界的に問題になりました。もしサイバー攻撃を受け、重要な情報資産を盗まれたり破壊されたりすれば、企業の信頼失墜に繋がりかねません。さらに生成AIが普及する現代では、これまで以上に広範な視点での脆弱性管理が必要とされています。

そこで、本記事では以下の内容について紹介します。

  • Log4jの概要
  • Log4jの脆弱性と仕組み
  • 想定される被害
  • Log4jの脆弱性への対応策

Log4jの脆弱性だけでなく対処法も理解できる内容となっておりますので、ぜひ参考にしてください。

Log4jとは?

Log4jとはJavaで長年利用されているロギングツールです。サーバー側がユーザーのリクエストに応じた処理を実行する際に、Log4jがエラーやデバッグデータのログを出力するので開発者などがよく利用します。以下に主な機能をリストアップしました。

  • 出力先の指定:コンソール、ファイル、メールなど
  • 出力情報のレベル設定:FATAL、ERROR、WARNなど計6段階
  • 出力情報のレイアウト設定:ユーザー指定のフォーマット、HTMLなど

Log4jのメリットは出力スピードが速いことで、アプリのパフォーマンス低下を心配せずに利用できます。また、出力エラーの種類や出力先を自由に変えることも可能です。

このようにLog4jには高速性と柔軟性があるため、エラーの記録・出力で重宝されています。

Log4jの脆弱性とその仕組み

Log4jの脆弱性を攻撃された場合、ユーザーの意図しないプログラムが実行されるリスクがあります。具体的には、以下の流れで攻撃が行われる可能性があります。

Log4jの脆弱性とその仕組み エーアイセキュリティラボ

簡単に任意のコードを実行できるため、データの破壊やマルウェアの拡散など、多様な攻撃が可能です。またリモートで実行できるため、スマートフォンやipadから攻撃できる容易さも、脅威の要因となります。

Log4jの脆弱性が発見された当時、CVSSと呼ばれるセキュリティリスクの国際評価基準では10.0と深刻度評価としては最も高いレベルに分類されました。

脆弱性への攻撃による被害

リモートで任意のプログラムを実行できるため、あらゆるリスクが考えられます。下記に想定される被害例を挙げました。

  • 顧客情報を不正に取得される
  • サイバー攻撃の踏み台にされる
  • 自社サイトが意図しないUIに変えられる

クレジットカードや銀行口座など重要な個人情報が盗まれた場合、訴訟沙汰になる可能性があります。自社のパソコンが乗っ取られたら、他の企業へサイバー攻撃を行うための踏み台にされる可能性もあるでしょう。また、WebサイトにJavaを使用している場合、第三者が偽の情報を表示させて営業妨害することも可能です。

このようにLog4jの脆弱性を狙われると、あらゆるサイバー攻撃に晒されます。

影響を受けるサービスや製品

以下のリストは、開発元が影響を認めているサービスの例です。

影響を受けるサービスや製品の例

  • Oracle:Apache Log4j, versions 2.0-2.15.0
  • IBM:WebSphere Application Server8.5-9.0
  • Intel:Intel® oneAPI DL Framework Developer Toolkit
  • Minecraft:Minecraft Java Edition

すでに多くの企業が改良版をリリースしていますが、今後も新しい脆弱性が見つかる可能性は否めません。サービスの最新情報は常にチェックしましょう

脆弱性が発見された背景

2021年11月に、中国のEC会社「アリババ」のセキュリティチームが脆弱性を発見し、ASF(米国のOSS組織)に報告して問題が発覚しました。ASFが改修を試みましたが、修正が終わる前に脆弱性の詳細が流布。その結果、Javaの関連製品で多数のサイバー攻撃が確認されました。

セキュリティパッチが公開された後も、新たな脆弱性が報告されています。1つ脆弱性が見つかると関連の脆弱性も検出されたため、世界中でLog4jの脅威が懸念されるようになったのです。

OSS活用における3つの注意点

Log4jも含めてOSS(オープンソースソフトウェア)のメリットは、誰もが編集・再配布できる点です。一から実装するよりも低コストかつ短納期で開発を進められるうえに、技術的な問題が発生しても高確率で解決策を見つけられます。

一方、OSSにはセキュリティの脆弱性が存在する場合があります。ここでは、OSSを活用する上で注意するべき3つの点についてご説明します。

1. OSSの利用で求められる脆弱性対応

OSSは作ったプログラムの公開が義務付けられているため、悪意ある第三者がプログラムを解析して脆弱性を狙うケースは少なくありません。ユーザーが修正版を配布して脆弱性を解消できるケースもありますが、近年はOSSの機能が多様化しており、脆弱性も見過ごされがちです。

OSSを利用する際は「誰かが脆弱性を解消してくれるはず」と期待することはお勧めしません。「今使っているOSSに脆弱性は残っていないか」という観点で確認することが重要です。

2. 脆弱性が発生しない保証はない

OSSは常に公開されているため、悪意ある第三者が新たな不正アクセスを試みようと模索しています。実際、2021年に中国でLog4jの脆弱性が報告された後も、2022年1月に新たな脆弱性が見つかりました。OSSは無償で使えることや開発工期を短縮できるなど便利ですが、脆弱性が残る可能性があることも念頭に置きましょう。

3. システムの管理と定期的な脆弱性チェックが有効

OSSは常に脆弱性に晒されているため、不正アクセスが無いか、データが改ざん・盗難されていないかこまめにチェックしましょう。おすすめの方法は以下の3つです。

  • 脆弱性診断の実施
  • 配布元の最新情報をチェック
  • 脆弱性情報データベースをチェック

脆弱性診断とは、システムやネットワークを調査して欠陥や不具合、機器の設定ミスなどを洗い出すテストのことです。WAFのような不正アクセス防止ツールと併せて活用すると更に有効です。

また、OSS配布元の最新情報は常にチェックしておきましょう。脆弱性が発見された際にはプレスリリースが出され、対策方法が公開されます。ただし、CVEやNVDなどの脆弱性情報データベースから先に情報が出ることもあるので、そちらも確認することをおすすめします。

また、脆弱性診断を導入すると、さまざまな脆弱性を早期に発見できるようになります。「脆弱性診断(セキュリティ診断)とは|必要性からやり方まで、すべて解説」では、脆弱性診断とは何か、どのように有効なのか、実施方法などについて説明しています。参考にしていただき、セキュリティ強化のために脆弱性診断の導入をご検討いただくことをおすすめします。

▼関連記事

Log4jの脆弱性に有効な対応と対策5選

前章までは脆弱性の仕組みと攻撃されたときのリスクを解説しましたが、実際に防ぐ手段を有して初めて脆弱性を解消できます。ここからは、Log4jの脆弱性の対応手順や対策方法を紹介します。

1. 自社システムにおける攻撃リスクを評価する

Log4jの脆弱性によって、自社システムがどのくらい被害を受けやすいかCVSSで評価しましょう。CVSSとは、ソフトウェアや情報システムで脆弱性が見つかった場合の深刻度を評価する手法で、指標は以下の3つです。

  • 基本評価基準:脆弱性の特性を評価
  • 現状評価基準:現在の脆弱性を評価
  • 環境評価基準:最終的な脆弱性を評価

各評価は攻撃の区分や発動条件、権限の有無などから10段階で評価され、数字が大きいほど深刻度が高いとみなされます。

CVSSの詳細については、独立行政法人 情報処理推進機構(IPA)の「共通脆弱性評価システムCVSS概説」をご参照ください。
https://www.ipa.go.jp/security/vuln/scap/cvss.html

2. 影響を受ける範囲を確認する

Log4jはJavaのライブラリで幅広く使われているため、多くのJava製品が脆弱性の影響を受けます。ただし被害のレベルは製品によってさまざまで、セキュリティの強弱によって影響度も変わります。

自社サイトがどの程度の攻撃耐性があるのか事前に確認するには、ペネトレーションテストを受けてみましょう。ペネトレーションテストとは、疑似的に脆弱性を突いてシステムに侵入を試みるテストです。現在のセキュリティ対策でどの程度攻撃を防ぐことができるかを確認できるため、対策の有効性を検証できることがメリットといえます。

ペネトレーションテストのイメージ図 エーアイセキュリティラボ

3. Log4jを最新バージョンにアップデートする

Log4jの脆弱性が発表されて以降、各Javaバージョン向けに修正版のLog4jが公開されています。

Java 8およびそれ以降のユーザ向け修正版 Log4j 2.17.1
Java 7のユーザ向け修正版 Log4j 2.12.4
Java 6のユーザ向け修正版 Log4j 2.3.2

脆弱性を含む古いバージョンのLog4jを利用している場合は、最新版にアップデートしましょう。

未使用のJavaをアンインストールする

Javaの公式サイトでは、システムから古いバージョンのJavaをすべてアンインストールすることを強く薦めています。システム上に不必要なJavaを残しておくと、過去のLog4jのような深刻な脆弱性が発生することも否めません。

Javaの脆弱性について「Javaの脆弱性|攻撃による影響や被害事例を元に2つの有効な対策を紹介」にて解説しています。ご一読いただき、日常的に利用しているJavaのセキュリティ対策について、改めて見直してみてはいかがでしょうか。

▼関連記事

4. Lookupを無効にする

システムの都合上バージョンアップが難しい場合は、Lookupを停止させましょう。そもそもLog4jの脆弱性は、Lookupでプログラムの処理内容を出力すだけでなく、LDAPに問い合わせた情報も反映している点にあります。第三者が用意したサーバーへアクセスしないよう、Lookupそのものを無効にしましょう。

5. WAFを導入する

WAFとはWebアプリケーションへの攻撃を防ぐファイアウォールで、ブラックリスト方式とホワイトリスト方式の2つのタイプがあります。

ブラックリスト方式

あらかじめ定義した不正な文字列等と通信を比較し、一致した際に通信を防ぐ方式です。Log4jは攻撃側が文字列を難読化させて攻撃を試みるケースもあったので、変化する攻撃にあわせてブラックリストが随時更新されるようなWAFを採用しましょう。

ホワイトリスト方式

通過させたい正規のアクセスのみ許可するタイプで、ブラックリストとは検知方法が真逆です。正規のアクセスとは何か、URLやパラメータだけでなくどのような遷移を辿るかなど細かく設定する必要があり、ホワイトリスト作成には時間がかかります。

きちんと設定ができていれば、不正なアクセスを防ぐ可能性が高いので「導入・運用負荷が大きくなっても良いから確実に不正アクセスを防ぎたい」という企業にホワイトリストはおすすめです。

Log4jの脆弱性対応が効率的になる組織体制

Log4jのような深刻な脆弱性には、技術的な対策だけでなく、迅速かつ組織的な対応体制の構築も重要です。中でもCSIRT(Computer Security Incident Response Team)の設置は、被害を最小限に抑えるカギとなります。

CSIRTは、サイバー攻撃やセキュリティインシデント発生時に、組織内で迅速な対応を行う専門チームです。Log4j脆弱性のような緊急性の高い脅威に対し、CSIRTがあれば影響範囲の特定、対策の優先順位付け、関係部署との連携を効率的に進められます。

また、CSIRTは近年注目されている生成AIのリスク管理にも有効です。生成AIを業務に取り入れる企業が増える一方で、機密情報の漏洩など新たなリスクも課題となっています。CSIRTを設けておけば、Log4jのような従来型の脆弱性から、生成AIに起因するリスクまで、広範囲なセキュリティリスクを一元的に管理できます。

具体的な組織体制の構築方法や運用のポイントについては、「CSIRTとは|役割と具体的な構築方法を解説」で詳しく解説しているので、ぜひご覧ください。

▼関連記事

まとめ|Log4jなどOSSの脆弱性には基本的な対策を確実に適用し続けることが重要

本記事では、Log4jの概要と脆弱性のメカニズム、対処法について紹介しました。

  • 第三者がLog4jの脆弱性を突いて任意のコードを実行する
  • 想定される被害はデータの破壊、マルウェアの感染、サイバー攻撃の踏み台などさまざま
  • 定期的な脆弱性チェックが有効

Log4jの脆弱性は一旦落ち着いていますが、また新たに重大な脆弱性が見つかるかもしれません。対応が後手に回らないよう、本記事で紹介したツールなども活用してセキュリティチェックを怠らないようにしましょう。

対策状況のチェックには、脆弱性診断の実施がおすすめです。AeyeScanは、Log4jのような従来のWebアプリケーションの脆弱性はもちろん、AI時代に求められる複雑なセキュリティ対策にも対応しています。詳しい機能について知りたい方は、AeyeScanの資料をダウンロードしてみてください。

著者:榊原敦子(シニアカスタマーマーケティングマネージャー)

セキュリティ課題の解決に役立つコンテンツを配信!

脆弱性に関する最新情報やイベント・セミナーのご案内など、様々な情報をお届けします。ぜひご登録ください。

メルマガ登録はこちら
執筆者

執筆者

株式会社エーアイセキュリティラボ シニアマーケティングマネージャー
榊原 敦子

日本HPにてITインフラ基盤の設計・構築に従事した後、Sky株式会社にて13年間セキュリティ製品の専任インストラクター、プリセールス、運用コンサルを歴任。延べ1,000社を超えるセキュリティ運用改善を支援してきた。
現在は、Webアプリケーションセキュリティ領域のエバンジェリストとして、AIを活用した「診断の仕組み化」や「運用の属人化解消」をテーマに、B2Bマーケティング戦略立案から、メディア記事・ホワイトペーパーの監修までを幅広く担う。ITインフラからアプリケーション層までを横断的に理解する知見を活かし、実務に即した高度なセキュリティ情報の普及に努めている。

FAQ

  • Log4jをはじめとしたOSSを活用する際には、どのような点に注意すべきですか?

    OSS(オープンソースソフトウェア)を活用する際の注意点は、脆弱性対応の責任は利用者にあること、脆弱性が発生しない保証はないこと、定期的な脆弱性チェックが必要であることの3つです。

    • OSSの利用で求められる脆弱性対応
      ソースコードが公開されている以上、悪意ある第三者による解析・攻撃のリスクは避けられないため、「誰かが修正してくれる」と期待せず自社で脆弱性の有無を確認する姿勢が不可欠です。
    • 脆弱性が発生しない保証はない
      Log4jの事例では、2021年の脆弱性報告後も2022年1月に新たな脆弱性が発見されており、一度対策しても新たなリスクが生まれ続けます。
    • 定期的な脆弱性チェックが有効
      脆弱性診断の実施、配布元の最新情報の確認、CVE・NVDなどの脆弱性情報データベースのチェックの3つを継続的に行う必要があります。

    OSSの脆弱性はLog4jのように発覚後も新たな問題が連鎖的に見つかるケースが多いため、一度きりの対策ではなく継続的な監視・更新体制の構築が求められます。

    具体的な注意点については「OSS活用における3つの注意点」をご覧ください。

  • Log4jの脆弱性にはどう対処すれば良いですか?

    Log4jの脆弱性への対策は、CVSSによるリスク評価、影響範囲の確認、最新バージョンへのアップデート、Lookupの無効化、WAFの導入の5つです。

    • CVSSで攻撃リスクを評価する
      CVSS(共通脆弱性評価システム)を用いて自社システムの深刻度を10段階で評価し、対策の優先順位を決定します。
    • 影響を受ける範囲を確認する
      ペネトレーションテストを実施し、自社の現行セキュリティ対策でどの程度攻撃を防げるかを検証します。
    • Log4jを最新バージョンにアップデートする
      Log4jの修正版が公開されているため、脆弱性を含む古いバージョンを利用している場合は、最新版へアップデートする必要があります。
    • Lookupを無効化する
      バージョンアップが困難な場合は、Log4jの脆弱性の原因であるLookup機能(外部サーバーへの問い合わせを実行する機能)を無効にして攻撃経路を遮断します。
    • WAFを導入する
      WAFを導入し、攻撃がアプリケーションに到達する前に防御します。

    リスク評価から始めて段階的に対策を進めることで、脆弱性を解消できます。

    詳しい対処法に関しては、「Log4jの脆弱性に有効な対応と対策5選」をご覧ください。

AeyeScan

AeyeScanの導入を検討してみませんか?

操作性の確認、
実際に利用してみたい方へ

「AeyeScan」の無料トライアル

トライアルにかかる費用は不要。実際の操作性はどうなの?またどのように脆弱性が発見されるのか?などの疑問は無料トライアルで解消しましょう。

無料トライアルの申し込み

サービスをより詳しく
知りたい方へ

「AeyeScan」のサービス概要資料

改めてサービスの特長や導入効果、企業の導入実績などAeyeScanについてより詳しく知りたい方はぜひサービス紹介資料をご覧ください。

サービス資料を読む

お見積もりの希望・導入を
ご検討している方へ

「AeyeScan」へのお問い合わせ

お見積りの希望・導入をご検討してくださっている方はお問い合わせフォームよりご連絡ください。当日もしくは遅くとも翌営業日にはご連絡を差し上げます。

お問い合わせフォーム