Micro Hardening研修参加レポート

セキュリティ研修「マイクロハーデニング」に参加した記録です。

研修の概要

実際のECサイト(WordPress+Apache+MySQLが1台のサーバーで稼働)を4人1組のチームで防御し、売上最大化を目指す内容。1分ごとにクローラーがECサイトで購入を行い、45分間で購入できた点数を競う。攻撃による改ざんで売上が下がったり、防御に成功するとボーナスが加算される仕組み。

研修は45分×4セットで実施。

※具体的な脆弱性はネタバレ防止のため記載しません。自分たちの考えや学びを中心にまとめています。

各セットの取り組み

1セット目

最初は攻撃手法や脆弱性の全容が分からず、まず「どんな攻撃が来るのか」を知ることを重視。サービスが止まった場合は復旧のみ行い、観察フェーズとした。

  • アクセスログを確認(自分たちのIPを除外)
    sudo tail -n 500 /var/log/httpd/access_log | grep -v "192.168.0.200"
    
  • lastコマンドでアクセスユーザーの確認
  • /var/www/htmlの改ざんチェック
  • アクセスログをzip化しAI(ChatGPT)に投げてアドバイスをもらう

2セット目

1セット目の観察で「SSH経由での侵入・改ざん」や「WordPressの脆弱性を突かれ設定ファイルが取得されている」ことが判明。改ざん検知や復旧体制を強化し、被害拡大を防ぐことを重視。

  • /var/www/htmlをバックアップし、diffで改ざんを検知
    cp -r /var/www/html /tmp/html
    sudo diff -r /var/www/html /tmp/html
    
  • 改ざんがあれば即時復旧
  • MySQLのデータもdumpしてバックアップ
    mysqldump -u root -p wordpress > /tmp/wordpress_backup.sql
    
  • ログ監視も継続

3セット目

2セット目までの観察・検知で「FTP経由での攻撃」や「不要なプラグインの悪用」「PUTメソッドの悪用」など、攻撃者が使える余計な入り口が多いことが判明。不要なサービスやアカウントを整理・制限し、攻撃面を減らすことに注力。

  • 不要なWordPressプラグインの洗い出し・停止
  • FTPが悪用されていたためFTPサービス停止
    sudo service vsftpd stop
    
  • 不要アカウントのロック、利用アカウントのパスワード変更
    sudo passwd -l admin
    
  • PUTメソッド(正常運用で不要)が悪用されていたため禁止

サービスやプラグインの削除・停止は1つずつ行い、影響を都度確認しながら進めた。

4セット目

前回までで主なバックドアや攻撃経路を塞いだつもりだったが、特定の商品だけ購入できなくなるという異常が発生。「データ改ざんが起きている」と判断し、原因究明とアクセス制限を強化。

  • phpMyAdminへのアクセスを禁止
  • 特定商品のみ購入できなくなり、データ改ざんを疑うも、どこが改ざんされたか特定できずにタイムアップ
  • ネタバレで「商品タイトルの改ざん」と判明。自分たちは「商品情報自体(在庫や価格など)の改ざん」と思い込み、DBばかりを重点的に調査していた。

ネタバレで印象に残ったこと

  • 脆弱なWordPressは「停止」だけでなく「削除」も必要な場合がある
  • 一部プラグインはdisable関数が未実装で、WordPressからデータが渡ることがある
  • WebDAVの設定やFTPサーバーのログも要注意

上野宣さんの解き方が一番美しかったとのこと。

  • 1回目は徹底的にログを取り続ける
  • クローラーの1分ごとのアクセスに合わせて、1分ごとに設定を変え、どの設定で購入できなくなるかを確認する

一般的な障害対応については、以下の記事が参考になる。

チームの振り返り

チーム運営・情報共有

  • 防御対応の役割分担を明確にして対応
  • セットごとにスレッドでやったこと・気づきを共有
  • 怪しい点や解決案も積極的に提案

AI活用

  • アクセスログやエラーログをAIに投げて助言・対策案をもらった

今後の開発運用で取り入れたいこと

  • 余計なライブラリは入れない
  • 脆弱なバージョンは使わない
  • EOL対応を徹底
  • 権限管理の徹底

まとめ・個人の学び

  • 普段はSplunkやk8s環境で運用しているため、Linuxのログの場所や見るべきポイントの知見が少なかったと実感
  • あらゆるログを幅広く確認することの大切さ
  • 改ざん箇所は先入観なく、システマチックに1つずつ確認する必要性
  • 不要なサービスやアカウントは作らない