LayerX エンジニアブログ

LayerX の エンジニアブログです。

Micro Hardeningに参加した話

CTO室で社内基盤や全体的なセキュリティ担当をしている @ken5scal(鈴木研吾)です。 今回のブログはGW中(5/4)に参加したMicro Hardeningについて書きます。

microhardening.connpass.com

言うまでもないですが、インシデントが起きて嬉しい企業はありません。 我々としても取り組んでいる分野(請求書、アセットマネジメント、秘匿化技術等を用いたスマートシティ関連領域)で起きることは全く望んでいません。 特にセキュリティインシデントの発生確率はゼロにしたいものです。

しかし、残念ながらセキュリティインシデントは起きるものです。 意図しない結果がユーザー側でいきなり現れるか、あるいは多層防御のどこかでアラートとして顕在化するかは分かりませんが(もちろん後者を望んでいます)、起きるものです。

我々はそれに備えねばなりません。

セキュリティ・インシデントへの準備

こういった不確実性への対処には常日頃からの準備が重要なのは、ご存知かと思われます。 しかし、意図した不具合を引き起こすこと訓練環境を用意するにはそれなりにハードルが高いです。 特に、小さい会社では社内のリソースやスキルセット的に難しいのですが、そんな主体に最適なイベントがHardening/Mini Hardening/Micro Hardeningです。

今回、参加したMicro Hardeningは、攻撃者(運営)から45分間、EC事業を守ることを3回繰り返す競技です。5〜6人のチームがECサイトを割り当てられ、Web攻撃やサービス停止攻撃などを予防・検知・回復します。本業や家庭、そしてインシデント経験の有無を踏まえて、初めての攻撃を受ける訓練として、Micro Hardening以上に良い場はなかなかないでしょう。

自分自身はMicro Hardeningには2回目の参加したことがありますが、LayerX全体のレジリエンス力を高めたい理由から、各事業部に声をかけたところ、幸いにも全部署から均等にメンバーが集まり2チームを結成することができました。

f:id:kengoscal:20210507021122p:plain

また、新卒、元フリーランス、スタートアップ出身、大企業出身と色々な経験とバックグラウンドを持つメンバーが当社持ち前の「Be Animal」を発揮し参加してくれました。参加経験が各部と各年齢層に均等にフィードバックされ、つまり、LayerX全体のレベルアップに繋がったことでしょう。

f:id:kengoscal:20210507021147p:plain
チーム分け

当社の参加目的

一般的に(競技でなくても)Hardeningは事前準備をするのがセオリーですが、Micro Hardeningと当社の技術スタックがかなり違います。 当社のブログにもある通り、コンテナをメインのワークロードに利用し、動作環境もIaaSのマネージド環境を使っています。

tech.layerx.co.jp

ブログもポピュラーなCMSを使っていませんし、メールサーバーも完全にSaaSです。プログラム言語やフレームワークもMicro Hardeningとは違うため、参加経験を当社の知見にするには適切に目的設定をする必要がありました。

そこで、当社(というより発起人である自分)の目的は、以下に設定しました。

  • 攻撃された際の対応経験を詰み、振り返る
  • 攻撃を受ける雰囲気(無力さと焦燥)を経験する
  • 効果的な対応に何が重要かを理解してもらう

インシデントは当事者でないと、日頃の準備の重要性を実感しづらいものです。 そこでわかりやすく攻撃されている状況に身を置くことで、攻撃に気づくためにどうすればいいか、気づいた後にどうコミュニケーションをとり、どう判断するか、一通り経験して、攻撃とその影響について身を持って体験することが大切になります。

同時にプレッシャーを感じてもらいます。悪意からのプレッシャー、他社(チーム)からのプレッシャー、復旧へのプレッシャーと、インシデントでしか感じられないものを訓練で感じてもらいます。いざというときにある程度のメンタル耐性があるとないとでは、かなり初動に差がでるでしょう。

また、慣れない環境では何をみて防御し、何に設定を投入すればいいか、すぐにはわからないでしょう。 この経験により、日頃の資産棚卸しや現在の構成状況・設定状況の理解と把握が、それらの資産やサービスを守る上での最初の一歩であることを理解しやすくできます。

これらの目的達成のために、バックアップ取得とパスワード変更だけを事前準備とししてやるべきと伝え、あとは各チームの自主性に委譲してみました。

その結果が以下です。じゃじゃん!

結果

LayerXはteam14とteam15です。

f:id:kengoscal:20210507022832p:plain

team14は(言い訳をするとBackupの戻し判断が遅れたことで3セット目のスコアが下がってしまいましたが)1~2セット目のスコアと3セット目の防御点で健闘し、team15は3セット目で非常に良いスコアを叩きだしました。トップになれなかったのは悔しいですが(本当に悔しい)、トップ1とトップ2がMicro Hardening経験者チームであること、当社2チームが自分を除いて初参加メンバーしかいない & 技術スタックが違うことを考えると、非常によいスコアだったのではないでしょうか。

個人的には当社の技術力の高さに改めて驚きました。同時に、自分自身もどんどんパワーアップせねば、、、という思いに駆られています。

まとめ

スコアは良かったとはいえ、トップではありません。そもそも訓練にすぎなく、本番はこれからです。それでも、Micro Hardeningでの参加は、今後さまざまな活動をデジタル化していくLayerXがユーザーに提供する価値を維持していく上で、非常に意義があったと思います。

この場を借りて、Micro Hardening運営者様、休日にもかかわらず快く参加してくれたLayerXのメンバー(そしてご家族)に感謝をお伝えしたいと思います。

ありがとうございました。

また、是非、こういったことに取り組んでいきたい方は、ご連絡いただけると嬉しいです。