11月15日に沖縄で開催されたハードニング競技会(以下、Hardening)というセキュリティ系の大会に現地参加しました。
事前準備を含めると1ヶ月以上になるものだったので、このブログで振り返りたいと思います。
アジェンダ
- Hardening Projectとは
- 参加するきっかけ
- 事前準備
Hardening Projectとは
脆弱性が仕込まれているECサービスなどをさまざまな攻撃から守る、セキュリティ系のイベントです。
開催概要/募集要項 - Hardening 2022 Decade | Web Application Security Forum
2012年から始まっており、今回でちょうど10周年になります。2022年に運営などの設計が評価されたことでGood Design賞も受賞しています。
より詳しく知りたい方のために、参考としてインタビュー記事を掲載します。
システムを堅牢化するのは何のため? エンジニアがHardeningから持ち帰れる「学び」とは
参加するきっかけ
自分は会社でCTF部というCTFなどをしながらセキュリティ系の話をする社内部活に所属しています。
そこでよく先輩と話したり、実際にCTF系のイベントに参加することで、セキュリティについて少しずつ興味が出ていました。
そんな中、Hardeningというセキュリティ系の大会があることを知りました。社内でも何回か参加経験のある方がいて、大変だけど満足度の高いイベントだと言っていました。
今までなんとなくセキュリティの勉強して大事なのは分かっていましたが、どう大事なのかを身に染みて経験できていないので微妙に理解しきれていない感覚がありました。実際に攻撃されてその対策をすることで、自分のエンジニア人生にプラスになるのではと思いました。
小学生の時以来沖縄に行ったことはなかったので、久々に行ってみたいという気持ちも若干ありました(こっちの気持ちの方が大きいです)。
事前準備
僕らのチームには営業の方や警察業務に従事されている方など様々な方が含まれていました。またエンジニアでもセキュリティや監視業務をしているバッググラウンドがありました。
メンバーとは最初の集まった10月上旬に集まりました。そこから10月いっぱいまで、チームビルディングとスキルセットの把握、沖縄出発のための準備をメインに行い、11月に入ってからはビジネスとテック系に分かれて本格的に本番へ向けた準備が始まりました。
振り返ると準備期間の半分以上をチームビルディングに使っていましたが、この重要性を後々知っていくことになります。
11月に入ってからの準備として自分はテック系チームとして、技術的な作業の準備を進めました。その中でも一番時間を使ったことは「初動対応」のリストの作成と手順の整理でした。
競技の開始1時間までは運営からの攻撃が来ないボーナスタイムです。その間に基本的なセキュリティ対策を済ませておくことが重要です。まずはこの準備を徹底して行うため、チームメンバーと初動対応リストを作成し準備を進めました。
タスクにあるパスワート変更を見た時は「パスワード変更なんて変更するだけだから簡単じゃん!」と思ってました。しかし、本番ではOSの異なる10台上のサーバーのユーザー名やDB、Firewallのパスワードを変更する必要があるので思った以上に大変です。効率良く行うためには一気に変更できるスクリプトを用意したり、実際にオペレーションを確認したりする必要がありました。
メンバーが様々なOSやECサービスを検証環境に立ててくれたので実際のサービスを画面共有しながら、スクリプトを動かしながら練習を行いました。
また普段の仕事ではアプリケーション開発が中心であるため、サーバーに入って作業したり設定したりすることはほとんどありません。そのためLinuxのコマンドやADサーバー、Firewall、証明書の仕組みと変更方法などの知識は、自分にほとんどありませんでした。なのでその辺りの勉強も行いました。チーム内には詳しい方が多くいて、自分の質問になんでも答えてくれたのですごく学びが深かったです。
会社でもMicro Hardeningという社内向け研修に参加し、実際のサーバーのログを見たり脆弱性対応の勉強をしていました。
Classiセキュリティ強化への道・前編~Micro Hardeningで修行編~ - Classi開発者ブログ
沖縄へ出発
そんなことをやりながら過ごしていたので、特に11月に入ってからはちょっと大変でした💦
このブログではまだ沖縄へ行っていないので、次回沖縄へ出発してからの出来事を書きます〜続く