hardening2023 generativesに参加してきました - 調べて、学ぶ

調べて、学ぶ

検索したり実験したことを覚えとくブログ

hardening2023 generativesに参加してきました

もくじ

  • ぼやき
    • hardening=ハー「ド」ニング
    • もう5回目ですよ
  • 振り返り
    • 参加表明・募集通過
    • チームビルド
    • 本戦(Hardening Day)
      • の前夜
      • そして本戦(起きたこと)
        • やらかし(失敗)
        • 上手くいった(成功)
      • MP(MarketPlace)
    • Analysis Day
    • Softening Day
      • 各チームの発表
      • 運営より
      • 結果
  • そして旅は続く

ぼやき。

 毎年繰り返しますが...  

hardening=ハー「ド」ニング

何度でもいうぞ。ハー「デ」ニングと言ったら運営の人から羽交締めにされてボコられるので気をつけよう。

  • ググれば出てくる「堅牢化競技」
  • 勝負は売上金額=PC詳しくなくても参加できる。来たれ営業の神。
  • 売り上げるためにはサーバの稼働が必須。来たれ修羅場(イン/アクシデント)をくぐりし者
  • 準備期間は5週間
  • 見知らぬ人とチームを組んでサーバを守れ!
  • winもlinuxもあるよ!

もう5回目ですよ

2018の札幌開催から今回のルスツ開催。年もとったことだしそろそろ...と思いつつも止められない。まだ旅路は続きそうだけど、

  • 毎度何かしらのトラップに引っかかり暗澹とした気分になる
  • オンライン開催が続いているのと生来の出不精で東京に行けない=フルで満喫できてない
  • 毎年スタートラインは「前回の記憶を持っていない人々」とのパーティ編成。ガチで「何回目のループだ!?」という気分になる。

たとえ優勝してもこのループを抜ける世界線に辿り着けない気がする... これだけ出ていると、メンバーに楽しんでもらいたい・またきて欲しいという気持ちが強くなり、一人で騒ぎすぎていないかちょっと気になります。

振り返り

参加表明・募集通過

7月初めにアーリーバード(先行予約)のエントリーが発表され、運良くこちらに選ばれました。(※) 8/20に全参加者が決定し、今年はチーム10(自分含めメンバー9人)でチャレンジです。 ※ツイッタ(今はX)で「HardeningProject(@WASForum)」をフォローすると気づきやすい。

今年のメンバー

  • 自分(情シス)&同業者一名、大学生、セキュリティコンサル、プロマネ、レッドチーム、製造業が1人ずつ、大学じゃないけど諸事情で勉強中が二人。
  • ハードニング経験者は四名。

役割分担

  • 初ミーティング時に自己紹介シートを埋めてもらうと、今回は技術志望が少ない。
    スタートはど定番の「振られたらなんでもやります」。 ...そうじゃない。もっとガツガツ行こうぜ。
  • 技術志望が少ない=ん?俺も入っていいのかな?な雰囲気だったので今年は技術側へ。
  • ついでに”リーダー経験があります”と言ったら「ではよろしく」という流れで2年ぶりのリーダー(※)
  • どうせ社長呼ばれるんだろ ということで社長とリーダーは分離(もうアレは勘弁)。ただ、社長不在時の判断はCEO・CISOで行う。

※リーダー:主に運営とのやりとり・連絡役ですが、名前の通り「リードする人」なので、時々「そうしましょ」「やめましょ」と決めなきゃならないのですが、リードするのが苦手なので「ご意見募集」で皆さんからヒントもらって「じゃ、こうするね」という形で通してます...

ミーティング

  • 毎週月木の20時から約1時間(過ぎたら「今日はこれまで」とする。ホワイトだ...)
  • 議事録はesaMarkDown大好きなので、個人的わがままという形で採用
  • 後半から月曜:全員で打ち合わせ、木曜:テック・ビジネスで分かれて打ち合わせという形に。お互い気づいたことを月曜に検討。
    →お仕事が長引いている人にとっては20時開催は大変だったかも。(21時でも良かったかも)
  • リーダーなのでファシりたいところですが、上手な人(セキュリティコンサルさん)がいたので基本お任せ。自分はなるべく議事録に専念(喋りながら書くの苦手)。
  • 勉強中Aさん、製造業さん、プロマネさんが組織図・BCP対策を策定。クオリティ高い。  

    自社を取り囲む相関図

  • 自分はずっと顔出しするようにしてました。(モバイルの人&回線細い人、ごめんなさい)
     →とにかく顔と名前を覚えてもらいたい&覚えたいので。名前を呼ぶと印象よくなったり(ネームコーリング効果というらしい<まんまやん)、自分ごとと捉えてもらえる(はず)ので、名前呼んでから話すことを心がけてました。

  • 【ロゴ・PVについて】こういうのって大概「絵力がないので」と尻込みするのですが、幸いにもこの分野に強いメンバーがいてあっという間にできました。勉強中Bさん、めっちゃ器用。

    あっという間に作られたロゴ

その他

士気をあげよう! というわけでもないのですが、「お揃いのTシャツ」「チームロゴステッカー」を作ることに。 いいねぇ、こういう雰囲気、おぢさん好きだわ。
競技全体のコミュニケーションツールはdiscordを使っており、他のチームの動向も(公開範囲なら)参照可能なので、「他のチームでステッカー作ってたら交換しましょう」と営業しておく。

ユニフォーム!

その他2

自主訓練ということで、自分でec-cubeを立てて使用感を確認してる人がいました。自分はvyos(ルータ兼FW)を仮想で入れて使ってたのですが、バージョンが新しいせいかどうもネットの情報と動きが違ってハマってました。とりあえずコマンドをメモしていたのがあとで効いてくる。

本戦(Hardening Day)

の前夜

オンラインでしか顔を見てない人々とやっと顔合わせ。画面で顔出ししてもらってたから、すれ違うだけで「あ!」「お!」と指さし合うw ルスツは小休止スペースが充実しているので、一角を借りて本戦の役割・やることの順番を書き出す。
このときそっとサーバのIP・URLリストを書き出していたレッドチームさん、まだ会場に移動中なのに当日のタスクリストを作っていた勉強中Bさん、ものすごく助かりました。ありがとう。 助けられたついでに商品画像と説明もお願いして深夜2時すぎまで作ってくれてありがとう&ごめんなさい。 この辺のものはできる人がやるスタイルで良かったかも。

そして本戦(起きたこと)

色々とやらかしたりやられたりしましたが、ネタバラシにならない程度に。

やらかし(失敗)

  • remotedesktopツールで入力欄を間違えて繋がらない。
    macリモートデスクトップを使ってるのですが、いつもなら間違わない入力場所をなぜか間違いしばらく考え込む。

    入力場所を間違えてあたふた

  • 電圧降下?でPCの充電が止まる
    バッテリーが赤ランプになって気づいた。何度ACを抜き差ししても認識せず。メンバーのアダプタを借りて対応。(部屋に帰ったらちゃんと動いた。なんだったんだ?)

  • PCのバッテリ残量がわずかになって焦り、コンセントを抜き差しするうちにハブの電源を抜く。
    痛恨の極み。自分一人ならまだしもメンバーに迷惑をかけたのは本当に申し訳なかった。

  • メンバーのノートPCの画面の後ろにあったお茶が倒れる(故障なし。水気は離れたところに置きましょう。)
  • 詳細は伏せるけど不正侵入を受けたので切断&パスワード変更
    これを意図したわけではないけど、導入したツールで攻撃のログを掴むことができました。after the carnival...

  • 怪しげな侵入者
     暗号化被害の前後関係が不覚ですが、ユーザのパスワードを変えた後に何気なくタスクマネージャを見たら自分(administrator)以外のユーザ名が。技術班のメンバーに聞いても誰も使ってないという。さよなら。

    貴様、何者だ!

上手くいった(成功)

  • vyos使えました。
    本番当日まで不安だったけど、練習用に作ったvyosのバージョンが高くて微妙にコマンドのパラメータが違うのに手こずってました。きっと本番環境は安定版だろうと踏んで、それ用のコマンドラインをメモ帳に溜め込んでおいたら見事に的中だったので、コピペでサクサク作業できました。("show version"したときにちょっとガッツポーズしてた)
    FWのブロック対象はレッドチームさんがサーバのログから洗い出したIPをdiscordに載せてもらい、私がひたすらに登録。

  • 侵入経路の発見
    今年はとあるwindowsサーバのフォルダが暗号化被害を受けました。バックアップをとってなかったのは痛恨の極みですが、幸いなことに大和セキュリティのEnableWindowsLogSettingsで監査機能をonにしていたため、どこからやられた(暗号化命令を出した場所)が発見できました。
    ログをもとにセキュリティコンサルさんが「防止のためにこれやってください」と指示をくれたので第2波を防ぐことができました。
    このログを自端末にコピーすること競技終了数分前に気づいたのですが、惜しいことに間に合わず。

    powershellによる暗号化発生時刻(詳細に実行端末やアカウントまで載ってました)

  • 暗号化...天才だ!天才がいる!
    先に書いた暗号化被害ですが、暗号化されたフォルダ群を見回っていると、いかにもな「.ps1」ファイルが見つかる。
    テキストエディタで開くとまさしく犯行に使われたファイルだったので「暗号化のソースファイルがある」と声を上げたらレッドチームさんが見に来て、ざっと見た後ぼそっと「...戻せるかもしれない」と言ってくれたのでサーバの操作ごと渡しました。
    結果、1時間ほどでファイルは復旧して脅迫から免れるという快挙を成し遂げました。人智の及ばない所業🤩

  • 作業報告書の提出がギリギリ
    作業報告書は競技終了時間前に提出するのがマストですが、今年は例年以上にテンパっていてビジネス班にお任せ(プロマネさんありがとう)でした。伝えることは伝え、あとは内容確認してして送るだけというタイミングで担当メンバーPCでファイルが開けない事態に。
    急遽こちらで巻き取り、終了2分前の滑り込みで送信しました。(このバッファが取れたのは社長である勉強中Bさんの時間管理のおかげ。)

  • 後から聞いた話。当チームは最後の時間で割引セールを行い、持っていた在庫のほとんどを捌いたそうです(割引率5割を即断した製造業さんの潔さと言ったら...ありがとうございます。)

  • こんなヒリヒリした中でも空気感の違う二人
    レッドチームさんが学生さんの大学のOBらしく、学生さんをアドバイスしてた(なんて余裕だ)
    たしかに指導するにはうってつけな環境だけど、レッドチームさんのハイスペぶりに舌を巻く。

MP(MarketPlace)

例年はオークション状態で金額がインフレーションしていたMPですが、ドラフト指名制になりました。(公正になったと思います) ...が。

  • WAF取れなかった!
    全参加者羨望のWAF,EDRは獲得できず。2年前の素手で戦った記憶が蘇る。

  • NECさんめちゃ助かる
    最後に獲れたNEC「サーバ監視&通知サービス」が、想像以上に働いてくれました。「チャットでお知らせくれる程度かな」と思っていたら、人間が走ってきて息を切らせながら「不審なファイルがあります!」とか「webshell置かれてます!」と教えてくれる。やりとりはセキュリティコンサルさんがやってくれて、「言われたファイルをリネームしましょう」「ポート塞いでください」と的確に指示してくれました。

  • JPCERT/CCさんを使いまくる
    数あるMPのなかで唯一の”タダ”で提供されるサービスJPCERT/CCを購入(同業者さんが購入してくれた。みんなうっかりしてました。ありがとう)し、ことあるごとに「変なメールきたんだけど開けてよい?」「このURL踏んで大丈夫?」と聞いたり、逆に「こんな被害があったから他チームに共有してください」と情報提供したり。JPCERT/CCさんも「他のチームでこんな被害ありましたから気をつけて」「リークサイトで晒されてるよ」などの連絡をいただき、気づかなかった攻撃への対処ができました。連絡役は主に勉強中Aさんが担当し、学生さんが「これも連絡したほうがいいんじゃ?」と気づいてくれる。みんなよく気づくな。

という、いろいろなイベントをこなしHardening Day終了。

Analysis Day

いわゆる「ふりかえり」の日。振り返るためのテンプレートは運営で用意してくれているので、各々が自分で書けそうなところを埋めて終了。この資料を綺麗にまとめてSoftening Dayに発表します。いままでずっとお任せな役だったけど今年は自分がやろうか? でも東京か...と考えていたら、社長を務めた勉強会Bさんが「発表は私がしたい」と言ってくれたのでお任せすることに。 HardeningDay終了後の雑談や、このAnalysisDayのときもこんなコメントが出てました。

  • 「テックがしっかり堅牢してくれるからビジネスに集中できた」
  • 「ビジネスが売り上げを作ってくれたから集中して堅牢できた」

これがお互いから出てくればチームとして大団円だと思います。
ぱっと見はサーバを堅牢化してスコアを競う技術大会ですが、世の中は「売り物があって、サーバを使って売り捌いている」のであって、サーバが動けばそれで良いわけではないことに今更ながら気づきました。
ビジネス側にもビジネスのスキルや戦略があり、ハマれば売り上げがどんどん上がっていく。5回目でやっとHardeningの真意というか意義に辿り着けた気がします。<遅い

Softening Day

Hardeningの総括をする日。競技が終わってから数日、東京に行くべきか悩んでました。
「たった1日、移動を考えると日帰りなんて無理でしょ?」「オンラインでも見れる」「頑張りはしたけど良くても2、3位でしょ」と言い聞かせる自分と、「これほどやり切ったんだから見届けるべき」「このメンバーで会えるのはこの日が最後」「こんな期待薄な状態で1位とったら最高だろ」という自分。
実際に競技終了1時間前の売り上げ状態は、ちょっとトップに追いつくのは厳しいなと思ってました。
それでも。それでもこのメンバーと最後まで見届けておきたいという気持ちが強く、家族に「どうしても行きたいイベントがあるから東京に行かせて」と伝え、飛行機・宿もろもろを手配しました。

各チームの発表

もうね... これみれば十分です。
午前中に各チームの取り組み・振り返り(売り上げ予測を緻密に立てたり、技術に8割近く力を割いていたり、MPの相手で忙殺されたり)があり、当チームで締める。

復号にどよめくdiscord

ここでも気づきを得ましたが、チームリーダーの役割って表向きは上述の通りですが、本当の意味でのリーダー(leader:導く人)は競技の間も動き回って「いまどう?」「次あれやって」「今の状況がこうだからこっちにしよう」と、文字通りチームを導く人なんですよね。そういう意味で自分はリーダーとして力不足で、社長役の勉強中Bさんが完全無欠のリーダーでした。社長、ありがとうございました。

運営より

午後からは運営側のこの日に至るまでの「俺たちのHardening」。三日でスコアボードを改修したり、20ページしかできてない資料を1日で106ページにしたり、競技中にプロバイダを切り替えて繋ぎ直したりとか、文字通り「奇術」にしか思えないことをつらつらと明かしていく運営陣。こんな話聞いてたら俺たちのレベルなんて...と苦笑する。

結果

結果発表は各チームの売り上げ・技術点・顧客点・対応点・経済点・協調点・経営点が評価されるのですが、チーム1から順に読み上げられる中で「やはりトップではなかったか。でもこの場にいられることが嬉しい」という清々しさでリラックスしてスコアを眺めてました。
...が、最後に読み上げられた当チームのスコアは最高点を刻み、「え?え?」となりながら見守ってる間に「優勝チームと思われる方はステージへ」と呼ばれました。長々書いてますが「優勝」です。
力が抜けた状態でショックを受けたので感情が追いつかなくなり、ちょっと泣きそうになりました。(あのままインタビュー受けてたら本当に泣いてたかもしれない)

優勝に伴いいろいろと副賞をいただいたのですが、気になる方はsofteningday(上記リンク)のライブを見て下さい。 スポンサー賞を授与いただいたKDL様、副賞を授与いただいたダイアモンドスポンサーのGMOサイバーセキュリティByIERAE様、sky様、NEC様、そして実行委員会の皆様、”これから”に繋がる、やる気になれる豪華なプレゼントをいただき誠にありがとうございました。

そして旅路は続く

最高な仲間と最高の時間を過ごすことができました。”ぼやき”にも書きましたが、いい年なんでそろそろ後進にいろいろ渡したり、布教に勤しもうかとも考えてました。が、この高揚感はホントに病みつきになる。まだ譲れない。

来年も転生して、チームとしては”ニューゲーム”だけど、個人としては”強いままニューゲーム”。
まだまだ勉強することだらけだし、チームに伝えることも山ほどある。 オープンには語れない役割もいただけそうな感じだし、まだまだおぢさんも頑張らねば!