Log4Shell の脆弱性を、初期エクスプロイトから完全な是正レポートに至るまで、隔離されたラボ環境でエンドツーエンドで再現しました。Aditya Chaudhari との MSc コースワークのペア課題として実施し、共同レポートとしてまとめました。
JAVA_OPTS で JNDI ルックアップを無効化)で同じコンテナを再構築し、エクスプロイトが機能しなくなったことを確認単に読むだけでなく、エクスプロイトチェーン全体を自分自身で理解したかったからです。Log4Shell は、Java のクラスローディング、LDAP、JNDI を一度に扱うため学習に適した脆弱性であり、その後のパッチ適用の経緯から、単にアップデートを適用する以上の実際の是正対応がどのようなものかを学べます。
脆弱性のあるアプリ、エクスプロイトコード、PoC スクリプトのプロジェクト構造。
Docker コンテナ内で起動する脆弱性のある Tomcat アプリケーション。

whoami により root アクセスを確認。
JNDI ルックアップを無効化しエクスプロイトをブロックするハードニング済み Dockerfile。
LDAP サーバーと HTTP サーバーを起動する Python PoC スクリプト、およびコールバックを待ち受ける netcat。
Docker、Java、Python、netcat、Kali Linux
すべての作業は教育目的で隔離されたラボ環境で実施されました。