PlayGroundのtakumahです。今回は2月ごろに開催した第二回PlayGround内CTFについて書こうと思います。
当時のPlayGround公式アカウントのツイート↓
終了時のツイート↓(後日が7月まで伸びたのは本当に申し訳ないと思ってます)
使用技術などの話
出題はJeopardy形式を採用し、ポータルサイトのフロントエンドはVercel(Next.js)、バックエンドはHeroku(Django + DRF)にデプロイしました。また、アプリケーションのリポジトリを公開しています。こちら
今回のCTFのポータルサイトはデザインコースの人を巻き込んで1からデザインを作成しました。(前回はBootStrapのテンプレートを使いました)デザインにはニューモフィズムを用いたそうです。(参考: colissさんの記事)
今回は第二回ということもあり、前回よりも規模を大きく+educationalなものを目指すという目的があったので、作問には結構苦労しました。
さまざまな人のwriteupを見て、これ使えそう!って思ったものを用いたり、これ有名だけどやったことある人少ないよな〜って脆弱性を出題したりしました。
また、Grafanaを用いて解答状況の監視を行なったりしました。
しかし、問題の多くはWebを用いた問題で、これだけのアプリケーションを低価格でやるのは直接デプロイする方法だと非現実的です。そこで、ConoHaのインスタンスにほぼすべてを置くことにしました。念の為2GBのプランを契約したのですが、CTF中は特に問題がなく動いたのでよかったです。domain/questionというルーティングにしたのでNginxを用いました。(準備中設定を何回かミスって落としたのはいい思い出です)
総括
今回も多くの方に参加してもらえたのでよかったです。参加者からも面白かった、セキュリティに興味が湧いた、などのフィードバックを頂けました。次回以降は違うメンバーに主催してもらって、解答側に回ってみたいですね。