ふるつき2

裏ブログです。うそです

Google CTF 2021 感想戦

writeupはこちら

furutsuki.hatenablog.com

なんかGoogle CTFは久々にたくさん労力を注いだCTFになったと思う。いくつか理由があると思う。たとえば、たまたまその日早起きできた。8:30くらいに起きて、9時からの開始に間に合うように参加できたのは大きかった。なんとなくの感覚だけど、CTFに開始からどれだけすぐに参加できるかというのはそのCTFにどれだけ取り組めるかと関連していそうな気がする。開催から時間がたってしまったCTFにあとから参加するのはなんとなく怖いような印象があってやるきが上がらない。それからzer0pts単体で出たというのも大きかった。去年は合同チームで出たのだけど、合同チームになるとどうしても働かないほうのアリになってしまう。強い人が他にいるからやらなくていいじゃんという気持ちになってしまったり、解いている途中で雑に考えを日本語でメモすることに抵抗があったりする、要するに自由度が低く感じられてしまって我が物顔で振る舞えないのが良くないんじゃないかと思う。あとは単に時間の自由があったということだろう。家族が家に居て生活の様子を合わせないといけないとか、明日は学校だから準備をしないといけないとかがなくて何にも邪魔されなかったし、先の気兼ねもなかった。

しかし取り組みに比して問題が解けていないな、と思う。主にCryptoに取り組んでいたけど独力で解いたのはH1だけだった。他にもかなりリソースを割いてほとんど解けているという状態に持ってきた問題にしても最後解ききることができていなかったりした。例えばtiramisuで最後のCRTをやるパート、なにを勘違いしたのか復号後の文字列に flag が含まれているかどうかで判定していたが、フラグのフォーマットは CTF だったので見つけられなかった。これは「あれおかしいな」と思って全部出力してみてあとからそれっぽい文字列でgrepするとか、あるいは復号後のバイト列がprintable-asciiですか、とかそういうことをすればすぐに解決した問題なんだけど、そういうタイミングでサッと手を動かして再実行ということが全然できない。

それから単純に実力不足というのはある。やはりtiramisuでsecp256r1-validな点を作るために中国剰余定理を使うのを思いつかなかった。なんか大きい数を使えばいいのでは? と思ったけどそれを作るツールとして中国剰余定理を思い出せなかったのはダサいなぁとおもうし、tonalitiyはサッとみて「これはdを復元するのは無理なので……」という方向に舵を切るような問題だと思うけどそれができていなくてずっと「dGを定数倍できる場合にdiscrete-logが解けないか」みたいなことを考えていた。世の中のCTF PlayerやCryptoやるひとというのはこのあたりがめちゃくちゃ正確で強いというイメージがある。中国剰余定理サッと思いついて解けるし、なんか解けていなかったときにデバッグするのが上手。私は「これはあっているはず」という思い込みをめちゃくちゃやるのと、実験してみようというのを面倒がるのとで一度ハマるとほとんど諦めたも同然になってしまう。性質的なものなのでどう改善したものかもわからないのも難しい

反省すべき点は多いけど、楽しく取り組めた。goとかdartとかでプログラムが書かれていたり、通信するのにprotobuf使っていたりと非本質パートで嫌な色を出してきたことを除いては、Google CTFのCrypto問題はよくできていたと思う。インフラもさすがgoogleという感じで安定していたし、めちゃくちゃなつなぎ方をしてもBANされたりしなくて非常によかった。

一方でWebはそうでもなかったらしい。zer0ptsはチームとして一問もWeb問題を解けなかったし、どうやら評判としてもすこぶる良い問題だったとはいかないようだった。CTFの問題がどうなるかなんていうのは作った人によるとしか言いようがないし、誰が作ってもだめなときはだめだったりするので運という感じはするけど、そこを実力や工夫でうまく安定させて質の高い、無理のない問題を作るのが実力だし、参加者が満足するCTFというのはそういうものだと思う*1Googleはそういうところがめちゃくちゃ上手だと思っていたので意外だった。

話はかわるけど、今回のCTFではだいたい開催から36時間経つかたたないかのあたりで元気がだいぶ失われてしまった。そもそも根を詰めるというのは大変なことである上に、だんだん解けそうな/取り組めそうな問題が減っていくわけでこのあたりが限界か……となる。私は上位を取るためとか賞金がほしくてというよりは解く楽しみのためにCTFをしているので「疲れてきたな」とか「つまらないな」と思った瞬間にコントリビュートできなくなってしまう。そしていくら競技や問題が面白くても体力的な限界は36時間くらいで訪れる気がする。夜ちゃんと寝られなかったけど昼寝はしたので体力的な問題というよりは継続して取り組む限界がそのあたりにあるんじゃないかなと思っている。これは私の話です

なんか思いついたら書き足したりする

*1:ctftimeバイアスというのがあって(作った)、単に開催回数がおおいCTFのレーティングが高くなって人気になりやすいという問題があるので「人気のCTF」という言葉を使わなかった