Log4Jとは、Apacheが開発するJava用のロギングライブラリ。 Log4Jには、lookupという機能が含まれており、ログ出力時にランタイムに情報を出力することができる。 例として、${java:runtime}という文字列は、Javaのバージョン文字列に置換される。 その中でも、今回原因になったのは、Jndi Lookupである。 Jndi Lookupは、ネットワーク上から値を取得し置換するものである。 使用すると、LDAPのようなディレクトリへアクセスするプロトコルを経由して外部ファイルへのアクセスを実行させることが可能である。 そのため、ネットワーク上にJavaクラスファイルを配置したLDAPサーバーを構築し、URLをLookupの文字列に当てはめ送信するとJava Runtimeでそのプログラムが実行される。 CVE: CVE-2021-44228 JNDI Lookup