Hardening 2024 Convolutionsに参加してきました ~準備編~


Hardening 2024 Convolutionsに競技者として参加してきました!

約3ヵ月いろんな準備をしてきたのでHardening 2024 Convolutionsのためにやったことや参加して得られたことを書いてみます。
まずは準備編です。

ちなみに今回、SCSKセキュリティはHardening 2024 Convolutionsのプラチナスポンサーとして参画しました。

Harderningって何?

そもそもHardeningとは何でしょう。
読み方はハーデニングではなく、ハードニングです。
ハードニング競技会のサイトを見ると以下のように書いてあります。

ハードニング競技会は、サイバーセキュリティの実践的なスキルと知識を競うイベントです。参加者はチームを組み、競技会で託されるビジネス・ウェブサイト(例えばEコマースサイト)を、ビジネス目的を踏まえて運用・改善します。降りかかるあらゆる障害や攻撃に対して、考えうる手だてを尽くしてセキュリティ対応を実施しつつ、ビジネス成果が最大化できるよう準備を重ねます。

ハードニング競技会2024概要と応募条件 | 8時間で衛りを変えるより抜粋

簡単に内容をまとめると複数のチームに分かれた参加者がそれぞれ仮想企業の技術者や経営者の立場を担います。
各チームはECサイトや社内サーバを運用し、8時間という時間の中でさまざまなサイバー攻撃に耐えながら売り上げをいかに多く上げるを競うイベントです。
技術力を競うだけでなく、発注管理、関係各所への報告、顧客対応等ビジネス的な要素もさまざま含んでおり1日でインシデントレスポンスに関わるさまざまなタスクを経験できます。

Hardening 2024 Convolutionsは、沖縄県豊見城市にある沖縄空手会館で以下の4日間で開催されました。

日付 名称 内容
2024/10/15 Preparation Day 事前準備の最終日。夕方ごろに競技当日の環境資料の最終版が競技参加者に公開される。100ページ以上ある。。。
2024/10/16 Hardening Day 競技当日。8時間サイバー攻撃の猛攻に耐えながらECサイトの売り上げを伸ばす。
2024/10/17 Analysis Day Hardening Dayの振り返り日。各チームで話し合いながら発表資料を作成する。
2024/10/18 Softening Day 発表の日。各チームの発表、攻撃者チームの発表、環境作成者の発表などがある。そして最後は表彰が行われる。


今回の記事ではこのPreparation Dayまでの間に実施した準備内容について書きます。

申し込み

Hardeningに参加するためにまず行うことは申し込みです。
申し込みといってもただ個人情報を入力して申し込みボタンを押すだけではなく、これまでの経験からどういう貢献できるか、Hardening参加への熱意がどのくらいあるかなど結構細かく聞かれます。
申し込みをしても100%参加できるわけではなく、内容をちゃんと書いてないと落とされることもあります。
私は今回無事通過しました!

チーム分け

Hardening実行委員から無事選考通過のメールをもらいチームが発表されました。
今回は全15チームで1チーム大体6~7人程度、経歴や年齢もさまざまな編成です。技術者だけでなく、広報や営業等ほんとに経歴は多岐に渡ります。
チーム編成後にHardening実行委員から最初に課せられたミッションは、全体顔合わせまでの一週間程度でリーダー決め、チーム名決め、チームの自己紹介動画の作成をするの3つでした。
リーダーについては以前に一回Hardeningに参加されたことがある方がいたためその方に決まりました。
チーム名もそれぞれ案を出して意外とサクッと決まりました。
動画についても動画経験者がいない中マルチスキルなリーダーが作ってくださいました。
Hardening Project - YouTubeとかに公開されるのかな?
(音源が著作権的に無理なのがあるとかも言ってたので公開はされないかもしれません)

ここまで私はあまりチームに貢献できてない状況・・・
何か貢献せねばと思い、まずは去年のHardeningの資料読み込みから開始しました。
Hardening参加者の中には過去に複数回参加しているという方も多く、過去資料も比較的すぐに手に入りました(実行委員から提供されるわけではないので情報収集力なんかも試されます)

準備

Hardening当日、スムーズに動けるように事前準備が大事になります。
チームミーティングを週に一回1時間程度設けて、いろいろな準備を行いました。
それぞれ仕事や学校などがある中、毎週必ず一回ミーティングができたことでチームの団結力は深まったと思います。
ちなみにHardeningのやり取りは最初だけメールであとはdiscordで行います。

戦略決め

まず最初に実施したことは当日の戦略を決めるためのタスク整理です。
前回資料をベースにスプレッドシートを用いて競技当日のタスクを洗い出しました。

タスクは技術面だけでなくビジネス面もかなりたくさんあります。
報告内容の作成、稟議承認フローの作成、販売管理、各サーバ堅牢化対策、コーポレートサイトへのプレスリリース掲載etc

チーム的に技術面、ビジネス面で特に長けた人がいるというわけでもなかったのでいろいろできるだけ準備はするものの、必要最低限以下のことは目標に使用やろうということで方向性が決まりました。
私は経験してみたいという思いもあり、CISOという技術側の統括責任者という立場に立候補しました。

  • ビジネス3人(CEO一人)、技術4人(CISO一人)のチーム構成として、細かい役割は臨機応変に!
  • デフォルトパスワードからの変更は絶対、各ECサイトのバックアップは取得する!
  • 3つ運用を任せられるECサイトのうちコスパの高い1台のECサイトは必ず守り切る!

また、以下のツールを使ってチーム内でそれぞれ情報共有を行いました。
これまで使ったことないツールも多く、最初は苦戦しましたがいろんなツールを知るきっかけにもなれてよかったです!

ツール 使い方
Miro アイデア出し、自己紹介ボード
Google Drive チーム内の資料共有先(ミーティング議事録の作成、アカウント一覧作成、その他戦略資料の作成、過去大会資料共有etc...)
notion 当日のタスク管理、稟議承認フロー
HackMD コマンドや設定内容を記載するチートシート


チートシート


タスク管理

チームTシャツの作成

戦隊ヒーローをテーマにチーム名を決めたので、団結を図るという意味でチームのオリジナルTシャツを作りました!
それぞれカラーを変えてほんとの戦隊ヒーローっぽく。背中にはチームのロゴをプリントしました。
Tシャツ作る必要ある?と思う方もいるかもしれませんが、チームが同じ方向をしっかり向けてる感じがして意外とモチベーションアップに繋がるんです!
当日は他にもオリジナルTシャツを作成しているチームが多く、中にはキーホルダーも一緒に作成しているチームもありました。
今後参加される際もぜひチームTシャツやグッズの作成など実施してみることをおすすめします。

インシデント対応演習

準備として、インシデント対応演習も行いました。
リーダーの方が簡易的なHardening環境を作ってくださり、30分程度の時間で攻撃に対して検知や防御を行うという内容です。
初めてのHardeningでしたが、あっという間に30分が過ぎ去ってしまい結局webサーバのサービスが落ちていることに気づいてリスタートしたくらいの対応しかできず・・・

実際には何個か脆弱なところがありそこを突いた攻撃を行っていたようですが、全然気づかなかったです。
これまで脆弱性診断やSIEMの導入業務などをしてきて脆弱性を見つける、ログ監視をしてアラートをベースに調査を行うようなことは行っていてもリアルタイムにサーバに対して起こっている攻撃をいろんな方向から調査、判断するというのはまた全然違った難しさがありました。

ただ、この演習を実施できたことでなにも経験がないという状況から少し前に進むことはできました。
また準備の中でインシデント・レスポンスを体験できる環境を自分で構築できるOSSを教えてもらったので、これから参加したいという方はこちらを実施事前に実施するのはありだと思います。
github.com

マーケットプレイス購入対象の検討、決定

Hardeningではマーケットプレイス(通称:MP)という概念があります。
こちらは、お助けアイテムのようなもので、MPスポンサー企業が各チームのインシデントレスポンスをサポートするサービスを販売する制度です。
購入できるチーム数に制限があったり、もちろんコストもかかるのでどの企業のサービスを選ぶのがよいかいろんな角度から検討する必要があります。
ちなみにうちのチームは以下のような形で第三希望まで提出しました。

  1. 通信の検知、遮断からエンドポイントでの不正な挙動の検知まで幅広くカバーできるサービス
  2. Webアプリケーションの攻撃に対する検知ができるサービス
  3. 公開領域の監視を行い、随時脆弱な部分の堅牢化アドバイスや攻撃兆候の報告をしてくれるサービス

運が良ければ全部獲得もできるのですが、競争率の高いサービスは運任せなところがあり、結果的には第一希望のサービスのみ獲得できました。
このMPをいかに効果的に活用できるかというのもHardeningに参加するうえで重要なポイントです。
うちのチームはサービスの全容を把握しきれておらず、限定的な活用しかできていなかったこともあり、この点はもし次参加する機会があれば活かしていきたいなと考えてます。

Hardeningは最後に表彰という形で最も見込み販売力(※1)の高かったチームと各スポンサー企業が選定したチームに表彰が行われます。
賞のためにというわけではないですが、しっかりとMPを活用できていれば自ずとスポンサー賞の獲得には近づいていくのでサービス内容はしっかり読み込んで100%使い切ることをおすすめします!

ジョイントベンチャー対応

Hardening 2024 Convolutionsでは各チームでの競い合いとは別にジョイントベンチャー(通称:JV)という概念が競技5日前くらいに発表されました。
仮想企業の立場となるということは冒頭で述べましたが、このJVは3チームがジョイントベンチャーとしてタッグを組みJVのECサイトを守るというものです。

そもそもジョイントベンチャーという言葉すら知らないような状況でしたが、そこから翌日、翌々日にはJVで集まってJVでの担当者決めやJVとしてのNDAの締結などすごいスピードで対応が進んでいきました。
ここら辺についてはさまざまな業務を行っている方が参加しているというところが非常に活かされていたのかなと思います。(自分は進んでいく流れに乗っていくくらいしかできなかったのでそこは反省(_ _)

JVでは各チームが3名ずつ担当者を出し、JVのECサイトにインシデントが発生した場合はそちらを優先して対応という方針となりました。
今回グランプリの決定ルールが、見込み販売力(※1)の3チーム合計が一番高いJVの中でさらに見込み販売力が一番高いチームというものでした。

なので自チームの環境も守りつつ、JVとしてのECサイトも守り抜く必要があるという競技でした。

※1 見込み販売力:Hardening環境では商品購入用のクローラーが動いており、このクローラーが商品を購入することで売上が上がります。この販売金額を指します。

準備の大事さと考え方

Hardeningの準備を始めてから気づいたのは準備に終わりがないということ。
あれもやった方がいいかな、これもやった方がいいかなとわからない状態で始めると何を準備しても不安な気持ちは残ります!
いろんな準備をしておくに越したことはないですが、準備したとて想定外のことは絶対に起こります。
準備したものを絶対神とするのではなく、必要最低限実施することはおさえておいて、当日発生した事象に対して臨機応変な対応をするのがというのが重要です。

あとは、一人ですべてを抱え込むのではなくチームで話し合いながら準備していくというのも一つ重要なポイントです。
限られた時間の中でお互いしっかりコミュニケーションをとって進めていくというのが、インシデントレスポンスをする上で大事かなと思います。
準備期間は3ヵ月ほどあり、チームメンバーで会話するという機会も多いのでこの期間である程度相手を知れるようになっておくと当日の連携もスムーズにできるでしょう!

以上がHardening 2024 Convolutionsの準備の内容や感じた点になります!
次回の記事ではHardening 2024 Convolutionsに参加して起きたことや得たものなどをまとめた記事も書いてます。
こちらもぜひご覧ください。
blog.scsksecurity.co.jp