Log4j (Log4Shell)の仕組みや、行うべきLog4jの脆弱性対策を解説

公開日:

更新日:

執筆者:MICHAEL GORELIK|

サイバー攻撃対策
         

目次

※本記事はMorphisec社のProtecting Against the Log4j (Log4Shell) Vulnerabilityの記事を翻訳・加筆した記事です。

2021129日、Log4jLog4Shell)モジュールに新たな脆弱性があり、とあるゲーム企業のサーバに影響を与えるという発表がされました。それから約1週間が経過した後、数百万台のデバイスが攻撃の危険にさらされていることが明らかになりました。Log4jはこれまでの歴史上、最悪の脆弱性に数えられるかもしれません。

Log4j の脆弱性の存在を知って以来、Morphisec社(モルフィセック社)はこの新たな脅威を調査しました。その結果、Log4jの脆弱性はあらゆるネットワークに接続されたサーバに重大なリスクをもたらすという判断をしています。本記事では、Log4jの脆弱性について知っておくべきことと、対策をご紹介します。

Log4jの脆弱性とは?仕組みや 重大な脆弱性を解説

そもそもLog4jは、起こった出来事についての情報を時系列に記録・蓄積するロギング機能です(また、記録・蓄積されたデータをログと呼ぶ)。

今回の脆弱性の仕組みは、ある文字列を送り込むと、ログに対してルックアップ機能(目当てのログデータを検索し、用意したデータに書き換える)が発動し、最終的にリモートコードの実行がされてしまう脆弱性となります。

Log4jの脆弱性を突いた攻撃の流れは、

  • ①攻撃者はサーバとそのサーバとの通信接続が実行される文字列を準備
  • ②攻撃者が準備した文字列をWebアプリケーション等のテキストボックスから送信
  • ③送信された文字列は標的となった組織のログに記録される(可能性が高い)
  • ④攻撃者が準備したサーバと標的組織のログが接続され、悪意のあるプログラムやディレクトリ情報を送り込む

log4jの脆弱性を狙った攻撃

つまり、Log4jの脆弱性はある文字列(テキスト)を送り込むことで、ウェブサーバを乗っ取ることが可能となってしまいます。この脆弱性は、Java言語ベースのアプリケーションでエラーやイベントログを記録するためのオープンソース「Apacheライブラリ」であるLog4jモジュール内に存在します。

ソフトウェア開発に携わっている方にとって、Log4jのようなサードパーティのソリューションをカスタマイズ構築せずにアプリケーション内に導入することは一般的な方法です。

Log4Shellの悪用が初めて表面化したゲーム企業の場合、悪意のある文字列がゲーム内のチャットボックスを通じて入力されました。ゲーム内のテキストボックス以外にも、Apple iCloudのようなWebアプリケーションに設置されているユーザー名ボックスに入力された文字列でも侵害されてしまいます。

つまり、サイバー犯罪者は秘密鍵を盗むことや、防御のレベルによっては影響を受けたサーバに直接マルウェアをダウンロードして実行することも可能なのです。

Log4j脆弱性の仕組みを発見後、驚異的に脅威が増加

Log4jは、数百万ものJavaプログラムやアプリケーションで使用されている非常に人気の高いApacheライブラリです。そのため、Log4j の脆弱性にさらされたインターネットに接続されているアプリケーションの数を定量化することは不可能でしょう。とある研究者は、技術を持った大手企業が提供する製品やサービスにも影響を与える可能性が高いと指摘しています。

米国サイバーセキュリティおよびインフラセキュリティ庁(CISA)のジェン・イースタリー長官の声明によると、

"この脆弱性は、増え続ける脅威行為者によって広く悪用されており、その幅広い使用からネットワーク防御者にとって緊急の課題となっています。"

とあります。

イースタリー氏の所属する組織はLog4jを「critical(致命的)」とし、ドイツの国家サイバーセキュリティ機関(BSI)など、世界的に同等の機関が同様の声明を発表しました。企業向けソフトウェア開発会社である Redhat は、Log4j CVSS スコアを 9.8 と評価し、米国標準技術研究所(NIST) は最高レベルの 10 としました。

現在ではLog4j のパッチが新たに提供されたため、Log4 Shell の修正は技術的に簡単です。しかし、Log4jを使用している膨大な数のサーバやサードパーティアプリケーションを見つけ出し、パッチを適用することは、影響を受けた無数の組織にとって膨大な作業となります。多くのレガシーシステムは耐用年数を迎えていますが、パッチを見つけ適用することはほとんど不可能になると考えられます。

エンタープライズ検索プラットフォーム Apache Solr やデータベース・プラットフォーム Apache Druid など、広く使用されているフレームワークの多くが Log4j を使用しています。そのため、多くの組織は感染したアプリケーションやサーバをホストとしている可能性が非常に高いです。

理論的には安全なC言語のサーバであっても、Javaで書かれたオンラインフォームが接続されると、危険にさらされる可能性があるでしょう。

Log4j脆弱性の仕組みを悪用した攻撃はこれから高度化?

クラウドプロバイダやベンダーが脆弱性の発見と除去に苦心する中、サイバー攻撃者はウェブ上でLog4 Shellの脆弱性を発見しようと躍起になっています。セキュリティベンダであるGreyNoiseの発言によると、現在100以上のノードで悪用が行われており、いくつかのユニークIPが悪用可能なサーバを必死でスキャンしているとのことです。Log4Shell はすでに脆弱性を見つけ出すツールの実装とボットネット数の増加に使用されています。

これまでに観測された活動のほとんどは、低レベルの脅威や攻撃手法のように見えます。しかし、Log4jを悪用した攻撃手法が増えれば、ランサムウェア攻撃などより高レベルの脅威が出現してくると推察します。

Log4jの悪用により、サイバー攻撃者はサーバの環境変数を読み取ることができるため、AWSキーなどの認証情報は、現在、非常に脆弱な状態になっています。

Log4jの脆弱性(仕組み)を阻止するための行うべき対策

Log4jは重大な脅威であり、どの企業も安全であると考えるべきではないでしょう。Log4jの脆弱性を対策することは、すべてのセキュリティ・チームが今すぐ行うべき最優先事項です。

利用しているサーバがWindowsLinuxMacに関わらず、今利用しているシステム全体でJavaコードを探し、Log4jライブラリが使用されているかどうかの確認が必要です。Log4jを見つけた場合、最新パッチを適用することが急務になります。

企業はできるだけ早くベンダーのパッチを探し適用する必要がありますが、この悪用による潜在的な攻撃手法は多岐にわたります。パッチ適用には時間がかかるため、Log4j悪用による新たな脅威を軽減するためのソリューションを用意することも重要です。

サイバー攻撃者は、バックドアを使用してマルウェアの入ったペイロードを配信することが増えており、シグネチャに依存しないソリューションでサーバのセキュリティを強化する必要があります。Morphisec のようなサーバ保護のセキュリティ対策は、この種のマルウェアが行う攻撃を成立させないため、Log4jの脆弱性に対する即時の防御策を組織に提供することができるのです。

本記事の原文

  1. Morphisec|Protecting Against the Log4j (Log4Shell) Vulnerability(参照日:2022-02-10)