Привет, Хабр! Меня зовут Алексей, и я занимаюсь беспроводными технологиями. В апреле этого года мне посчастливилось принять участие в организации образовательного мероприятия для студентов Томского государственного университета систем управления и радиоэлектроники. Мы смогли придумать новый формат, сочетающий программирование, спортивные соревнования на время, исследования в области безопасности, взлом, разработку, анализ, радиочастотное обследование и многое другое. Мероприятие получило название «Сетевая Wi-Fi битва» и включало в себя две активности: одну, связанную с захватом точек доступа; другую — с прохождением Wi-Fi лабиринта. О том, как проходило данное мероприятие, как мы смогли повторить его еще несколько раз, и к чему это привело и будет написано ниже.

Дисклеймер

Мероприятие, о котором будет написано ниже, не является моей личной идеей или инициативой. В его реализации принимала участие целая команда компании, в которой я сейчас работаю. Чтобы не нарушать правила Хабра (и для того, чтобы меня не обвинили в рекламе), я не буду упоминать название компании; однако при написании текста буду использовать «мы» вместо «я». Цель данной публикации познакомить аудиторию с интересным опытом проведения образовательных и соревновательных мероприятий.

Как все начиналось

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

Здесь хочется поблагодарить команду ТУСУРА. Это настоящие профессионалы и не равнодушные наставники. Огромное спасибо Иванову Сергею, Сергею Харькову, Боровской Татьяне, Кузьминой Елене, Яблонскому Яну и Николаю Чижову!

В процессе обсуждения мы широкими мазками сформировали контур того, что должно получиться в итоге:

  • Образовательное мероприятие, в результате которого студенты смогут получить новые знания и навыки их применения;

  • Тематика мероприятия — беспроводные технологии (так как это наша сильная сторона), желательно информационная безопасность (это сильная сторона ТУСУРа), разработка (это запрос от ИТ-академии) и что-то связанное со студенческими стартапами (это запрос от студентов);

  • Формат — традиционный: в группах и за столами, но хотелось добавить подвижности, каких-то заданий, связанных с перемещением и выполнением на время.

В итоге, получив такие входные данные, у нас получилось две идеи, состоящие из двух блоков.

Первый блок является подготовительно-теоретическим и включает в себя лекции, мастер-классы, разработку ПО для участия во втором блоке и т. д.
Второй блок включает в себя две подвижные игры: «Захват Wi-Fi точек» и «Wi-Fi лабиринт».

День первый: проходят лекции и мастер-классы
День первый: проходят лекции и мастер-классы

Игра первая — Захват Wi‑Fi точек

Суть игры: мы размещаем в здании Wi‑Fi точки доступа. На каждой точке доступа работает веб‑сервер. В корне веб‑сервера лежит файл с названием вида 3gl.txt — первые три символа случайные. В файле находится пароль root для доступа к данному роутеру.

Участникам предлагается разыскать точки доступа. Для этого они используют своё собственное написанное ПО. Дальше, подключившись к нужной точке доступа, нужно подобрать название файла и узнать таким образом пароль. Подключиться к роутеру по SSH, изменить пароль root, поместить новый пароль в файл и переименовать файл, увеличив его длину на один символ. После этого считаем, что точка доступа захвачена. Команда, её захватившая, получает один балл и может перейти к захвату другой точки доступа. Вернуться к захвату данной точки доступа можно будет только тогда, когда её захватит какая-то другая команда. Чтобы со стороны участников не было злоупотреблений, они действуют под надзором арбитра и оповещают его о смене паролей и изменении имени файлов. Побеждает та команда, которая наберет больше баллов за захват точек доступа.

Некоторые точки находились в кабинетах сотрудников. После того как к ним зашел двадцатый студент уточнить нет ли здесь точки появилась такая надпись :)
Некоторые точки находились в кабинетах сотрудников. После того как к ним зашел двадцатый студент уточнить нет ли здесь точки появилась такая надпись :)

Игра вторая — Wi‑Fi лабиринт

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

Участники вооружившись ноутбуками проходят Wi-Fi лабиринт
Участники вооружившись ноутбуками проходят Wi-Fi лабиринт

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

Сетевая битва прошла с большим успехом и размахом. Почитать об этом можно на официальном сайте ТУСУРа Сетевая битва по захвату Wi-Fi точек прошла на открытии Технопарка суверенных ИТ-решений ТУСУРа Ну или можно просмотреть короткий ролик:

Наверное нужно упомянуть имена победителей самых первых игр. Ими стали:

В битве по захвату Wi-Fi точек стала команда в составе: Данил Абрамов, Никита Власкин и Константин Франк (Python-разработчики), а также Егор Емельянов и Егор Шевченко (Искусственный интеллект. Алгоритмы машинного обучения на языке Python).

Лучший результат в испытании Wi-Fi лабиринт показала команда в составе: Евгений Аврамов, Александра Глушенкова и Глеб Катренко (Искусственный интеллект. Алгоритмы машинного обучения на языке Python), а также Кирилл Григорьевский и Даши Садаев (Python-разработчики).

«Прошедший интенсив — это три очень насыщенных и вдохновляющих дня! Мы погрузились в тему mesh-сетей, попробовали себя в роли исследователей беспроводных сетей, а ещё писали и запускали инструменты на Python для анализа и даже взлома Wi-Fi-точек (в учебных целях, конечно). Особенно запомнились лекции — они были не просто теоретическими, а реально прикладными и увлекательными. Очень круто, что удалось поработать в команде и почувствовать себя настоящим специалистом. После интенсива захотелось углубиться в тему и прокачаться ещё больше. Спасибо компании "Т..." за такой интенсив, и ИT-Академии за предоставленную возможность!» – поделилась Александра Глушенкова.

Фото с официального сайта ТУСУР
Фото с официального сайта ТУСУР

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

Сетевая Wi-Fi битва

За основу мы решили взять формат именно Wi-Fi лабиринта, когда участники стартуют от первой точки и должны как можно быстрее найти выход из лабиринта. Но мы разнообразили этот процесс разными игровыми механиками и наступлениями различных игровых событий. Важной находкой стало решение разнообразить игровой процесс разнотематическими кейсами, чтобы для прохождения командам требовались бы специалисты в разных областях. Мы пришли к этому, когда наблюдали за первой игрой в ТУСУРе: тогда в каждой команде возникло по одному лидеру, который в итоге и тянул всю команду. Теперь командам предстоит выполнить задания, связанные с анализом эфира, с разработкой кода, со взломом и безопасностью, с настройкой сетевого оборудования и т. д. Таким образом, при прохождении каждого игрового события каждый игрок становится первой скрипкой, и это ещё больше добавляет драйва.

Игровые события

Wi-Fi капкан

Это точка доступа, которая ждёт подключения к ней любого первого пользователя, и как только это произошло, она резко ослабляет мощность передатчика, делая переход к другой точке доступа уже невозможным (участник выпадет из лабиринта, и будет засчитан проигрыш). Для того чтобы вновь возобновить вещание на необходимой мощности, участники должны зайти на точку доступа по HTTP и ответить на вопросы викторины либо выполнить какое-то задание, а результат ввести в форму на веб-странице роутера. После этого зона покрытия будет увеличена, и участники смогут выйти из точки доступа, а другие, соответственно, смогут зайти в данную область.

Здесь, кстати, формируется и игровая стратегия. Иногда может быть выгодно проходить лабиринт вместе с другой командой — тогда вам не придётся проходить викторину и можно выйти из капкана сразу за ними. Но есть шанс опоздать и уйти не туда.

Движущаяся Wi-Fi точка доступа

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

Мерцающая точка доступа

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

Взлом точки доступа

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

Почини меня

Участники входят в зону точки доступа, но не обнаруживают поблизости никаких других сетей, к которым можно подключиться. При этом точка доступа кабелем подключена к другой точке доступа, которая имеет некорректные настройки. Задача участников — провести сканирование IP-диапазона, который выдаёт DHCP, размещённый на точке, найти адрес именно точки доступа (мы для большего азарта воткнули кабель от точки доступа в коммутатор, к которому был подключён компьютерный класс, предварительно, конечно, удалив с него аплинк в корпоративную сеть), подключиться к ней и починить сетевые настройки, чтобы точка доступа начала проводить вещание.

Обжималка

Это событие является продолжением или развитием предыдущего, с той лишь разницей, что изначально точки доступа стоят рядом и соединены с собой коротким патчкордом. Рядом лежит обжим и 15 метров витой пары. Задача — обжать кабель, скоммутировать две точки доступа и, используя вторую, перейти вместе с ней в соседнее помещение.

Что под капотом

Для проведения игры мы использовали точки доступа с OpenWrt; коммутация точек между собой осуществлялась через mesh-сеть. Это позволило, во-первых, достаточно быстро смонтировать весь лабиринт. Во-вторых, наблюдать за состоянием точек. Для этого мы разработали простейшее веб-приложение, которое собирало статистику с каждой точки доступа, показывало, где находятся участники (в зоне какой точки), показывало их маршрут, время прохождения и т. д. Перед стартом игр проводится фиксация MAC-адресов ноутбуков и телефонов команд для идентификации команд.

Что дальше

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

Сейчас мы по мере сил и возможностей масштабируем эту историю и мечтаем дорастить её до Всероссийского чемпионата.

P.S. Если у вас появились идеи каких-то игровых механик или мысли по улучшению игры давайте обсудим это в комментариях.

Комментарии (0)