SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

カジュアルなサイバー攻撃を体験?Mini Hardeningに参加してきました

はじめに

こんにちは!異世界カルテットの転校生が誰だか気になってあまり仕事のやる気が出ない岩間です。

今回は、6/30に開催されたMini Hardeningのイベントレポートになります!
競技内容については非公開のため、残念ながら細かく書くことができませんが、書ける範囲で体験したことを書いています。
※ 2019/6/30開催されたイベントをもとにしているため、他の回では異なる場合があります。

f:id:wild0ni0n:20190702103101j:plain

Mini Hardening ってなに

とりあえずMini Hardening公式サイトの紹介文を引用します。

MINI Hardening Projectの競技に参加される皆さんは仮想環境上に構築されたシステムの担当者として様々なセキュリティインシデントやトラブルに対応するシナリオを体験いただきます。

3時間という限られた時間の中で与えられた環境について脆弱性を発見・修正し、度重なるサイバー攻撃からシステムを守りつつ、チームメンバーで協力しながら困難を乗り越えて、最終的に社長へ報告書を提出していただきます。最終的に、体験いただいた内容を振り返りつつ、堅牢化いただいた結果を総合的に評価してフィードバックいたします。

競技で最大のポイントになるのはHardening Projectと共通である「いかにビジネスを継続するか」となります。

さあ、あなたの自慢の腕と技術を試してみましょう!

大体紹介文の通りなんですが、私なりに一言で表すと・・・

何も把握していない状態で、脆弱性がてんこ盛りのWebサイトを迫りくるサイバー攻撃から3時間耐えてサイトを落とさないようにし、社長のご機嫌も取る競技です!

色々と語弊はありますが、大体あってるはず。

"Mini" が付いてるように、もともとはWASForumが主催する8時間耐久のHardening Projectというプロジェクトがあり、8時間だと大変だからカジュアルな位置づけとして発足されたようです。 Hardening Projectについて詳しく知りたい方は、公式サイトをご覧くださーい。

"Mini" が付いているから内容もMiniかと言うと、そんなことない。
攻撃はえげつないし、全然Miniじゃない。回転ずしでネタが流れるように次から次へと問題がやってくる。

競技の流れってどんな感じ

おおまかな当日の流れは、connpassのイベント説明欄に記載されています。 事前に分かるのは、チームメンバと簡単な競技概要ぐらいです。
コミュ障の自分は、当日まで会話できませんでした。( ˘ω˘)

当日は、競技開始前に話し合える時間があるので、その時間で作戦会議ができます。と言っても30分ぐらい。
ただ、真横に別のチームの人がいるので重要な情報などは注意が必要になるかもしれません。 (後半になると、そんな余裕もなくなるので口頭で情報共有してましたが・・・。)

競技始まった後ってどんな感じ

私たちのチームについて書いていきます。

競技スタート後は、いきなり攻撃が始まるわけではなく、まず競技環境へのアクセスを行います。 (気付いていないだけで、攻撃されているのかもしれませんけどね)
競技環境がやや特殊なので、慣れていない人はここで若干躓きます。メンバー全員がアクセスできるのに30分ほど掛かってしまいました。
競技環境へアクセスできたら、サーバ構成の把握やサイトの構成を理解したり、作成会議で話した作業を行うなどしてました。 しばらくしてからサイトに異変が起こったり、不審なログが表示されたりで攻撃に気付き、後は回転ずし状態です。

f:id:wild0ni0n:20190702103030p:plain
岩間「あーそうゆうことね。完全に理解した。」

参加者ってどんな人がいたの

私たちのチームは、Sierの人、SOCの人、最近セキュリティ部署に配属された方でセキュリティ寄りの人が多かったです。 他のチームでは、学生さんやアプリエンジニア、新卒で研修中のエンジニアなど色々な人がいました。

役割について

私たちのチームでは、web担当2人、サーバ担当、社長との連絡担当でした。
3時間の猛攻を4人で耐えられないといけないため、一人一人の力が大きくチーム全体に影響します。そのため役割分担が重要だと感じました。

全然関係ないですが、スプラトゥーン2では4人対4人の構成でバトルしますが、1人でも欠けると実力のあるプレイヤーが居ても人数不利で勝率がグッと下がります。
また人数不利が無かったとしても、チーム全員が同じ武器の場合だと、同じ射程で同じ性能のため、お互いをカバーしにくいという編成不利の状況に陥ります。(皆同じ事をするのではなく、それぞれ得意な領域で力を発揮しつつ、メンバーの短所を補うような編成のほうが勝率があがる。)
一方で、始めたばかりの人のような初心者でも、敵との接触を控えて自陣付近を塗ったり、スペシャルウェポン(必殺技)を使ったりなど、実力差があってもチームに貢献できる方法がいくつもあります。

Mini Hardeningでは敵は存在しませんが、チームの役割で見るとスプラトゥーンのチーム連携と同じ事が言えるのではないでしょうか。
多分言えると思うよ。

f:id:wild0ni0n:20190702103414j:plain
理想的なチーム

面白いところ教えて

競技なので勝敗は当然ありますが、勝つ事以外にもMini Hardeningの楽しむ方法は色々あると思いました。

知らない人とチームを組んで一つの事に取り組むので一体感や共同作業を楽しんだり、 回転ずしのようにトラブルが発生するので、わちゃわちゃ感が楽しかったり、 まるでサイバー攻撃の宝石箱と言わんばかりに多彩な攻撃を肌身を持って感じれるので、非日常感を体験できたり。

結果どうだったの

偉そうな事を言ってますが、実はなんと私たちのチームは最下位でした。🤣
別にふざけてはいません。最後まで尽力していました。

しかしながら、サイトは改ざんされ、バックアップは無くなり、データベースは消えてしまい、競技時間もあとわずかだったため、復旧はもう無理と判断しサイトを閉鎖することにしました。

せめて閉鎖するなら、お問い合わせ先は必要だよなぁーと思い、社長のメールアドレスを問い合わせ先にする暴挙に出てみました。だって資料に社長以外の連絡先書いてないから!え、自分のメールアドレスを貼ればよかったんじゃないかって?クレームメールなんて受け取りたくない・・・。

f:id:wild0ni0n:20190702114208p:plain 英語なのは、マルチバイト対応の余裕がなかったからです。

そしたらまさか-100pt! f:id:wild0ni0n:20190702114640p:plain

問い合わせ先は書かないか、自分のメールアドレスを貼るか、事前に社長に了承をもらっておくのいずれかにすべきでした。チームのみんな本当ごめんなさい。

終わりに

普段は脆弱性診断やCTFなど、どちらかというと攻めのスタイルですが、Mini Hardeningはそれの全く逆で守りのスタイルが求められました。
頭の中では判っていてても実際に手を動かすと、全然コマンドが打てなかったので両方のスタイルの知識が必要だと痛感しました。初心に立ち返ろう。
また、人数が少ないためフルスタックが求められたのも良い刺激になりました。

実践的な環境でサイバー攻撃と堅牢化対応が体験でき、目の前の環境がどんどん破壊されていくのを眺めつつ、己の無力さを痛感できたイベントでした!

f:id:wild0ni0n:20190702104205j:plain
WASForum様からの差し入れ。疲れた後の糖分は最高だぜ!WASForum様、ありがとうございます!