初参加です
参加の経緯
過去,MiniHardening #4.3とMicroHardening V2に参加したことがあり,本戦も面白そうだと思って試しに応募してみたら,
通りました
というわけで2022年11月15日に開催された,Hardening 2022 Decade #H2022Dに参加してきました.
0. Hardeningとは?
私個人の認識なので間違っているかもしれませんが…
- 競技時間は8時間
- チームでサーバを守る
- コーポレートサイトやECサイトが複数構築されている
- コーポレートサイトは作りかけなのでいい感じに作る
- 検証環境や用途不明なサーバもある
- チームに割り当てられるサーバやPCに攻撃が来る
- 攻撃から守りつつ,正規の通信を通し,売上を計上する
- 売上が一番高いチームが優勝
- Hardening Day,Analysis Day,Softening Dayの全てに参加することが最低条件
今年の開催概要は以下のとおりです.
今回はオンライン・オンサイトのハイブリッド開催でした.
私はオンサイトで参加しました.
競技会への参加費は無料なのですが,交通費は自費です.当たり前ですが…
1. 参加決定~準備
競技参加者として選定されてから,チームメンバが発表されます.
同じチームのメンバがToに入っているので,まずメールで連絡を取る必要があります.めんどくさかったのでチームメンバの用意したDiscordサーバに移行し,そこでチーム内の連絡を取り合いました.
チームメンバー(敬称略)
- Yagi
- napa
- Haru(私)
- HEP
- KJ
- miyuki_samitani
- Yooookiii
- yururi
- コナン
ちなみに,チーム内に学生は私しかいませんでした.
競技までに準備したこと
- 自己紹介
- チームリーダ,チーム名の決定
- 情報共有,資料のまとめ方の選定
- Hardening経験者の体験談を基に基本的な対策
- 過去大会の振り返り(Softening Dayのアーカイブから参照)
- 競技に使用されるであろうWebサイトの操作練習
- 脆弱な部分の想定,対策の準備
- チームフラッグの作成
- 旅程の共有(宿泊ホテルや到着日など)
- マーケットプレイスの選定
- 持っていく機材,ケーブルの整理
チームのモットー
- 作業前,作業後にスクリーンショットを取って保存
- 作業ログを必ず残す
- サービスは何があっても停止しない
- とにかく喋る
- 決裁権はYagi(CEO),不在の場合はnapa(CISO)
- 臨機応変に,いい感じに
2. 競技前々日
この日は何もアクションが無いと思いこんでいたので,沖縄観光をしていました.
が,16時頃,唐突に競技参加者向けのDiscordサーバにて,連合制度がある旨の連絡が飛び込んできました.
2.1. 連合制度とは?
- 複数チームで構成される
- 連合同士で売上を競う
- 売上の高い連合からグランプリが選出される
- 売上向上のために協調性を持って動くこと
今回は1,3,5,7,9がODD製作委員会,
2,4,6,8,10がEVEN製作委員会として,連合を組むことになりました.
この日は名護に移動しつつ沖縄観光をして,普通に寝ました.
3. 競技前日
競技前日の夕方に,競技環境の構成や接続方法,ログイン情報,達成しなければならないミッション,ルールなどが記載された資料が運営から送信されました.
なんと117ページもあります
チームメンバーがおおよそ同じホテル,その周辺に宿泊していたので,ホテルのフリースペースのような所に一度集まり,メンバー全員で読み合わせを実施しました.
実施した事柄は資料の内容まとめ,そこから対応する事象の整理です.
大体24時位まで集まって,その後個人作業でしたが,私は1日中名護市を歩き回っていたせいで25時30分くらいに気絶してしまいました.駄目すぎる.
4. Hardening Day
4.1. 朝
なんとか起床に成功しました.
印刷を忘れていた名札の印刷をして,会場入りしました.
会場の外には珍しく季節外れの蚊がいました.
刺されることはなかったので特にダメージはありませんでした.
会場入りしてまずやることは,電源の確保と,ハブやラップトップの配置です.
会場の机はそれほど広くないので,19インチのL2SWなどの巨大な機器は配置できません.ネタでも持っていかないほうがいいです
他のチームメンバの用意したハブだとポート数が不足していたので,ハードオフで300円で買ったハブを持ち込みました.
競技開始宣言後,運営の制作した動画が流れます.
開始宣言後1時間は攻撃されないので,その間にサーバの堅牢化を実施する必要があります.
4.2. 競技中
競技中のスコアの推移や現地の様子はYoutubeにて配信されていました.
競技概要なども解説されているので,以下の動画を見たほうがわかりやすいかもしれません.
弊チームは,役割を決めない,やれる人がやるスタンスで運用していきました.
4.2.1. 競技中に実施したこと(技術編)
- 各種サーバのログイン方法,パスワードの変更(公開鍵認証へ)
- Windowsのログインパスワード変更
- 不要なユーザのロック
- サービス自動起動スクリプトの仕込み
これを,チームメンバのmiyuki_samitaniさんとyururiさんに実施してもらった後,チームメンバ全員が環境に接続し,サーバのバックアップなど,それぞれ必要な作業を開始しました.
環境への接続に思いの外時間がかかってしまったため,先述した作業以外があまりできませんでした.(Webアプリのパスワード変更,db接続パスワードの変更,各種バージョン確認など)
脆弱なパスワードのまま最後まで走り抜けてたものとかありました.
問題なく動いていたのか,そうでもないのかは怪しいですが…
phpが動いているサーバにWebShellが仕込まれたり,公開ディレクトリの権限がめちゃくちゃにされたりしました.
権限周りは発見から3分で修正できましたが…
終盤に,コンテナ上に構築されたECサイトの証明書の期限切れが発生しましたが,証明書の差し替えがうまくできずに終わってしまいました.
4.2.2. 競技中に実施したこと(運用編)
- ショップから発送情報の取得
- 配送業者へのデータ登録
- 商品の発注
- 各種稟議書の作成
- ショップへの在庫補充処理
- メール対応
私が実施したものは,一部ショップから発送情報の取得,配送業者へのデータ登録,商品の発注,各種稟議書の作成です.
あるショップでは発送情報の取得方法が見つかりませんでした.
チームメンバのnapaさんが他のチームに方法を聞いて回っていましたが,そもそもサーバが動いていないところが多かったようで,情報が得られませんでした.
そのため,このショップに関しては発送業務ができませんでした.つらい.
4.2.3. マーケットプレイスの購入
協賛企業から,WAF,人材派遣,脆弱性診断サービスなどが提供されます.
最初にオークションで入札しましたが,落札できませんでした.
途中で脆弱性診断サービスを購入しましたが,そこまではマーケットプレイスに頼らず運用していました.
4.2.4. 作業報告書の作成&提出
競技時間内に作業報告書を作成し,競技環境内のメールで送信する必要があります.
今回,弊環境ではありませんでしたが,メールサーバが落ちていると送信できないので,メールは死守する必要があります.
提出できないと減点されます.
4.2.4. 競技終了
競技環境からログをもらって帰ろうと思いましたが,資料にデータ持ち出しに関する規則が書かれていたので,万が一のことを考えて持って帰るのを断念しました.
最初はサーバサイドをやるつもりで準備していましたが,かなりいろいろなことをやったので疲れました…
5. Analysis Day
Analysis Dayは,Hardening Dayの翌日に開催され,Softening Dayに向けて資料のドラフト版を作成する日です.
この日は名護市内のコワーキングスペース howliveにて,Team05の方と作業しました.
弊チームで実施したことは次のとおりです
- 個人振り返り
- メンバーの持ち寄ったお土産を食べる
- 発表資料の作成
各地のお土産は,Hardening Dayで食べる予定だったのですが,全然そんな時間取れなかったのでこの日に回りました.
昼食は幸ちゃんそばを食べました.
この日は那覇に戻るメンバーが多かったため,早めに切り上げて移動を開始しました.
6. Softening Day
週末に東京・竹芝にて開催されました.
この日は競技ではなく,振り返り会が主です.
この様子もYoutubeにて配信されており,アーカイブも残っています.
6.1. 概要
- 各チームの振り返りの発表
- チーム紹介
- チームで実施した準備
- 使用したツール
- 当日の動きなど…
- 競技の解説
- 評価項目
- ミッションの再確認など…
- 表彰
6.2. 各チームの振り返りの発表
Analysis Dayで作成した資料を基に10分程度で発表します.
ハイブリッド開催だったため,若干音声トラブルが発生していました.
お昼休憩の時間に,Hardening Dayでは会えなかったフォーティ君に会ってきました.
かわいいです.
6.3. 競技の解説
Kuromame6の川口様から競技の解説,ミッションの達成度,その他に競技の裏話などがされました.
競技の裏で発生していた貴重なことを聞くことができ,非常に面白かったです.
また,この中で解説されていた,
コーポレートサイトに格納していた公開予定ファイルがURL直叩きでアクセスできてしまう問題が不正アクセスになるか否かの議論がかなり白熱していました.配信には乗っていないですが…
6.4. 表彰
お待ちかねの表彰です.
まずは各チームの参加証明書が公開.
弊チーム「あめちゃんランナーズ」は顧客点,協調点,経営点が1位でした.
続いて,各チームの見込み販売力が発表されました.
なんと見込み販売力では弊チームが1位…!
しかし,連合では大きく差をつけられ敗北.
グランプリには選ばれませんでした.
その後もスポンサー賞の授与が続きましたが,弊チームは表彰されず.
ただの最高得点獲得チームになりました.
(どうやらSoftening Day終了後,特別賞の授与が検討されていたようです.)
7. Hardening全行程を終えて
7.1. 体力がない状態で挑むと死ぬ
環境開示日でもある競技前日,普通に名護市で散歩をしていました.
そのせいもあってか,資料の読みあわせをしただけで滅茶苦茶疲れてしまい,個人作業があまりできませんでした.
7.2. 荷物は減らそう
普通に疲れます.
7.3. タスクを後回しにしない
優先順位が若干曖昧なまま競技をしていたため,パスワードの変更漏れが発生しました.
もう少しこのあたりはしっかりしておいたほうが良かったかも…
7.4. 声をだすことは重要
少しでも気になったことは声を上げて質問したほうが良いです.
情報共有がうまくできないと死ぬので.
このおかげで役割を決めずに走り抜けることができたのかもしれません.
8. 最後に
とても楽しく,貴重な経験になりました.
運営の皆様,他の参加者の皆様,本当にありがとうございました!
Team08_Haru