Hardening 2024 Convolutions

先月、光栄なことに「Hardening 2024 Convolutions」というサイバーセキュリティイベントに参加する機会を得ました。このイベントについては[既に英語で記事を書きました](https://substack.com/home/post/p-150789504)が、日本語版も公開しようと考えています。（母語ではない言語でこのような長文を投稿するのは少し緊張しますが!）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/2430d6e0-906d-481e-8edb-58175af56276.png)

まずは簡単に自己紹介させていただきます。マッキントッシュ・ユアンと申します。スコットランド出身で、2015年に留学生として来日し、それ以来ほぼ10年間神戸に在住しています。現在は神戸のテック企業に勤務しながら、セキュリティの勉強を進めています。パソコンから離れているときは、たいてい日本の素晴らしい山々でハイキングを楽しんでいます。サイバーセキュリティやハイキングコースなどについて話したい方は、[ぜひ私のSNSをフォローしてください](https://carrd.co/)！

## そもそも「Hardening」とは一体何か？

[ハードニングプロジェクト](https://wasforum.jp/hardening-project/)は、日本独自の情報セキュリティコンペティションです。一般的なCapture The Flag（CTF）イベントでは参加者がシステムへの侵入を試みますが、Hardeningでは小規模なeコマース事業の保護任務がチームに課されます。この挑戦は、防御構築、インシデント対応、及び侵害復旧などの技術面だけでなく、事業管理、レポート作成、及び文書化も含む総合的なものです。

このコンペティションは誰でも参加可能で、参加者はウェブアプリケーションやシステムの脆弱性を特定し解決します。学者、民間企業の専門家、日本政府関係者等により構成されるボランティア団体「Hardening Project実行委員会」により、2012年から毎年開催されています。

Sky、NEC、GMOなどの業界大手も多くの企業（私の勤め先も含め）とともにこのプロジェクトをスポンサーしています。このコンペティションの特筆すべき特徴の一つは、一部スポンサーがチームにセキュリティ製品を提供する仮想マーケットプレイスです。これにより、最先端のソリューションを実践的に体験できるのです。

## 準備期間と「Preparation Day」

毎年夏に実行委員会がハードニング参加者の募集を行います。応募フォームに連絡先を入力し、参加動機や達成したい目標を記入して提出します。その後は数週間、祈るような気持ちで結果を待ちます。

8月に今年のハードニングへの参加通知が届いた時は驚きました。すぐに大量のメールのやり取りが始まり、生涯で最も新着メッセージの通知が鳴りやまないDiscordサーバーに参加することになりました。そこで今年のイベントについてより詳しく知ることができました。15チーム、参加者100人、その約75％が初参加者で、半数近くが日本の大学や専門学校の学生だそうです。

私のチームはすぐに動き出しました。Discordでキックオフミーティングを行い、お互いの状況を把握しました。我々はかなり多様性のあるチームとなりました。日本のIT業界ベテラン、大学生と専門学校生、そして去年も参加したノリの良すぎる中国出身の方と私。この多様な経歴と経験のミックスは、私たちにとって大きな強みになると確信しています。

その後数週間、私たちは沖縄での集合前に準備を整えるべく、ドキュメントや練習用の資料を熱心に研究しました。チームは2つのグループに分かれました。オフィスで意思決定や管理業務を担当し、全体的なミッションをサポートするビジネスチームと、在宅で作業する技術チームです。私は技術側として、ネットワークの安全性維持と仮想ウェブサイトの運用を任されました。

また、チーム名とブランドを作るという楽しい課題にも取り組みました。チーム番号が3番で、自分たちのシステムが難攻不落だと自信を持っていたため、かの童話にちなみ「3びきめのこぶた」と名付けました。イベントに向け、可愛いTシャツやぬいぐるみ、さらには3Dプリントのグッズまで作成し、全力で準備に励みました。

![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_3931410_95487e1b-eee1-485b-b95d-d299a6d70639.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/5f79bb3d-ae08-4923-0fca-65a13c6ff9c2.png)
<font color="pink">これらを約30個プリントしましたが、今では日本全国に分布していると思います。</font>

初対面となる集合日を迎えました。私は神戸から那覇へ向かうソラシドエアの便に搭乗しました。現地での準備時間はたった1晩。チームみんなで小さなレンタルスペースに集まり、夜遅くまで懸命に作業を続けました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/2cf310bb-6548-1b7f-198e-b3b73446b035.png)

この時点で、私たちはチーム1とチーム2と合流しました。個々のチームのパフォーマンスに加え、ジョイントベンチャー（JV）的な共同事業の成功に基づいて追加スコアが獲得できると知りました。主催者は、3チームずつで構成される5つのJVを設定していたのです。しかし残念なことに、競技当日の混沌と騒動の中で、私たちのJVは全く機能しませんでした。各チームとも、個別に仕掛けられるサイバー攻撃の猛攻を生き延びるのに必死だったのです。（まあ、次回に期待ですね！）

## メインイベント：「Hardening Day」

ついにハードニングデーが到来し、ホテルで軽い朝食を済ませた後、私たちは全員でタクシーに乗り込んで沖縄空手会館へ向かいました。この会場は沖縄空手の中心地であり、その名に恥じない印象的な場所でした。私たちは彼らのメインの空手道場で競技を行いました。私たちのチームは決意に満ちた様子で集結しました。多少の睡眠不足はありましたが。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/07d0d846-419a-c162-1bf9-c98bce9dd9ee.png)

ハードニングデーのスコアリング方法について簡単に説明します。私たちには、マンゴー、高級な日本の漆器、沖縄の民芸品など、多様な商品を販売するeコマースサイトを含む最小限のネットワークが与えられます。また、オフィス内と在宅勤務の両方の環境を含む広範なバックエンドも維持します。サイトが稼働し、安全である限り、クローラーボットが頻繁に訪れて商品をチェックします。他のチームと比較して、より良い商品説明、魅力的な画像、競争力のある価格で商品を提供すれば、ボットが購入し、売上に基づいてスコアが上昇します。

攻撃者は様々な方法で私たちの業務を妨害することができます。サイトを直接ダウンさせたり、間接的に混乱を引き起こしたりします—例えば、全商品の価格を0円に設定したり、在庫を削除したり、卸売業者からの再注文を妨害したりするなど、他にも様々な巧妙な戦術を用います。

私たちはバーチャルマーケットプレイスからブリッジ型のWウェブアプリケーションファイアウォールを購入することを選択しました。（そして抽選に当選しました）これはフルマネージドサービスで、つまり私たちの側からの入力はほとんど必要なく、アプリケーション層の多くの脆弱性に対処してくれることが期待されました。またそうすれば、私たちは他の分野に集中できるはずでした。

一日が始まり、攻撃が開始されるまでのわずかな時間しかなかったです。私たちはすぐに、新しく引き渡されたネットワークの各部分の対応に取り掛かりました。ファイアウォール設定を変更...完了。不要な権限を削除...完了。Windowsサーバーにイベント管理ソフトをインストール...完了。

なんか忘れている…

Linuxサーバーの一部をバックアップするのを忘れていました。しまった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/4f2ded6c-b60b-7858-a98f-ffdff0446f84.png)

バックアップがちゃんとできていないことに気づいてすぐ後、私たちのウェブサーバーの1つがランサムウェアの攻撃を受け、eコマースサイトの1つがダウンしてしまいました。この状況を受け、私たちはいくつかの選択肢がありました！

- 数時間前に取っておくべきだったバックアップイメージから素早く再構築する...ああ、そうだった。
- ジョイントベンチャーの仲間の誰かに、「借りられる」バックアップがないか確認する？チーム1とチーム2も私たちと同時に攻撃を受け、両方ともバックアップを取るのを忘れていた...おおっと。
- マーケットプレイスの製品として提供されているリカバリーサービスを購入することもできる...でも、それを買う余裕はない。他のことを考えよう。
- 技術の達人が、次の数時間をかけてサーバーを一から再構築する—必要なソフトウェアをすべてインストールし、攻撃前の状態にサイトを複製する。

私たちは最後の解決策を選択しました。チームメイトに称賛を。彼は真の達人で、わずか数時間でサーバーを再構築できました。

これが私たちの最初の災難でしたが、乗り越えることができました。昼食を取った後、物事は順調に進み始めました。クローラーのボットは私たちのチームの商品を気に入ってくれたようで、数字は好調に見えました。

そして突然、売上が止まってしまいました。私たちの合計スコアは16,725,900ポイントで止まり、他のチームが追い抜き始めました。（普段はこれほど競争心が強くないのですが—暑さのせいだと思います。10月中旬なのに29°C？北ヨーロッパ出身の私には適わない暑さです！）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/92706325-13dc-1bd6-0ec5-c238e37078ea.png)

混沌が訪れ、私たちは全員で根本原因を突き止めようと必死になりました。ルーター設定の問題でしょうか？ファイアウォールの設定？アカウント権限の制限を厳しくしすぎたのでしょうか？あるいは、1つのeコマースサイトの再構築が何らかの不可解な理由で全ネットワークに影響を与えたのでしょうか？私たちのeコマース事業を復活させようと頑張りましたが、失敗し続けました。数多くの問題を発見し修正し、実際にさまざまな改善を行いましたが、売上のグラフは一向に上昇しませんでした！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/4a1b3d3e-2c57-d5e4-707c-81a456ce27b3.png)

事象発生から約3時間後、チームリーダーと私にひらめきの瞬間が訪れました。私たちはウェブアプリケーションファイアウォールの提供者であるバラクーダ者様の机に向かいました。少し議論した後、私たちのブリッジWAFセットアップをアクティブモード（脅威の特定とブロック）からパッシブモード（脅威の特定と通知）に切り替えました。数分以内に、私たちの売上が急増しました。原因としては、サイトへの過剰なボットアクセスを特定してブロックするように設計されたAIベースの機能が少し効きすぎていて、意図せずに私たちのスコアに貢献するHardeningのクローラーボットをブロックしていたようです。

過去3時間何も売れなかったため、在庫が大量に蓄積されていました。マンゴー以外のすべての商品が棚から飛ぶように売れていきました。他のチームが攻撃や在庫不足に苦戦する中、私たちの突然の売上急増により、再び競争に参戦することができました。

残り1時間となり、実行委員会はスコアを非表示にし、数日後に発表される結果への期待感を高めました。私たちは一日の活動を詳細に記した行動報告書を提出し、8時間の激しい戦いの末最後のベルが鳴り、Hardening Dayが終了しました。次の課題は、私たちのパフォーマンスを分析し、結論を導き出し、その結果を発表することでした。

## 落ち着いて、「Analysis Day」と「Softening Day」

Hardening Dayが終わるとすぐに、私たちのチームは地元のピザ屋に集まりました。静かに食事をした後、ミーティングスペースに移動しました。長い一日で、正直なところ全員疲れ切っていました。しかし、2日後に予定されている「Softening Day」のプレゼンテーションの準備を始めないといけなかったです。

翌朝は「Analysis Day」でした。前半は全員が空手会館に戻り、チームのプレゼンテーションの作成に取り組みました。昼食時までに最終の下書きを提出する必要がありました。作業を終えると、みんなでビーチバーベキューへ行きました。しかし、これは典型的なイベント後の懇親会ではありませんでした。グリルに火をつける前に、沖縄の伝統に参加させてもらいました。ハーリー船競争です。これは沖縄の習慣で、やや不安定な船に乗り込んでチーム同士で競争します。過去48時間の間パソコンの前で頭を使い続けた後に、太鼓のリズムに合わせてパドルを漕ぐのは爽快な気分転換でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/833cdfe9-9f7a-8abe-f4e6-b41469ec5055.png)

ビーチそのものが素晴らしかったです。このような絵画のような環境で、業界の多くの人々とネットワークを築く機会を得られたことは驚くべきことでした。日本に10年近く住んでいながら、沖縄にはまだ行けていなかったので、未知の地で新たな発見できて胸が躍りました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/fa599e4d-7ea2-f09c-6195-fe4b49ca44cf.png)

「Softening Day」が訪れ、各チームが発見事項を発表しました。その日の忙しさに夢中になっていたため、実際にはどれだけ多くのことを見逃していたかを知って驚きました。攻撃者側から、私たちに対して使用された脆弱性や手法のいくつが示され、その後、賞が贈られました。「3びきめのこぶた」はバラクーダ社様から賞を受け取り、売上の落ち込みにもかかわらず、私たちは着実に回復し、良好なスコアで終えることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/15ffb2fb-c585-a917-8182-affde6e315dc.png)

## **まとめ**

Hardening 2024 Convolutionsへの参加は、サイバーセキュリティの重要な教訓を身をもって学ぶ、目から鱗が落ちるような経験でした。まるでセキュリティオペレーションセンターの最前線に立ち、リアルタイムの脅威に対処し、瞬時の判断を下すような臨場感溢れる体験ができました。

この経験から、まず痛感したのは、事前の準備と堅固なバックアップ計画の重要性です。Linuxサーバーのバックアップで犯した私たちのミスは、まさに目覚まし体験でした。慌ただしい状況下では、基本的なことさえ見落としかねないという教訓を得ました。さらに、特に状況が悪化し始めたときこそ、チームとして効果的にコミュニケーションを取り、臨機応変に対応することの重要性が強く印象に残りました。

このイベントはまた、混沌とした状況下でのセキュリティ製品導入に関する貴重な教訓も提供してくれました。ウェブアプリケーションファイアウォールでの経験から、最先端のツール（バラクーダ社様のWAFは驚くほど効果的で、他チームが被った攻撃の多くを防いでくれました）でさえ、適切に設定されていないと意図せずに運用を妨げる可能性があることが分かりました。これは、特に重要なセキュリティ製品の導入時には、徹底的なテストと適切な設定が不可欠であることを浮き彫りにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3931410/4f952982-1884-b90f-419d-4cd0d9a0e9e7.png)

このように構造化され、視野を広げるイベントを企画してくださったハードニングプロジェクト実行委員会と全てのスポンサーの皆様に心から感謝申し上げます。業界のプロフェッショナルや才能ある学生たちから学び、交流する機会は非常に貴重でした。また、沖縄の息をのむような美しさも特筆すべきです。この素晴らしいロケーションが、すでに充実した経験にさらなる喜びを添えてくれました。

もし機会があれば、来年のハードニングへの参加を心からお勧めします。厳しい参加条件を心配する必要はありません。参加者の多様な背景と経験レベルは本当に印象的でした。

詳しくは[ハードニングの公式ウェブサイト](https://wasforum.jp/)をご覧ください。写真はHardening Projectから提供いただきました。

<font color="grey">AI開示：この記事は私の経験と見解に基づいています。文章の改善と英和翻訳にAIツールを使用しましたが、内容の本質は私のものです。</font>