努力なくして力なし

株式会社Ripariaの代表です。新潟在住の大学院生です。都会と地方をつなぐ会社を作っています。セキュリティやIT企業でのインターンに関する記事が多いです。

Micro Hardening in 草津 参加してきました🌸

3/31 (土)〜4/1(日)に「Micro Hardening in 草津温泉」に参加してきましたのでご報告いたします。

新潟から一人で行くのは心細かったので、大学の友達を連れて行ってきました♪

本家の Hardening には昨年の11月に参加していましたが、Micro Hardening は初参加!

今年に入ってから Micro Hardeing は始動し東京、鹿児島、に続き今回が第3回目の開催でした。

 

f:id:balius-1064:20180401213744p:plain

connpass.com

 

目次

 

Micro Hardening とは

公式の募集要項を引用させていただきます。

 

「衛る技術の価値を最大化することを目指す」プロジェクトであるHardening Projectから株式会社ラックの川口洋氏によって考案されたサブプロジェクトです。「セキュアなハードニングをカジュアルに競技形式で学ぶ勉強会」であるMINI Hardening Projectよりもさらにカジュアルに「ゲーム感覚で」サイバー攻撃に対処する能力を磨くことを目指しています。

Micro Hardeningでは、参加者は45分という限られた時間のなかで、提供されたECサイトに対する様々なサイバー攻撃に対処することが求められます。参加者は用意されたECサイトにログインし、スタートコマンドを実行することで、ゲームの開始を任意のタイミングで行うことが可能です。スタートコマンドが実行されると、ECサイトに対して買い物を行うクローラが動き出します。このクローラがECサイトで購入した金額が参加者の得点となり、ECサイトを安定稼働させることが高得点につながります。クローラが動作する裏側では自動的に多数のサイバー攻撃も行われ、ECサイトの安定稼働を妨害します。参加者は次々と発生するサイバー攻撃を防御し、停止したECサイトを復旧することで売上を稼ぎ、さらに防いだ攻撃に応じたボーナス得点(追加のクローリング)を得ることができます。Micro Hardeningの評価は単純に稼いだ得点のみを対象としています。

Micro Hardeningのゲームは45分を1セットとし、複数セット(最低3回以上)繰り返すことを想定しています。毎回、同じタイミングで同じ攻撃が発生するように設定しています。Micro Hardeningは報告書作成や、攻撃手法や防御方法の解説の時間を組み込まない代わりに、毎回少しずつ攻撃の状況を観測し、対処する方法を試すことで、エンジニアとしての能力向上が実現できることを目指しています。理想的にはシューティングゲームのように、敵の攻撃のパターンを覚えることで高得点を稼ぐことができるシステムにしたいと願っています。

湯るセキュ Micro Hardening in 草津温泉 - connpass

といったように、Hardeningへの敷居を低くし、さらにゲーム感覚を追加し、45分を3セットすることによって、だんだんとステップアップしていくことが出来る仕組みとなっています。

会場

会場は 草津温泉草津スカイランドホテルでした。

f:id:balius-1064:20180403105831j:plain

歓迎が、石油っぽくなってる、、笑

私自身群馬県出身なため、草津温泉へは何度かいったことがありましたが、このホテルは初めて✨

サービスがとてもよく、ご飯も美味しく、良いホテルでした!

f:id:balius-1064:20180401213848j:image

 

競技

チーム構成

チームは、あらかじめ決められているものではなく、任意に組むことが可能でした。

3人(4人)チームを8組作成しました。

私は、SecHack365でお世話になったトレーナーのこんさんと、セキュリティミニキャンプ in 山梨で知り合ったatponsさんと一緒にチームを組みました。

 

f:id:balius-1064:20180401214759j:plain

 

1セット目

繰り返し使われるゲームなようですので、詳細に書くのはやめておきます。恐らく攻撃パターンは変えてきたりすると思いますが✨

 

毎回同じタイミングで同じ攻撃が来るということは分かっていたので、1セット目はまずは何をされるのかを見ようということで、ある程度の対策をして、様子を見ることにしました。

(後で聞いた話によると他のチームはtcpdumpしていたところもあったとか。キャプチャしたものを休憩時間の30分で解析していたのは凄すぎる…)

目標は、とにかくサーバを落とさず維持し続けるという策にして、実際にやっていきました。

  • ApacheやBindが落ちた時に勝手に叩き起こすための、crontabの設定。

crontab -u root -e

*/1 * * * * /etc/init.d/httpd start

*/1 * * * * /etc/init.d/named start

  • サイトが機能不能に陥った時の対策として、/var/www/配下のバックアップ。動かなくなったらバックアップから元に戻して、サーバを維持しました。

結果、全チームの中で1番点数の高い84000点をゲットすることが出来ました。

スコアサーバはこんな感じです!

f:id:balius-1064:20180403141624p:plain

2セット目

基本的に1セット目と同じ設定を施しました。

IPアドレスでアクセスを制御するのはクローラーが回ってこない可能性もあったので、htaccessを使い、User-Agentに入っている文字列での制御を行いました。

3セット目

2セット目の途中に、不審なユーザからBindの鍵が盗まれていたことに気づいたので、そのユーザを削除し、2セット目と同じ設定を施しました。

また、iptablesクローラー以外のアクセスを制御しようと試みました。

そこで、53ポートを閉じてしまい、前半の20分ほど全くクローラーが来ない状態に、、

それに気づいて修正してからは一気に点数が伸びて行きました(笑)

f:id:balius-1064:20180405102611p:plain

結果

最終的な結果としては、

チーム名 1セット目 2セット目 3セット目 合計 順位
チーム1 73000 69000 45000 187000 5
チーム2 61000 65000 122000 248000 2
チーム3 84000 66000 78000 228000 3
チーム4 35000 19000 113000 167000 6
チーム5 35000 17000 65000 117000 7
チーム6 60000 78000 62000 200000 4
チーム7 82000 87000 109000 278000 1
チーム8 74000 20000 0 94000 8

合計点で比較すると第3位でした。

だんだんとステップアップできていない、、笑

最終的に3セット目に攻撃をしっかり守れてる度?は、私たちチーム3とチーム4が同率で1位だったようです!

この対策がちゃんと上手くいったんだなと、自信を持つことが出来ました✨

感想

本家のHardeningは本当に大きい大会で、今更ですが全くの初心者なのに参加してしまって少し恥ずかしい気持ちでいます。

今回の Micro Hardening はトレーニングといった感じでとっつきやすく、初心者でも繰り返し経験ができるので十分勉強になり、楽しめる内容でした。

上野宣さんと一緒に飲むことも出来、色々と楽しいお話を聞くことが出来ました!

天職の定義は

  • 社会のためになること
  • 自分が好きなこと
  • 稼げること

の3つが揃っている仕事のことのようです。

これらが揃っていないと、ボランティアであったり労働になってうと。

まだ働いたことはないのですが、なるほど!と思ったので、載せておきます。

おわりに

企画・運営していただいて、こうして楽しめる場と出会いを提供していただいた福田さん、株式会社LACの川口さん、同じチームで一緒に戦ってくれた今さん、 浅野さんありがとうございました。

出身である群馬県でこういったセキュリティの動きがあり、今住んでいる新潟でもこういった動きがあったら嬉しいなと思いました。

しかしながら、越後湯沢でのワークショップ以外でほぼこういった動きはないです。。

せっかくSecHack365やHardening、ミニキャンプとかでセキュリティに関与できたので、自分が新潟のセキュリティを盛り上げることができるように頑張っていきたいと思いました。

 

 

本家Hardeningの今年の情報が出たので載せておきます。

「Hardening II Collective」

日時:2018年7月6〜7日

場所:宮古島

wasforum.jp

参加できるか微妙ですが、行けたら行きたいなと思っています。

 

またどこかで皆さんと会える日を楽しみにしています!