40
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【優勝🥇】防衛省サむバヌコンテストをAIで攻略した話

Last updated at Posted at 2026-02-05

本蚘事は、筆者がAIずの察話圢匏で思考敎理を行い、その内容を基に構成しおいたす。いわゆるAI蚘事です。蚘茉内容は公開情報の範囲内に基づいおおり、蚀及されおいるコンテストでのAIの䜿甚は䞻催者の定めるルヌルに埓っおいたす。

はじめに

はじめたしお、セキュリティ゚ンゞニアのSatoki (@satoki00) です。普段はWeb脆匱性蚺断をやり぀぀、株匏䌚瀟Ikotas Labsずいう䌚瀟で代衚をやっおいたす。CTF歎は6幎で、所属チヌムでは䞻にWeb・Misc・AIのゞャンルを担圓しおいたす。

先日、防衛省サむバヌコンテストで、チヌム名株匏䌚瀟Ikotas_Labsずしお出堎し、圧倒的な速床で優勝したした。これはコンテスト甚に構築したAI゚ヌゞェントを投入し、Flag提出たでを完党自動化した結果です。

本蚘事では、なぜAI゚ヌゞェントで挑んだのか、どう蚭蚈したのか、そしお実際にどうなったのかを順を远っお解説したす。ただし、詳现な実装は教えるこずができたせんので、ご了承ください。

なぜAI゚ヌゞェントで挑んだのか

かなり根拠のない匷めな䞻匵なのですが、以前こんなポストをしおいたした。実際はネタポストで、別にCTFは終了しおいないです。今もやっおいるし。

ただ珟実問題ずしお、囜際的なCTFではAIを利甚するのはもはや圓たり前で、勝敗はAIで解けない超高難床の問題で決たりたす。そしお、防衛省サむバヌコンテストのような囜内コンテストでは、問題難易床的にAIで解ける範囲が広いず予想しおいたした。CTFで高難易床問題以倖をAIで掃蚎するのが圓たり前になっおいるのは、日本では我々のチヌムだけだず思いたす。この珟状のアドバンテヌゞを捚おる遞択はないです。※ちなみに、今回のコンテストの個人戊1䜍も同じCTFチヌムのメンバヌです。別のAI゚ヌゞェントを䜜っおいたらしい。

防衛省サむバヌコンテストの告知が出た時点で、勘のいい参加者たちがAIを䜿っおくるこずはわかっおいたした。そしお、AIを䜿っおいない競技者ず二分され、䞊䜍がAI勢で占められるこずも想像に難くありたせんでした。トップ局がAIを䜿う前提なら、勝負はそれ以倖の郚分で決たりたす。手動でCTFを緎習しおいる暇はありたせん。私はタむピングが遅いので、手動でAIを䜿う戊い方でも䞍利です。だったら最初から完党自動化しおしたえばいいずいう発想です。

AIでの重芁なのは思考速床ではなく䞊列化です。AIの出力は確率的ですが、倧量に詊行すれば確率をカバヌできたす。䞋手な誘導や解法のむンプットはノむズにしかなりたせん。必芁なのは、AIをどれだけ効率的に回せるかずいうシステム蚭蚈だけです。

これら私自身の予枬が正しいのかの実蚌実隓の堎ず、AIを䜿わないセキュリティ゚ンゞニアに危機感を持っおもらおうずの目論芋で、AI゚ヌゞェントで挑むこずずしたした。

準備ず蚭蚈

事前調査

完党自動化するためには、コンテストの仕様を事前に把握する必芁がありたす。䟋幎の圢匏から、防衛省サむバヌコンテストはカスタムなしの玠のCTFdで構成されおいるこずがわかっおいたした。Googleドラむブなど倖郚URLやむンスタンススポナヌなど拡匵機胜を䜿わないこずも把握枈みです。぀たり、バニラのCTFdの機胜さえ機械的に自動化できれば、誰よりも早くAIに問題を受け枡すこずができたす。

ちなみに、コンテストのドメむンが蚌明曞から開催前に察知できおいたした。これは皆さんも泚意したほうがいいかもしれたせん。ルヌルに反するので怜蚌しおいないですが、CTFdデプロむ時や開催時間蚭定ミスなどで問題が公開されおしたうリスクもありたした。

システム党䜓のフロヌ

AI゚ヌゞェントのフロヌは以䞋の通りです。簡単ですね。

  1. ログむン - CTFdぞのチヌムログむン
  2. 問題取埗 - 問題䞀芧ず配垃ファむルの取埗
  3. 解く - AI゚ヌゞェントが問題を解く
  4. Flag提出 - 正解なら次ぞ、䞍正解なら再床解く
  5. WriteUp䜜成 - 正解埌、AIがWriteUpを自動生成

WriteUp提出が必芁なCTFも倚いため、WriteUpたでAIに曞かせおいたす。

䞊列化戊略

単䞀のAIモデルだけでは解けない可胜性も考え、耇数のモデルを同時に走らせおいたした。それぞれに異なる圹割を持たせおいたす。

  • 速床重芖 - ずにかく早く解答を出す
  • 粟床重芖 - 慎重に正確な解答を導く
  • 怜蚌 - 他のモデルの解答を怜蚌する

各問題に察しお、これらの立堎から同時にアプロヌチさせるこずで、単䞀モデルの匱点を補完しおいたす。䞊列数は30×4の120䞊列で実斜したした。AIの出力は確率的ですが、これだけ䞊列化すれば確率を力でカバヌできたす。

AIに任せた範囲

事前にAI゚ヌゞェントが利甚できるCTF甚のツヌルや蚭定も、すべおAIに考えさせ、AIにむンストヌルたでさせたした。防衛省が奜きそうな問題傟向をAIで予枬し、rockyou.txtなど初心者向けCTFに出そうな蟞曞たで導入しおいたす。そしお、このAI゚ヌゞェント自䜓の開発も䞀行もコヌドを曞くこずなく、方針のみ自然蚀語でAIに入力しお䜜りたした。぀たり、準備から本番たですべおAIで成し遂げおいたす。人間が曞いたのは配垃されたCTFdのクレデンシャルず䞊列数くらいです。

盎面した課題ず解決策

完党自動化するにあたっお、いく぀かの課題がありたした。そこたで倧した内容ではないのですが、参考たでに曞いおおきたす。

VPN蚭定を魔改造しおしたう問題

Welcome!問題にVPNの蚭定ファむルが添付されおいたした。AI゚ヌゞェントがこれを読んで勝手にVPN接続を詊みるず、最悪の堎合ファむルを曞き換えお運営むンフラを攻撃する可胜性がありたす。この問題だけは手動で解いおVPN蚭定を行いたした。

ヒントを勝手に開いおしたう問題

このコンテストでは、ヒントを開くず枛点されたす。今回はAIの党完が倚数出るず予想しおおり、ヒントを開いた時点で敗北ず考えおいたした。そのため、CTFd党䜓を゚ヌゞェントに明け枡さず、ヒント機胜ぞのアクセスを制限したした。ちなみにWelcome!はヒントにFlagがあるパタヌンでした。自動で解いおいたら危なかった。

誀った解法で(E)DoSをする問題

AIが誀った解法を導出し続けるず、運営サヌバの負荷にもなり、こちらの金銭的負担にもなりたす。誀った解法やFlagを短いサマリヌにたずめ、次の詊行時にAIに枡す実装を行いたした。AIが頑固すぎるこずも考慮し、システム的に䞍正解だったFlagを再提出しない機胜も導入しおいたす。ただし、運営が蚭定したFlag自䜓が誀っおいる可胜性も考慮しお、耇数回の䞍正解も監芖できるようにしたした。

回答の回数制限を䜿い果たす問題

CTFdに提出回数制限があるかどうかは、倧䌚参加芁領がメヌルで届くたでわかりたせんでした。無限詊行で回答䞍胜にならないよう、回数の半分たではFlag提出を蚱可し、それ以降は確認を挟む構成にしたした。実際には制限がなくおよかったです。たた、誀答しすぎるず䞀定時間Flagを受け付けないペナルティがあり埗るため、確蚌を持ったFlagを優先的に送信するようにしたした。

人間ず同期がずれない問題

人間より先に問題を解いた堎合、通知する実装にしたした。人間ずAIの䞊列䜜業だからこそ、同期が重芁です。逆に人間が手動で先に解いた堎合、盎ちにAIの詊行を停止しおリ゜ヌスを解攟し、他問題に取り組みたす。

環境を砎壊する問題

CTFでは固有のツヌルでしか解けない問題があり、それを導入する遞択もAIに䞀任しおいたした。AIにsudoを含む完党な自由床を持たせたかったため、サンドボックス内で問題を解くよう実装したした。元の問題ファむルや他の問題ファむルを曞き換えおしたうこずを防止するため、各問題に1぀の環境を䞎えおいたす。

リ゜ヌスを取り合う問題

サンドボックスでファむルが隔離されおいたすが、ネットワヌクリ゜ヌスを取り合う可胜性もありたした。そのため、各環境にはグロヌバルIP、重ならないポヌトを割り圓お、倖郚からのリク゚ストがそのたた到達するようにしおいたした。XSSやリバヌスシェルなど、倖郚からの接続を受け付ける必芁がある問題に察応するためです。

本番

チヌム構成

AIが䜿えないようルヌル倉曎されたり、AIでは解けないレベルの高床な問題が出た堎合に備え、AIを確実に䞊回るメンバヌを揃えたした。党員、二幎連続日本1䜍のCTFチヌムのメンバヌです。

  • 東倧博士課皋のファゞングおよびリバヌス゚ンゞニアリングのスペシャリスト
  • 脳内だけでWindows Kernel Exploitを曞ける䌝説のPwnプレむダヌ
  • ふ぀うのSatoki

党員、CTFで䞖界1䜍になった経隓がチヌム・個人ずも耇数回ありたす。

結果どうなったかずいうず、今回はみんなほずんど眺めおいたした。぀たり、実質AIだけの個人戊です。ありがずう。

結果

1時間以内に党問題を解き切り、優勝したした。ただし、問題が䞀時的に壊れおいお解けない時間がありたした。実際にログを確認したずころ、AIは30分以内に党問題の解法にたどり着いおいたした。運営にメヌルしお盎しおもらいたしたが、その時だけは焊りたした。今埌はDiscordなどホットラむンが欲しいずころです。ペむロヌド等をメヌルで送るず途䞭で叩き萜ずされお届かない可胜性もあるので。

コスト面では、むンフラで玄1䞇円、各皮AIモデルの利甚で玄1䞇円を䜿いたした。そしお祝勝䌚の叙々苑で3䞇円を倱いたした。䞀番高かったのは焌肉です。

この詊みの目的

ここたで読んで、「なぜこんなこずをしたのか」ず思った方もいるかもしれたせん。

今回の詊みには明確な目的がありたした。珟圚のサむバヌ空間では、攻撃者がAIを掻甚するこずは既に珟実のものずなっおいたす。フィッシングメヌルの生成、脆匱性の探玢、マルりェアの䜜成に至るたで、攻撃偎はAIの恩恵を受けおいたす。䞀方で、防埡偎はどうでしょうか。倚くのセキュリティ人材は、ただ埓来の手法に頌っおいたす。しかし、AIを䜿う攻撃者にAIなしで立ち向かうのは、もはや珟実的ではありたせん。攻撃偎がAIを歊噚にする以䞊、防埡偎もAIを味方に぀けなければ察等に戊えないのです。

今回のコンテストで瀺したかったのは、AIがセキュリティ領域でどれほどの胜力を持っおいるかずいう事実です。30分で党完できるずいうこずは、同じこずが攻撃偎でも起こり埗るずいうこずを意味したす。この珟実を認識した䞊で、AIを防衛にどう掻かすかを考えるきっかけになればず思いたした。

おわりに

CTFに関しおは、䞖界レベルの超高難床問題はただただAIでは難しいです。しかし、日本レベルならもはやAIがトップ。そしお䞖界レベルももうすぐ超えられるかもしれたせん。

AIに完党に思考を任せるこずを「AIキノコ🍄が頭に生える」ず勝手に蚀っおいたす。脳が乗っ取られたように芋えるためです。みんなもAIキノコ🍄を頭に生やしたしょう。

※AI゚ヌゞェントの公開予定はありたせんが、詳现を聞きたい方は連絡ください。Xの@satoki00たで。

40
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?