Hardening 奮闘記 沖縄で冷や汗だらけの2日間
安東 美穂
セキュリティオペレーションセンターの安東です。
これまでも何回かRecruit-CSIRTから参加しているイベント、「Hardening 1010 Cash Flow」 に、私も初めて参加してきました。
今回は一般参加者とは別に、マーケットプレイス(競技中の支援サービス提供者)としてもリクルートテクノロジーズからメンバーが参加していました。インシデントレスポンスグループの猪野と市田による、そちらの奮闘記は以下をご覧ください。
Hardeningって?
これまでもこのブログに登場しているので目にされた方も多いと思いますが、 簡単に言うと "脆弱性のあるECサイトをサイバー攻撃から守り、攻撃に対応し、いかにビジネスを強化できたかをチーム対抗で競うイベント" です。
Hardening(堅牢化)の名の通りの競技ですが、必要とされるスキル・知識は幅広いです。システムの脆弱性の修正や、インシデント対応といったセキュリティの知識はもちろん、WEBサーバーの管理やDBのチューニング、販促・広告への投資などのマーケティングのセンスも問われます。
2012年から開催され、今回で第10回目となるこのイベント、今回は90名・15チームが参加し、史上最大規模だったとのことです。
エントリー〜競技当日まで
競技にエントリーすると、運営からチーム分けが発表されます。チームメンバーはみな初対面。そのため、SlackやGoogle driveを活用し、それぞれ何が得意・不得意かの共有や、チームとしての優先順位は何か、などの打ち合わせを進めていきます。私のチームの場合、幸いにして東京在勤のメンバーがほとんどだったため、2回対面での打ち合わせを実施できました。
沖縄入り
初めての参加で不安いっぱいの中、梅雨明け直後の沖縄に到着。その日は競技前夜ということで、早速メンバーと現地の居酒屋で最終打ち合わせを実施しました。
沖縄料理に舌鼓を打つのもそこそこに、直前に運営から送付された60ページ近くにわたる競技説明資料の読み合わせをしなければいけません。この説明資料は当日使用するシステムの構成図や、あらゆるルールなどが記された超重要資料のため、全員で1ページずつ内容を確認し、翌日の作戦に反映させていきます。
資料にはかなり多い数のサーバーがあることや、誰も触ったことのないMastodonの存在、また背景の設定の中に「厚生労働省の働き方改革」への言及があるなど、チームメンバーの憶測や不安が広がります。
しかし他チームも条件は同じ。「顧客ファースト、売上ファーストでがんばろう!」を合言葉に解散しました。
1日目、Hardening Day
イベントは、競技日(Hardening Day)と結果発表(Softening Day)の2日間にかけて開催されます。
開会宣言ともに運営が作成したパロディ満載のムービーで会場の空気が和んだのもつかの間、競技開始で一気に緊張ムードになりました。
まずは環境のセッティングから開始します。
そこで早々にメンバーの1人の「LANケーブルのアダプタが反応しない」トラブル発生。しばらくして接続ができ、事なきを得ました。
しかしその後も、
・クライアントのメール設定が通らず、メール受信ができない
・Mastodonが動かない
・特定のアカウントのみメールの受信ができない
・マーケットプレイスの購入手続きで手間取る
など攻撃の影響ではないであろうトラブルに見舞われ、時間が過ぎていきます。
そうこうしている間に、ECサイトは攻撃者集団kuromame6から攻撃を受けています。私たちのチームには、以下のような攻撃が仕掛けられました。
・WordPressの脆弱性をついたサイト改ざん
・OSコマンドインジェクション
・ディレクトリリスティング
・ランサムウェアによるファイル暗号化 などなど
私たちのチームでは、対応方針として
・検知・防御はマーケットプレイスで購入したサービスで対策すること
・復旧第一とし、とにかくバックアップと復元をすること
の2つをあらかじめ決めていました。
そのため、散々にやられながらも、やられたあとに気づきさえすれば、データを元に戻すことでなんとかサービスは維持できていました。
しかし忘れてはいけないのが、Hardeningはインシデントの対応技術だけではなく、ビジネス観点での対応も重要だということです。攻撃を検知、防御し、サービスを復旧させるだけではなく、ECサイトで販売する製品の在庫を適度に購入し、広告への投資をし、売上を上げなければいけません。インシデント対応に必死になっていると、どうしてもこの部分がおざなりになってしまいます。
当初「売上ファースト」と掲げていたにもかかわらず、私のチームでは競技前半でこれらの販促面に注力できず、結局終盤まで所持金を伸ばすことができませんでした。
そうしてさまざまな思いを抱きながら、1日目の競技が終了しました。
2日目、Softening Day
2日目は、各チームのふりかえりの報告と、上位チームの発表、kuromame6からの攻撃のネタばらしなどが行われました。
各チームの順位を決めるのは『所持金』です。(非常にシンプル!)残念ながら、私のチームは前述の通り所持金を伸ばすことができず、「顧客点」と「技術点」と「対応点」で1位ながら、受賞ならず、という結果でした。
Softening Dayの様子については、動画がアップされていますので、ぜひ臨場感のある様子を見ていただければと思います。
[H1010CF] Softening Day – 全チーム・プレゼンテーション
https://www.youtube.com/watch?v=dH3d73v9SJY
[H1010CF] Softening Day – Kuromame6プレゼンテーション
https://www.youtube.com/watch?v=H6MrNRuIMso
「Hardening 1010 Cash Flow」に参加して
初めて参加しましたが、2日間とは思えない濃密な時間で、非常に勉強になりました。よかったポイントを以下に3点あげます。
チームビルディングの訓練になる
このHardeningを実際のケースに置き換えるとすれば、「引き継ぎ直後のよく知らない脆弱なシステムのインシデントを、ほぼ初対面のメンバーだけで対応する」というようなケースでしょうか。
私は、この「初対面のメンバーとチームで対応する」というのがこの競技の良さの一つだと思いました。日頃から価値観や役割を共有できているメンバーと一緒に対応する場合とは、難易度がまるで違います。Hardeningは、競技の準備段階での役割決めや関係作りがかなり重要だと言われていたのですが、その意味がようやくわかりました。
業務環境を前提としないスキルの向上
日頃、担当しているリクルートグループのシステムは、脆弱性などの品質管理も行われていますし、検知、分析用のシステムも充実しているので、有事の際には私たちRecruit-CSIRTのメンバーがスムーズに対応に集中できる環境になっています。
しかし、セキュリティエンジニアとしては本来そのような前提がない今回のような環境でも、力を発揮できるべきであることを実感しました。
私個人としては、日頃セキュリティインシデントの検知・分析を対応している立場からすると、攻撃を受けた後のログなどから経路の分析・対処をすることがどうしても後手に回らざるを得ない状況に、とても心苦しさを感じました。
極限の状態での恐怖を体験できる
そんな、なかなかない状況下で攻撃を受けながらなんとかサービスを守らなければいけないという体験ができたのは非常に貴重だと思いました。
「追い詰められる」という観点で忘れられないのが、競技中会場に轟くPepper君の声です。今回のHardeningではこのPepper君が、突然とあるチームのセキュリティ事故の発生を告げたり、パスワードを読み上げたりしていたため、参加者にとっては非常に恐怖の存在でした。
あれ以来、社内や街中でPepper君を見かけることがありますが、トラウマで目を合わせることができません…(笑)
しかし、現実ではもっと冷や汗をかく事態や、不安を煽る事態が発生すると思います。振り返ってみると、疑似的な場ではありますが、そういったシチュエーションを含めてリアルに再現された環境だったと思います。
今回初めて参加して、とにかく参加者も運営も大変なイベントだということを実感しましたが、それだけに貴重な経験ができる、すばらしい場だと思いました。
参加者の皆様、お疲れさまでした!そしてHardening Project運営の皆様、ありがとうございました!