Hardening 2020 H3DX体験記
森崎樹弥
こんにちは。Recruit-CSIRTの森崎です。
以前より、何度かRecruit-CSIRTのメンバーが参加させていただいているイベント"Hardening"に参加してきました!
本記事では、この貴重な経験を、体験記として綴ります。
これまでにも、弊社のエンジニアが参加した記録を当ブログにてご紹介していますので、そちらもよろしければ、ご参考にしてみてください。
Hardening 奮闘記 沖縄で冷や汗だらけの2日間
Hardening 奮闘記 サービス提供って難しい。[準備編]
Hardening奮闘記 サービス提供って難しい[本番編]
実務以上にハードな事故対応?!今、話題の競技Hardeningとは?~Hardening参加報告#1
競技でも業務並みの知見をゲット~Hardening参加報告#2
Hardening Value & Value グランプリ(優勝)の決め手~Hardening参加報告#3
Hardeningとは
まず、Hardeningとは何ぞや。というところから。
今回私が参加したのは、「Hardening 競技会」と呼ばれるイベントで、
Hardening Projectが開催する、チーム対抗の競技です。
なお、Hardening Projectというのは、2012年より非営利のコミュニティとして活動している団体で、
2004年に発足した、同じく非営利の任意団体Web Application Security Forum(通称WASForum)に属するプロジェクトです。
WASForumについて
Hardening Projectについて
- Hardening競技会の概要
– 脆弱性のあるビジネスシステム(ECサイト)へのハードニング(堅牢化)力の強さを総合的に競う
– セキュリティを扱う人が、現実的な問題をどのように扱い貢献するかが評価ポイント
そして、評価基準として、以下が加味されます。
- サイトの運営を維持する総合力
– 攻撃に対する堅牢化
– 売り上げの確保
– ダウンタイムの最小化
– コミュニケーションスキル
(※公式サイトより引用)
この競技を通して、Hardening Projectは以下を目標としています。
- ウェブサイトの安全性を追求する技術の啓蒙と人材の育成
- そうした技術の社会的認知の向上による健全なネット社会への進歩に貢献
これまでとは異なるフル・オンラインのHardening H3DX
Hardening競技会といえば、沖縄の特設会場にて参加者が2日間、身も心も全て投じて参加するイメージでした。
そんなHardening競技会ですが、今回は昨今の情勢も鑑み、初めてのフル・オンラインで、H3DXと名付けられた競技会として開催されました。
募集要項にもある通り、「IT技術者はもちろんのこと、セキュリティに間接的に関係する非技術者」の方も多く参加されていて、競技自体はこれまで通り、競技日(Hardening Day)と結果発表(Softening Day)の2日間にわたるものでした。
エントリーは応募制で、応募内容に基づいた審査に通過した人が参加できます。そして私も無事通過することができ、この2日間を共にする、自身を含む計10人のメンバーと事前準備を始めました。
重要な準備期間
競技開始となる11月13日から約1ヶ月前となる10月14日。
運営から届いたメールを皮切りに、チームが始動しました。
チームは1チーム10名の全11チーム、計110名(概算)が参加する競技規模で、我々のチームは、社会人7名、学生3名の混合チームでした。
リクルートからは、私含めて3名の参加だったのですが、7名の方々は皆はじめましてなので、まずはオンラインの顔合わせからスタートになりました。
早速コミュニケーション能力が問われる世界、しかも対面じゃないオンラインコミュニケーションという、ニューノーマルな型式でした。
運営からの最初の指令として、役割分担の指示があり、「CEO、COO、CFOは必須とし、必要に応じてCXO、CISOの役職も決めてください」とのことだったので、CEO、COO、CFO、CXOが1名ずつ、サービス対応チーム(COOは兼務)が3名、攻撃対策チームが4名という体制で競技に参加しました。
CXOは、Chief Experience Officerと勝手に解釈して、役割分担をしたものの、「C☓Oに読み替えて必要に応じた役員を作ってね」という意味で勘違いでした。(恥ずかしい…)
役割分担の他に、我々のチームが事前に行った準備は、以下の通りです。
- ツール類(運営から提供されたもの以外)
– ファイル共有
– Google Drive
– タスク管理ツール
– Trello
- 個人のスキルの棚卸し
– OS、DB、CMS、Zabbix、Apacheなど
- 攻撃シナリオの確認
– DDoS、マルウェア感染(ランサム、バックドア)、BEC、脆弱性など
- リスク分析
– リスク評価シートを作成し、重点的に対応を行うべきサーバを事前に決定
そして、これらの情報をもとにして、チームの概要としては、このような感じになりました。
項目 | 内容 |
チーム名 | KRGFK |
目標 | ・同業他社の中で上位半分に残る。 ・モニタリングを重視し認知したインシデントは全て記録する。 |
社訓 | ・Have a fun!(楽しく働く) ・報連相は辛くない(一人で抱え込まないで周りに投げろ) ・連携第一(売り上げ第二) |
やるべきことの事前検討 | ・アカウント棚卸しとパスワード変更 ・system diagram上存在しないサーバ探し (サーバ構成図と合っているか) ・アップデート ・バックアップ取得 ・モニタリング設定 ・サービス改善対応(運営側からいくつかタスクが用意されていて、ECサイトの商品説明を入れる、画像をアップロードするなどの作業があります。) |
Marketplace(以降、MP)で買うもの | 「WAF」もしくは「NGFW/IPS+EDR」 ※MPでは、競技中、実際のベンダ用に用意した製品やサービスを購入することができます。 |
結果、チームとして、事前の打ち合わせを二度ほど実施し、計5時間くらいかかって準備を進めました。
個人的には、これでも十分なくらい準備したなと思いましたが、競技当日を迎え、他のチームと比較してみると、参加経験者の知見をもとにテスト環境を構築し、チーム内で模擬演習を行なっているチームもあり、相対的に準備不足を感じました…。
さて、こんなチームですが、どんな結果になったでしょうか?
初日のHardening Day、2日目のSoftening Dayの様子をお伝えします。
Hardening Day(DAY 1)
さて、迎えた初日。
普段の始業時間が10時なので、起きられるか不安でしたが、無事起床。少し早めの8時半には集合し、9時に全員揃ったところで、運営に報告。無事、Zoomのリンクを入手し、チーム全員が入場しました。
今回オンライン開催だったので、出欠の確認はZoomへの入室確認で代替していたのですが、チーム全員が揃うまではヒヤヒヤでした。
こういった場面が複数回あり、人が足りないたびに、"失格"への恐れを感じていました(笑)
そしてまもなく、運営が用意した競技会の背景説明動画が流れ始め、いよいよスタート!
最初の1時間は、事前打ち合わせで取り決めていた通り、パスワードを変更したり、メールの設定を入れたり、ひたすら環境の整理を行っていました。このメールの設定がなかなか手ごわく、慣れない競技環境上での操作やMTAの設定に手こずってしまい大幅にタイムロスしてしまいました。
続いて、事前に検討していた、MPからの製品やサービスの購入を進めていきました。
購入方法は、CFO経由で稟議書を提出し、落札形式で購入。なんとかして、競技開始後にWAFもしくは次世代FWを手に入れたかったのですが、入札合戦に敗北し、敵わず…。
ということで、サーバ上でのセキュリティ対策に頼った状態のまま、我がチームのECサイトは立ち上がりました。
そして、2時間30分が経ったころ、最初の異変を発見。管理するうち一つのサイトで、600件以上の商品カテゴリが勝手に追加されるという事象でした。
事前準備の時から報連相による情報連携を心がけるようにしていたので、発見後、早速JPCERT/CCに報告しました。
さらに、3時間経過後、今度は別のサイトにてランサムウェアの被害にあっている様子が確認され、こちらもJPCERT/CCに報告しました。なお、JPCERT/CCに報告したこれらの事象については、返信および注意喚起の発行があり、情報連携による効果は少なからず感じました。
ちなみに、JPCERT/CCからの返信では「バックアップからの復旧を推奨」とあったのですが、ここでバックアップが取得できていないことに気づき、この後必死に復旧を行うことになります。
こうして対応に追われる中、競技開始5時間後からは、購入を進めていた「インシデントレスポンス支援サービス」や「サービス運用支援サービス」のMPのサービスの利用を開始し、一時は7分の5のサイトがダウンしているという状況から、なんとかサービスの復旧・運用を実施することができました。
一方で、このようにインシデント対応を行っている裏側でサービス改善の取り組みも行わなくてはなりません。私は、COOという立場かつサービス対応チームのリーダーでもあったので、商品が売れるよう、画像を差し替えたり、商品説明を入れたりと、ECサイトの運営を進めていました。
一時期、サイトがダウンしてしまった際には、コンテンツの準備だけをローカルで行い、システム復旧後迅速にサービス復旧できるように、準備を整えるなど、泥臭い対応も行いました。もしサービスが復旧しなかった場合、この努力も水の泡になるところでしたが、攻撃対策チームによる復旧を信じて準備を進めたことは、チームワークだと言えるかなと思っています。
またサービス改善に加え、ユーザからの問い合わせで「メールサーバーの管理画面がインターネットに晒されている」「リモートワークのセキュリティ対策について聞きたい」など、様々な連絡が届きます。
このメールに返信をするか否かを含めた連携や対応を行う中で、スピード感を持った判断力も重要だと感じました。
そして、最重要ミッションである、チーム全体の集合写真を滑り込みでZoom撮影し、なんとか初日を終えることができました。
Softening Day(DAY 2)
Day2を迎える前に
そして、初日が終わり、二日目。
といきたいところですが、実は初日の競技終了後には延長戦が!(笑)
なぜならSoftening Dayでは各チームの発表があり、その発表資料は二日目の9時までに運営に送る必要があるからです。
ということで初日の競技終了後、一旦時間をおいて、21時にチームメンバーで再集合。
初日の競技は思った以上に体力を使っていた自覚があったので、資料は効率重視で仕上げました。
- 資料の叩き台をCOOが作る。
– 発表資料に必要な要素(運営より提示)をもとに目次を作成
– 発表資料のフォーマットを作成し、目次を反映
– 各章ごとの役割分担を決める
– 主担当と副担当を決定
– 基本的に主担当が執筆し、副担当がレビュー
- 編集は、Googleプレゼンテーション上で同時に実施
- Discordのボイスチャットで会話しながら適宜、担当変更やレビュー実施を依頼
こんな感じで進めて、2時間くらいで仕上がったのですが、残業後に淡々と作業を進めるような感覚が面白かったなと思いました。
結論「ボイスチャット×共同編集よき!」
そして、前日に用意した資料を持って、いざDay2に出陣!
参加者全員での振り返りと表彰
当日の発表は、CXOを務めてくれた、学生さんが担当してくれました。
怖い大人たち(!?)がいる中でよく頑張ってくれて、本当に感謝だなと思います。
そして、午前中に、全チームの発表が全て終了。
各チームの準備や、コミュニケーション方法、対策実施の優先順位や採用技術などに個性が出ていて、とても勉強になりました。
午後は、運営の方々からのフィードバックや競技環境の解説、各チームのCEOにて構成される団体「堅団連」によるセキュリティ対策を組み込んだ上での事業開発提言などがありました。2日間の振り返り、そしてここでの経験を今後の業務やそれぞれのキャリアに活かすためのヒントをたくさんいただけました。
そして、結果発表!
我々チーム2「KRGFK」は見込み販売力、9位でフィニッシュでした!
下から3番目ですね。競技終了1時間半前は6位だったのに…笑
ただし!
協調点で1位、対応点で3位を受賞することができ、売上こそ今ひとつでしたが、インシデントレスポンス力という部分では、力を発揮できたかなと思うようにします(笑)
ちなみに、他には技術点、経済点、顧客点という項目があり、その算出方法は運営の方々によるロジックに基づくものです。
そして順位発表後には、イエラエセキュリティ様よりMP賞を受賞させていただきました!
終盤に購入させていただいた「インシデントレスポンス支援サービス」にて、対応をサポートいただき、むしろ助けてもらってばかりでしたが、「コミュニケーションがとりやすかった」と評価していただいて、こちらこそと思うばかりでした。
そして何より今回の受賞は、攻撃対策チームのみんなの対応あってこそだなと思いました。
ということで、なんだかんだ前日の準備から含めると丸々2日間を捧げたような濃厚なスケジュールではありましたが、とても充実感のあるイベントだったなと感じています。
次回参加を考えている方へのアドバイス
今回参加した中で、いろいろな経験や知見を得ることができたなと思いました。
今後も、Recruit-CSIRTからHardeningに参加するメンバーはいると思いますし、このブログを見て参加しようと思われる方が少しでも増えるとありがたいです。
そんな思いを込めつつ、いくつか教訓を箇条書きで。
もしよかったら参考にしてみてください。
- インシデント対応を体験できる貴重な機会!
– 改めて「習うより慣れろ!」
- 事前準備は思っているより大変かも
– 準備しないとあたふたしたままで終わってしまいそう
- 目的意識を持った取り組みを推奨
– 「技術力を上げたい!」「リーダーシップを経験したい!」「ビジネスインパクトを考えた運用を経験したい!」など
– それぞれの立場や目的に応じて、立ち振る舞いは変わってくる
– 立場や目的を予め考えておかないと、限られた2日間を有効活用できない
- ゲームという名の社会勉強
– いろいろな組織・年齢の人と即席でチームを作って対応する経験自体が、貴重な社会勉強
最後に
今回、初参加ではありましたが、濃厚な2日間を過ごすことができました。
フル・オンラインの開催で、ハードルも高かったのかなと思いますが、ほとんどトラブルなく参加できたのは、運営の皆さんの力量によるものだと思います。
そして、Hardening競技会のような、ECサイト運営とインシデント対応の経験が同時にできる場が提供されること自体、とても価値のあることだなと感じます。
私の中には「経験に勝る知識なし」という考えがあるわけですが、まず目の前の業務をこなす事が多い通常業務と異なり、全体を俯瞰した上で、優先順位づけをして対応にあたれる事は、立派な経験だなと思いました。
本イベントを運営されている皆さん、そしてそれを支えるスポンサーの方々には、とても感謝しています。
そして、ちょうど本記事の執筆中に、素敵な贈り物が届いたのでこちらも。
今後も、引き続き、このようなイベントを開いていただきたいなと思いつつ、感謝の意を表し、締めの言葉とさせていただければと思います。
本当に、ありがとうございました!