※この記事は、あくまで私見であり、業務内容と直接関わりがありません。
※この記事は、実践的な準備の内容よりもポエムの要素が強いので、競技準備を目的としている皆さんは、「参加された皆さんの記事」に記載の各記事をお勧めします。
2023年10月5日(木)、28日(土)に開催された、Hardening Project (ハードニングプロジェクト)実行委員会主催によるセキュリティ堅牢化の競技会 Hardening 2023 Generatives(略称:H2023G)に Team#02「Pig a boo!!」のメンバーとして参加しました。本記事は、この競技会の参加レポートです。
開催概要/募集要項 – Hardening 2023 Generatives | Hardening Projectコンテンツ
参加された皆さんの記事
他の参加者の皆さんが書かれた、素晴らしい記事がありますので、そちらをご覧ください(適宜追記していきます)。
「8時間で衛り(まもり)を変える」、ハードニング競技会
ハードニング競技会は、昨年 2022 年にグッドデザイン賞を受賞しています。その時のプレスリリースの説明文が、公式に説明された内容の中で最も分かりやすいと思うので、以下に抜粋します。
「ハードニング競技会」とは、技術者と非技術者がチームを組み、熾烈なサイバー攻撃から「衛る」チカラを、全国から集まる他のチームと競うイベントです。技術知識やテクニックのみならず、経営判断なども加味して「ビジネス」を衛り、他チームよりも成果を収めるミッションがあるため、効果的かつスピーディに対応するにあたり、衛りの優劣が可視化されることがユニークな点です。
Web Application Security Forum |「PRESS RELEASE:「ハードニング競技会」が2022年度グッドデザイン賞を受賞」より引用
参加者は、参加申し込みの選考結果の通過を連絡とともに、1チーム 9人前後のチームに割り振られます。バックグラウンドが異なる、初対面のチームメンバーとは、「はじめまして」からのスタートです。そこから、約1ヶ月半後に行われる Hardening Day(本戦当日)に向け、チームとしての関係性を築きながら、準備を進める日々を続けます。
Hardening Day 当日にやってくる熾烈なサイバー攻撃は、実に 8 時間に及びますが、その中で「ビジネス」を衛り、見込み販売額をより大きくすることが求められます。これは、一人で「守る」ことでは到底実現できず、チームメンバーの皆で「衛る」ことが重要です。
競技会でのビジネスに限らず、ビジネスを進めていく上で、その時に自分たちが置かれている状況や制約・条件は、異なります。だからこそ、この競技会は「テストではない(100点の正解があるわけではない)」「ゴールに最も近い選択肢は何か?を探り当てていくことに意味がある」と、競技解説の冒頭でいつも言われています。だからこそ、バックグラウンドの全く異なる人達で構成されたチームで臨むことに、大きな意味があるのだといつも思っています。
更に詳しく知りたい人は、のみぞうさんが書かれた「ハードニングファン!!」及び「ハードニングファン!!2023」をご購入の上、お読みください。
皆さんに活躍の場がある競技会です。多くの皆様のご参加を、心よりお待ちしています。
参加の背景
今回の課題は、「自身の強みを活かしつつ、自分本位ではなく他の人を照らし、他の人が輝く雰囲気づくり・競技会づくりに参加者として携わること」でした。自分のことよりも周囲の人のことを優先することに徹したつもりです。
何故そのように考えるに至ったかは、2023/11/17(金) の振り返り会でお話しする または 別稿で記載しようと思っています。
Hardening 2023 Generatives ふりかえり会 (2023/11/17 19:00〜)競技日程
競技会は、9~10人/1チームに分けられたチーム戦です。チームでの顔合わせを含め、以下のようなスケジュールで進みました。
- チーム編成決定 (8/18)
- 競技会準備 (Preparation Day(s) ~競技会前日まで続く)
- 競技会当日 Hardening Day (10/5)
- チーム内の振り返り Analysis Day (10/6)
- 全チーム振り返り会 Softening Day (10/28)
今回の競技会の開催地は、北海道留寿都村にある、北海道 ルスツリゾートホテル&コンベンションでした。
Preparation Day(s):競技会準備
チームとしての取り組み
チームメンバーと構成について
私は、Team 02 のメンバーとなりました。Team 02 は Hardening 競技会経験者 2 人・初参加 7 人(大学生を 3 人含む)という構成。大変頼もしい N さんが、リーダーを務めてくださいました(競技会の終わりまで強いリーダーシップで、チームを率いてくださったことに、大感謝)。
チームの狙いは「自己の課題克服を主軸にした上で、結果的に成績を出したい(学生さんが多いことも踏まえ、できれば、参加者が個々にお土産を持って帰れるようにする)」ということになりました。この方針は、私の参加理由に関わることなので、大いに賛成していました。
チーム名は、Pig a boo!!(ピーカブー)。Peek a boo(いないいないばあ)にかけたチーム名で、可愛らしい豚さんキャラクターがフラグに描かれています。
競技会で起こる様々な事象に対応するため、チーム内を以下の役割に分けていました。私はこの中の、フロントエンド担当をすることにしました。
- ビジネスチーム (2)
- 技術チーム (7)
- 技術チームのリーダー (1)
- フロントエンド担当 (2)
- バックエンド担当 (2)
- 監視担当 (2)
情報共有の進め方
チーム内での連絡は、Slack を使っていました。これは前日までの準備のみならず、当日も有効に使っていました。割ときめ細やかなやり取りがされていたので、日々確認しながら、互いの進捗を見ていた記憶が有ります。また、当日のインシデント対応の進捗記録の意味で、Trello を扱うことにしていました。
競技会に関わる全員が参加している Discord サーバは連絡事項の確認がメインで、チーム内の連絡とは切り離して利用していた印象を持っています。
準備の進め方
チーム全体のミーティングを行うのと並行して、ビジネスチーム・技術チーム単位での打ち合わせ、更に細かな担当範囲で、必要に応じて準備を進めていました。
技術チーム内は技術チームリーダー A さんのもとで進められました。S さんが、自発的に作っていたシート「本番の動き」は、やらなければならないことが整理されて、大変分かりやすかったです。
私は担当に即して、Web サイトの模擬環境をつくり、練習できる状況を整えました(Amazon LightSail と Amazon EC2 を使いました)。後から振り返れば、競技会の環境に沿ったものもあれば、空振りだったものもあります。それも含めて、構築の良い勉強になったなという印象を持っています。
前日の準備
参加者配布資料が公開された後は、ホテル内のチームメンバーの部屋に集まって、資料の読み込みと最終の確認を行いました。この時に、参加者配布資料を印刷して用意してくださったリーダーには、心から感謝しています。
個人としての取り組み
取り立てて個人として、と書くのは変なのですが、競技会事前準備から本番に至るまで、何をしてきたかを書いておきます。
事前学習の情報提供
先程ご案内した「ハードニングファン!!2023」の中で、私は「Softening Day 動画視聴のすすめ」という寄稿をしています。 この寄稿で説明している「過去9大会分の Softening Day 動画」への YouTube リンクをまとめた情報を、Discord サーバ上の全参加者が見られるところに(フルオープン戦略をとられていた Team 05 のチャンネルにお邪魔して)投稿しました。
参加者の皆さんの中で、一人でもご覧になってくださったのなら、良い情報提供が出来たかなと思います。
過去競技会の情報を出し過ぎない
直前の内容と背反することを書いていますが、その点はご容赦ください。
複数回、競技会に参加させていただくと、その中で自分なりに培ってきたものはゼロではありません。しかし、それを初めから全部出すのは、幾つかの理由から誤りであると思っていました。このため、過去競技会の情報を出し過ぎないように、心掛けていました。
誤りだと考えた最大の理由は、コンセプト「Generatives」が示すものに沿っていない、と考えたためです。
2023.5.18-20 Hardening Designers Conference 2023 / “Generatives” | Hardening Projectこの説明の中では「前例を遥かに超える」と書かれています。これを「前例に囚われすぎてはいけない」という意味だと、私は捉えていました。このため、チームの皆さんが必要としているタイミングでお話しした方が良いかなと思い、準備をしても積極的に発信し過ぎないというか、控えめにしていました。
後方支援を意識した振る舞い
あまり経験者然としたくないというか、とにかく後方支援を意識した振る舞いをしていました。殿(しんがり)みたいな感じです(※たとえとして言っているのであって、初めから退却戦をやっているわけではありません)。
力強いリーダーシップを以てチームをけん引するリーダーの N さんと、チームメンバーと共に戦うために、チームメンバーが走り出す際に準備できることを、予めそれとなく進めていたつもりです。こうした振る舞いは、自分自身の課題にも合っている気がしていました。
Hardening Day:競技会当日
大事なこと:Sitcom を観よう
まずは、こちらの Sitcom をご覧ください(約 10 分)。Hardening Day の競技開始とともに流れる動画です。Sitcom 後の Kuromame6 セッションに「このたびの競技背景」を説明する場面がありますので、そちらも併せてご覧ください。
※動画のサムネイル中央にいらっしゃるのは、留寿都村長の佐藤 ひさ子 様です。
登場人物の所属する会社(ettoキタアカリ社とテロップが出ています)で、どのようなビジネス面での問題、セキュリティ面での問題が起きていそうなのか、幾つか考えられましたでしょうか。
来年(2024年)以降に参加する皆さんへ。急いで競技環境に入って設定したい気持ちはわかりますが、冒頭の Sitcom をしっかり観ましょう、チーム内で話をして気付きを共有してから始めてもいいと思います。
※「この動画を撮るのに、一体どれだけ時間と手間がかかったのだろう」とかいうところに思いを馳せると、それだけの手間をかけるだけの価値ある何かを、ここで発信しているとも思えるわけで…。
何をしていたかを大まかに
競技会中に起きたことにフォーカスした記事は、きっと他にもたくさんあると思うので、この部分は簡単にまとめて記します。詳しいことは、Softening Day の各チームの発表を、YouTube で視聴してください。
- 時間の感覚が狂う
- 本当、8時間はあっという間
- 「初動対応」と決めていたことの大半が、初動で終わらない
- 慌ててはいけない/過信は禁物
- Linux サーバ群のユーザーパスワードを変更した際に不具合があり、ログインが全くできなくなった
- マーケットプレイスで復旧サービスを購入して、パスワードをリセットした
- 発生したことを相談する流れが早かったので、影響は最小限にとどめられた
- 声を掛けることの重要性
- 困ったら「困っている!」ことをはっきり示すことが大事だと再認識した
- 困ったことを一人で抱えていても解決しない(抱えている事実に周りは気付けない)ので、隣のメンバーやチームリーダーへ相談すること
- マーケットプレイス各社からのサポート
- サポートを通じて、知らなかったことを学べたり、今後の学びにつながる示唆を与えてもらえた
- オージス総研さまの「あなたのチームを見守りタイAgain presented by オージス総研」では、写真記録をたくさん撮っていただいだので良い思い出になった
- 対応の優先順位をつける
- どのような判断基準で、何から対応していくかを、予めしっかり決めておくとなお良い
- きっちり記録する
- 何をどのように変更したのかを、スクリーンショットを使ってきっちり記録した
- 作業報告をする上での、重要な記録になる
写真からも、だいぶ焦って取り組んでいた様子がうかがえます。午前中なのに既に汗をかいている…。お昼ご飯を食べる頃には、少し落ち着いてきたのかもしれません。
8 時間を終えて
8 時間の Hardening Day を過ごしながら思ったのですが、事前準備のどの瞬間よりも、今この瞬間がチームとして機能しているなあと感じました。夕食を皆でとりながら、いろいろ話をしている時間が本当に楽しかったのを、よく憶えています。
Analysis Day:チーム内の振り返り
チーム内で振り返りを行いました。ドラフト版の提出期限まで時間も限られていたので、お互いが確認している事実や考えたことを、Google スライドを使って共同で編集しながら、仕上げていきました。
その後、他チームの皆さんと交流。ここでは、可能な限り若い人たちに、いろんな人との関わり・つながりを持ってもらおうと考えて行動していました。しかし、私よりも、チームメンバーの方々がそういった「若者への働きかけ」を積極的になさっている様子が見受けられて、そういうところもいいなあと感じていました。
Softening Day での発表者は、主としてリーダーの判断で学生の皆さんの中から発表者を立てることとなりました。発表資料のブラッシュアップは、チーム内で Web ミーティングで実施して、本番までの準備としました。
Softening Day:全チームの振り返り会
ここで書くのは概要ですので、ちょっと長いかもしれないんですが 6 時間くらい確保して、先程紹介した動画を、初めから観てください。
今回の Softening Day YouTube Live は、「各チームの紹介動画」が流れる点が見どころです。2:39:24 からと 3:42:50 からで 2 回流れますので、ご覧ください。
各チームの発表から
それぞれのチームに、それぞれの 8 時間と戦い方があったことが、とても良くわかりました。
- 自作WAF導入、落ち着いたロールプレイ(経営陣へ説明)をした Team 01
- スクリーンショットで記録を残して作業報告アピールをした Team 02
- 現地その場での他チームとの情報共有を行う積極性が光っていた Team 03
- 強い団結力で競技開始前にアツい掛け声で場を盛り上げていた Team 04
- 各々が自主的に役割を果たすチーム運営とフルオープン戦略の Team 05
- トリアージ基準が明確で、売上げチャートが綺麗な円形だった Team 06
- ランサムウェア感染後の対応で犯人との粘り強い交渉をし続けた Team 07
- 「決して一人で対応しない」を掲げ、請求処理を全てやり遂げた Team 08
- 周到なインシデント対応と、報連相で全ミッションを達成した Team 09
- ランサムウェア感染で暗号化されたファイルを自力で復号化した Team 10
自チームでは気が付かなかったこと、気付いていたけれど対応できなかったこと、対応内容がチームによって異なること等、本当にたくさんのことを知れました。来年以降、戦う皆さんにもヒントとなることがたくさんありました。
競技解説
Hardening Project 実行委員・株式会社川口設計の川口さんが冒頭でお話しされていた「もし答えを持っているとしたら、他のチームが持っています。是非、他のチームと交流してください」という言葉でした。まさに、その通りのことを午前中までの発表で強く感じました。
答えの一つ「予習」として示されていた「ハードニングファン!!」と「ハードニングファン!!2023」は、現地会場の大多数の人が読んでいました(皆さん、ぜひお読みください)。
また、タイムリーな点でいうと、2023 年 8 月 22 日に公表された「政策研究大学院大学の情報システムに対する不正アクセスの調査報告書」も事前学習の一つとして、挙げられていました(公開して間もない頃に読んだのですが、身につまされる報告内容で胃がキリキリする感じがしました。ぜひお読みください)。
情報セキュリティインシデント報告書の公表について | 政策研究大学院大学(GRIPS)詳しい解説の内容については、動画をご覧ください。競技会に参加した人にもそうでない人にも、示唆に富んだお話しが幾つもあります。
競技環境解説
続いて、Hardening Project 実行委員・国立研究開発法人 情報通信研究機構 (NICT) の安田さんから、競技環境解説を受けました。こうした競技会がスムーズに行われているのは、競技環境がつつがなく整備されているからなので、とても有難く感じます。
何といっても驚いたのは、競技全体インスタンス数が 550、チーム環境台数 35 という過去最多だったことです。環境構築のご尽力、現地で直ぐに判断されて対応した内容の迅速さ、そして昨年 2022 Decade の解説の折にお約束されていたその後のお話をしっかりなさっている誠実さに、頭が下がる思いで聴いていました。
JPCERT/CC さまからのお話し
JPCERT/CC 早期警戒グループの三浦さんから、JPCERT/CCの活動と本競技会での採点について、お話しがありました。評価の観点の一つ「協調点」について、評価基準を示しながらご説明いただきました。
コーディネーションセンター(CC) の説明をされていた時に、「インシデント解決に向けて、大事なことは、必ずしも『技術的課題』だけではない、ということ」「問題解決を行う上で、必要な人に必要な情報を届けること」と書かれていたので、忘れずに覚えておいて何かあったらご相談したいと感じました。
スポンサー賞、MVV賞、WAA賞
スポンサーさまからの賞を、選出されたチームが受賞されました。3 つの賞を受賞されたチームもあり、各チームの健闘が感じられてすごいなあと感じました。MVV 賞を日本電気株式会社さま、WAA賞(敢闘賞)を TNLドットコム さまが、それぞれ受賞されていました。
受賞されたチームの皆さんの記念写真撮影の様子を見ていましたが、写真撮影後に戻ってくる様子がとてもニコニコしていて、見ていてとても嬉しい気持ちになりました。
スコア発表・グランプリ発表
各チームの 見込み販売力 と 6 つの観点での評価点 が示されていきました。グランプリは Team 10 大きなザンギを信じろ の皆さん。本当におめでとうございました!メンバーの皆さんの本当にうれしそうな顔を、よく憶えています。
見込み販売額の順位では、Team 02 は、全体 7 位でした。
Team 02 は、現地のスコアボードで最後にみた「見込み販売額」は、なかなか伸びが出せずにいた記憶があります。そこから、現在のところまで見込み販売額までの伸びがあったのは、皆さんそれぞれの頑張りがあったと感じました。
請求書処理を担当されていた S さんの頑張りのおかげ。また、技術点が高かったのは技術チームリーダーの A さん、バック担当の I さん・Nさん、監視担当の O さん・S さんの頑張りのおかげ。そして、作業報告書記録に関わって尽力された S さんのおかげ。何といってもこのチームを強いリーダーシップで導いてくださった N さんのおかげです。皆さん、本当にありがとうございました。
コンセプトアートについて
留寿都村から望んだ、日本百名山の一つ「羊蹄山」(ようていざん・標高 1,898m)が描かれているのが、今回のコンセプトアートでした。たなびく雲、羊蹄山と月、山のふもとに広がる道や丘、遠景に見える地平線とゆがむ太陽のさまが、私はとても好きです。自宅のデスクトップの壁紙も、Generatives にしました。初めて「現地で」もらったステッカー、本当にうれしかったです。
講評
Hardening Project 実行委員・教務担当の淵上先生から、最後に講評がありました。かつて私が教職だったからなのか、講評が持つ言葉の重みが強く感じられて、この講評がとても好きです。今回、淵上先生はこのように仰っていました。
- 『申込フォームのボタンを押した瞬間から始まった Great Journey が、一つの区切りを迎えた』
- 『我々が、そして皆さんが、この競技会から何を生成するかが、今回ポイントだったのではないか』
- 『今日のベストプラクティスは、もう明日のベストプラクティスではない』
- 『競技会を通じて得たものを、ぜひ転化していってほしい』
別の説明で「前例を遥かに超える」と書かれていた内容を、まさにその通りお話しされていました。先生が仰ったことを忘れずに、ここからまた次の一歩へ踏み出します。
エンドロール
最後の流れたエンドロール。参加者の集合写真だけでなく、ロールプレイでの様子や運営に携わった皆さんの写真を観ながら、ここに至るまでの約2ヶ月間のことを思い出して、感慨深くなりました。何度見ても、不思議と泣いてしまいます。
競技会を終えて
取り組みを振り返って
設定した課題にはかなり真剣に取り組んだので、最後までやり遂げられたと感じています。
競技会準備の或る時期から、「競技会を通じて得てきたもの・もらったものを、他の人に渡そう・託そう」という意識でチームメンバーに接するようになっていました。短い時間の中では全てはできませんでしたが、大半をお渡しすることができたと感じています。
この辺りのお話しは 2023/11/17(金) の振り返り会、または別稿でお伝えしたいと思います。今はちょっとまだ言葉がまとまらないです。
チームの皆さんへ、心からのありがとう
チームの皆さんのおかげで、約 2 ヶ月の間、楽しく過ごすことができました。また、多くの学びを得ることができました。本当にありがとうございました。
Hardening Day が終わった後、チームの皆で過ごした夕食の時間が、忘れられません。皆さん笑顔で、楽しく食事をしながらお話ししている様子を見ながら、「このチームで戦ってこられてよかったな」としみじみ感じました。Softening Day での N さんの発表を観ながら、現地で涙を浮かべてしまったのを心にとどめておきたかったのですが、隣に座っていた S さんにしっかり見られていたらしく、恥ずかしい思いをしたのも良い思い出です。
またどこかで、お会いできるのを楽しみにしています。
H2023G に関わる全ての皆さまへ
参加者の皆さん、最後まで走り抜けられてとてもうれしかったです。いろんなお話しをさせていただいたことを忘れず、皆さんが今日もどこかで頑張っていることを励みに、私もまた頑張ってみようと思います。ありがとうございました。
競技会運営に携わっていらっしゃった全ての皆さま。皆さまのおかげで、素敵な競技会を経験できましたことを、心より御礼申し上げます。ここで経験して得たものは、私の人生を本当に豊かなものにしてくださいました。それを、私一人で留めるのではなく、次につないでいけたらと考えています。
家族のみんなへ
みんなの協力があったから、参加できました。本当にありがとう。Softening Day の動画を観ている横で「ネギスタン !? ネギネギ、チャーシュー!(H2021AF の時の話をお読みください)」「(エンドロールの)曲、カッコいい!」「これ、お父さん !?」とか楽しんでくれている様子を見て、うれしかったです。
旅は続くよどこまでも。
淵上先生の仰るように、Great Journey に一つの区切りがつきました。この先は、更に続く未知の旅路を、ゆっくり一歩ずつ踏みしめていこうと思います。旅は続くよどこまでも。