DMM.comラボエンジニアブログ

DMM.comラボのエンジニアブログです。DMM.comを支える技術について書いています。

Hardening 1010 Cash Flow に参加してきました

こんにちは、DMM.comラボ セキュリティ部の さわやん こと澤谷です。
先日沖縄で開催された Hardening 1010 Cash Flow に競技者として初めて参加しました。

https://wasforum.jp/hardening-project/

■大会概要

Hardening Project とは、最高の「守る」技術を持つトップエンジニアを発掘・顕彰するものであり、技術競技(コンペティション)の形式で実施される大会です。 様々な企業や組織の方々が集まり、15チーム(1チーム6名)総勢約100名のどMセキュリティエンジニアが競技に参加します。
5月の中旬から本番当日までの準備と、当日の状況についてお知らせします。

■準備と当日までのタイムスケジュール
5/11メンバー選出とSlack開通
5/16リーダーとチーム名の決定/事務局連絡
事前準備期間
6/22大会前日 作戦会議
6/23Hardening 1010 Cash Flow 大会当日
6/24Softening 振り返り
■事前準備

5月11日(木)メンバー選考のお知らせが届き、翌日に Slack 開通してメンバーとやり取りしていく内に・・・あることが発覚する・・・ f:id:dmmlabotech:20170629173339p:plain

6人中4人が “沖縄” の “高専生” やないかぃ!

事前に色んな方に過去大会のお話を伺ってきましたが、このメンバー編成は誰に聞いても「ないなー」「さわやん終わったな」ということでした。なぜなら、直接会って親交を深めて、大会に臨むと言うのが鉄板だから。。。

会いたいけれど、会えない(辛)

でもでも、それは言ってもどうにもならないことだから割り切りっ!次に
1. リーダー
2. チーム名
を決めていくことに。1は社会人だからってことで、自分が引き受け、2は候補が2つありましたが、もう一つは大会当日変更するであろう共通パスワードに決定しました。また、
3. チームとしての目標
を決めました。 f:id:dmmlabotech:20170627184445p:plain
並行して

  • 脆弱性情報の収集/その対応方法の検討
  • 過去資料からの推測で設定方法の事前準備
  • 各人のスキルの把握でやることやらないことの取捨選択

なんかを進めてきた感じです。会場のネットワークはインターネットにつながらない"閉ざされた空間"でありパッチ適用は困難。また、パッチを準備しようにも、直前になるまでサーバ/ネットワーク構成、OS種別、などは分からないため、あくまでも “想像” で準備を進めてきました。妄想図↓ f:id:dmmlabotech:20170628122804p:plain 4. 各個人の役割分担
各人がどこを担当するかを決めました。
決めた役割ですが、大会数日前に、社内で過去参加経験者を集めて不明点を確認する会を開催したところ、
うちのチーム、テクニカルに寄り過ぎじゃね?
という盲点も出てきて、

  • 作業/行動履歴の記録
  • 売上管理、在庫管理、広告管理
  • メール担当

なんかを直前で決めました。チームの看板↓も作成終わり、事前準備は万全?!

f:id:dmmlabotech:20170628125944p:plain

■前日の状況

沖縄は梅雨明け。飛行機から降り立つと同時で噴き出す汗汗汗。

f:id:dmmlabotech:20170628175633j:plain

前日は作戦会議。19:30頃にみんなで集合して、ここまで決めてきたことを改めて整理。各自の役割分担を再度確認して「良く寝よう」ということで22:00過ぎには解散しました。 初顔合わせだったわけですが、Slackでかなりのやり取りをしてきたおかげで「初めて会う」というハードルも少なく、安心感、信頼感、親近感や仲間意識が強かったというのが実際でした。

■当日の状況

沖縄は慰霊の日。朝の会場、早々に集まり準備する他チームメンバ。。。

f:id:dmmlabotech:20170628153227j:plain

えぇ、うちのチームは、ゆっくりなんです、何事も。9:46 競技開始!
まずは環境の確認から始めて、各サーバへの接続を確立しつつ、チーム方針の一番の要である “投資” を並行で進めました。投資箇所は開始2時間はMP購入不可だったので、広告メインに在庫の補充を進めて行きます。

f:id:dmmlabotech:20170628153307j:plain

10:20頃の写真。資産は下から2番目でした。 一通りパスワード変更まで終わったところで MarketPlace の購入可能時間となったため、4人で分担して交渉。発注作業。並行してWebサーバのバックアップやらファイアウォールの設定変更など、分担して進めて行きます。

f:id:dmmlabotech:20170628154322j:plain

時には議論しながら、

f:id:dmmlabotech:20170628154504j:plain

13:19頃、資産としては7位まで上昇。しかしこの後・・・

情報漏えい事故の発覚
f:id:dmmlabotech:20170628155002j:plain

とはいえ、メンバー全員慌てませんでした。謝罪対応班/原因調査班などと分けて、対応マニュアル↓を購入し、速やかに謝罪準備をします。

f:id:dmmlabotech:20170628155425j:plain

会見では「分からないもの/ことを憶測で言わない」を、とにかく心がけました。

f:id:dmmlabotech:20170628155643j:plain

一人じゃ心細いからとメンバーを巻き込み、

f:id:dmmlabotech:20170628155720j:plain

記者からの厳しいツッコミにも耐え、耐え、耐え抜き

f:id:dmmlabotech:20170628155950j:plain

会見終了後の15:11頃、資産としては3位まで上昇。 Pepperが心なしか微笑んでくれたような・・・はいっ、気のせいー

f:id:dmmlabotech:20170628161012j:plain

その後もWebやDNSへの執拗な攻撃が容赦なく続くものの「表示されないー、表示が重いー」といったときにはサーバエンジニアチームが中心となって迅速に対応し、
f:id:dmmlabotech:20170628161844j:plain

18:10頃、資産は1位に。この後、終了間際に向かっては資産金額が非公開になりました。1製品の在庫数が明らかに足りなくなることも分かっていたものの、残り時間での売り上げが、仕入れ金額を超えないであろう損益分岐なども加味して、在庫補充は行いませんでした。

■振り返り:チームビルディングの重要性

この大会で多くのことを学びました。とりわけ『チームビルディング』という点を意識して動いてきたつもりです。物理的な距離が離れているからこそ、どうその距離を埋めていくかという部分。
“役割” はあくまでも “役割” であり、一人にその役割/責任を押し付けるのではなく、チーム全員でフォローし合えるような暖かい雰囲気/空気作りを大切にしたかったです。
また、間違えていたり当てずっぽうでも良いから “発意” を大事にしてきたつもりです。発意とは「出せ!」とか「言え!」と言われて出るものではなく、また出しても真っ向から否定されれば次はありません(メンバーへ、至らなかった点はこの場をお借りして謝罪します。。。)
幸いこのチームは、みんな素直でわがまま言わない、でもやりたいことを自分で言ってくれるという素晴らしいメンバーに恵まれました。
f:id:dmmlabotech:20170629174808j:plain
チームメンバ わっさん が書いてくれたブログ

wassan128.github.io

チームメンバ knotfound が書いてくれたブログ

knot-found.hatenadiary.jp

↑こちらもご覧下さい。

■最後に

結果、見事にグランプリを獲得しました。
チームのみんなの頑張りが報われました!みんな、本当によー頑張った!!!
f:id:dmmlabotech:20170703190549j:plain
f:id:dmmlabotech:20170629175128j:plain
大会開催で一番大変だった主催・共催の皆様方、各関係機関の方々、
共に戦った別チームの競技者/MPの方々、
身内事ですが会社で留守を守ってくれた方、
皆様に心から御礼申し上げます!ありがとうございました。お疲れ様でしたっ。