ふるつき2

裏ブログです。うそです

AI vs わたしたち

TSG CTF 2025 があったけど、その後のみんな() の反応が顕著だったような気がするのでメモ

TSG CTF 2025はAIが解ける問題と、AIも人間も解けない問題に難易度が二分されてしまい、差がつきにくかったという体験があったのだと思う。

これに対して、SECCON CTF 14 (Quals) ではAIがうまくとけない問題が上手に出題されていた感じで、開催順によっては違う反応もあったのかな〜。

生殺与奪の権を他人に握らせない

つまりCTFの問題を解くパートをAIに任せっきりにしないということです。

最近CTFにでてなくて、この間SECCON CTF 14 (Quals) に参加したときに、問題をAIに丸投げしてた。なんかそれっぽいことを言ってくれるのでふむふむとかいう、実装してもらう。なんか微妙なので手直しして動かす。だめそうなので「〜でだめそうなんですけど」とかいう、実装してもらう、手直しした部分と噛み合わない実装が提示される……

みたいな感じで、これは非常につまらない体験だった。なんとなく考えるのも実装するのもAIがそれ風にやってくれるので任せてしまったけど、自分の頭を止めていて良くない。CTFは自分で考えるのが楽しかったはずなのに……

CTFをちゃんと終わらせる

活動をしてる。CakeCTF 2023の話です。CakeCTF 2023自体の開催は2023年につつがなく終わらせていたのだけど、上位入賞・スポンサー・writeup賞のプライズの発送をずっっっとやってなかった。プライズについてはptr-yudaiのセンスにまかせていて、こちらでなにかアクションしづらいということもあったのだが、流石に放置しているのも気が引けて、今更ながらプライズを準備して発送の準備をしてる。スポンサーについては少なくない額をいただいてCTFを開催しているので、お返しすると言っていたものはお返ししないとあまりに不誠実だし。

今更色んな人に連絡を取って発送先を聞いたりするのはなんか気まずいというか恥ずかしいような気もするし、こういう作業って苦手で面倒だけど、ちゃんとやる。

という話で思い出したけど、最近JerseyCTF 2022の運営からメールが来ていたのだった。

In 2022 you were issued payment for the attached and as of today the check has not been cashed. Please advise if the money is still owed. Do you have domestic address or bank account?

$500を3人で分けて、ひとり$166.6の賞金をもらえることになったのだけど、小切手の受け取り方がよくわからなくて放置していたやつ……。こちらは運営じゃなくて参加者の責任でCTFを終わらせられていないことになる。申し訳ない

Google Capture The Flag 2024

金曜の 27時から48時間あって、なんとずっとやっていた。CTFにであってからもう9年目とかですけど、48時間あるCTFの初めからおわりまでずっと取り組んでいたのは初めてだと思う。

期間中はスプラトゥーンを1時間 x 2回やった記憶がある。日曜日はご飯なくてBASE BREADのレーズンのやつを食べていた。睡眠は7時間が2回

解いた問題は2問で、開始1時間(取り組み始めてからは30分くらい?)と 46時間後 (取り組み始めてからは45時間?)。まあまあ難しい問題に張り付いて、ちゃんと方針を確立して、チームのひとに助けてもらいながら解くという体験ができてかなり良かった。

それ以外のことができなかったのは大変だけど、充実した2日間だった。十年後、この毎日のことは惜しんでも、この2日間のことは惜しまないと思う。

結果的にチームも2位でよかったし、盛り上がりも随所にあって多人数チームの楽しみというものもわかった気がする。

それで今頃になって興奮してねれなくなっているというわけ

自分がインフラを触れないCTFに問題を提供するとき、できるだけサーバ不要で配布ファイルだけで完結する問題を作るようにしている。

サーバの面倒を自分で見れない・どういう仕組みかわからないというのは結構不安だし、なにか問題があった時に方針を他の人と相談しないといけないのが大変だからそうしている。

これは他のカテゴリの人や、同じカテゴリでもサーバを要する問題を作っているがちゃんとやっていることをサボっていて、なんなら自分がそういう問題を担当しないことで負担を押し付けている面もあると思う。

ちゃんとそのCTFにコントリビュートしようという気持ちになったらアプローチの仕方が変わるのかも

週末はInsomni'hack の問題を4時間くらい眺めていた。人々はMapna CTFというやつに出ていたっぽい? ので見誤った感はある。

なんとCryptoは一問だけだった。R1CSファイルが渡されるだけという問題で、 https://github.com/iden3/r1csfile で適当にパースしたら解けそうだったけど、なんかリポジトリに仕様とかも置いてあったのでKaitai Structでなんとかならないかと思ってksyファイル書いていた。

R1CSのバイナリフォーマットはheaderセクションとconstraintsセクションがあって、constraintsセクションをパースするにはheaderセクションの情報が必要だけど、各セクションの順番は不定なのでKaitai Structではきれいにパースできなかった。一旦header以外のセクションはパースしないことにして、パース後にセクションの中身を改めてパースするksyファイル2個方式でなんとかした。

みたいなことをやってパースはできたんだけど、出てきた式をこねくりまわしてもフラグっぽい値にならなくて解けなかった。なぜかというと値は \mathbb{F_p}上のやつじゃなくてなんか楕円曲線上の値? だったから……。そんなことは仕様には書いてなくて実装だけがそうなっていた。だるすぎる……

このR1CSのバイナリフォーマット、別に標準のそれとかじゃないっぽいけどこういうの出すんだな。私もなんか適当なフォーマット考えてリポジトリにおいておいて、急にCTFにだしたりしたろかな……