KDL BLOG
こんにちは!デジタルビジネス本部の中戸です。
今年もセキュリティ堅牢化の季節がやってきた!ということで、2019/7/4~7/5に北海道で開催された「Hardening Ⅱ SU」に競技者として参加してきました。参加を通じて学んだことを報告したいと思います。
Hardeningとは
Hardeningは、主催者の公式サイトでは「チーム対抗で脆弱性のあるビジネスシステム(ECサイト)へのハードニング(堅牢化)力の強さを総合的に競う大会」と記載されています。
ざっくり言うと、チームのメンバーと協力してECサイトを攻撃から守り、ビジネスの継続を競う大会です。ここでいう「ビジネスの継続」とは、売上のみを目指すのではなく、お客様へのサポート対応やセキュリティインシデントの報告などビジネス全体の活動も含まれます。
今回のルール
今年も、昨年と同様に連合制度が採用されました。「東西南北」の4つの連合があり、各連合内は3チームで構成されています。「最も売上の多い連合の中で、最も売上の多いチームが優勝」というルールの特性上、自分達のチームだけではなく、連合内の3チームが協力して優勝を目指します。

ただし、今年の連合制度では昨年と違うポイントもあります。今年のルールでは、連合内でのチームメンバーの振り分けも競技者内で話し合って決定しました。ハイスペックなエンジニアを集めたチームを作るも良し、コミュニケーションを取りやすいように在住する都道府県でチームを分けるも良し。チーム分けの時点で、既に連合ごとに差別化が図られました。
競技前日まで(事前準備編)
競技は当日だけではありません。競技日の約2か月前、連合のメンバーが発表された時点で、競技は始まっています。今年、KDLからの参加は、私の他にデジタルビジネス本部の松田さん、飯塚さん、熊谷さんが協議に参加しました。ちなみに、デジタルビジネス本部長の玉置さんは、攻撃サイドで参加です。

<KDLからの参加者>
各連合に振り分けられているかと思いきや、まさかの松田さんと熊谷さんが同じ連合で同じチームになっていました。社内でどんどんコミュニケーションを図っている松田さんと熊谷さんを見て焦りつつ、私のチーム「ピリカ」も定期的にテレカンを実施して、当日の役割や事前準備を進めました。
競技日前日に北海道入りして、チームメンバー全員と顔合わせをしました。チーム内での最後の打ち合わせと、その日運営から配布された資料の読み合わせを行いました。その後に連合内での顔合わせを行い、チーム間のコミュニケーションと連携について話し合いました。
解散したあと、私のチームは各自ホテルで勉強をすることになりました。私はといえば、当日に向けて体調を整えておきたい気持ちと競技への不安が葛藤し、気づけば深夜3時ごろまで、資料の読み込みと当日の準備をしていました。。
Hardening Day
いよいよ当日!Hardeningの開始が宣言されました。

各チーム、まずは運営から送信されるメールに返信することを必須の作業とされていたのですが、私のチームはメールがなぜか受信できない!このままではHardeningが始められないじゃないか!と、いやこれはもしや攻撃なんじゃないかと、早速チームでわたわたしました。
いざメールを受信して、運営に返信することができたのは開始から1時間後。。。

圧倒的に出遅れてしまったものの、まだまだ巻き返せるんだとチーム一丸となってサーバの接続確認を始めたのですが、ここからの怒涛の攻撃により、事前対策が何もできていない私のチームのサーバは、簡単に乗っ取られ、落とされ、改竄され。。。お昼ごろにはすべてのサーバが接続できず、2時間ほど頭を抱えるといった事態にも。。

今思えば、事前対策ができる時間というのは、何よりも大切に扱うべきだったのだと、反省しかありません。同じ連合の他のチームの方の協力もあり、なんとか立ち直りはしたものの、開始から終了まで、事前に対策したことのほとんどが実施できず、目先の障害への対応に追われることとなりました。。
Hardenig終了後は全員がくたくたでしたが、明日行われるSofteningでの振り返りに向けて発表資料を作成するため、各自がホテルでHardeningでの出来事をまとめ、チームで意見をまとめていきました。

Softening Day
2日目は、各チームの振り返り、攻撃側(kuromame6)からの講評、順位発表などが行われました。
今回のHardeningの勝利のルールは次のとおりです。
1.連合毎で売り上げが多い連合が優勝チーム候補。
2.優勝チーム候補の中で一番売り上げが多いチームが優勝。
また、売上には技術点、顧客点、対応点、経済点、協調点が加算され、さらに今回からの初項目として、韋駄点(※1)が加算されます。
※1 韋駄点・・・迅速に対応することでもらえるポイント。

結果、売上では断トツ1位のチームがあったにも関わらず、今回優勝となったのは、売上が3位のチームでした。自チームだけではなく、どれだけ連合間で協力できたかがポイントだったように思います。
私のチームはと言いますと、様々な攻撃を受け、サイトを停止し続けていたわけなので、売上はあまりよくありませんでした。ですが、そんな私のチームも、協調点(※2)が全チーム中なんと1位ということで、特別賞をいただくことになりました。
※2 協調点・・・受けた攻撃をJPCERTへ報告することでもらえるポイント。
様々な攻撃を無防備で受け続けたものの、インシデント報告だけは手を抜かず実施できたのが、評価されたのだと思います。
Hardeningでの学び
今回のHardeningを通じて、大きく2つのことを学びました。
(1)事前対策の重要性
今回、事前対策がほとんどできない状態で競技が進んだわけですが、競技中に一番苦労したことは、常にWEBページを見ることでしかサイトの正常性を確認できなかったことです。サイトに不具合が発生したとしても、気付く術がないというのは、日常の運用・保守を考えるととても恐ろしいことです。異常が発生した場合にいち早く発見、通知できる仕組みは必ず実装すべきだと思いました。
(2) インシデント発生時の体制
私のチームは事前の打ち合わせで各自の役割を決めていたものの、当日は障害が発生するたびに、全員が調査役となってしまいました。
「インシデントが発生した場合は、まずは落ち着いて、現場を指揮する人の指示に基づいて、各自が与えられた役割を全うする。」このように事前に話し合っていたことも、インシデントが発生すればできなくなってしまうのだと分かりました。頭で理解するだけではダメで、インシデントが起きた場合のマニュアルを作成しておくことは重要だと思いました。
最後に「SU」とは
今回の大会のタイトルは「Hardening Ⅱ SU」だったのですが、さて皆さん、この「SU」とは何かわかりますか?

私は、何かまたIT業界ならではの新しい単語が出てきたのかといろいろ調べたのですが、「suとは IT」と調べてもsuコマンドについてしか出てこないのです。Root権限の取り扱いはセキュリティ的に大切なので、わざわざタイトルに取り込んだのかと思っていたのですが、全く見当はずれでした。
「我々は、スピード感をもって「衛る」ことが出来ているだろうか。」
上記は公式サイトに記載されている、開催に向けてのメッセージの一文です。
そうです。SUとは、「スピード感のある(S)動き(U)」の略だそうです。リアルタイムに変動していく状況から、スピーディに且つ正確に情報とらえ、迅速に判断と対応を行う。凄いスピードで進化しているIT業界で、今エンジニアに求められているレベルを再確認することができました。今後はあらゆることにスピードを求められ、それに応じなければいけない。と考えると、個々のスキルアップは必至だと再認識しました。
この記事を最後まで読んでいただいた皆さん、ありがとうございます。スキルアップしたいなと思った方がいれば、ぜひ皆さんもHardeningに参加してみてください!オススメ度は☆5つです!!

執筆:中戸 俊希
デジタルビジネス本部