知って得するセキュリティのはなし その141
Log4jに致命的な脆弱性…至急アップデート・回避策実施を
1.このニュースをざっくり言うと
- 12月10日(日本時間)、Javaプラットフォームでのログ取得用ライブラリ「Apache Log4j」のバージョン2(Log4j2)において非常に危険度が高いとされる脆弱性の存在が明らかとなり、修正バージョン2.15.0がリリースされています。
- 脆弱性はLog4j2の「JNDI Lookup」という機能によるもので、Log4j2が組み込まれたJavaアプリケーションが処理するログに特定の文字列が含まれるとき、同一コンピューター上あるいは外部サーバー上にあるJavaバイナリファイル(.class)をダウンロードし、最悪の場合任意のコードをソフトウェア上で実行される恐れがあるとされています。
- 同11日にはJPCERT/CC等でも注意喚起が出されており、Log4j2(バージョン2.0.0~2.14.1)を利用している全てのケースでアップデートか、JDNI Lookupを無効化する回避策の実施が必須とされています。
2.執筆者からの所感等
- 人気ゲームソフト「Minecraft」のJava EditionにLog4j2が含まれており、ゲームサーバーにログインした攻撃者が悪用するケースが報告されたことが脆弱性を広く知らしめる一因となりましたが、これ以外にもJavaで実装され、Log4j2を含むアプリケーションは非常に多く、かつ攻撃が比較的容易とされることから、2014年に話題になった「Heartbleed」「Shellshock」と同等あるいはそれ以上の危険度の脆弱性とされています。
- 脆弱性について最も想像しやすいケースは、WebアプリケーションをJavaで実装している場合に、細工したリクエストをWebサーバーからアプリケーションへ渡すケースが挙げられますが、攻撃経路はHTTPリクエストとは限りませんし、また内部からのファイルのダウンロードでLDAPが使用されるケースが主に紹介されているものの、やはりそれに限定されるものではないでしょう。
- Webサーバー等、インターネットと直接繋がっているサーバー上のアプリケーションでJavaを使用していなくても、より内部のサーバーにあるJavaアプリケーションと通信している場合、さらにはクライアントアプリケーションが外部のサーバーとのやり取りで不正なデータを送り込まれた場合にも、アプリケーションを踏み台にして内外のサーバーへの通信等が行われる恐れがあります。
- 既にクラウドサービスやセキュリティベンダー各社が提供するWAFでは攻撃パターンを遮断する設定を追加したと発表されていますが、より複雑なリクエスト等でWAFを回避される可能性も指摘されており、根本的対策のため、Javaアプリケーションが使用されている箇所を全て洗い出し、それぞれLog4j2のアップデート、もしくはそれが実行できない場合は回避策を実行するよう徹底してください。
- 加えて、Log4jについて対策できたか否かに拘わらず、サーバーOSの設定あるいはその前面にUTMを設置する等により、サーバー自身からの外部への意図しない通信を遮断する「出口対策」をとることを推奨致します。