初出場のSECCON CTFで国内10位!リアルトリリオンゲーム企画の裏側
はいどうも。セキュリティ芸人のアスースン・オンラインです!
つい先日、日本国内最大級のCTF「SECCON CTF」の予選にチーム「full_weak_engineer | Please subscribe! -> https://asusn.online」として挑みました!
漫画作品『トリリオンゲーム』を現実世界で再現しようとしたものの、非道で長すぎるはずのチーム名にASCII文字しか使えなかったり、チームの人数は100名に到達せず総勢40名だったり、あと1チーム差で決勝進出を逃したり、失敗した世界線のトリリオンゲームになってしまいました(笑)
今回はこの『リアルトリリオンゲーム』プロジェクトに懸けた思いを語っていきます!
今年の目標が「SECCON CTF 決勝進出」だった
そうなんです!つまり今年の目標が未達で終わりました!
去年のSECCON CTFの決勝を観戦して、技術力をもっとつけたいと思って、毎週CTFに挑み、仲間を集めていました。
CTF系VTuberのkurenaifさんのオフ会でSECCON CTFに出るぞという話をしたり。
YouTubeのdiscordサーバで仲間を募り、いろんなCTFに毎週参加したりしました。
6月のSECCON Beginners CTFあたりから、チームメンバーがどんどん強くなってくれて、SECCON CTF決勝に行くモチベーションも高まっていました。
最終的に、CTF timeで日本7位になるところまでチームが成長しました。
『脆弱エンジニアの日常』の視聴者で今年結成されたダークホースチームの誕生です。
TVアニメ『トリリオンゲーム』が10月に放送始まる
トリリオンゲームという作品は、作中にCTFが登場するので、セキュリティ業界では少し話題になっていました。
SECCON CTFがモデルとなっているCTFの大会「セキュリティチャンピオンシップ」に挑むシーンがあります。
非道で長すぎるチーム名で100人体制で予選を通過します。
10月にアニメを観ながら、ふと思ってしまったのです。
「今の俺だったらこれを現実世界で再現できるのでは?
やるとしたら今年しかないのでは?」
今のチームメンバーだけでも決勝に行けるかをチャレンジしたいという葛藤もありました。
企画のせいでチームが失格になるなどで、チームメンバーの努力を無駄にしてしまう可能性もあります。
でも、この企画をやった方が絶対におもしろいことになりそう。失格になっても原作っぽいし
まずは、チームメンバーに理解してもらい、了承を得て、企画を本格的に進めることにしました。
企画「リアルトリリオンゲーム」
トリリオンゲームに登場するハッカー大会が実在する大会であることを知って欲しいという思いで、CTFを知らない人向けに、解けなくてもいいので挑戦してもらおうという企画の趣旨です。
企画概要
日本国内最大級のハッカー大会 SECCON CTF の予選に100人で挑む
チームで国内決勝に進出するため上位8位を目指す
参加してくれればエナジードリンクをプレゼント
1問でも解けたら「パスワード付箋ステッカー」プレゼント
以前Twitterで話題となった非売品のオリジナルパスワード付箋ステッカーを報酬としました。
正直にいうと、参加者に得点は期待しておらず、セキュリティ業界全体が盛り上がってくれたらいいなと思ってました。
ワーストケース
一般の人を募集するという点で以下の点に気をつけなければいけないと思いました。
ドリンク代目当てでアカウントを量産される
問題が解いた人が参加後に解法の提出してくれない(決勝進出条件)
悪意のある人に「海外在住」として参加されて、国際チームにされてしまう
運営から迷惑行為と認定されて失格となる
この対策として、以下の対応をしました。
参加フォームをチェックシート形式にして、同意書風にする
discordサーバーで発言するには電話番号認証を必須とする
全てを対策するのは難しく、問題なく終わることを祈っていました。
無事に問題なく終わってよかったです。
パーティー参加
原作同様に、大会一週間前にセキュリティ系のパーティーでメンバーを集めていました。
(原作では、ビール祭りでIT系のひとたちを仲間に誘っている)
動画公開
参加者を募集する用の動画を作りました。
一瞬ですが、腕時計を売ってドリンク代にすることを想起させるシーンや、ガクが翻弄される雰囲気のナレーションなど、アニメ「トリリオンゲーム」をリスペクトしたテイストになっています。
動画を公開したのは大会開始5日前です。
このタイミングになってしまうのは、チーム登録や詳細のルールが公開されるのがこのタイミングだからです。
もしかしたら今年から、人数制限が設けられたりして、企画が成立しないこともあり得るからです。
公開が直前過ぎてしまうため、動画のためのナレーションや撮影は事前に済ませていて、仮画像を本番相当のものに差し替えるだけの状態にしていました。
チーム名は、原作のチーム名
にちなんで
にする予定だったのですが、ここでトラブル発生。チーム名に ASCII文字しか使えませんでした。さらに、3~64文字という字数制限あり。
泣く泣くASCIIで64字以内の非道なチーム名で登録して、動画を公開することにしました。
大会中の雰囲気
1問でも解けたらパスワード付箋ステッカーをお送りする約束をしていたため、Welcome問題のflagを第一に提出しようとしたのですが、CTF初参加のメンバーにWelcomeを奪われてしまいました(笑)
このWelcomeを含め、この企画で参加してくれた人のうち、3人もの方が1問解いてくれて、見事パスワード付箋ステッカーを獲得されました。
3人ともCTF初参加だったというのが驚きです。
また、問題にトリリオン要素があり、運営側もトリリオンゲームっぽさを意識しているようで盛り上がってました。
解けたらこんな感じでdiscordに報告していきます。
以前からチーム「脆弱エンジニア」として参加してきたメンバー(コアメンバー)の一部はリアルに集まってわいわい解いていました。
自分はずっと暗号のAESについての問題(dual_summon)を解いていたのですが、「無理じゃね?」「だからなんなんだ…」と言いながら、この1問に20時間ほど費やしていました。
諦めずに粘った末に、大会終了まで残り1時間を切った13:10に、flagを提出できしました。
残り50分。もうこれ以上解けないだろうというところですが、うちのスーパーエース t-chen が奇跡を起こします。
17人しか解けていないWebの難問(double-parser)の解法を思いつき、残り時間わずかの13:47にflagを獲得して提出しました。
t-chen「めっっっちゃ良問だった〜〜〜〜!」
結果
国内10位/世界38位という結果に終わりました。
惜しいいいいいいいいいいいいいいい!!
あと1チーム差で決勝進出ならずでした〜〜〜!!
(上位8チームが決勝に進出でき、国内1位のチームが国際決勝進出のため国内9位までが決勝進出)
公式のツイートになんとか爪痕を残せました。
自分が解いた問題や思考の過程についての詳細は、以下で解説をしています。
参加者のその後
初出場の人にとっては、SECCON CTFは難しすぎて心を折ってしまうような経験になってしまったと思います。
セキュリティ芸人主催の比較的難易度低めのエンタメCTF「ASUSN CTF2」を年末に開催予定ですので、そこで解ける楽しさを覚えて帰っていただきたいです。
ただ、これは心配しすぎだったかもしれません。
初参加の方でもwriteupやupsolveまで書いてくれました!
脆弱エンジニアのチームとして集まってくれた皆さんは屈強でした!
スペシャルサンクス
t-chen
会場を提供してくれたチームメンバー
参加してくれたチームメンバーのみなさん
SECCON CTFの運営スタッフの方々
とても楽しい思い出になりました!
来年また強くなって決勝の舞台で会いましょう。
セキュリティ芸人
アスースン・オンライン