調べて、学ぶ

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

ハードニング2022に参加したハナシ

ハードニング(hardening 2022 decade)4回目の参加

3回目のwriteupはドラフト状態で眠ってます...

要点のみ。「ハードニングとは」

  • チームを組んで会社を衛ります。
  • 会社はショッピングサイト運営をしているので、ショッピングサイト(linuxサーバで動くdbやwebアプリ)を衛ります。
  • 会社なので当然事務方にwindowsサーバ&クライアントがいるのでこれも保護対象
  • 会社なのでコーポレートサイトがあるので、会社として体を成すようにコンテンツを充足しなければならない
  • linuxwindowsに区別なくサイバー攻撃が来るので、ショップ・事務PCどちらもダメージを少なくして運営しましょう
  • チームは面識がない人々で構成されるので、1ヶ月程度でチームビルディングします。
  • 攻撃されてしくじる(主にデータ漏洩など)と、社会的に怒られる(記者会見、上層部から詰め)イベントが起きる。

9月末 エントリーが決まる

  • とりあえずdiscordに入ってこい という主旨のメールが届く。メールには同じチームのメアドがtoに入っているので、人数と(人によっては)ドメインで所属がなんとなくわかる
  • ここでチームメンバーにコンタクトを取って、今後のやりとり方法を決める(うちのチームはslack)
  • メンバーに前々回一緒のチームだった「のみぞう」さんがおり、めっさ進めてくれる。
    • zoomを開催し、自分の画面を共有して議事録を書く(esa利用)
    • 会議は概ね1時間。決まらないことは宿題に。
      →高効率。うちの職場にも欲しい文化。
  • ここで自分の役割:ガヤおじさんとして「いない人への連絡」「あれあるぞ、これあるぞ」と煽る役。

10月 準備(チームビルド&情報共有)

  • 主にアイスブレイク、会議開始時に「最近のトピック」を持ってくる。
  • 経験者は本番時のタスクを全員へ共有し、各自でやりたい/できるタスクを決める
  • 幸いにも事務方やりますよ・インフラやりますよの人数バランスはいい感じ
  • この期間で各々がチートシート(本番ですぐ使えるコマンド集や設定ファイル)を作る
    • ちなみに自分はwindows人間なので、事務方ネットワークのActiveDirectory(主にグループポリシー)の設定に勤しんでいた
    • windowsのユーザパスワードは結構面倒な構成(英数大小記号込みの8文字以上)を求めてくるので、 それをoff
    • adminパスワードを変更、代理のユーザを作り、"ほぼadmin"に仕立てる
    • イベントログを一箇所に集めて監視したいので、イベントログのサブスクリプションを導入(結構ハマった)
    • 怪しいログを集めたいので、EnableWindowsLogSettingsにあるbatを参考にグループポリシーをつくる(エクスポートして本大会環境にもっていきます)
    • sysmonをクライアントにインストールさせる設定(com+越しにクライアントの管理画面を操作する想定)
  • ここで自分の役割:「そういえばアレどうします?」くらいしか言ってない...あとは世間話(時期的にCTFが重なってて、その話)

10月後半 マーケットプレイス

  • ハードニングの環境を衛るためのサービス(waf、お助け人員、外部から弱点監視 など)が発表されるので、「どれにする?」を会議。
    →あまりうまく話し合えなかった感。
  • 別チームの方が「マケプレだヨ!全員集合」という企画を立ち上げてくれて、マーケットプレイスで出店されるサービスのプレゼンを各メーカが プレゼンしてくれた。
    マケプレだヨ全員集合のお知らせ
  • これがものすごく有意義で、
    • 参加者は「それがどう役に立つのか」をイメージできる
    • 出店者は「これ、実世界でも同じことできますからね」をアピールできる。
  • ちなみにうちのチームは「バラクーダwafとNECの人員派遣サービスを買いに行くぞ!」となった(本番前日に)
  • ここで自分の役割:過去に使ったことのあるサービスの感想・情報提供(シスコはみんな欲しがるから高騰するぞ)

本番前日(ハードニングデイ)

  • 本番環境の資料(下記)が配られる
    • 背景事情
    • ネットワーク図や各サーバ・PCの設定資料
    • 本番中に行わなければならないタスク
  • 各チームで最後の打合せを行い、やること・順番を整理

本番当日

  • 今大会、初めての「オンサイト@沖縄」&「リモート(vpnで本番環境へ)」のハイブリッド開催
    →どっちもそれぞれの開催・参加経験があるから恐怖感は0
  • さぁやるぞ と思ったら、毎年恒例の「うまくいかない祭り」
    • vpnにはつながったけど、クライアントにログインできない
      →ネットワーク図を見間違えてIP間違ってた
    • マケプレに買い物に行けない(事象が謎のまま)
      →行ける人が代理
    • マケプレ、入札が必要なことをすっかり忘れてお買い物できず
      →販売元の計らいなのか(?)、結果的には購入できた。
    • シスコ製品、まさかの「高嶺の花すぎて入札なし」
    • drupalのコンテナを削除して再起動したら戻ってこない
      →あきらめた
      drupalが戻ってこない
    • (自分)クライアント(9台)のうちADドメインに入ってるのは3台だけ...
      → 3台はドメインに入れたけど、残りは放置(セグメント違うから諦めた)
    • com+経由(windowsのmmc)でクライアントを見に行ったら何故かエラー発生
      →わからないまま。これでクライアントのタスクスケジューラをモニタしようと思ってたのに...
    • 午後になってからあらゆるサイトがつながったり繋がらなかったり
      →今回の目玉。どうも複合的要因があるようで、結果的にはブロードキャストストーム状態になっていた模様。
    • ショップで買い物してくれたものを配送する業務があり、配送先を編集する作業がうまくいかない
      →こればっかりは「慣れ」しかないような。他チームはVBAcsvを編集してた模様。なるほど、だからofficeがあったのか。
    • 各ショップの管理画面に入れない
      → URLが変わったことに気づいてなかった。(これは単に自分が悪い。のみぞうさんesaのURLリストに変更後のURL書いてくれてたのに...ごめんなさい。)

とまぁ、いつもどおりの「安定のドタバタ感」で競技を終えました。 外的要因の被害よりも内部のトラブルシュートのほうが多かったな...

ソフトニングデイ

メインのハードニングデイが終わったら、デザートに”ソフトニング”があります。(ハードニングをやった週の週末に開催)

  • チームごとにハードニングの振り返りを発表
    • チームで行った準備
    • 当日のインシデント対応
    • マーケットプレイスをどう活用したか
    • ハードニング(準備から本大会までの1ヶ月)で得たもの などなど
  • 今大会の目的(タネ明かし的なもの)
    • その中で、非公開にしているブログ記事も、実は見えてしまう という話があった。なんか聞いたような記憶があるな...と思ってググったら、そこそこ関連のある話 がヒットした。気をつけよう。
  • 運営側の”戦い”の記録
  • 表彰(ハードニングの優秀チーム) もう、ハードニング参加者にとってはご馳走以外のなにものでもないほど「うんうん、それな」の嵐
  • 詳しくはyoutubeで「hardening」で検索するといいよ

振り返り、次回に向けて

そろそろ区切り良く参加をやめようかな と思いながらの参加でしたが、毎度毎度学びが多すぎてやめられない。困った。 次の作戦として、

  • psexec使う。グループポリシーがあってもこれがないと正直クライアントの制御(即時反映とか)に限界がある
  • hayabusa導入。
  • ショッピングサイト(EC-Cubewordpress(の、welcart、woocomerece))のお勉強。
  • windowsRMSの検討(CAL発生するやん...)

今回の目玉(に思える)

うちのチーム(team02)は、大会中午後からネットワーク激重になる状態が続いており、途中から「シャットダウンしたサーバに向かってarpを吐きまくっている=ブロードキャストストーム」が起きていることがわかりました。これだけが原因ではありませんが、まぁそれなりにうちのチームが働けなかったし、そもそもこんな動き(arp止まらない)自体おかしくね? ということで、運営側から調査報告(5:38:10あたり)が出ました。
結論としては「再現性があるけど、環境設定は原因ではない」。次回までに原因究明します! とのことなので、乞うご期待 とします。

最後に

今年も楽しく学ばせていただきました。沖縄でハイブリッド開催という正統進化を遂げて、なおパワーアップしてました。
運営に関わる方々、チームメンバー、ナイスなアウトプットをしてくれた他の参加者全ての皆様に大感謝! いたします。

team02_ばび