SSTによる安全なWebサイト運営のためのセキュリティ情報

エンジニアブログ
  • shareSNSでシェア
  • Facebookでシェアする
  • Xでシェアする
  • Pocketに投稿する
  • はてなブックマークに投稿する

Hardening 2020 H3DX 参加レポート -羽鶴編-

序文

ご無沙汰しております。事業開発部の羽鶴です!
少しずつ気温も下がってきて、街路樹も色づき始めましたが、皆様、いかがお過ごしでしょうか?
私と言えば、最近は老後に山奥で猫と一緒にカフェをやりたいとか、そんな事ばかり考えています。

今回書く事

さて、今回は先日開催された Hardening 2020 H3DX の参加報告をしようと思います。
例年であれば沖縄や北海道の会場に朝から晩まで引きこもって競技が行われるのですが、今回は新型コロナウイルスの影響で完全オンラインでの開催でした。
ということで、今回は、初対面同士の10名のメンバーで構成された急造チームで、いかにして怒涛の9時間を戦い抜いたかをお話し出来ればと思います。
あくまで、一例ですので、参考程度に受け止めていただけると幸いです。
また、オフラインでもオンラインでも、それぞれのコミュニケーションの形があると思っています。

開催概要については、大会ホームページをご覧ください。
https://wasforum.jp/2020/09/hardening-2020-h3dx/

また、別チームでしたが、弊社の岩間も参加報告エントリーを書いていますので、そちらの方も一読いただけますと幸いです。
Hardening 2020 H3DX 参加レポート -岩間編-

当日までの主な出来事

まずは、当日までに発生したイベントをざっくりと時系列テーブルにまとめました。
※競技内容のネタバレを防ぐため一部省略しています。
大体の流れは、 参加承認のメールを受け取る → メンバーの交流が始まる → 事前準備や調査 → 競技当日 → Softening といった感じです。
開催から1カ月前の 10/14 にチームメンバーが発表されたのですが、その日の内にチームメンバーの一人が Discord を用意してくれたので割とスムーズに交流が始まったと思います。

日程

コミュニケーションの難易度を下げて、議論を活発に

チームメンバーが決まってコミュニケーションの場として Discord が用意されましたが、それでも、お互い初対面で相手の空気感もわからない状態で最初の一歩を踏み出すのはそれなりに勇気がいることだと思います。
ただ、競技当日はシステムの堅牢化と並行して、運営からの無慈悲な攻撃やインシデント対応等の、大量のタスクをメンバーで協力しながら遂行する必要があります。
そんな時にお互いの得意分野や雰囲気を掴めていると、作業の依頼や質問を気軽に出来るので、円滑に事を進められるのですが、逆に、心理的な距離が遠いまま事を進めると、あらゆる所でオーバヘッドが発生して、最悪の場合、チームの雰囲気が悪くなる可能性だってあります。

ということで、とりあえず、オンラインでの顔合わせを実施。

 

顔合わせの呼びかけ

顔合わせの呼びかけ

他にも、チャットへの発言に絵文字などでリアクションを付けたり、各自のタイミングで参加/退室ができる雑談会を開いたりして議論を進めていきました。

 

リアクション求む!

リアクション求む!

オンラインでの作業は相手の雰囲気や状況を掴みにくかったりするので、チャットでの発言に抵抗を感じる局面もあります。
個人的には、オンラインでコミュニケーションをとる上で、以下の3点に気をつけることでコミュニケーションの敷居が下げられると考えています。

  1. 自分のアウトプットに対してフィードバックがある
  2. 何らかの形でメンバーの表情、感情を感知できる
  3. 他のメンバーの作業、進捗状況が見える

羽鶴がマネジメントを行う際に参考にした、「行動分析学入門」という本の中で、「正の強化」という作用が紹介されています。
ざっくり言うと、「ポジティブなフィードバックを受けることで、その行動や習慣が促進される」というものなのですが、
この記事の読者の中にも、「自分の発言に良いリアクションがついて嬉くなった」、「また、発言しようと思った」という経験をされた方もいるのではないでしょうか?

https://shinsho.shueisha.co.jp/kikan/0307-e/

また、Discord には「退席中」や「取り込み中」などの自身の状態を反映できる機能があるので、そちらも積極的に使わせていただきました。

タスクの洗い出し

大抵の人は、ザックリとした大きなタスクをを渡されるより、細分化された具体的なタスクを渡される方が手が動くのではないでしょうか?
今回のHardeningについても、「システムを堅牢化する」や「インシデント対応を行う」、「ECサイトの運営を行う」というザックリとしたミッションは伝えれていますが、
具体的に「どのように行う」というレベルの話は競技者に委ねられているので、自分たちで考える必要があります。
この具体的に行う内容ですが、例えば、「MySQLのセキュリティを強化する」というレベルまで落ちていると設定項目の洗い出しや手順書を作ることができます。

また、メンバーには様々なバックグランドを持つ方々が集まっているので、得意分野やチャレンジしたい領域で活躍出来る陣形にできればと考えていました。
ということで、各自の所有スキルを確認するためのスキルチェックシートの作成に加えて、当日の対応部隊を「Linux/Web部門」、「Windows/Firewall部門」、「カスタマー部門」、「経営部門」に分割して、可能な限り希望に沿った配属を行った上で、
それぞれのチームでタスクの細分化や事前準備を進めていきました。

 

スキルチェック

スキルチェック

 

タスクの可視化を行う

オンラインで作業を進めていると「他人の作業や進捗状況、困っている事に気づきにくい」という事象に遭遇することがあります。
これについては「目に見えない」事が問題だと思うので、Googleスプレッドシートにタスクのリストアップを行って、担当者と進捗を可視化します。

 

事前準備を分担して担当者と進捗がわかるように

事前準備を分担して担当者と進捗がわかるように

 

また、競技当日は、無数にある項目の中から、優先度をつけて対応を行う必要がありますが、運営からのとめどない攻撃や、次々と発生するインシデントで、脳の判断リソースやSAN値がガリガリ削られていきます。
そんな状況でも、少ない判断リソースで行動の選択が出来るよう優先度付きでタスクをリストアップしておくと多少の効果があると思います。
※ 優先度付けが間違っているという罠もありますが、、、

 

対応項目に優先度をつけて管理

対応項目に優先度をつけて管理

 

成果物の集約

各自の担当範囲が絞られてくると、競技当日に向けて、想定される技術コンポーネントの操作方法や堅牢化の手順、スクリプト、各種文章のなどの用意に取り掛かります。
用意した成果物をチャットで共有するのは良いのですが、そうすると、他の会話に流されてしまって探すのが大変になります。
ということで、Googleドライブに共有フォルダを作成して、そこに成果物をアップロードしてもらうようにしました。

 

成果物のアップロード場所を用意

成果物のアップロード場所を用意

 

当日は常時ボイスチャットに参加

当日ですが、会話の混線を避けるために各部門ごとにボイスチャットを用意して常時会話が出来る状況で作業を進めました。
設定の依頼や状況確認などはボイスチャットを行き来して対応します。
この辺は、例年のように会場を走り回る必要が無くて楽だったなと思います。

 

各チームごとにボイスチャンネルを用意

各チームごとにボイスチャンネルを用意

 

どれだけやっても問題は発生する

これまで色々書いてきましたが、いくら準備したところで必ず問題は発生しますし、計画は遅れます。
だって、人間だもの。。。
口頭で依頼を受けたが担当者がアサインされず放置されたタスクや、インシデントの発生による緊急度が高い割り込みによって、中途半端に遂行されたタスク等々。。。

それでも、当日はボイスチャットでのリアルタイムな状況共有や、各自の担当やタスクの進捗状況を管理するスプレッドシートがあったおかげで、ある程度はカバーしあえたと思います。
大事なのは、想定外の事象が起きても一息つくこと、コミュニケーション、そして、日頃の準備です。
フーリンカザン、チャドー、そして、フーリンカザン。
古事記にもそう書かれている。

結果発表

さて、気になる結果ですが、個別の評価項目では「技術点」と「対応点」で1位を獲得する事ができました!
肝心の売上はあまり伸ばすことができませんでしたが、その点は、諸々反省点が多いので次に活かしたいです。

技術点と対応点で1位!

技術点と対応点で1位!

 

売上では真ん中くらい。。。

売上では真ん中くらい。。。

 

Hardeningに参加しよう!

最後になりますが、現実に近い状況でインシデントを経験できる場として Hardening はとても貴重な機会だと思っています。
ある日突然、自社のWEBサイトが改ざんされたり、第三者から情報漏えいを指摘されたとき、一体どれだけ対応できるでしょうか?
実際のインシデント対応の現場は、問い合わせ電話の嵐、報告を迫ってくる上司などなど、緊迫した場面になることも想定されます、そうなった時に冷静な行動で被害を食い止められるよう、
または、被害に合わないように予防策を講じされるよう、是非、安全で苦しいインシデントを体験してみてはいかがでしょうか?

  • shareSNSでシェア
  • Facebookでシェアする
  • Xでシェアする
  • Pocketに投稿する
  • はてなブックマークに投稿する

この記事の筆者

筆者