Всё о CTF в России

CTF в лицах. Алексей Родионов — об учёбе в Иннополисе и организации CTF на новом месте

2016-12-11 15:07:21

CTF News начинает рассказывать о вас — участниках и организаторах соревнований в ваших городах с такими разными, не похожими друг на друга историями. Наш первый герой — Алексей Родионов, который из Новосибирска переехал в Иннополис, самый молодой город России. В материале читайте о том, как устроена учёба в Иннополисе и что сделать, чтобы туда попасть, а ещё — как выйти живым из марафона по подготовке нескольких CTF-соревнований сразу.

Введите описание изображения

Джентльменский набор начинающего программиста

— Когда я учился в 6 классе, у меня появился постоянный доступ в Интернет (тогда ещё 64 кбит/с). Вот тогда-то и началось моё увлечение программированием: я занялся языком разметки веб-страничек HTML, позже к нему добавились CSS, Javascript. Короче, стандартный джентльменский набор тех времён.

Чуть позже я начал изучать C++ и базы данных, и мне были нужны проекты в качестве поднятия навыков. Они появились в виде сервера для игры World of Warcraft (самая популярная в те времена MMORPG). Он назывался MaNGOS — Massive Network Game Object Server. Это образовательный некоммерческий проект, который эмулировал работу игрового сервера. Сначала я просто учился читать код и компилировать ядро сервера под Linux. Чуть позже мы весьма успешно переводили ядро на новые версии игры, создавали приватные копии с уникальными улучшениями и механиками. Я в это время пересел исключительно на работу с базой данных — а данных в игре было предостаточно.

Введите описание изображения

Длилось моё увлечение 4 года, до первого курса университета. К тому времени я уже хорошо знал PHP, SQL, JS, CSS, средне C/C++ и LUA, азы Assembler’а. Из меня бы вышел хороший программист, но со временем написание кода перестало приносить мне удовольствие, хотелось решать более нетривиальные задачи — и вообще я немного запутался в жизни.

Когда я поступал, выяснилось, что первый приоритет в моём заявлении был факультет ИВТ (программисты), и только потом — кафедра ИБ факультета АЭС. В срочном порядке, буквально за несколько часов до закрытия приёмной комиссии я поменял приоритет на ИБ, так как считал нужным узнать что-то новое.

В качестве исключения меня, первокурсника, позвали на курсы компьютерной безопасности. Здесь мы подробно изучали структуру сайта, работы SQL-инъекций, XSS, практиковали методы на заранее уязвимых системах. В основном это была категория web. Но вся движуха стихла спустя семестр, так как на занятия ходил только я. И здесь моё знакомство с миром ИБ (про CTF тогда ещё никто и не слышал) закончилось, я решил сменить направление — киберспорт.

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

Введите описание изображения

Введите описание изображения

После того, как я завязал с уроками компьютерной безопасности, на кафедре это движение возродилось. Я тем временем активно занимался программированием и администрированием Linux и прохлопал всю эту движуху. Тем временем ребята (новосибирская команда Life — прим. ред.) успешно ездили на соревнования в Красноярск, Томск, Барнаул, занимали призовые места. Причиной моего информационного вакуума также послужила моя влюблённость — очень опасная штука. Примерно на полтора года я выбыл из строя, и только к четвёртому курсу, когда я снова окончательно запутался в своей жизни — меня позвали сыграть в CTF. Случилось это за 40 минут до начала мероприятия: у команды Not Found не пришёл игрок. Заняли мы тогда третье место, я был на эмоциях, не ел, целый день сидел и решал таски, вставал, только чтобы попить воды. Это было погружение в прошлое, к первому курсу — вроде всё те же задания, но появился азарт, который я люблю. В итоге тряхнул стариной, узнал много нового по ходу турнира. Потом на позитиве позанимался ещё пару недель и забил. Я даже не знал, что из обычного «междусобойного» CTF-кружка в СибГУТИ выросла целая движуха, а в этом году — уже огромное движение, и чуть ли не религия.

В Иннополис изучать роботов

— Стоял конец ноября 2015-го, и здесь у меня случился поворот — я решил уйти из университета.

Нет, не отчисление. Я перевёлся со специалитета на бакалавриат, чтобы уже через полгода получить диплом и успокоиться. За университетские годы я не сделал ничего хорошего, так как всё время уходило на учёбу. Единственное, что я подтянул — это C#, Node.js и администрирование локальных сетей.

Бесполезная была учёба или нет — покажет время, но давалась мне она крайне тяжело. Это как если бы тебя заставляли есть салат со свеклой — вроде вещь полезная, но если человек не хочет, то зачем насильно его принуждать?

Введите описание изображения

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

Введите описание изображения

Начитавшись ярких PR-компаний, я решил попробовать свои силы и написал тесты на онлайн-отборе. Основные критерии при выборе Иннополиса — обучение на английском языке, американско-европейская система образования, стипендия до 42 тысяч рублей. Решено, надо было рисковать. Одно маленькое уточнение — в Иннополисе существует 4 направления магистратуры: Робототехника, Большие данные, Разработка ПО и Информационная безопасность.

Я пошёл на робототехнику. Почему? Просто немного поизучал тенденции рынка и понял — будущее реально за роботами, а защищать их некому. Поэтому основная моя цель здесь — изучить безопасность роботов.

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

До Иннополиса ходят шаттлы, на которых нас и отвезли. Они бесплатные, новые и очень комфортные, ходят каждый час. Отборы шли 3 дня: нас тестировали на знание английского, с нами работал психолог, мы объединялись в команды для защиты проектов. Ещё была олимпиада по программированию и тесты по IT. Эти 3 дня сильно меня измотали, работали мы плотно с утра до позднего вечера. По своим ощущениям я не очень хорошо показал свои знания и допускал очевидные ошибки. Но мой экзаменатор по английскому, Мунир, сказал что всё у меня хорошо. Настал месяц ожидания.

Во время отбора я, кстати, и познакомился с командой Espacio, ребята буквально недавно стали заниматься игрой в CTF и делали потрясающие успехи.

Введите описание изображения

Спустя ровно 30 дней (это был крайний срок) университет написал, что я принят на 100%-ный грант. Учёба в Иннополисе — платная, 1 семестр стоит 700 000 рублей. Есть возможность получать два типа грантов на обучение: 100% (полностью бесплатно) и 90% (70 тысяч за семестр) с возможностью перевода по результатам сессии. Моей радости не было предела, потому что я уже совсем отчаялся и не надеялся на успешное поступление.

«Работу за 150 тысяч ннннада?»: как проходит учёба в Иннополисе

Традиционный курс молодого бойца перед началом семестра в Иннополисе проходит в июле и длится две недели, называется он InnoBootCamp. Это было сумасшедшее время: занятия начинались в 9 и заканчивались в лучшем случае в 20:00, сна с каждым днём становилось всё меньше. Одним из основных видов зачёта был командный проект — мы написали Покер на Java. Последнюю ночь я не спал, так как мы решили переписать наш проект с нуля — в текущем варианте он нам не понравился. В итоге на утро было две рабочие версии — с красивым графическим интерфейсом и консольный вариант. Мы получили 97% за проект, это очень хорошо.

Введите описание изображения

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

Введите описание изображения

Учёба в Инно (его так называют) начинается с 15 августа и длится ровно 16 недель (до 16 декабря). В середине семестра проходят midterm’ы — срезовые экзамены по каждому core-курсу. Кстати, здесь зарубежная система по point’ам — есть обязательные (core) и второстепенные (elective) предметы. Чтобы успешно закрыть семестр, нужно набрать необходимое количество баллов. Элективов было очень много, на любой вкус — от машинного обучения и жесткого математического анализа до компьютерной безопасности, криптографии и биомедицины. Есть ещё один вид элективов — soft-skills (для развития второстепенных личностных навыков). Business communication, User experience, Introduction to career development. Здесь нас обучали общению с HR-девушками, с бизнес-сектором, учили грамотно преподавать себя работодателю и критерии принятия кадров на работу. Очень классные занятия были!

Введите описание изображения

Стипендия в Иннополисе действительно может достигать 42 тысяч рублей. Я получаю 24, 9 из которых уходит на трёхразовое ежедневное питание в столовой (поверьте, это очень дёшево), 2 тысячи стоят услуги клининг-сервиса, охраны — в общем, плата за проживание в общежитии. На остальное я практически не трачусь — всё есть, только покупаю колбаску с хлебом на вечерний дожор. Отличники получают 42, с одной B — 30, хорошисты — 24, троешники 18 (это магистратура). Еда вкусная, но есть приходится пораньше — иначе вкусных блюд не остаётся.

В Иннополисе каждые выходные, а то и чаще, проходят различные конференции, олимпиады, выставки, хакатоны. Я поучаствовал на парочке хакатонов от Яндекса и Provectus — заняли с командой первые места.

Введите описание изображения

Иногда люди подходят и говорят — «Поехали в Москву работать за 100 тысяч», «Давай к нам программистом, мы платим 120 тысяч», «Работу за 150 тысяч ннннада?». Но нам нельзя, мы студенты. Kaspersky АСУТП, международная олимпиада роботов — в Иннополисе всегда можно обзавестись прямыми связями по всем возможным IT-направлениям.

Из проблем: всегда сложно найти человека, который за что-либо отвечает. Будь то слесарь или комендант. В том плане, что никто не знает своих обязанностей до конца. Это про мелкие бытовые проблемы — например, отсутствие плит в общежитиях нашего корпуса, постоянно протекающая крыша университета — поначалу я очень гневался на это, а потом привык. Университет молодой, сотрудники молодые, не всегда есть решения для какого-то конкретного случая, приходится всё изобретать «на ходу».

Соревнования. Первый InnoCTF

— В сентябре мы с ребятами из команды Life провели всероссийский CTF для новичков — Free Hack Quest. Для этого я специально написал образовательный портал hackforces.com — вы скоро о нём услышите, мы запускаемся в январе 2017-го. На Free Hack Quest у нас было свыше 300 игроков. За 2 недели до старта я работал в усиленном режиме, сон снова стал для меня роскошью. Всё прошло почти гладко, не считая первого дня, где принимались любые флаги.

В ноябре этого года мы провели InnoCTF — первые в Иннополисе собственные соревнования среди студентов Республики Татарстан. Сложность была в том, что я не имел прямого опыта организации, не знал всех тонкостей.

На InnoCTF я не без помощи команды Life отвечал за написание нескольких тасков (вышло 14 из 35), работу с IT-отделом, освещение и настройку сети. На SibSUTIS CTF, которые проходили днём раньше, 19 ноября — за жюрейку A-D, T-B, пару тасков и чекеры для двух сервисов — короче, со временем творился полный ад. Очень сильно переживал за SibSUTIS CTF — в итоге всё прошло довольно гладко, участники остались очень довольны, отзывы положительные. Жюрейку для attack-defense мы использовали от томской команды KeVa — большой им привет и спасибо за помощь.

Руководство Иннополиса выделило нам ресурсы в облаке для поднятия серверов жюрейки, серверов с тасками, в общем, всю инфраструктуру. Местные команды мы звали на нашем еженедельном кружке CTF — он проходит по субботам в формате лекции, где всё завершается практическими занятиями. В итоге на InnoCTF у нас была 21 команда и максимально положительный фидбэк — начиная от бесконечного кофебрейка, который спасал ребят в течение дня, и заканчивая награждением и финальным afterparty в баре. Некоторые казанские ребята приехали сюда «для того, чтобы зачёт проставить», но потом затянулись и принимают активное участие в CTF-движении в Татарстане.

На этом моё приключение не закончилось. 27 ноября нас ждал QCTF, где Иннополис стал площадкой проведения, а на меня повесили все оргмоменты (шучу, я сам напросился). Было 25 команд, мы стали одной из самых больших площадок по всей России. Впереди только MCTF 2016 — последний в этом году CTF.

Планы на будущее

— Команда Иннополиса Espacio на прошедшем RuCTFE 2016 заняла 18 место (и вроде как мы попали в финал на RuCTF 2017). Многие участвовали впервые, но это не помешало им с основным составом команды бороться до конца. Ценный совет по подготовке к формату attack-defense — программируйте! Много! Очень много! Читайте чужой код и программируйте, участвуйте в битвах на codeforces.com, codewars.com — всё для того, чтобы абстрагироваться от языка программирования и представлять код программы как единое целое, где важен смысл, а не язык.

В этом году я принял участие в организации 9 CTF-турниров. В следующем году мы планируем провести в Новосибирске неповторимый NSK CTF для школьников и студентов — будет бомба, это точно. Готовим пару онлайн-турниров FreeHackQuest, уже сотрудничаем с ребятами из Иркутска и Донецка об оказании помощи в проведении. Ещё Кубок Связи в Новосибирске — это пока что секретный проект, но скоро вы о нём услышите.

InnoCTF в следующем году мы планируем для школьников, но и для студентов, скорее всего, тоже повторим.

Введите описание изображения

— Запуск образовательной платформы HackForces запланирован на начало 2017 года. Здесь будут размещаться обучающие материалы, проводиться еженедельные турниры среди новичков и среднего звена. Платформа имеет открытое API — любой сможет создать свой турнир по своим правилам. Мы пытаемся централизовать CTF, так как существует проблема — каждый уходит в свои проекты и ни с кем не делится.

Текст — Полина Щедрина

Фото — Алексей Родионов