Hardening

Hardening 2022 DECADEで最下位だったので反省します

どうも、のみぞうです。今回は終わった後の体力回復に時間がかかりHardening参加ブログを書くのすら遅くなってしまった。すいません。

今年もHardening本戦にTeam2「なんくるしーさーと」として参加させていただきました。実は個人的な色んなことがHardeningとは別に平行に進行していて、チーム内のいろいろがお留守になった結果、見事ドベ(最下位)だったので、自分なりに「そりゃそうですよねー」って思うところと反省するところとチームの皆に謝りたいところがないまぜになっています。チーム2の皆様におかれましては貢献できてなくてほんとごめんなさい。まあ、学びに順位は関係ないと嘯きつつ、反省することも多かったので書きます。

ちなみに私は今回3回目の参加で、2年前の初参加時は1位だったので、1位から最下位まで経験した参加者はそんなに多くないのではないでしょうか。そんな経験値から得たバッドノウハウとして読んでいただけると幸いです。

なお、言うまでもないことですがチーム内外の誰かを責めるような意図はありません。

Hardening 2022 DEDADEの概要

個人的なスケジュールまとめ

日時できごと
8月24日Early Birds枠で参加内定いただく(早期申込優先参加権みたいなもの)
9月11日技術書典13にてHardeningProjectに無断で非公式同人誌を頒布する
9月21日チーム分け発表(※まだ油断してた時期だったため動揺)
各チームに分かれてチームビルディング期間
10月28日マケプレだヨ!全員集合(※後述)~バラクーダネットワークスジャパン編~
11月9日オンライン合コン(※後述)開催
11月10日マケプレだヨ!全員集合~フォーティネット編~
11月11日昼マケプレだヨ!全員集合~シスコシステムズ編~
11月11日夜マケプレだヨ!全員集合~JCdb編~
11月13日連合制度の発布(イーブン製作委員会連合)・CISOに選出される
11月14日当日の環境資料展開
11月15日Hardening Day(本番当日)⇒夜ネットワーキングパーティー
11月16日Analysis Day(チーム毎に振り返り)
11月19日Softening Day(振り返り発表会)⇒夜ネットワーキングパーティー

ざっと思い出してみただけでもここ1~2ヶ月が忙しすぎました。ちなみに裏で11月20日の技書博7というイベントに出るためにHardeningとは逆方向のハッキングに関する本を並行して書いてました。ブルーチームとレッドチームを同時進行でやるのは私には無理だ~と悟ったりしました。なんかモードが切り替わらないというか。脳の使い方が違う気がするんですよね。最近はパープルチームとかもあるけどね…むずい。あと一応仕事もしてます。

今回はハイブリッド開催

今回の特徴は何といっても、沖縄の万国津梁館(本会場)と一部リモート参加の方によるハイブリッド開催だと思います。各チームにだいたい1名程度リモート参加の方がいらっしゃって、リモートの方と本会場の方でどのようにコミュニケーションをとるかが大きく問われた会だったと思います。

結局チーム全員がオンサイト参加できることになったチームもいくつかあったようなので、このへんは運や状況によって大会の難易度が結構ちがってくるかなあと思います。でも現実では、ハイブリッド環境でインシデント対応していくってことは今後十分想定されるケースだと思われるので、経験できて良かったなと思います。

Team2はiPadと会議用スピーカーマイクを持ち込んでZoomでコミュニケーションしました、オンサイト会場は広いホールだったので、スピーカーマイクを使うには微妙な環境かもなあと思っていたのですが、使ってみると割と音声クリアでよかったので、n:1またはn:nで会話するときはあったほうが良いグッズだなと思いました。そんな高価なものでもないし。

反省点

反省だけなら猿でもできる(このフレーズを知っている人は恐らく同世代です)とは言いますが、反省しないと結果を次に活かせないとも思う。振り返ってみたいと思います。

リーダーシップの不在

一番反省したのがこれです。今回Team2はリーダーと社長を分離していました。最初のリーダー決めのときにみんなリーダーという言葉の重さに尻込みしてしまったので、初めての方でも取り組みやすいようにタスクと責任を分離したわけです。ちなみに私はそのどちらでもありません。(結局あとから成り行きでCISOになったけど…)

「リーダーは運営からのコミュニケーションのまとめ役」というように定義をしたものの、そうしたとき結局チーム内の舵取りや先導役を誰がやるのかという重要な部分が欠落してしまっていました。私も中途半端にファシリテーターしたりしなかったりしたしな…忙しさにかまけて欠落した部分を見ないふりをしていた気がします。本当に申し訳ない。

Hardeningにおいて役割分担は重要と言われるわけですが、それはお互いが仕事を漏れなく効率よく行うための手段であって、必ず役割分担を行わないといけない、というわけではありません。

今回最高売上見込(実質優勝)を叩き出したTeam8では「あえて役割を持たない」という戦略をとっていましたし、個人的には自立した動きができるメンバーが多ければその戦略もアリな気がしています。そして自分からHardeningに来るような人はそもそもある程度自立してる可能性が高いです。

ただ、その戦略でチームを同じ方向に稼働させるには、強力なリーダーシップとメンバーのフォロワーシップが必要です(その点でこの戦略をやりきったTeam8リーダーのやぎさんはかなりすごい)今までを振り返ってみても、うまくいくチームには良いリーダーがいる可能性がかなり高いんだよなあ。と思ったりしました。まあ「うまくいく」の定義は人それぞれですし「良いリーダー」もそれぞれだし、それが必ず成績に結びついているとは限らないのですが。

とにかく私は良いリーダーではないし、多分あんまり向いてないので、今後もできるだけそういうムーブは避けていきたい所存ですが。やる人がいなければ率先してやるべきだなったかなあと、後悔と反省をしています。(でもできれば今年こそ技術班やりたかったんだよーーーー!!

リアル環境でやらないことはやらない

Hardeningって現実をロールプレイしているとはいえ、あくまで競技という特性上、現実と乖離した特殊な環境である部分はあります。だからといってゲームかなにかのようにハックし始めるとやっぱりうまくいかなくなる部分があるのではないかと感じました。

使ってないと思われるサーバを確認なしで落とす

Hardening本線ではチーム人数に対して管理対象のサーバがたくさんあるので、用途が不明であったり、情報が不足しているが現在稼働中のサーバを、管理対象を減らす目的で落としていたのですが、それが結果として障害の引き金となったようです(原因は調査中とのことなので詳細はわかっていません)

冷静に考えると、現実でサーバ管理者やってたとして、本番環境で稼働中のサーバをいくら「何に使ってるかわかんないし管理めんどくさーい💦」と思ったからといっていきなり落とすでしょうか…?いや多分しないでしょ、と思う。なんでやっちゃったんだろう。

攻撃が来たIPアドレスを個別にファイアウォールで拒否する

事前にチーム内でおそらく攻撃者はリバースシェルがとれないNAT環境以下からは攻撃をしてこないだろうと予想して、攻撃を監視して、観測したIPアドレスを片っ端からファイアウォールでドロップするという戦略をとりました。

これもよくかんがえたら、現実で攻撃があったIPアドレスをいちいち1個1個ファイアウォールの拒否リストに入れるような運用するかといったら多分しないのでは…?(なんかしらのしくみで自動でやってくれるとかなら別だけどさ)弊社でこんなことやったら多分大炎上ですよ。過剰な拒否リストによって、恐らく通常のクローラによるアクセスも相当数拒否することになってしまったのではという気がしています(ログ見て確認したわけじゃないけど)

こういうのもそもそも戦略ミスというか…ゲームをどうやってハックするかみたいな近視眼的な考えになってしまっていて、セキュリティとは?何をどのような優先順位をつけて衛るべきなのか?について正常な判断ができていなかったなと思います。反省。

そんなこともあって、ひとつの指針として「リアル環境でやらないことはやらない」というのを肝に命じておこうと感じています。仕事じゃねえんだぞ!真面目にやれ!!(?)

声を上げやすい空気をつくれなかった

リーダーシップの話にも通じるのですが、ほぼ初対面の人同士でオンラインで2ヶ弱のチームビルディングを行うわけなので、気軽に声を上げやすい雰囲気や、発言が虚空に消えない工夫をすることは大変重要に感じています。このへんは以前からあんずさんが得意なところで、ずっと助けられてきたのですが、今回は同じチームにあんずさんがいなかったので難しさを感じていました。

なんか喋ったときに「シーン」ってなることないですか?誰か特定の人が喋りっぱなしになっちゃうことないですか?(オンラインだと特に)
そういうのがいわゆるチーム内の温度差というものになっていくのかなあと思ったりしました。声を伝えるのも温度を伝えるのも空気であり、空気をうまくノせることができるのかがチーム全体の成功に大きく関わってくる気がしています。

初回の入札でマーケットプレイス書い損ねた

もう3回目なのにマーケットプレイスの手順を間違えて最初のタイミングを逃しました。ぜんぜん慣れない大抵競技開始直後は環境に接続するだけでハードルが高いので

環境に接続する⇒Windowsに接続する⇒マーケットプレイスのサイトを開く⇒正しい手順で入札する

という手続きが慌ててると難しすぎるんです(書類をきちんと読めという話です)初回の入札に間に合わなくて結果としてWAFの導入が遅れて、WAFの機能を活かし切ることができず、結果としてネットワーク障害が起こることになったので…歴史にIFはないとはいえ、もし初手でマーケットプレイスの導入が行えていたら全然違う結果になった可能性があります。

今回本当にこれは地味に痛かった。みんなほんとうにごめんね…。あとバラクーダネットワークスジャパンさん賞ありがとうございました!!!

よかったこと

まあ反省ばっかりしててもアレなので良かったことも書いていきます。

衞りの継承への挑戦がちょっとできた

今回のテーマは「衞りの継承への挑戦」だからってわけじゃないのですが、同じ会社の若手2名を連れての沖縄オンサイト参戦をしました(あんずさんdaichiさん)

チーム分けで予想外に別々になってしまって、最初は少し心配していたのですが、それぞれのチームでそれぞれの良き仲間を見つけて、それぞれ良い経験を積めたみたいで本当によかったです。

もうこの歳になると自分がどうこうより若者が活躍するのが嬉しくなるんやなあ。いや自分も活躍したかったけど…まあ…それはそれでな…。お互いチームメンバーを紹介して知り合いの輪が広がるのでチーム分かれるのもわりとアリだなあと思った。

チームの垣根を超える活動が活発になってきた

やぶさんがやってたマーケットプレイス紹介企画の「マケプレだヨ!全員集合」にセキュリティ芸人枠として呼んでいただいたり。

私も去年に引き続き合コンを開いていたりしました。去年は2チーム間での交流だったけど今年は全体の交流に広げられたの良かった(ちなみに会場はやぶさんが提供してくれました。なのでこれはやぶさんの功績といっても過言ではない)

合コン…「合同コンファレンス」の略でチーム外の人とHardeningについて意見交換することです。いわゆる恋愛的なアレとは一切関係ない。

合コンのようす(Gatherというツールを利用しています。許可とってないので名前を隠してますが、ヤバいやりとりをしているわけではないです)←…?

また、イーブン製作委員会(連合)として、他チームのCISO役の人と交流ができたし、内輪の打ち上げをやったり、人間関係的にはとても充実した日々を過ごせました。

過去2回は、オンライン大会ということもありチームの中に閉じこもることも多かったけど、3年目で初参加のときとは比べ物にならないくらい仲良くしてくれる人や顔見知りが増えました。いつの間にか自分にはこんなにも仲間ができていたのだなあと、ちょっとエモい気持ちになったりしました。

沖縄よすぎる

今回私にとっても初めてのオフライン大会でしたが、沖縄というロケーション良すぎるなーと思いました。基本的に山の民なので海が珍しくてむやみに散歩とかしてた。

若者たちと民泊サービスを利用して1軒屋借りて泊まってたんですが、友達の家で合宿してる感じが楽しかった。前日の準備中、深夜テンションでおかしくなる感じとかも良かった。もうこんな経験は人生で二度とできないかもしれない。

(ビジネスが)とまーらーないー未来をーえがいてー♪

…実現しなかったな(半日くらい止まってました)…。

プレゼンがウケた

CISO連合(イーブン製作委員会の提言)発表係を仰せつかりました、あんまり意識してなかったんですが、もしかして私はプレゼン得意かもしれない。Youtubeに動画あがってるのでよかったらどうぞ。

それにしてもサプライチェーンリスクの対策とか、答えがない問題を30分で検討して結論にまとめるのは難しかったと同時にもったいなさも感じた。もっともっとこの話ししたかったなあ。でもそれじゃもはやHardeningじゃない別のなにかになっちゃうしな…。

ばびさんがほめてくれました❤

まとめ

そんなこんなで、反省するところも良いところも色々あったHardening 2022 DEDADEでしたが、最下位ってことは伸びしろNo.1ってことなので、多分いちばん良い経験を積めたチームってことなんだと思います(むりやり)

ちょっと疲れたけど…(名護に向かう途中で心折れているようす)

これを糧に来年も頑張りたいと思います!HardeningProjectの皆様、スポンサーの皆様、参加者の皆様ありがとうございました!!控えめに言って最&高!!