CTF через веб-консоль: как на CubeCTF ограничили ИИ-агентов

Пока участники соревнований гадают, умер ли CTF в 2026 году от рук ИИ-агентов, организаторы придумывают нестандартные подходы к запрету ИИ на турнирах.

На CubeCTF 2026 участники работали с сервисами через веб-терминал, из которого нельзя было скопировать код наружу. Владимир Черепанов из команды победителей C4T BuT S4D рассказал, как они подготовились к этим ограничениям и почему сомневаются, что такой подход подойдёт для сложных соревнований.

Организаторы хотели сохранить участие человека в решении задач: они разрешили задавать вопросы ИИ-моделям, но запретили запускать агентов. Ограничения доступа к полигону должны были затруднить автоматическую работу с сервисами.

Как работала консоль

По словам Владимира, каждый участник получал отдельный аккаунт и через веб-терминал попадал на командный вулнбокс под своим пользователем. Количество сеансов не ограничивали: можно было открыть несколько терминалов и работать параллельно.

Внутри оставались права root через sudo и доступ к игровой сети, свободного выхода в интернет не было. При этом прокси организаторов позволял скачивать материалы с GitHub и пакеты из репозиториев apt, Python, Go и других экосистем. Команды могли устанавливать утилиты и собирать приложения.

Главное ограничение касалось переноса данных: копирование текста из терминала на свой компьютер не работало. В пределах одного сеанса копировать и вставлять текст было можно. Как объясняет Владимир, организаторы стремились помешать участникам вынести исходники сервисов и отдать их на автоматический анализ ИИ-агентам. При этом правила разрешали перепечатывать фрагменты кода вручную и обращаться к моделям с вопросами.

Таким образом, CubeCTF сохранил возможность получать помощь ИИ, но ограничил прямой доступ агентов к рабочему окружению. Запрет на их запуск при этом оставался частью регламента.

Семь сервисов и вся инфраструктура на одном вулнбоксе

Ограничения повлияли и на инструменты самих игроков. По словам Владимира, команда получила восемь ядер и 16 ГБ памяти. Эти ресурсы делили семь игровых сервисов и всё, что участники запускали для работы с ними — перенести нагрузку на внешние машины мешала изоляция сети.

C4T BuT S4D заранее изучили правила и решили подготовить отдельный набор утилит. Привычная инфраструктура команды — в том числе ферма и монитор трафика — требовала слишком много ресурсов для такого окружения.

«Поэтому мы заранее изучили правила и разработали минималистичные и эффективные утилиты, специально для этого соревнования», — Владимир Черепанов.

Открыть порты наружу и пользоваться привычными веб-интерфейсами тоже было нельзя. Поэтому команда подготовила TUI — интерфейсы, которые работают прямо в терминале, написала скрипты настройки окружения, установила инструменты для криптографии и анализа бинарных файлов. Последние пригодились: один из сервисов организаторы выдали в бинарном виде.

Команда оптимизировала свои утилиты под доступные ресурсы, чтобы инфраструктура могла работать на одном вулнбоксе вместе с семью игровыми сервисами. Оптимизация дала результат: после игры, рассказывает Владимир, организаторы назвали их вулнбокс одним из наименее нагруженных среди команд. Для C4T BuT S4D подготовка компактной инфраструктуры стала самостоятельной задачей турнира.

Интерфейс одного из инструментов

Как играли без привычных IDE

После настройки инструментов команда работала с сервисами по знакомому сценарию: участники читали код, искали уязвимости и писали эксплойты. Атаку проверяли на себе или на NPC-команде. Если она срабатывала, запускали эксплойт против остальных команд и параллельно исправляли собственный сервис. Когда начинали терять флаги, изучали трафик и искали входящую атаку.

Сложнее было выполнять эту работу через терминал. На экран помещалось меньше информации, приходилось осваивать сочетания клавиш и использовать tmux для организации нескольких рабочих областей.

Терминал при этом поддерживал TTY, мышь, Unicode и 256 цветов. Это позволяло пользоваться терминальными интерфейсами и частично компенсировало отсутствие привычного GUI.

«Было, конечно, неудобно без привычного GUI: когда всю жизнь используешь веб-интерфейсы и полноценные IDE, работать в терминале тяжело», — говорит Владимир.

Как команда обращалась к ИИ

По словам Владимира, уязвимости команда искала в исходниках и трафике, а эксплойты писала вручную. Модели не участвовали в этом процессе.

Один запрос к ИИ всё же был: участники хотели заменить уязвимый компонент реализацией на другом языке и попросили модель сгенерировать сервис по текстовому описанию. Использовать результат не понадобилось: команда нашла уязвимости в исходном коде и исправила их.

Этот эпизод показывает границу, которую допускали правила CubeCTF — участники могли сформулировать задачу для модели, но доступ к игровому окружению и проверка результата оставались за ними.

Почему ограничения можно обойти

Владимир не считает веб-консоль надёжной защитой от автоматизации — по его словам, организаторы использовали собственный туннель, обфускацию кода терминала и ловушки для тех, кто попробует снять ограничения. Тем не менее, рассказывает он, отдельным командам удалось организовать прямой доступ к вулнбоксу.

Его основной довод касается самого способа доступа: если человек видит текст на экране, то его можно перенести наружу, например с помощью скриншотов и распознавания. Блокировка буфера обмена затрудняет привычное копирование, но не устраняет все способы передачи информации.

По оценке Владимира, команды, которые играют на результат, будут искать способы обойти ограничения. Тогда подготовка доступа к полигону станет ещё одной задачей перед соревнованием. Поэтому он сомневается в применимости такого формата к сложным турнирам.

Для сравнения Владимир приводит подход организаторов CTFZone 2026 — команды SPRUSH: на очном финале закрыли доступ в интернет, использовали глушилки беспроводной связи и ограничили использование личных устройств. В такой среде организаторы контролировали и подключение к игровой инфраструктуре, и рабочие места участников.

Где такой формат может пригодиться

Организаторы называли среди целей CubeCTF доступную для новичков A/D-игру и эксперимент с ограничением автоматического решения задач: ограничение на агентов должны были побудить участников выполнять привычную для формата работу самостоятельно. Цель такого подхода — появление новых команд, которые понимают, что происходит на игре.

Для C4T BuT S4D игра стала возможностью вспомнить A/D до появления ИИ-агентов: снова писать эксплойты и выполнять рутинные действия вручную. Владимир описывает это впечатление так:

«Я бы назвал такой формат аттракционом для тех, кто ностальгирует по “тому самому” духу классического CTF».

При этом он сомневается, что работа только внутри вулнбокса подойдет для решения сложных сервисов: для них часто нужны внешние вычислительные ресурсы, разнообразные утилиты и библиотеки, а также доступ в интернет. Изоляция мешает использовать эти возможности: участники вынуждены укладывать всю работу в ресурсы и инструменты игрового окружения. Ограничение на копирование текста также затрудняет обмен кодом внутри команды.

Опыт C4T BuT S4D показывает, сколько подготовки может потребовать такая среда даже от опытных игроков: команда заранее написала утилиты и адаптировала интерфейсы под терминал. Подготовленную инфраструктуру можно переиспользовать на следующих играх с похожими ограничениями. В этом смысле она дополняет привычный набор тулинга команды для классического A/D: утилиты разрабатывают и дорабатывают, а затем используют на разных соревнованиях.

При развитии формата организаторам предстоит решить, какие инструменты дать участникам сразу и какие ограничения действительно нужны для самостоятельного решения задач.