PlayGround内でCTFを開きましたVol.2
PlayGroundのtakumahです。今回は2月ごろに開催した第二回PlayGround内CTFについて書こうと思います。
当時のPlayGround公式アカウントのツイート↓
2月15日からPlayGround内CTF「PGCTF2」がスタートしました!
— Shinonome Tech Community (@PG_tech_info) February 16, 2023
※CTF=情報セキュリティ技術を競う競技
出題される問題の制作から公開まですべてPlayGroundに所属する学生が制作してくださいました🤩
現在熾烈な競争が繰り広げられています🔥
開催期間は3週間、結果はどうなるのか楽しみです!! pic.twitter.com/gBhj3PRXmw
終了時のツイート↓(後日が7月まで伸びたのは本当に申し訳ないと思ってます)
/
— Shinonome Tech Community (@PG_tech_info) March 8, 2023
3週間に及ぶPlayGround内CTF「PGCTF2」が閉幕しました🎉
\
見事1位に輝いた学生には、PlayGroundを運営する株式会社Shinonomeより4000円以内の技術書1冊購入する権利が贈呈されました🎊
PGCTF2に関する記事を後日掲載する予定です!
お楽しみに!!#シノノメテックコミュニティ #CTF pic.twitter.com/to7LKDZXLl
使用技術などの話
出題はJeopardy形式を採用し、ポータルサイトのフロントエンドはVercel(Next.js)、バックエンドはHeroku(Django + DRF)にデプロイしました。また、アプリケーションのリポジトリを公開しています。こちら
今回のCTFのポータルサイトはデザインコースの人を巻き込んで1からデザインを作成しました。(前回はBootStrapのテンプレートを使いました)デザインにはニューモフィズムを用いたそうです。(参考: colissさんの記事)
今回は第二回ということもあり、前回よりも規模を大きく+educationalなものを目指すという目的があったので、作問には結構苦労しました。
さまざまな人のwriteupを見て、これ使えそう!って思ったものを用いたり、これ有名だけどやったことある人少ないよな〜って脆弱性を出題したりしました。
また、Grafanaを用いて解答状況の監視を行なったりしました。
しかし、問題の多くはWebを用いた問題で、これだけのアプリケーションを低価格でやるのは直接デプロイする方法だと非現実的です。そこで、ConoHaのインスタンスにほぼすべてを置くことにしました。念の為2GBのプランを契約したのですが、CTF中は特に問題がなく動いたのでよかったです。domain/questionというルーティングにしたのでNginxを用いました。(準備中設定を何回かミスって落としたのはいい思い出です)
総括
今回も多くの方に参加してもらえたのでよかったです。参加者からも面白かった、セキュリティに興味が湧いた、などのフィードバックを頂けました。次回以降は違うメンバーに主催してもらって、解答側に回ってみたいですね。