![見出し画像](https://assets.st-note.com/production/uploads/images/169443284/rectangle_large_type_2_f5b5ff033e518820ef1f2b06f7a8a81d.png?width=1200)
大喜利CTFのジャンル「IPPON」過剰解説
ASUSN CTF運営メンバーのアスースン・オンラインです。
「ASUSN CTF」という大喜利ジャンルのある風変わりなCTFを開催して今年で2年目となりました。
![](https://assets.st-note.com/img/1735528340-2BZnDEij638tzlYP01MphxNJ.png?width=1200)
大会開催中は、主催者である自分が、おもしろいと思う回答を手動でIPPON判定(正解扱いに)していきます。数時間に一度ぐらいの頻度で行われます。
![](https://assets.st-note.com/img/1735528348-zRgvxEeXUFQbpi2TCm45jwlA.png?width=1200)
運営側ではどのような判断基準でIPPON判定にしているかを勝手に綴ろうと思います。
判定に疑惑や不満があって書くに至ったわけではなく、令和ロマンくるまの「漫才過剰考察」を読んで、言語化したくなった痛いやつだと思っておいてください。
ジャンル「IPPON」のすすめ
ジャンルIPPONを開催する大きな利点ですが、運営側が楽しいです。
想像していなかったおもしろい回答がバンバン届くので、回答を眺めながら「おもろっ!」「うわ〜〜〜これめっちゃいい!」と声を出して笑っています。
ぜひ、サークル等でCTFを主催する機会があれば、ジャンルIPPONを取り入れてみて欲しいです。
そのときは必ずしもこの記事に書いてあるようなルールでやらなくていいです。CTFがワイワイ楽しく盛り上がるかどうかを第一に優先してください。
お題の選定
大喜利のお題を選ぶのはなかなか難しいです。
CTFの参加者はお笑いが得意なわけではないので、そのような人でも回答を思いつきやすい内容に寄り添うことが大切だと思っています。
(提出される回答が驚くほど秀逸なので、CTFプレイヤーはお笑いが得意説が浮上していますが)
エンジニアが答えやすい「プログラミング」や「セキュリティ」に関するお題にします。
自分が普段「職業病だろ」って思うこととかがいいんじゃないでしょうか。
参考までに、これまでのお題を書いておきます。
2023年
Python100が登場!その驚きの新機能とは?
あなたのおすすめのパスワードを教えてください
デジタル大臣がフィッシングに引っ掛かった!どんなサイト?
2024年
到来した宇宙人がエラーを吐いた どんなエラー?
バグバグの実の能力者 一体何ができる?
今年の漢字ならぬ「今年のUnicode」 2024年の世相を表すUnicode1字とは?
大喜利っぽさがありますね。
想定解を考えてみる
バラエティに富んだ回答がたくさん出て、いろんな展開が期待できるお題が望ましいです。
いくつかお題のアイデアを出した上で、自分も回答を考えてみて、思いつきやすさとおもしろさが高くなるお題を選びました。
到来した宇宙人がエラーを吐いた どんなエラー?
回答:ASSERT: planet.peace does not exist. (平和が存在していません)
皮肉っぽい内容の回答も作れそうでいいな。
「この変換ケーブル誰が使うんだよ!何と何の変換?」というお題を考えたりもしましたが、没にしました。
「紙ストローとType-C」みたいな、思いつきにくい上に、イマイチでワンパターンな回答だらけになってしまいそうな予感がしました。
お題は具体的に
お題は具体的な方が考えやすいです。
次のお題はどちらがアイデアが出しやすいでしょうか。
未来のプログラミング言語!その驚きの新機能とは?
Python100が登場!その驚きの新機能とは?
これだと、下のお題の方が考えやすいと思います。
「Python特有のあるあるが、未来ではどうなっているだろうか」
「Python100って遥か未来だから、到底不可能なファンタジー要素を入れてみよう」
という考えができるようになります。
一方で、上のお題は、考えることが多すぎて、考える側が困ってしまいます。どの言語を参考にすればよく、どれぐらいの未来の、どんな機能なんでしょう。
「フィッシングに引っ掛かった」のお題も「デジタル大臣が」と入れることで、おもしろさが格段に増しました。「裸の小池百合子」とかいう名回答が誕生しました。
運営がいろんな回答を見たいと思えるか
これは少々傲慢な気がしてしまいますが、同じくらい参加者もいろんな回答を見たいと思えるということです。
「今年のUnicode」なんて、自分たちが知らないようなおもしろい回答が絶対に届きますもんね。ワクワクしていました。
IPPONの判定基準
いよいよ本題です。
どのような基準でIPPONとしているかを書いていきます。
なお、今年の判定はCTFdのIncorrect Submissionsの不正解回答一覧から、Correctに変更することでIPPONとして正解になる仕組みでした。
判定する際は、ユーザ名を伏せています。
これを読んだら参加者がIPPONを取りやすくなる攻略法のようなものではありません。
ここで不採用とされるような内容でも、特別におもしろくてIPPONとしている回答もあります。
むしろ必勝法は、深く考えずに自分がおもしろいと思った回答をたくさん送ることだと思います。
共通の判定基準
どの問題においても共通のIPPON判定基準として以下を満たす必要があります。
大半の参加者(エンジニア)にとっておもしろいと思えるか
すなわち、「個人的な内容」や「エンジニアに伝わりにくい内容」は選ばれにくいです。
具体的に以下のような回答は不採用となっています。
「ベンチマークを回すスタミナパン『ほーんとにベンチしてまーす』」(お笑い好きにしか伝わらないため)※
「アスースンがXXXする」のような内輪な/主催側を立てるような内容
それ以外は問題によって判定基準が異なります。
問題ごとに具体的な回答を例に解説していきます。
宇宙人がエラーを吐いた どんなエラー?
このお題には主に2つの方向性がありました。
①普段見かけるエラーが宇宙人でも発生するんだ!という方向性
No space left on mother planet.
確かにな!地球もう住める場所ないもんな!という内容です。
いろんなエラーが考えられますが「宇宙人が来たシチュエーションに合うかどうか」が重要でした。
例えば「segmentation fault」だけだと、宇宙人がどうしてセグフォになるのかあまりピンと来ません。
一方で、以下の回答は、
301 Moved Permanently
人類が地球から移住したのか!という内容が汲み取れます。内容が合っていてうまいと思えればIPPONでした。
②宇宙人らしい未知な方向性
error: expected `بظ٩?₣ﭢق۞Ɣء!ᴺℵ⧫غ∀Δ`, found `English`
そうなるんだw 宇宙人だな〜という内容です。
既存のエラーに寄せてくれているため、①と似ていますが「もしも宇宙人がエラーを起こしたら」というお題通りの解釈です。
意外性や驚きがある回答がIPPONになっていました。
システムに重大なエラーが見つかったため、この星を再起動します。
などもそうですね。「ちょっと待て!再起動すんな!w」
ぬるぬるポインタエクセプション
は、不意打ちでフフッと笑ってしまいました。
バグバグの実の能力者 一体何ができる?
超能力系の作品にバグの能力者が登場する際に、どのようなワンシーンが見れるんでしょうか。そういう展開がありそう〜!という架空の名シーンが想像できればIPPONです。
デバッグ環境で再現できないバグを本番環境で発生させられる
想定していた回答が届いて感動しました。
Production環境でしか再現しないバグは厄介なのでマジでやめてくれ。
笑い方がバググググググググ
ワンピースよりの回答もありましたが、ワンピース知らない人でもなんとなくわかる内容でおもしろければIPPONにしました。
「One Piece」自体がUndefinedになり、存在しない宝に…
「えっ?宝がないってマジかよ!でもいいんだ、冒険が楽しいからな!」
〜FIN〜
0で割れる
「なに…? 0で割れる…だと…?」
「おいらの0除算はエラーキャッチを貫通するのさ!次の挙動なんて誰も読むことができまい!バグググググ」
バグ曲線が発散
「何!?バグ曲線が……発散しているぞ?」
「そんなバカな…リリースに向けてやがて収束していくはずなんだぞ!」
「「うわぁぁぁぁぁぁぁ」」
(白い光に包まれて消滅)
CVE番号を自在に生成し、その度に新たな脆弱性が生まれる
「くらえ。CVE-2025-65537」
「「「うわぁぁぁぁぁぁぁ」」」
(世界各地で突如大規模障害が発生)
強敵ですね。いろんな名シーンが登場して楽しかったです。
今年の漢字ならぬ「今年のUnicode」 2024年の世相を表すUnicode1字とは?
これは難しいお題だったと思います。
考え方としては、2024年の今年の漢字トップ20から、それっぽいUnicodeを探すのがよかったのかなと思いました。
採点側には謎の1文字がたくさん届けられるため、どのように今年と結びついているのかをエスパーで推測していました(笑)
「🀧」(嬉野紗弓実さん)は、夏の暑さによる「暑」という漢字のUnicode表現なのだと思われます。確かに使われそうだな!と思ってIPPONにしました。
このお題には、良い流れがありました。
2024年の漢字「金」に関して、部首としての金(U+F90AではなくU+2FA6)(NASU41さん)を皮切りに、いろんな金がどんどん発掘されていきました!
「㊎」(nananoriさん)
「銤」(suisanさん)(2024年の1位「金」と10位「米」の合体)
「鍂」(gummyさん)
「鑫」(しゅたるくさん)
「𨰻」(sirumaさん)
「🜚」(JUCKさん)(金を意味する錬金術の記号)
「金」という漢字いろんな意味が込められていますが、Unicode1文字でいろんな金がしっかり表現されていて素晴らしかったです。
「⛓️💥」(hamayanhamayanさん)のブロックチェーンが破壊される絵文字は、今年の出来事を象徴していて、そんな絵文字あるのかよwという秀逸な回答でした。
ややこしい話になりますが、最初のIPPONを取ったのは、「脆」(Tan90909090さん)という漢字でした。
これは、今年のUnicodeというお題にもかかわらず、あらゆるUnicodeを差し置いて脆という漢字が選ばれるという逆行したおもしろさでした。
これ以外は純粋な漢字の回答のIPPONは与えていません。
𰻞𰻞麺の「𰻞」の字は、判定にかなり迷いました。
ファミマの麺やM-1グランプリの令和ロマンのネタにも登場したり、iPhoneで表示できるようになったぐらい有名になりました。確かに今年の字としては相応しかったのですが、本家の今年の漢字でも選ばれ得るもので、Unicodeである必要はないという理由で惜しくも不採用としました。
大会前半と後半の選ばれ方の違い
序盤の回答は、「このような回答がIPPONである」という方向性を示す重要な役割を果たします。参加者の回答を促すために、まずはお手本となるような回答を選びます。
お題の裏を行く回答や、意味不明だけどおもしろい回答などは、最初の方にはIPPON判定を与えませんでしたが、頃合いを見計らって後にIPPONとしています。
いろんな回答が公開されてくる後半は、今までの回答に被らないような回答が求められます。意表を突く回答が結果的におもしろかったりして選ばれるのが多い気もします。
反省点
10点満点中10点の回答しかIPPONを与えることができません。
本家の大喜利大会では、8点や9点などの何点だったかがフィードバックされますが、ASUSN CTFではIPPONか否かの判定しかわかりません。
8〜9点の非常に惜しい回答はたくさんありました。
もう一工夫でいけるのにな!という惜しさをフィードバックできる仕組みが何かあればよかったです。
また、1人に対して1つの回答しか正解にできません。採点をしているタイミングで、3つIPPONとしたい思った回答が全て同じ人だったことがありました。このような場合に、泣く泣く1つの回答を選ばなければならないのがもったいなかったです。
得点にならなくても、正解後に回答できる仕組みというのも用意したかったです。
参考
IPPONの回答をdiscordに通知するpluginをGitHubで公開しています。
ご活用ください。
ちなみに、2023年は、correct扱いとせずに、Awardで999点を付与するという方法でIPPON扱いとしていました。
上記のpluginは使えませんが、1人につき複数回答をIPPON可能なので、より波乱の展開にしたい場合はこの方法で!