著者:森野セリ
ページ数:59
¥500 → ¥0
本書は、Apache Jamesというオープンソースのメールサーバーを使って、Log4Shellの体験手順書です。
Apache Tomcat等他のJavaアプリケーションサーバーでも同じ手法が使えます。ぜひ手に取って、実際に動きを確認してみてください。
本書では、2.16.0 で対応済みとなった「CVE-2021-45105, CVE-2021-45046」を扱っています。2021年12月31日現在、まだまだlog4jの脆弱性は落ち着いていません。なるべく早く、この脆弱性のインパクトを体感し、極めて問題がある動きであることを早く理解するようオススメします。
本文より)
本書は、話題の「Log4Shellと言われる脆弱性について実際に体験してセキュリティ防御技術を身に着けたい!」という方向けの本である。決して正真正銘のセキュリティ専門家向けではないことをお断りしておく。ある程度Linuxを使ったことがある方を前提としているが、セキュリティのことをちょっと学んでみたい、そんな方が軽い気持ちでさらっと体験して、さらっと「ゾッ」と事の重大性を2時間程度でわかってもらうための本である。
2021年12月。突如、「Log4j」に関する脆弱性が発表された。Log4jは、Javaの世界では定番中の定番のロギング用ライブラリであり、10年、いや、20年程度は歴史がある、誰もが「枯れている」と信じ切っていたライブラリであったが故に、この脆弱性発表は衝撃だったに違いない。あまりにも定番中の定番だったことと、そもそもこのライブラリが担当する内容というのは、ログをテキストに出力する、という単純極まりない内容である。そのため、殆どのJavaプログラマは、Log4jに脆弱性あるなんて、1ミリも考えたことはなかったはずだ。そもそもLog4jを使おうというとき、apache.orgに転がっているApache Log4j のライブラリをダウンロードするか、あるいはソースコードをダウンロードして、適当に自分のant/maven等のプロジェクトに取り込み、適当にビルドするというのが定番だ。適当にやって、適当に動いて、適当にずっと安定して動いてくれる代表ライブラリの一つが、この「Log4j」なのだ。
本書では、実際に脆弱性を利用した攻撃を実機で再現する手順をご紹介するとともに、いかにヤバいのか体験いただける本となっている。くれぐれも悪用は禁止である。読者に期待するのは、ここで得られた経験をもとに、自社や、自分のお客様への手厚いセキュリティ対応支援活動に役立てていただければ幸いである。
目次)
1. はじめに
2. Log4Shellとなにか
3. なにが「攻撃」になるのか
4. 狙われるのはWebサーバーだけか
5. Apache Jamesメールサーバーに「攻撃」して脆弱性を確認
5-1. CentOS7の準備
5-2. SSHでログインしてRoot化
5-3. Javaのダウンロードサイトhttps://openjdk.java.net/ へアクセス
5-4. JDK 11を入手ページにアクセス
5-5. Build 11+28のLinux/x64版をダウンロードするリンクを取得
5-6. Linuxに戻り、/tmpに移動後、wgetコマンドをインストール
5-7. JDK11をダウンロード
5-8. JDKを/opt以下に展開
5-9. lnコマンドで/opt/javaディレクトリを作成
5-10. ~/.bash_profile ファイルにJAVA_HOMEとPATHの登録
5-11. 一旦exitし、sudo su – でroot後java -versionコマンド実行
5-12. Apache Jamesのサイトにアクセス
5-13. ダウンロードページ
5-14. 以前のバージョンがダウンロードできるページにアクセス
5-15. zipファイルのダウンロードリンクをコピー
5-16. Apache Jamesのダウンロードリンクを取得
5-17. Linux画面に戻り、unzipコマンドをインストール
5-18. Apache Jamesをダウンロード
5-19. Apache Jamesを/opt以下に展開
5-20. lnコマンドをつかって、パスを少しスマートに
5-21. ~/.bash_profile ファイルにJAMES_HOMEとPATHの登録
5-22. 25番ポートで動いているpostfixを確認し、完全に停止
5-23. Apache Jamesを起動
5-24. Apache Jamesのログの場所を確認
5-25. lsofコマンドをインストール
5-26. lsofでSMTPポート(25番)でリッスンしていることを確認
5-27. example.netドメインを追加
5-28. user1@example.netユーザ、パスワードをwelcomeで作成
5-29. 悪意を仕込めるLDAPサーバーのgithubページを確認
5-30. wgetコマンドで検証用のLDAPサーバをダウロード
5-31. 攻撃内容を決定
5-32. 削除されるテストファイルを作成
5-33. LDAPサーバーを起動し、悪意のあるコマンドの仕込み
5-34. SMTP-AUTHの認証トークンを生成
5-35. telnet コマンドをインストール
5-36. user1@example.net宛にメールを送信
5-37. ログを確認し、今回の脆弱性の理解
5-38. 攻撃開始
5-39. ログを確認し、今回の脆弱性を突いた様子の理解
5-40. リモートから送り込まれたコマンドが実行されたか確認
5-41. LDAPサーバー側のコンソール画面を確認
5-42. 攻撃が成功した後に
5-43. 対処するための特効薬
5-44. Apache James 3.6.1をダウンロード
5-45. Apache James 3.6.1のLog4jのjarファイルを確認
5-46. いま利用中の3.6.0のLog4jライブラリを3.6.1のLog4jで置換
5-47. Apache Jamesを再起動し、新しいLog4jライブラリの読み込み
5-48. 再び攻撃
5-49. Log4jのjarは複数あるが、どれがキモか
6. まとめ
7. 著者プロフィール
シリーズ一覧
- 同シリーズの電子書籍はありませんでした。
この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。