2021年12月、Apache Log4jの脆弱(ぜいじゃく)性であるLog4Shellの情報が公開された。本稿ではLog4Shellの概要と、なぜ攻撃者がLog4Shellを悪用するのかを解説する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本記事は、株式会社インターネットイニシアティブの許可をいただき、「IIJ.news Vol.169」の「セキュリティのトレンド 2022 Spring Apache Log4jとLog4Shell」(2022年4月号)を転載したものです。そのため、用字用語の統一ルールなどが、@ITのものと異なります。ご了承ください。
執筆者プロフィール
北山 啓思
IIJ セキュリティ本部 セキュリティオペレーション部 セキュリティオペレーションセンター
SOCアナリストとして、ログ分析・マルウェア解析・脆弱性検証などを担当。
Apache Log4j(以下、Log4j)は、プログラミング言語の一種であるJavaで使用されているライブラリです。おもにJava言語で開発されたソフトウェアにおいて、ログ出力機能を提供します。
ソフトウェアの開発者にとって Log4jの使用は定番となっており、無償で使えることや機能の柔軟性などから、多くのJavaアプリケーションで使用されています。
例えば、Log4jがチャットアプリで使用されている場合にはメッセージの履歴を記録するために、WEBサーバで使用されている場合にはユーザからアクセスされたURLを記録するためなどに使用されています。
このほかにも、アプリケーションで発生したエラーの詳細などを記録するために用いられることもあります。
Log4Shell(CVE-2021-44228)*は、Log4j においてリモートから任意のコードを実行できるようにしてしまう脆弱性を指します。この脆弱性を含むLog4jを使用して開発されたソフトウェアのログに攻撃コードが出力されると、ソフトウェアが動いているコンピュータで攻撃者が意図する不正な命令が実行されてしまいます。
* 2021年12月9日、Apache Software Foundationは、同社の提供するApache Log4j 2の複数バージョンにリモートコード実行の脆弱性(CVE-2021-44228)が存在することを公表した。
例えば、ユーザからアクセスされたURLをログに記録するWEBサーバの場合、URLに攻撃コードが含まれていると、サーバ上で不正な命令が実行される恐れがあります。不正な命令の実行に成功した攻撃者は、コンピュータに保存されたファイルの改ざんや窃取、マルウェアのダウンロードおよび実行などを試みます。
CVEでLog4Shellの情報が公開されて以降もLog4Shellを悪用する攻撃が多数観測されています。攻撃者がLog4Shellを悪用する理由としては、下記の3つが挙げられます。
Log4Shellにおいては、脆弱性への対策が不十分であったために攻撃されてしまう事例が確認されています。その背景には、Log4Shellが他の脆弱性と比較して、影響範囲の特定が困難であることが挙げられます。
Copyright© Digital Advantage Corp. All Rights Reserved.