MINI Hardening Project #1.1 に参加した。 #minihardening

Posted on May 24, 2015 at 13:07:05 UTC


というわけで先日mini hardening#1.1行きました。

事前準備

事前にチームメンバーが運営側から知らされていたのでSlackにてコミュニケーションをとることにしました。…といいつつ事前にいろいろな話したりということはなくエナジー冷蔵庫もっていくかどうかくらいしか話していなくてアカウントを事前に確保した程度だったりするのはお約束……

競技

ルール

Webサーバに入って各種作業を行い、12:00~15:00の3時間に次のポイントを多く取ったチームが勝ちといった感じのルール。

  • サーバが稼働していることを1分ごとにチェックされることによって得られる運用ポイント(稼働率)
    • 当然ながらサービスが落ちてたらポイントは入らない
  • 報告書の評価によって得られる報告書ポイント
    • 何かいろいろすごいことやってても報告書にちゃんと書かなければポイントは入らない

チームでの作業

あらかじめ計画を立てていたわけではないのですが、必要に応じて自然にこんな感じになりました。

  • おかしなものがあったら声をかける
    • 目の前にいるならそれが一番手っ取り早い
  • 基本は怪しいところを見つけた人が対処
    • 他の人がそれに関係するところを今いじってそうならこれお願いしますといったように頼む
  • Slackにてコミュニケーション
    • ログをきちんとのこす
    • コマンドとかログをコピペできる利点がある
  • Googleスプレッドシート(共同編集機能を活用して報告書作成)
    • 報告書のフォーマットがエクセル形式で、チーム全員がGoogleアカウントを持っていた
    • 各自がどんどん書いていき、終了5分前くらいにxlsxに書き出してメールで提出
      • 手分けして作業できるのでギリギリまで対処できた

他のチームでは「最初に担当を決め各担当が分担して作業を行う。レポート作成はレポート作成者がやる」「開始前に事前にどこかで集まって自己紹介やチームビルディングをやる」など結構計画的かつガチにやってるチームもありました。また、情報共有の方法もSlackやハングアウト、紙などさまざま。中にはテキストファイル(これ複数人で同時編集したらどうするんだろうかというのが気になる…)なんてのも。

やってたこと

だいたいこんな感じでやってたと思います。はっきり言って計画とかは全くないです。

  • iptablesとかユーザー情報とか各ユーザの.bash_historyとか/var/wwwとかを見る
    • いろいろ大量に怪しいものがあるのでパーミッション変えるなりnologinにするなり移動するなりいろいろやる
  • tail-fで/var/logの中身を見ておかしなアクセスがあった場合にまずIPアドレス単位で遮断する
    • 攻撃が収まっている間にどこがやられたかを探して対処する

結果

1位タイでした。運用ポイントでは全チームでトップだったのですが、報告書も合わせた場合に同点に。

ふりかえり

  • 過去の教訓?を生かして情報共有をうまくできていたのはよかったし、スピーディーに対応できた
  • 一方でとりあえずの応急措置は行えたが根本的な対策を行えなかった

おまけ

またお前かと言われそうですが、レッドブルでないエナジードリンクをいろいろと持ってきてました。SECCONとかISUCONとかで使用していた冷蔵庫は余裕がなかったので持ってきてないです。まあ競技時間が3時間と短めだったというのもあるけど。