🏖️

Hardening 2024 Convolutionsに参加してきた

2024/10/24に公開

概要

この記事は、初参加のハードニング競技会であるHardening 2024 Convolutionsの参加記です。
参加記を通して、ハードニング競技会に興味を持った方の解像度が上がることを期待します。

ざっくり、内容を要約すると👇こんな感じです。

  • 実践的なサイバーセキュリティのスキルでビジネスを守るって、なかなか体験できないよね。
  • 他参加者と情報を共有して、学びを最大化していくべきよね。
  • マーケットプレイス、現実世界でもあるけどインシデント中はありがたみが変わるよね。

ハードニング競技会について

ハードニング競技会とは何かは開催概要に示されていました。
https://wasforum.jp/hardening-project/hardening-2024-convolutions/

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

記載の通り、求められるサイバーセキュリティのスキルは実践的なものであり、無論、ビジネスの成果も求められます。ビジネスを守るためのセキュリティを実践できる場って、ハードニング競技会を除いてあるのかね?

実践的なサイバーセキュリティのスキル

インシデント発生時に求められるのは総合的で実践的なスキルです。自身が主たる業務で取り組むスキルエリアだけではなく、幅広い知識を持たなければ、原因の究明やインシデントの対応を完遂することはできません。また、対応を即座に行うためには実践的なスキルが必要でしたが、ハードニング競技会に参加して、私のスキルは実践的ではないと痛感しました。これは一番大きな収穫でした。

ビジネスの成果

セキュリティは単体では存在できないものだと私は考えています。開発とセキュリティの関係を例に考えてみましょう、適切なセキュリティを守るために開発を進めるのではなく、適切な開発を進めるためにセキュリティが必要です。ビジネスにおいてもこれは同じで、セキュリティ原理主義的な対応は望まれていません。
企業としてビジネスを守り、消費者を守るためにセキュリティを活用することが重要だと感じました。

学びの最大化

ハードニング競技会に向けた準備期間で、学びを最大化するために実施したことを紹介します。

模擬環境の構築とメンバーへの展開

私たちが守るべきシステムは多岐に渡りますが、ビジネスに関連するWebサイトといえば著名なCMS(WordPressやEC-Cube)を想定することができます。
今回、CMSの操作方法や設定内容の把握などの理解度を深めるために、模擬環境をEC2上に構築し、CloudFlare Accessによるアクセス制御を実施してチームメンバーへ展開しました。

チームメンバーには、普段はITに関連する業務に従事していない方もいます。このような方々に、サイト操作や業務をイメージしてもらうことで、競技会当日の作業の解像度を上げることができるでしょう。

Cloudflare Accessを利用するメリット

サーバーを外部に公開した際に懸念されるのは、第三者による不正アクセスです。
Cloudflare Accessを利用することで、対象のサーバーへのアクセスに認証を設けることができました。
https://www.cloudflare.com/ja-jp/zero-trust/products/access/
サーバーにSSHアクセスをして作業する場合などは、Cloudflare Tunnelなどで提供するのもいいですね。
情報を提供いただいたチームメンバーのhngsmさん、ありがとうございます。

学習コンテンツの活用・発掘・連携

Hardening競技会では、Linuxでは複数のディストリビューション、Windowsでも各種OSやAD、その他DNS、DBなどなど様々なスキルが求められます。私は普段の業務ではWebアプリケーションの脆弱性診断を担当しているため、普段は取り組めていないスキルエリアについても学習が必要となりました。
短い準備期間で幅広いスキルエリアを学ぶために取り組んだことをいくつか示します。

TryHackMeの活用

私は参加にあたり、セキュリティのオンライン学習プラットフォームであるTryHackMeのHardening関連のルームに取り組みました。
※一部、課金が必要なルームがありますが、Windowsの環境ガンガン触れるのですから。文句なしです。
https://tryhackme.com/r/room/microsoftwindowshardening
https://tryhackme.com/r/room/activedirectoryhardening
https://tryhackme.com/r/room/linuxsystemhardening

のみぞうさんのブログHardening 2023 Generatives反省日記|やわらかセキュリティで、より詳細に紹介されているため内容は触れず、学習した所感にとどめます。
いずれのルーム、上記ブログで紹介されるように基礎的なものであって、競技会の中で活用できる知識の土台、もしくは一部という感じでした。Hardening競技会でシステムを守るためには、もう一歩踏み込んだ学習が必要となると感じました。
https://tryhackme.com/r/room/investigatingwindows
上記のルームでは、「競技会中に華麗に調査が出来たらな」と思えるようなシナリオが紹介されておりましたが、競技会中にWindowsとしっかり向き合う時間はありませんでした。
攻撃が行われる前の堅牢化の参考として、設定の変更による挙動の変化をガツガツ確認していくようなルームがあると嬉しいんだけどなー(誰か知りません?)

有用なコンテンツの共有・活用

有用なコンテンツを発見したら、チームメンバーを含め多くの参加者に共有することが、競技会全体の学びの最大化に繋がります。
普段の情報収集の中で、Hardeningに関連するような記事があった場合は積極的に共有を行った結果、新たな知見を得ることもできました。
情報の共有
また、事前準備の中でWindowsのイベントログの設定について調べていると、スゲー良い資料に出会いました。こちらは、Hardening競技会で攻撃者役を担うKuromame6の1人である、ザックさんが主催する大和セキュリティ勉強会から公開されている、Windowsのイベントログの設定と監視に関するガイドです。
https://github.com/Yamato-Security/EnableWindowsLogSettings/tree/main
あ、わたしですか?もちろん競技会に持ち込みましたが、検証終わってなかったのでビビって実行できませんでしたよ。ガハハハ!

インシデントの中で輝くマーケットプレイスの価値

Hardeningでは、自分たちで管理するサーバーを守るためにベンダーの力を借りる、マーケットプレイスという仕組みがあります。それぞれ、WAFを提供してくれるベンダー、人的リソースを提供してくれるベンダーなど様々です。
インシデント対応という極限状態の中では、サービスの価値も平常時と異なるように思えました。新しい学びがあったので共有します。

WAF、ええやんけという話

私はもともと、「Webの脆弱性対策はとりあえずWAF!」というような過度なWAFへの信仰に懐疑的でした。理由は、正常な通信への影響(ユーザビリティの低下)や、コストがかかるわりにはルールを突破された場合に脆弱性を悪用されてしまうことを懸念していたためです。
しかしながら、インシデント発生中に根本的な対策としてコードの修正ができるでしょうか?実際の運用では、改修後のリリースまでにはたくさんの工程を経る必要があります。
攻撃からシステムを守りながらビジネスを駆動させるためには、WAFは非常に優秀なツールであると実感しました。

さいごに

もっと書きたいことはありますが、参加記は鮮度が命だと思うので、たくさん書くより早めの入稿を優先します。
最後に、このような貴重な経験をさせてくださったHardening Projectの皆様、スポンサーの皆様に感謝します。本当にありがとうございました。

Discussion