Eyes, JAPAN Blog > MINI Hardening #4.4で優勝しました

MINI Hardening #4.4で優勝しました

Tamahashi

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

この度、4/23(土)開催のMINI Hardening Project #4.4にて、弊社スタッフ参加のチームが優勝しました!
遅ればせながらそのレポートを書かせて頂きます。

Hardening Projectとは

脆弱性を含んだECサイトの堅牢化および攻撃やインシデントへの対応力を競うセキュリティのイベントです。
Hardeningは2日間の長丁場のため、MINI Hardeningはよりカジュアルに参加できるように、1日で終了しかつ競技時間も短めに設定されています。
今回はソーシャルゲーム環境をハッキングやチートから守り、最終的な収益を競い合うという競技内容でした。

チーム構成について

チームメンバーは弊社スタッフ3人(内2人大学生アルバイト)と個人参加者(社会人)の合計4人でした。
役割分担は以下の通りです。

  • 弊社スタッフ(私):インフラ
  • 大学生:      フロントエンド
  • 大学生:      バックエンド
  • 個人参加の方:   バックエンド

このチームにはインフラエンジニアがいなかったため、泣く泣く私がインフラを担当することになりました。当日不安しかなかったです(笑)。

事前準備について

Hardeningに初めて参加する方は「準備に何をすれば良いかわからない!」という場合もあるかと思います。
そこでイベント当日までに私が実施したことを紹介します。

1.配布資料を読む
サーバ構成などが記載された資料が前もって配布されるので、とりえずそれを読みます。疑問点などがあればその都度まとめておきます。

2.資料の内容を整理する
配布資料はページ数が長大なので、欲しい情報にアクセスするのにとても時間がかかってしまいます。当日に配布資料を参照するのはあまり得策ではないので、情報を簡潔にまとめておきました。
情報をまとめるにあたって私はNotionを使用しました。

  • マークダウンで書ける
  • 表の作成やタスク管理ができる
  • 共同編集ができる
  • コードが挿入できる

などなど、これひとつで何でもできます。
即席のチームでメンバーにあれこれアプリをインストールしてもらうのは手間がかかるという時に役に立ちます。

私はnotionで以下のようなページを作成しました。

notionページ構成

この中でも特にサーバーの情報を整理しておくことは当日かなり役に立ちました。
各サーバのIPアドレスやパスワード、サービスなどを表で管理すること当日は多くのサーバーやサービスの運用する必要があるため非常に重宝します。
また、表を埋めていく中でおかしな点などにも気付けるかと思います。
サーバー情報管理

3.チームメンバーに挨拶
チームが組まれたら率先して挨拶しましょう。
そうしないと延々とコミュニケーションが取れずそのまま当日を迎えるということもあるので…

4.顔合わせ
discordやzoomなどでメンバーと顔合わせをします。
このミーティングで以下のことを決めました。

  • 当日のコミュニケーションツールの決定
  • 役割分担
  • 配布資料の確認
  • 作戦を立てる(攻撃されそうな場所の予想と対策を考える)
  • タスク化する

実行するコマンドの手順などをタスク化しておくことで、競技が始まった後迷わず行動に移すことができました。

結果について

冒頭でも述べましたが何とか優勝できました。
しかし、どのチームとも僅差で辛くも勝利というかんじです。
また、私個人としては自分の役割を果たせず競技の終盤は全てのサイトをダウンさせ全く動かなくなってしまい、課題が多く残る結果でした。インフラエンジニアさんには足を向けて寝られません。
アプリ側のメンバーが競技の前半で手早くアプリ内の脆弱性を修正してくれたのが勝利の要因だと思います。チームメンバーには感謝しかないです。

まとめ

競技を通じて、攻撃を受けた時にどこを確認すべきなのか、堅牢化のためにどのような設定をすべきなのかイメージを掴むことができました。
また競技終了後の解説も丁寧で大変勉強になりました。

サーバーに攻撃を受けるというは個人ではなかなか体験できないことなので貴重な経験になるかと思います。
もし興味を持ちましたらHardeningに参加してみてはいかがでしょうか?

Comments are closed.