$30 off During Our Annual Pro Sale. View Details »

【セキュリティ競技】MINI Hardeningのご紹介 / MINI Hardneing4 introduction

delphinz
February 24, 2022

【セキュリティ競技】MINI Hardeningのご紹介 / MINI Hardneing4 introduction

【2022/2/24 ささみjp での発表の抜粋版になります】
MINI Hardeningが完全オンラインになって帰ってきた!
なんとバージョン4のテーマは「ソーシャルゲーム」。

あなたは、いきなりソーシャルゲーム環境の運用を丸投げされたエンジニアとして、ゲームシステムに襲い来るハッキングやチート行為の対策を行いながら、ゲーム環境の安定した稼働を目指していただきます。
競技時間はトータル5時間! あなたは最後までゲームサーバを守り切り、収益を守り続けられるのか!?

今回は、サイト改ざんやシステムへの侵入、破壊行為のみならず、ゲームアプリケーションのチート行為対策にも取り組んでいただくシナリオとなっております。

delphinz

February 24, 2022
Tweet

More Decks by delphinz

Other Decks in Technology

Transcript

  1. MINI Hardening4のご紹介
    2022/2/24@ssmjp 1
    #minihardening
    公開用

    View Slide

  2. アジェンダ
    1. MINI Hardening概要
    2. バージョン4の説明
    3. 競技環境の説明
    4. 開発環境の説明(省略するかも。。。)
    5. 過去開催分のハイライト
    2

    View Slide

  3. MINI Hardening概要
    3

    View Slide

  4. About Hardening Project
    Hardening Projectとは、日本発のセキュリティ技術競技と
    セキュリティ施策の発表を行うイベントです。その目的は、最高の
    「衛る」技術を持つトップエンジニアを発掘・顕彰するものです。
    2014年に始まり、現在まで毎年春秋の2回開催されています。
    このイベントはwasforumが開催しています。
    4

    View Slide

  5. MINI Hardeningとは
    ● Hardening Projectから派生したミニプロジェクト
    2014年の Hardening 10 Evolutionsイベントにおいて、
    アンカンファレンスの成果として発足
    ● カジュアルにHardeningを体験
    MINI Hardeningは、半日程度でHardening競技や
    振り返りまで体験できるイベント
    コンセプト
    「セキュリティインシデントを
    カジュアルに体験!」
    5
    ハッシュタグ:#minihardening

    View Slide

  6. 運営メンバー
    Masahiro Tabata (Leader)
    Yoshihiro Kyan
    Isao Takaesu
    Yoshinori Matsumoto
    Shun Suzaki
    Daiki Ichinose
    Takeya Yamazaki
    Kazuki Igeta
    6
    MINI Hardening@HITCONより

    View Slide

  7. MINI Hardening開催履歴
    現在までに19回開催
    (以下は、ver.3以降の開催内容)
    No 日時 開催場所
    #4.3 2022/1/29 オンライン
    #4.2 2021/11/14 MINI Hardening4 AV TOKYO
    #4.1 2021/10/25 オンライン
    #4.0 2021/07/31 オンライン
    #3.5 2019/12/14 OWASP Kansai (@パナソニック株式会社)
    #3.4 2019/08/24 HITCON CMT(台湾)
    #3.3 2019/06/30 株式会社FOLIO
    #3.2 2019/04/21 株式会社メルカリ
    #3.1 2018/09/01 OWASP名古屋
    #3.0 2018/09/01 ヤフー株式会社
    詳細はConnpassページをご覧ください
    ☞https://minihardening.connpass.com/ 7

    View Slide

  8. バージョン4の説明
    8

    View Slide

  9. バージョンごとの実績
    9
    バージョン1 バージョン2 バージョン3 バージョン4
    ECサイト ECサイト
    仮想通貨
    売買システム
    ソーシャルゲーム



    とある会社のECサイト
    の運用をまかされたエン
    ジニアとして安定的な
    運用を目指す!
    とある会社のECサイト
    の運用をまかされたエン
    ジニアとしてさらに安定
    的な運用を目指す!
    スクラッチで開発した仮
    想通貨取引システムを
    運用する!
    仮想通貨の失敗にめ
    げずガチャで一発当て
    るため、ソーシャルゲー
    ムを運用する!


    • 守るサーバは1台
    • 環境はlamp/
    wordpress/ftpで
    構成
    • バージョン1のサーバ
    構成とほぼ同じ
    • Joomlaや認証証明
    書の管理が追加
    • 仮想通貨サーバ&
    イーサリアムword
    pressプラグインの運

    • スクラッチで開発され
    たゲームAPIを
    dockerで管理
    • CI/CD連携




    • 初開催!
    • 大阪遠征
    • OWASP DAY参加
    • 078 Kobeの併設
    イベントとして開催
    • 犯行声明ビデオ
    • 淡路島開催の本家
    イベントに参加
    • 前日に環境壊れる
    • 台湾での海外開催
    • 全国のOWASPチャ
    プターを繋いでオン
    ライン開催
    • 競技時間は3時間
    から5時間に変更
    • 完全オンライン開催
    • AV TOKYO進出
    ・・・そして、その次は






    2015/5~2016/2 2016/12~2017/9 2018/9~2019/12 2021/7~Now!
    犯行声明 海外進出 コラボ&個人戦

    View Slide

  10. MINI Hardening 4 お品書き
    ● 丸1日の通常版と評価対象を絞ったお試し版があります。
    10
    通常版 AVTOKYO版
    競技時間(全体時間) 5時間(8.5時間) 2時間(3.5時間)
    競技形態 チーム戦(5名/チーム) 個人戦(1名/チーム)
    評価対象 4台/チーム 1台/人
    シナリオ
    サイバー攻撃
    ゲームチート
    荒らし
    社⾧からの依頼
    などなど
    ゲームチート数種類
    Red Team マジ⿁ やさしい⿁
    お酒 飲んでる暇ない 🍺飲め!!

    View Slide

  11. プロローグ (MINI Hardening #3からの続き)
    「仮想通貨で一発当てるんや!」
    と、以前の会社で意気込んだものの、投資が失敗に終わった社⾧。
    しかし、
    「ソシャゲなら俺でも当てられるはずや!」
    と言い出し、今度はソーシャルゲームの会社を立ち上げてしまった。
    「もう会社名は決めている。この名前なら絶対に売れる!そ
    の新社名は…『 』や!!」
    すでローンチまでのカウントダウンが始まっていたのだった。
    これからはニューノーマルなDXを
    DevOpsSecで支えるマイクロサービス、
    つまりソシャゲや!
    11

    View Slide

  12. ガチャで装備を整え
    モンスターを倒し
    レベルを上げろ!!
    「愛と勇気と剣と魔法」の本格派
    新感覚RPGが、ブラウザで遊べる
    ソーシャルゲームとしてついに登場!
    12

    View Slide

  13. 参加者の状況
    • ソシャゲはすでに開発が終了しており、今後、継続して
    収益をあげるためには、ゲームシステムを安定して稼働し
    続ける必要があります。
    • みなさんは、いきなり運用を丸投げされたエンジニアとして、
    ゲームシステムの安定稼働に尽力して下さい。
    13
    ( `・∀・´)ノヨロシク

    View Slide

  14. 14
    評価ポイント
    「ミッション」でお伝えした通り、競技開始から競技終了までの
    間、与えられたシステムに関して、以下のことに尽力してくださ
    い。
    ☞サーバをサイバー攻撃から守る
    ☞ゲームをチート行為から守る
    攻撃やチート行為は、各チームに対し、同じタイミングで同じ
    内容のアクションが発生します。
    攻撃やチート行為の被害を最小に食い止めることが、高得点
    への近道となります。

    View Slide

  15. 競技実施のスケジュール
    時刻 内容
    10:00 - 11:00 (60min) 競技前説明
    11:00 - 13:00 (120min) 競技(前半)
    13:00 - 13:45 (45min) 休憩(環境を閉めます)
    13:45 - 16:45 (180min) 競技(後半)
    16:45 - 17:00 (15min) 競技終了・休憩
    17:00 - 18:00 (60min) 振り返り・解説
    18:00 - 18:30 (30min) 表彰・インタビュー
    18:30 終了
    15
     競技時間は5時間、説明や解説を含めほぼ1日で完了
    出し惜しみなしの完全解説!

    View Slide

  16. 競技環境の説明
    16

    View Slide

  17. ☞ 参加チームにはAWS上に展開された7台のサーバが提供されます。
    評価対象:コーポレート、ゲーム、リポジトリ、DBの4台は評価対象
    評価対象外:踏み台、Windowsクライアント、検証機
    システム構成 ①
    運営チームサブネット 競技チームDMZサブネット(172.31.10x.0/25)
    競技チームInternalサブネット(172.31.10x.128/25)
    corporate.team-x
    172.31.10x.30
    game.team-x
    172.31.10x.40
    win1. team-x
    172.31.10x.151
    bastion.team-x
    172.31.10x.10
    運営チーム 競技チーム
    ※ “x”はチームID(a,b,c…)、もしくは番号(1,2,3…)
    repository.team-x
    172.31.10x.50
    db.team-x
    172.31.10x.60
    運営チーム
    サーバ群
    17
    dev.team-x
    172.31.10x.200
    踏み台
    コーポレート
    ゲーム
    リポジトリ
    Windows
    クライアント
    検証機
    DB

    View Slide

  18. システム構成 ②
    ☞ 競技者に提供されるシステム構成は、以下の通りです。
    ゲームAPI
    ゲームサーバ
    データベースサーバ
    redis
    リポジトリサーバ
    git pull
    deploy
    ゲーム
    ユーザー
    18
    コーポレートサーバ
    Webサーバ
    DB
    ※環境詳細は
    「コーポレートサイト」の
    ページに記載しています

    View Slide

  19. ゲームAPI
    ゲームの各機能はAPIで実装されています。
    以下が、今回実装されているAPIとなります。
    ☞ユーザー作成API
    ☞ログインAPI
    ☞退会API
    ☞プレーヤー情報API
    ☞画像アップロードAPI
    ☞コース一覧取得/決定API
    ☞戦闘API
    ☞スタミナ回復API
    ☞ガチャAPI
    ☞課金API
    詳細は、別紙「API設計書」を参照してください。
    19
    複数のプラグラミング言語
    ×
    複数台dockerコンテナ
    絶賛稼働中
    API毎に違う国でオフショア開発されたとかどうとか。。。

    View Slide

  20. 20
    MINI QUEST - ゲーム画面遷移
    ログイン
    画面
    オープニング
    画面
    コマンド選択
    画面
    ガチャ画面
    コース選択
    画面
    戦闘画面
    ステータス
    画面
    スタミナ回復
    画面
    課金画面 退会画面
    新規登録
    画面
    愛と勇気と剣と魔法
    」本格派新感覚RPG

    View Slide

  21. ㊙競技者お助け機能 (こうげき傍観くん)
    ☞ 各チームのWebサイトを監視するシステムです。
    21
    各チームの評価対象画面を
    一定時間ごとに順次表示

    View Slide

  22. 開発環境の説明
    22

    View Slide

  23. バージョンごとの開発環境の変遷
    23
    バージョン1 バージョン2 バージョン3 バージョン4
    AWS
    2015/5~2016/2 2016/12~2017/9 2018/9~2019/12 2021/7~Now!









    シェルスクリプト





    シェルスクリプト
    &一部Ansible
    Googleグループ




    なし?
    初期はほぼシェルスクリプトで作っていましたが、バージョン3からモダンな
    IaCなデプロイ環境を整えました。現在はgitlab上でIssue管理を行いな
    がらコード管理をしています。

    View Slide

  24. 環境開発フロー
    24
    みんな大好きHashi CorpのPacker、Terraformと
    Ansibleを使用しています。
    https://www.hashicorp.com
    Mitchell Hashimoto氏が2010年設立
    Hashicorp Tao(道)を理念に開発・運用者向けのツールを開発
    「技術のギャップを埋めるためのツールを提供したい」
    1.開発・検証 2.イメージ作成 3.競技環境展開
    担当者が各自のVM
    上で競技に必要な
    環境を開発し、コー
    ドをgitlabにpush
    Packerで共通パッケー
    ジ、ゲームAPI、共通の
    設定等をインストールし
    イメージ作成
    イメージからチーム数分
    の環境をデプロイ(ネット
    ワーク、ホスト名、DNS
    など含めて全自動展開)
    4.個別設定
    AMI
    AMI
    環境個別の設定
    (dokcer起動等)
    必要に応じてイメージ再
    作成、再展開

    View Slide

  25. 自動化できたこと
    25
     サーバのイメージ作成
     チーム数に応じたインフラの自動展開
    *30分程度で100台弱のサーバ展開可能、一括削除
    も簡単
     IPアドレス、ドメイン名の設定(Route53最強!)
     競技終了後のログ取得
    例:Terraformの一括削除コマンド実行結果

    View Slide

  26. 過去開催分のハイライト
    26

    View Slide

  27. MINI Hardening@HITCON (台湾)
    27
    2019年夏に台湾最大のサイバーセキュリティカンファレンス
    「HITCON CMT」の最終日にMINI Hardeningを開催して
    きました!
    2019/8/24開催

    View Slide

  28. HITCONのここがスゴイ!
    28
    日本人に優しいし、参加者も積極的、飯も美味しい!
    ぜひみなさんも参加してみてください!
    2019/8/24開催

    View Slide

  29. HITCON参加の様子はMBSDブログで♪
    29
    HITCON CMTの大事なことはすべてここに書いてあります。
    MINI Hardening with HITCON イベントレポート(MBSDブログ)
    https://www.mbsd.jp/blog/20190902.html
    2019/8/24開催

    View Slide

  30. 30
    オンライン開催の準備完了!
    ☞ COVID-19の足音が聞こえ始めた2019/12/14
    OWASP KANSAI開催@パナソニックの時点ですでに
    オンライン開催の準備がすでに整っていた!?
    2019/12/14開催
    チーム 所属 開催場所
    A~G 関西参加チーム
    大阪パナソニックワンダーラボ
    H パナソニックチーム
    I、J OWASP福島01、02 株式会社Eyes, JAPAN
    K OWASP名古屋 株式会社中電シーティーアイ
    L OWASP仙台 コワーキングスペース ソシラボ
    M OWASP沖縄 株式会社モノクラム
    N 特別平成枠 ネットのむこうがわ
    2019時点で
    オンライン
    開催を実現!

    View Slide

  31. 31
    AVTOKYOの運営レギュレーション
    ☞ Red Teamによるチート行為が競技者サーバのいずれかに刺
    さった場合、運営メンバーは「No Drink, No Hack」の精神に
    則り、かならず乾杯をします!!
    ☞ 攻撃はおよそ10分に1回程度の頻度で発生するため、すべて
    のターンでチート行為が成功してしまう場合、運営メンバーは10
    回以上乾杯をすることになってしまいます。
    ☞ 痛風や糖尿病が気になり始める運営メンバーの健康のため、な
    んとかチート行為を阻止してくださいm(_ _)m
    その結果、競技終了後に運営メンバー3名がダウン!
    2021/11/14開催

    View Slide

  32. 参加者の声
    &more
    32

    View Slide

  33. 33
    MINI Hardening #4 参加者の声①
    後半は攻撃えげつなくて、
    ボロッボロにやられまくってた
    ……orz……
    後半からの攻撃がエグかった…
    以前のバージョンより明らかに
    エグイ、これに尽きる。

    View Slide

  34. 34
    MINI Hardening #4 参加者の声②
    ぜんぜんMINIってレベルじゃ
    ねえよ。。。
    名前間違ってるよ!
    初心者向けじゃなくなってる
    んですけどぉ・・・
    胃がキリキリする空気感をカジュアルに楽しみたい方は、
    ぜひ通常版にご参加ください!
    ※募集要項から「初心者向け」外しました。。。

    View Slide

  35. 次回開催は2022の4月くらい開催予定?
    絶賛参加者を募集しております!
    チーム参加やITイベントコラボも
    ご検討ください!
    35
    Conpassのページをご登録ください!
    https://minihardening.connpass.com/

    View Slide

  36. ご視聴ありがとうございました!
    お疲れ様でした!
    36

    View Slide