世界を動かす技術を、日本語で。

フロンティアAIがオープンCTFフォーマットを突破しました

概要

  • CTF(Capture The Flag)競技の現状とAIの影響についての体験談
  • AIの進化によりCTFの競技性が大きく変化
  • スコアボードの意味や初心者の成長機会が失われつつある現状
  • チャレンジ作成者や参加者のモチベーション低下
  • コミュニティの今後と新しい学び・交流の場の重要性

CTFと私の実績

  • 2021年 からCTFに参加し、同年に大学入学
  • 初参加は HCKSYD という48時間ソロCTF、2時間で完全制覇し優勝
  • その後 DownUnderCTF でBlitzkriegチームと複数回優勝
  • Blitzkriegは当時オーストラリア最強チームの一つ
  • 国際的なトップチーム TheHackersCrew にも参加し、 CTFTime で常に上位入賞
  • 世界有数のCTFでトップ10入りを継続
  • CTFは私のセキュリティへの情熱の原点
  • CTFが学び方を教えてくれ、成長を可視化し、多くの尊敬する人と出会うきっかけに

AIによるCTFの変化

  • GPT-4 登場以降、AIで中難易度CTF問題の「ワンショット解決」が可能に
    • 例:暗号問題をChatGPTに貼り付けるだけで10分後に解答が得られる
  • 当初は難問には影響が少なかったが、AIの進化で状況が一変
  • 問題は「AIが人間の思考・解決を丸ごと代行する」点
  • Claude Opus 4.5 登場で中難易度だけでなく一部の難問もAIで解決可能に
    • CLI連携やCTFd API自動化でAIエージェントによる大量自動解答が現実に
  • AI未使用チームは競技で大きく不利に
  • オンラインCTFは「自動化レース」と化し、人間のスキルが測れなくなった

スコアボードの崩壊とコミュニティの変化

  • CTFTime のリーダーボードはAI活用度やオーケストレーション能力の競争へ
  • 伝説的チームの順位低下や参加減少、問題作成者のモチベーション低下
  • GPT-5.5Claude Mythos 級のモデルは超高難度問題も単独解決可能
    • トークン投資量が勝敗を左右する「ペイ・トゥ・ウィン」化
  • 専門モデルの意義低下、競技の本質が「AIエージェントの数・質・稼働時間」へ
  • CTFのパフォーマンスが人間スキルを示さなくなり、採用指標としての意味も喪失

初心者への影響と学びの断絶

  • 「初心者でもCTFで学べる」という意見は現実を見ていない
  • かつてはスコアボードが「成長の梯子」として機能
  • AIが上位を独占する現状では、初心者が本質的な学びを得る前にAI依存に陥るリスク
  • 努力しても可視的な進歩が見えず、モチベーション低下
  • 問題作成者も教育プラットフォーム(picoGym, HackTheBox等)への移行傾向
  • 初心者はCTFよりも実践的な学習環境での学びが推奨される

「CTFは死んでいない」論への反論

  • 「AIで拡張されたCTFはまだ生きている」との主張は一部の決勝戦のみを根拠
  • 予選がAIで解決されると本当に実力ある人が決勝に進めない構造
  • オープンなCTFのスコアボードが自動化で意味を失ったことが本質的な問題

AIとセキュリティ研究の関係

  • CTFは本来「セキュリティ研究」そのものではなく、技術共有や人間の限界挑戦の場
  • LLMによる完全自動化は「人間の挑戦」を奪い、競技性や芸術性を喪失

「チェスエンジンと同じ」論の誤り

  • チェスエンジンは競技中の使用禁止、CTFはAI自由使用で競技性崩壊
  • AIが競技中に自由に使えるなら、公平性・面白さ・人間の限界挑戦は消失

運営側の苦悩

  • LLM対策(拒否ワード、プロンプトインジェクション等)は一時しのぎに過ぎない
  • 新モデルは対策を容易に突破、ルールによるAI禁止も実効性なし
  • 結果、運営は「AIが解ける問題」か「人間にも不快な問題」しか作れず悪循環

「適応すればいい」論の限界

  • ツール開発や難問作成はすでに実施済み
  • スコアボードがAIオーケストレーション競争になった現実を認めるべき
  • 競技難易度のインフレは学習機会を奪い、数モデル先には更なる無力化が予想される

コミュニティの現状と今後

  • CTFTimeのリーダーボードは歴史や人間スキルの面影なし
  • TheHackersCrewや他の大規模チームも活動縮小や離脱
  • 不正利用が蔓延し、伝統的な名CTF(Plaid CTF等)も終了
  • ローカルチームやトップバグバウンティハンター、カンファレンス発表者も同様の危機感
  • CTFの「楽しさ」「成長の梯子」「問題作成の職人芸」が失われた

新しい学びとつながりの場

  • CTF/AI分野は商業化・自動化が進むが、CTFコミュニティの価値は不変
  • セキュリティ系のソーシャルイベント(SecTalks、学生カンファレンス、ローカルミートアップ等)が重要
  • Discord等を活用した学習・交流コミュニティの活用
  • かつてのCTFのような「成長とつながり」の場を新たに模索する必要性

Hackerたちの意見

https://en.wikipedia.org/wiki/Capture_the_flag_(cybersecurit... まだAIについての言及はないけど、競争が激化するにつれて、これから変わるかもね。

CTFには参加しないけど、2年前にセキュリティワークショップにAndroidのスマホだけで参加したことがあるよ。最初の簡単なチャレンジでは一番になったけど、その後はスマホの性能が限界で続けられなかった。でも他の人がやってるのを見てたんだ。若いインド人の男の子がChatGPTを使って全部やってたのが面白かった。ちょっとバカみたいだと思ったけど、実際に彼は2位になったからね。その時はCodexもClaudeもなかったし、今は本当に死んでるんじゃないかな。だって、現実世界でやってるみたいに、エージェント使って全部解決できるもん。

最近、オブfuscatorを作ってたんだけど、モデルにデオブfuscateさせて元のコードに最適化して、オブfuscatorをどんどん改善してたら、もう限界になっちゃった。面白いのは、その結果、実はかなり強力なデオブfuscatorと最適化ツールができちゃったこと。多分、商業用ツールよりも優れてるかも。CTFをもっと難しくするのが解決策だけど、CTFってどこまで難しくなるのかな?「難しい」CTFは根本的に「簡単」すぎるのかも。論理の連鎖と徹底的なブルートフォースで解決に至るから、目に見える形で解決策を表現する方法が限られてるんだよね。もしかしたら、人間の創造性が尽きてしまったのかもしれないし、思ってたほど無限じゃないのかも。時間が経てばわかるだろうね。もう一つアイデアが浮かんだんだけど、AIエージェントしか見つけられないフラグを隠すのも面白いかも。

一部はアストラル投影が必要になるかもしれないし、コンピュータには無理だよね。あるいは90年代が想像してたようなVRミニゲームでもいいかも。

面白いね。最近やったことがこれとほぼ同じで、JSの難読化ツールの限界を押し上げようとして、GPTやClaudeに最終出力をデオブフスケートさせて、その後にGPTにツールを改善させてデオブフスケーターを壊すようにしてた。どこかに公開してるの?これが私のJS難読化ツールの出力のサンプルだよ: https://gist.github.com/Trung0246/c8f30f1b3bb6a9f57b0d9be94d...

「CTF」を「高校」や「大学」に置き換えたら、教育の完全なスローモーション崩壊を表現してるね。唯一の救いは、ほとんどが対面での参加を必要とすること。人間の代替パイプラインは見つけたみたいだけど、教育の部分はまだ解決してないね。LLMは素晴らしい教師になれるけど、「やっておいて」と言いたくなる誘惑にはほとんど抵抗できないよね。

信頼できない情報を自信満々に教えてくれる素晴らしい教師?

「教育は、貴重な資格のフラッグを得るためのCTFみたいなもんだ。このエッセイでは、~」

「LLMsは素晴らしい教師になれる」 それって本当にそうなの?

教育についてももう分かってるよ。自分で学んで、実践して、練習するだけなんだ。「ただやってくれ」ってエージェントに言うのは魅力的だけど、それは学びじゃない。実際に学んで内面化しようとするなら、意図的である必要がある。もちろん、ただ作業をするのではなく、ユーザーを導くために厳しい指示を持った自分専用の教育エージェントを立ち上げることもできるよ。もちろん、いつでもそれを回避することはできるけど、学ぼうと努力しているなら、これはいい妥協点だと思う。

Oxide & FriendsポッドキャストでのCS教育におけるAIに関するインタビュー[0]がとても興味深かったよ。もちろん、ブラウン大学のCSはすべての教育ではないけど、それでも面白い視点だね。[0] エピソードのウェブページ: https://share.transistor.fm/s/31855e83

ソフトウェア開発の役割の面接をしていて、最初のラウンドは対面で行ったんだ。チートを防ぐためにね。AI以前に学んだ人とAI以降に学んだ人の間には、ものすごいギャップがある。3年の経験があるはずの開発者が、AIなしではフィズバズも書けなかったんだ。

最強のフロンティアLLMでも、4年生の数学の宿題は解けないよ。教育が崩壊するのを期待しない方がいいよ。(本当の数学の問題ね、アメリカ式の「数学」じゃなくて。)

彼らはスキルのための強制要因だったけど、もうそうじゃない。新しいスキルのための強制要因が必要だよ、さもないと私たちは WALL-E のブロブになっちゃう。まあ、表向きは強制要因だったけど…10年前はみんな交換留学生に宿題や課題をやらせてたし、その留学生は母国のいとこにお金を払ってたけど、今はもうちょっと効率的になってるね。

人間の代替パイプラインはわかったみたいだけど、教育の部分はまだわかってないね。そうだね、まだわかってない。

教育の統合はもうしばらく続いてるよ。すべてのエデュテックコースの前から、ユーチューバーが多くの大学教授よりも良い教育をしてたし。10~15年前には、学生はすでに講義をサボってテストだけに出てきてたよ。

「そのフィードバックループが壊れつつある。可視化されたスコアボードがAIを使ってるチームに支配されていると、初心者はAIが置き換えている本能を身につける前にAIを使う方向に押しやられる。それはアンチパターンだ。アクティブラーニングを妨げてしまうし、実際に教えてくれるのはアクティブな苦労なんだ。努力しても目に見える進展がないのは完全にやる気を失わせる。だって、上の梯子が自動化されちゃってるから。」これ、すごく印象に残ったし、記事自体よりも広い意味を持ってるかもしれないね。前にも注目されたことがあると思うけど、いろんな分野に当てはまる良い表現だと思う。

大学の初心者プログラミング学生にも同じことを見てるよ。彼らは課題を学ぶためにAIを使うけど、結局、自分でやった場合の理解には至らないんだ。それが原因で、より高度なトピックを学ぶ際に不利になる。私の懸念は、AIの助けがあっても、彼らが良いソフトウェアを作るために必要なレベルに達しないことなんだ。だから、AIを使った専門家が素晴らしいソフトウェアを作れるとしても、私たちが目指すところではないんだ。結局、何が起こっているのかほとんど理解していない人たちによって、雰囲気だけでコーディングされた混乱が生まれることになると思う。

メタ:この記事のタイトル「CTFシーンは死んでいる」で提出したんだけど、すごくわかりやすかった。今はサブタイトルの最初の文「フロンティアAIがオープンCTFフォーマットを壊した」に更新されてるけど、こっちは理解するのが難しい。まるでガーデンパス文みたいだ。最初に思ったのは「フロンティア」が会社名で、CTFというファイル形式があるのかと思った。Capture The Flagコンテストについて知らない人には、変更は助けにならないよね。知ってる人には、逆にわかりにくくなってると思う。

もし役に立つなら、私は2つ目の方がずっと理解しやすくて、クリックベイト感が少なく、情報も多いと感じるよ。混乱についてのあなたの指摘には同意するけど、「フロンティア」という言葉はこの分野でよく使われてると思う。「フロンティアAIモデルが~」って言えば、その問題は解決できるかも。

なんでみんなスレッドを hijack してタイトルの話をするんだろう?ほとんどの記事のタイトルはひどいし。ダウンボートして次に進めばいいのに。

競技プログラミングのシーンは、オフラインの競技が常に含まれていて、AIのおかげでそれがますます重要になってるね(実際、以前からもっと公平だったし)。CTFが生き残るためには、この戦略を採用するべきだと思う。コンピュータにロードされたものはすべて公平な対象にしてもいいかもしれないけど、それ以上はダメだね(例えば、ある競技プログラミング大会では無制限の紙資料が許可されてるけど、CTFではもっと電子的なものが必要だと思う)。

「楽しむためのCTF」って側面は、勝ったチームが何千ドルもの報酬を待っているようになってから死んじゃったよね。もちろん、ルールで明示的に禁止されていないものは何でも使って勝とうとするよ。ルールで防げず、誰でもアクセスできる「勝ちボタン」を導入したからって、数年前の巨大な合併チームの流行と同じように「フォーマットを壊した」わけじゃない。ただ、今は他の人と話さずにチートできるようになっちゃったから、コミュニティが壊れたんだよね。最近、多くのCTFが二重リーダーボード形式に切り替えたよ。「エージェントチーム用」とそれ以外の用でね。「学ぶこと」や架空のインターネットポイントが気になるだけなら、人間チームとして参加してAIのスコアボードをブロックすればいいし、もしかしたらCTFTimeにランキングを分けるようにロビー活動することもできるかも。

初めてCTFをやったとき、締切が近くてプログラムからフラグを抽出したと思って、残りはただのフィラーだと思ったからフラグを入力したら、フラグじゃないって言われたんだ。実際には、プログラムは入力を擬似乱数行列で掛け算してからフラグと比較してたから、行列の逆行列を実装してフラグを取得しなきゃいけなかった。でも、話の本筋はそこじゃない。行列は常に同じで、チャレンジは何かを読むことができることがポイントで、行列を逆にすることを知ることじゃなかったから、作成者に何が起こってるのか聞いたんだ。彼は、入力値を追跡して比較命令に到達したら、それが何と比較されているかを印刷するツールがあると言ってた。だから、すべてのデオブフスケーションチャレンジは、これらのツールが元に戻せないような複雑な方法で入力をスクランブルする必要があったんだ。それが擬似乱数行列での掛け算の理由。要するに、チートツールは新しいものじゃないよ。

攻撃防御スタイルのCTFがスロッピングにどう影響されるのか、ちょっと興味あるな。ENOWARSのスコアボードは、前回とはかなり違う結果になるかもね。