趣旨説明
この体験記は、私が参加した「Hardening 2023 Generative」について、このイベントにおける様々な出来事と雰囲気を時系列順に紹介して、自身の所感と反省について記したものです。
注:本記事における情報収集効率はあまり良くないと思われます。情報だけ欲しい方はChatGPTに要約して頂くと良いかもしれません。
対象読者
- セキュリティに興味があり、学び始めるきっかけや目標が欲しい学生
- Hardeningをあまり詳しく知らないけど興味がある社会人
- その他筆者の思い出語りに付き合って頂ける心が海よりも広い方々
参加のきっかけ(主に学生向け)
この競技会を知ったきっかけは北海道地域情報セキュリティ連絡会(HAISL)が行うセキュリティ人材の次世代育成事業Security College for Youth(SC4Y)の一環として行われた勉強会でした。大学に入ってセキュリティについて本格的に学びたいと考えるようになりましたが、なにせ身近にロールモデルはおらず、どこから手を付けていいのかわかりませんでした。そんな時にネットで見つけたのが、SC4Yがconnpassで募集していた「セキュリティをゲーム感覚で学べる競技 Micro Hardening for Youth 2021」という勉強会でした。勉強会というネーミングが正しいかどうかはともかく、自分にとっては間違いなく多くの学びを得る機会となりました。何を勉強すれば何ができるということの解像度が少し上がりました。その際に本家Hardening競技会(以下、本家)の存在を知り、いつかそこに出場できるだけの技術と自信を身に着けたいと思うようになりました。そこからコツコツと勉強を進めて、応募をしようと勇気を持てたのが今回でした。
Chobi HardeningやMicro Hardeningに何度か参加する中で、「今回はショッピングサイトの管理者画面を操作する側で貢献できた」「今回はCLIでデータベースやサーバ等のユーザパスワードを変更できた」「今回はログを読んで怪しい操作を見つけられた」などと毎回自分の成長を感じていき、うぬぼれかもしれませんが今の自分なら参加しても少しぐらいチームメイトに貢献できるだろうという謎の自信を少し持てたので応募しました。また、そうした勉強会の場で、一般社団法人LOCALと株式会社川口設計が合同で北海道から参加する学生の交通宿泊費を支援する旨をお聞きし、貧乏学生を遮る最後の金銭的な壁も取り払われたように感じたことも、応募に踏み切った大きな理由となっています。
申し込みからチームメイトと知り合うまで
さて、話を本家に応募した直後に話を戻します。8月7日の昼に自分の思いとその他情報を参加応募フォームに記入し、支援金申し込みフォームに記入した後、私はしばらくhardening関係やセキュリティの分野から離れていました。というのも、8月24,25日に大学院入試が迫っていたからです。(そちらは無事合格しました。)8月17日にはHardening運営の方から参加決定の通知と思われるメールが届きました。(なぜ思われるだけなのかというと、「参加が決定しました!」などの文言はなく、連絡事項と直近の予定がずらりと書かれているだけだからです。)運営さんから、早速チームビルディングを兼ねた課題がいくつか発表されました。その一つが8月25日までにチーム名とリーダーの決定を行うことでした。大人の皆さまは日々数多くのメールを受信するメール過受信化社会(?) に生きていますので、当然のようにこのメールを見落としたり、メールから参加者のしおりに辿り着ても、初見ではなかなかクリックしないような文言(スポンサー・関係者様云々)と共に書かれたdiscord招待リンクをクリックして連絡がつく状態に至らなかったりします。(少なくとも私はクリックしていいものか迷いました..)ミーティングの時間調整も必要だと考えると、一刻も早く連絡を付けなければという若干の焦りも生まれましたが、2日ぐらい経過してついにチーム全員との連絡が取れました。
ちなみに、運営からのお知らせやチーム内のやり取りは基本Discord(稀にメール)でした。無論チーム内のやり取りは別でDiscordサーバを立てたり、Slackなどの別のツールを使ったりするのは全然OKですが、自分がコミュニケーションをする上で心掛けていたことはリアクションを積極的にすることです!多くの参加者は初参加(我々のチームは8/9が初参加)で、恐る恐る発言する方も多いはずです。そんなときに自分の発言が虚空に消えたら悲しいですよね?自分なら誰からも反応がないと悲しいので、悲しみの連鎖を生まないためにも、LINEで既読を付ける感覚でDiscordのリアクションスタンプを使っていました。お仕事ではないからこそ、お互いに敬意を抱きつつも、私はもっと気軽に積極的にコミュニケーションを取っていこうと考え、このように行動していました。これとメンバーの皆さまのお人柄のおかげ(後者の方の割合が大きいかもですが)で我々はかなり和気藹々と良い雰囲気で最後まで活動できました。
準備編
話が脱線したので本番まで準備期間に戻します。我々のチームは9人中8人が初参加でそもそも何をすれば良いのか分からない状態でしたので、最初の2週間はそれぞれがハードニングファンブックや過去参加者の体験記を読みつつ、やることの整理と勉強を進めていました。幸いなことに、我々のチームの唯一の過去参加者が前述のハードニングファンブックを執筆されているのみぞうさんでしたので、様々な文章を読んで沸いた疑問や、読んでも実感がない部分についての質問にご回答頂くことで、競技会の全体像に対する理解が進みました。
ここで今後参加される予定の方々にお伝えしたいのが、「質問は極力DMでしないで!」ということです。チームメイト全員が見える所で特定の経験者宛に質問すると、その他のチームメイトにもDiscord等の通知がいくので、恥ずかしかったり、(特に社会人の皆様は)騒がせることに申し訳なさを感じたりするかもしれませんが、気にしないでください。その恥じらいや申し訳ない気持ちよりも、あなたの疑問とそれに対する回答にチームメイトが目を通すことで生まれる情報共有の方が遥かに重要です。
あなたが疑問を思ったことは他の人も疑問に思っているはずというのはよく言われますが、個人的にはそもそも疑問に気づけていない場合も大いにありうると考えています。なのでそこは気にせず質問してもらえると、基礎知識の欠如により疑問に気づけない私みたいな人間が喜びます。実際に今回はかなり喜びました(?)
また話が脱線したので準備の話に戻します。我々のチームはmiroというツールを使ってタスクの管理をしていました。準備段階でやるべきタスクを各々が書き込み、自主性に任せる形でそれぞれこなしていく形式で準備を進めていきました。
この他に、経験者の方が本番環境を模して踏み台経由で特定のサーバにアクセスするドリルを作ったり、本番使われそうなEC-CUBEの勉強を終えた方がその仕様をまとめた資料を作ったりという形で、各々が自分のできることを進めるという形で準備を進めていきました。
私は技術的な面で中々役に立てなかったので、関係各所への報告文のテンプレートを作ったり、他の方が作成したもののレビューをしたり、その他意見が必要な時に選択肢を増やしたりということをしていました。技術的なことが得意な人の中でも、それぞれ得意分野があるように、技術的なスキルが比較的乏しい人の中でもそれぞれ違った得意分野があります。私はオンライン限定の物おじしない性格と、こうしたオンラインでのコミュニケーションに比較的慣れているコロナ禍に大学に入学した若者として、議論やコミュニケーションを活性化させていこうと思って参加していました。意外なことに、知識がない故の割り切った考え方は議論の活性化の一助になった気がしますし、見落としに気づく面でも少し貢献できたように思えます。
競技会本番 2週間前になると、我々はチーム内を技術部と営業部に分け、より細部に注目して当日の準備を進めました。技術部は各自の担当を明確に分けて堅牢化策を練り上げていき、営業部は会社としての体裁を整えるために経営方針を定めたり、様々な業務フロー図と稟議書のテンプレートなどを作成したりしていました。Micro Hardening等本家以外で経験できるものは主に技術的な部分ですが、現実の会社を模して技術的でない部分も沢山経験できるのが本家の良さです。自分が今回参加した目的の一つに、現実に近いビジネスの現場を体験するというものがありましたので、こういう経験もさせて頂けて非常に感謝しています。
この頃になるとMP(マーケットプレイス)サービスの情報もボチボチ得られるようになり、チーム内でも検討が始まっていました。
(知らない方向け)本家Hardeningで新たに加わる要素としてMPサービスがあります。これは様々なベンダーから提供される競技前、または競技中に受けられるサービスであり、現実社会同様、チームの様々なオペレーションを助けてくれるものです。
我々のチームは当たって砕けようの精神の下、学びを得ることを最重視する方が自分含めて多かったため、こうしたサービスの購入には積極的でした。特に競技中のサービスでどのようなものを購入するかは、チーム内でもかなり意見が分かれました。(第三希望でさえ投票が三つに分かれるぐらい分かれましたorz)ただ最終的には、今年の各サービスの値段は去年(オークション)と違って定まっており、(赤字に絶対ならない程度で)購入したいものを好き勝手買おうという結論に至りました。(絶対競合するはずだから、三つ希望しても全部は買えないだろうという楽観的な予想の下でした..)
こんな雰囲気で準備を進めて迎えた前日、私は午前中に留寿都村に到着し、のんびりしておりました。留寿都村は空気とピザがおいしい場所でした
夕方の18時過ぎに資料が発表され、そこから資料の読み込みと準備物の訂正・更新および当日の具体的な(タスクごとの)役割分担が始まりました。我々はメンバーの一人の部屋に集まり、夜遅くに到着する一部のメンバーとはdiscordで繋いで作業を行いました。多くは語りませんが、時間はあっという間でした。
競技当日編
当日のことは先人に倣い詳しく書きませんが、三つほどの出来事と感じたことを書こうと思います。今年はこんなこともあったのかと流し読んで頂けると幸いです。(次回以降も同じことが起きるとは限らないことをご承知おきくださいm(- -)m )
まずは一つ目、MPサービスが全部買えちゃいました。どうして「買えちゃった」という表現をしたのかと言いますと、買えた時は無邪気に喜んでいました(私だけかも?)が、MP関連業務(稟議書の作成&提出、MP販売サイトでの購入、MP担当者との連携などなど)がその分増えることを完全に忘れていました。仕事熱心なMP担当者の方々との交流で我がチーム唯一の経験者が忙殺され、慣れない初参加の我々がメインでミスをしながら作業を進めた結果、初期設定がかなり遅れ、実社会では経験したくない炎上現場が出来上がっていました。もしかしたらあれが実社会の現場で起きているかもしれませんので、もっと鍛えないとなと感じた当日最初の場面でした(その後も度々感じる場面はありました..)
二つ目はbashを使えず、shしか使えない環境がありました。シェル芸人と面白おかしく言われることが多い方々が大活躍できる場であると同時に、shでも使える基礎的なコマンドにもっと詳しくなるべく勉強しなければと感じました。
三つ目は脅迫メールがありました。そのメールや一連の犯行に対する対応が我がチーム今回唯一(?)輝いた部分でした。皆さんも諦めずに交渉しましょう。
また、当日のお話の最後に自分がした数ある失敗の一つを取り上げます。当日複数人が同じサーバにアクセスすることが出来、私は自分が置いたと思われるスクリプトを消したかと思いきや、他の人が編集中のスクリプトも一緒に消してしまい、その方の数十分の努力が水の泡になりました(本当にすいませんでしたm(_ _)m)加害者がこれ以上生まれないように皆さんも気を付けてください。対策として、事前に準備したスクリプトはチーム全員が同じ名前のものを使うかもしれませんが、共有サーバで編集する際はディレクトリ名を変えると良いかもしれません。
全体を通しての所感とまとめ
ここまで当日までの雰囲気をお伝えして来ましたが、いかがだったでしょうか?
今回、私はなるべく技術面と非技術面の両方でチームに貢献しようと参加しましたが、いずれもあまり貢献できず、何も出来なかったという感覚と、チームメイトの皆さんの様々な知識や経験におんぶにだっこ状態だった気がします。
特に学生目線でお話すると、社会の荒波に揉まれてきた様々な苦労してきた社会人の方々と関わることは様々な面で勉強になりました。炎上現場での落ち着きには本当に頭が下がります。技術だけではなく、経営や事務対応の知識・経験ですら大きな力になることことも本家Hardeningの良さです。(個人的にはこうした活動に理解のある上司の下で働きたいなと色々な人の話を見聞きして思いました。)
メインテーマはセキュリティですが、個人的にはもっと様々な学生や社会人(セキュリティに普段直接かかわらない人)が参加しても良い経験になるのではないかと思います。
最後に
最後に、今回の参加にあたり援助いただいた一般社団法人LOCAL様と川口設計様、この辛く楽しい競技の運営の皆様とMPサービスを提供していただいたベンダーの皆様、同じ競技に参加し様々な経験や学びをシェアして頂いた今回の競技者や先人の方々、自身の経験や知識から様々な学びを私に与えてくれたチームメイトの皆さんとその他全ての関係者に感謝申し上げたいと思います。
また参加できる機会を頂けたら、リベンジしたいと思います。本当にありがとうございました!
コメント等々ありましたら遠慮なくどうぞ~