けけずんセルフハッキング

エンジニアっぽい雰囲気を醸しだしているかのようなブログです!

「Hardening 1010 Cash Flow」に参加して

[Hardening] 「Hardening 1010 Cash Flow」に参加して

Hardening 1010 Cash Flowに参加してきました。 箇条書きで流れをば。

Hardeningについて

概要

  • チームごとに販売サイトを運営してその売上を競う
  • その間、各チームのシステムに対して運営側から攻撃が行われる
  • 攻撃をさばきつつ、システムを継続して運営して売上向上を目指す

チーム構成について

  • 1チーム6人
  • 参加者90名のスキルに応じてチームを構成する
  • 申し込みの段階で行うスキルチェックを基に行う
  • 事務対応要員、セキュリティエンジニア要員、マネジメント要員(リーダー)など

販売サイトについて

  • 顧客がアクセスするためのサイト
  • 商品を仕入れるためのサイト
  • 商品を管理するためのサイト
  • (販売サイトではないが)外部に向けて情報を流すサイト

Hardening事前準備

チームミーティング

  • テキストベースのやり取りはSlackを使用
    • Hardening当日の記録などもSlackを使用した
  • ビデオ会議はZoomを使用
    • 会議回数は3回ほど

スキルチェック

  • スキルチェックシートを記入してメンバーのスキルを把握
    • 前回Hardening参加メンバーが使用したというものを流用

各種情報共有

  • Googleスプレッドシートで管理
  • メンバー内の前回Hardening参加者によるHardeningについての説明
    • Slackやビデオ会議時に軽く説明してもらった
    • 前回使用した資料などをメンバーに公開してもらった
  • 沖縄県内の前回Hardening参加者による勉強会などもあった

競技開始直後に実施することリスト

  • 競技開始直後に行う設定などを列挙し、コマンドまで明確に記述
    • 競技開始直後にこの手順に沿って行うことでスムーズに進めることを想定していた
  • スキルチェックシートを参考に担当を割り当て(自主的に選んでたりもした)

用意したスクリプト

Hardening前日

  • 競技環境についての資料が運営から配布される
  • 居酒屋にて打ち合わせ兼懇親会
    • 初めてチームメンバーが直接顔を合わせる
    • 皆で配布された資料に目を通す
      • 構成に対してFWポリシを決定するなど
  • 疲れが残らないよう10時半頃に居酒屋で解散

Hardening当日

競技開始前

  • 会場入口前に予定時刻より少し早めにチームメンバーが集合
  • 会場が開くまでロビーのベンチでダラダラと過ごす
    • チームによっては競技環境についての資料を読んでいるところもあった
  • 予定時刻になると受付からチーム名が呼ばれる
    • メンバーの確認
    • ネームプレートの配布
    • 懇親会費の支払い(リーダーにまとめて預けていたもの)

競技開始直後

  • 実際に競技環境を前にして様々なトラブルが続出
    • 踏み台サーバのUbuntuにログインできない
    • メールが受信できない
    • 販売サイトにアクセスできない
    • ネットワークが重すぎる
      • 上記の問題については時間が経つと解決していた。運営の設定ミスなどもあるらしい
  • 「競技開始直後にすることリスト」通りに作業を行おうとしたが、合間合間に色々と問題が起きてスムーズに事が進まなかった
    • 予め用意されているユーザのパスワード変更だけは徹底して行った
  • FWにポリシーを適用
    • 攻撃らしい攻撃は減ったが、クローラが入ってくるポートも制限していたらしく、売上が低迷
    • 再度ポリシーを修正して適用、売上の増加を確認した
  • 各種スクリプトの設置
    • 競技環境のデータベースの種類がpostgresqlだったため、mysqlバックアップスクリプトは使えず
    • ファイルバックアップ、サービス監視、ファイル改ざん検知スクリプトはいくつかのサーバに導入 -全てのサーバに設置する時間がなかったため、主要なサーバ(Web、DBサーバなど)にのみ設置した

競技中

  • 何もないときはログを眺めていた
    • 実は攻撃や問題に気付いてないだけの可能性もあった(実際どうなのか分からん)
  • マネジメント要員(リーダー)は常に在庫チェックなど行っていた
    • 途中で、商品を購入していないのに在庫を増やせるというバグらしきもの気づいたらしいが、あまり触らないようにしていたらしい
      • 競技終了後には、バグを利用して在庫不正追加を行ったチームについては最終的な売上から減額する措置を行った
  • 攻撃、問題が発覚したときは焦って頭が真っ白になる
    • 自分が何をするのか、何ができるのか分からなくなる
    • とりあえずログを見て何が起こっているか把握する必要があった
    • 連絡報告相談大事
  • 昼食時間はなし、各自合間の時間を活用して昼食を済ませる
    • キャプテンカンガルーのハンバーガー!
      • かなり美味でした
  • 美味しそうなコーヒーとお菓子の誘惑
    • ぶっちゃけ競技そっちのけで飲み食いしたかった気持ちがなきにしもあらず
    • まぁ取りに行く暇なんてない

競技後

  • 全てから解放された気持ちになる
  • やりきっていないがやりきった気持ちになる
  • 競技終了直前のカウントダウンは会場全体が一体感に包まれる

感想

今回初めてのHardening参加となりました。 競技前のミーティングでは話についていくので精一杯で、自分から何かを提案するということはあまりなかった気がします。 また、競技中も自分が何をやっていいか分からず、ひたすら雑務(パスワード変更とかパラメータ変更とか)をこなしていた感じがします。うーん、あまり力になれてない感。

今回の競技を通して、自分の力のなさがハッキリと分かりました。 知ってるけど、やり方は分からないみたいな。ペーパードライバー的な。 机上の勉強だけじゃなく、手も動かさないと身につかないなと感じました。

次回のHardeningに参加できるのであれば、それまでに自分が出来ることを一つでも身につけるよう頑張ります。