task4233のめも

書きたいことをつらつらと

Hardening 2020 H3DXに参加してチーム優勝してきた

はじめに

2020年11月13日(金)から14日(土)にかけて開催されたHardening 2020 H3DXに参加し, チームおにぎりまみれの一員として優勝してきました。

f:id:task4233:20201126194720p:plain

本競技での私の役割は技術部門の「なんでも屋」だった気がします。その辺りの話も含めながら, 本イベントの概要, 競技までの流れと事前準備, 競技中の様子, 全体の感想を書きます。

参考までに, 他のメンバーの参加記のリンクを貼っておきます。本記事よりもクオリティが高いので, 次回以降参加する方はぜひチェックしてみてください!

nomizooon.hateblo.jp kiryuanzu.hatenablog.com sirabete-manabu.hatenablog.com

目次

Hardening 2020 H3DXとは?

ざっくり言うと, 外部からの攻撃を防御しつつ, 売り上げを最大化する競技です。 公式の説明は下記の通りです。

Hardening競技会は、基本的に、チームに託されたウェブサイト(例えばEコマースサイト)を、ビジネス目的を踏まえ、降りかかるあらゆる障害や攻撃に対して、考えうる手だてを尽くしてセキュリティ対応を実施しつつ、ビジネス成果が最大化するよう調整する力を競うものです。 ref: https://wasforum.jp/hardening-project/hardening-2020-h3dx/

そして, H3DXは下記の3要項を指します。

  • Deep Trans-organization
  • Digital Transformation
  • Dependence Excercise

意味をお尋ねしたところ, 「あまり深く考えなくて良いよ」とのことでした。

競技までの流れと事前準備

競技までの流れは, 応募->チーム確定->役職決定->競技準備->競技本番でした。 10月14日にチーム確定メールが来たので, 11月13日の本番までの約1か月間が準備期間でした。私は運悪く, 急遽確定した教育実習と事前準備の期間が丸被りしていたので, 事前ミーティングには殆ど参加できませんでした。その分, 競技前日のミーティングで出来ることを精一杯やろうと決めていました。

結果として事前準備で貢献できたのは, パスワード変更用のシェルスクリプト作成くらいだと思います。このスクリプトUbuntu, CentOSサーバ内のbash_historyにも履歴が残らないので採用しました。特に不具合報告もなかったので, 無事動いてくれたと思います(たぶん)。

それと, 使われたのか知りませんが, 1分くらいで意外と上手く書けた目玉商品の紹介画像があるので, ここで供養しておきます。

f:id:task4233:20201126200924j:plain:w300
サブスク『諸刃の刃』

他に, チームとしてやったことや事前に用意したものは, のみぞーさんや, ばばさんが, 詳細にまとめてくださったので, そちらをご参照ください。

nomizooon.hateblo.jp sirabete-manabu.hatenablog.com

これらの記事でも少し触れられていますが, 各メンバーが率先して何かをこなそうとしていたこと各メンバーが提案を快く受け入れていたことが非常に印象的でした。 例えば, チーム用Slackの作成やミーティングの提案, スキルチェックシートの作成, Discord, Trelloといったサービス利用はメンバー各自の提案であり, その全てがメンバーに受け入れられ実現していきました。私はあまり関われずに指を咥えて見ているばかりでしたが, こういった心強いメンバーと同じチームになれたのは本当に幸運でした。

後にのみぞーさんやあんずさんの記事で, リアクションを徹底していたことを知り, 次のイベントでは私もこのようなアクションを取ろうと思いました。思い返すと, 発言が虚空に消えそうな雰囲気を感じたときにコメントを拾ってくださったことが多く, 不安が払拭されていったのを実感がありました。

競技中の様子

Hardening Day

外部からの攻撃を防御しつつ, 売り上げを最大化する競技の日でした。この日を技術面とコミュニケーション面に分けて振り返ります。

技術面について

技術面において, 私は「何でも屋」として振舞っていたつもりです。

事前に決めていた私の役割はWebページのhttps化だったのですが, 今回のECサイトはデフォルトでhttps化されていました。そのため, 私の仕事はパスワード変更くらいでした。それが終了したときには, 他のメンバーの方々はそれぞれの仕事を始めていたため, 他のメンバーのサポートに入ろうと思い, 「何かやることがありませんか?」と逐次聞くようにしていました。 その結果, WordPressの管理, Webページの情報差し替え, 文書用のスクリーンショット準備, EDRのインストール, SSL証明書の期限切れ報告といったことをする何でも屋として動いていました。今回の競技の目的は売り上げを最大化することだったので, 地道にミッションをこなすことでほんの少しはチームに貢献できたのかなと思っています。

これは余談ですが, メンバーから「アンダーバー入力できる人はEDRのインストールお願いします!」というお願いがきて私が対応した際に, クライアントのGuacamoleの仕様で表示されていないだけというのは泣けました。直接/etc/vconsole.confを編集しても改善されなかったときは🤔となったのをよく覚えています。

コミュニケーション面について

コミュニケーションは, テキストベースのSlackと音声ベースのDiscordにて行っていました。ここで私が意識していたことは, テキストベースで発言した上で, 反応がなければ音声ベースで発言するという, 2段階の発言を行っていたことです。よく考えれば普通なのかもしれませんが, テキストベースでの発言を1度挟むことで, Discordの帯域を邪魔することが少なかった気がしています(気のせいかもしれません)。

また, この2段階の発言を行うことで, 発言の取りこぼしも減ったと考えています。とはいえ, 実際はチームメンバーの意識付けのおかげだったのかもしれません。

Softening Day

Hardening Dayの振り返りや, 攻撃者のkuromame6*1による講評等が行われた日でした。

急遽CEOのさんごさんが発表できなくなったため*2, 発表はのみぞーさんが行ってくださいました。結果として, 時間ピッタリで素晴らしい発表をしてくださったので, 非常に心強かったです。

全チームの発表を聞いていると, チーム内でのメンバ同士のやり取りが円滑に出来たか否かで大きく結果が変わったように感じました。これは, 競技後に他のチームの方にお聞きしても同意されていたので, やはりそういうことだと思います。

講評

講評を大きく2つに分けると, インシデントについてと親会社への報告についてでした。

インシデントについては, 自分たちで起こしていることが多いとのことでした。本競技では, kuromame6はDNSに全く触れていなかったそうなので, DNSの障害は完全に自己責任ということでした。また, フィッシングメールに返信してしまったり, FWで操作用のポートまで閉じてしまったりしたチームもあったようなので, わざわざインシデントを作ってお金を払っていたチームもあったようです。 その他に, 事前にタスクスケジューラに埋め込まれたPowerShellスクリプトや, DB情報をダンプするcronも設定されていたようなので, 攻撃されていないからといって安心するのは危ないそうです。これらの布石は, 事前に配布された競技背景にヒントとして埋め込まれていたそうです。

親会社への報告は, 資料を用意するか否かという問題のみならず, 情報が洩れているのか漏れていないのかが不明瞭な点, 売り上げに対して情報漏洩がどのような作用をもたらすのかを考慮していなかった点も問題点として指摘されました。

全体の感想

結果として, つよつよチームメンバーのおかげでグランプリをいただけましたが, グランプリをいただけたことよりもチームでワイワイしながら競技に参加できたことが良かったです。

また, 準備不足だったと思うことは報告書のテンプレート作成でした。 今回は怒られイベントが発生したために強く感じたのかもしれませんが, 情報漏えいが確認できた時点で資料作成のテンプレートがあると良かったかなと思います。 怒られイベントで「え?君たち報告会に資料もなしに来たの?」などと言われているのを聞いて, 胃痛がしたのをよく覚えています。

事前に情報漏洩時の対応についても決めていたので, 生かしきれなかったのも残念でした(作ってくださったさんごさん申し訳ないです)

これは余談ですが, 情報セキュリティインシデント報告書を調べたところ、JUCE(私立大学情報教育協会)から公開されているものがこちらにありました。参考までに。

おわりに

今回の競技は事前準備も含め, かなり長丁場のイベントだったと感じています。その分, メンバーの強い協力もあって本番中はワイワイしながら競技に取り組めたのかなと考えています。そのため, また競技に参加できることがあれば, リアクションを徹底することを強く心に留めておきます。

最後になりますが, 運営メンバーの皆様, そして参加者の皆様, 非常に面白いイベントにしていただき本当にありがとうございました!
またこのようなイベントは開催されると思うので, 興味のある方は参加してみてはいかがでしょうか?

*1:攻撃者で構成されたチームのことです

*2:グランプリのCEOは現地に招集されたため