Расскажите про команду LC/BC. Когда она была создана и кто стоял у истоков создания?
Влад Росков, капитан команды LC/BC: LC/BC — это альянс из нескольких российских команд, в котором составляющая Университета ИТМО начинается в 2008 году. Тогда в университете на кафедре безопасности несколько студентов узнали, что бывают соревнования по хакингу — CTF. Они собрали заинтересованных и решили попробовать поиграть, создав команду CIT (название команды дублировало название кафедры на тот момент). Я пришел в Университет ИТМО через год. Уже 1 сентября ребята из CIT собрали первокурсников и рассказали про CTF. Я был в восторге: я пришел на кафедру безопасности, потому что мне интересно ковырять системы и хакать, и, оказывается, есть соревнования ровно в этой области. Как минимум стоило попробовать. На следующий год мы сменили название на Leet More: «Leet» — «элитный» на хакерском сленге, «More» — больше, а вместе читается «ЛИТМО». В составе Leet More мы участвовали во всех соревнованиях, которые могли найти (тогда их было порядка 15 в год по миру), и вскоре стали одной из лучших команд в России на тот момент. В конце 2011 нам посчастливилось сыграть вместе с челябинской командой Smoked Chicken (ЮУрГУ) на одном из крупных завершающих соревнований года, и оказалось, что это невероятно полезно для обеих команд. Наши навыки дополняли друг друга, и мы заняли второе место — хотя еще годом раньше занимали 55-е. Мы решили играть весь 2012 год вместе.
Так образовалась команда More Smoked Leet Chicken, альянс Leet More и Smoked Chicken. Только за первый год совместной игры мы получили первые места на Mozilla CTF, на корейском CODEGATE CTF, на PlaidCTF от топовой американской команды «PPP», на Hack in the Box, на Positive Hack Days в Москве, на hack.lu в Люксембурге и на PoliCTF. Все эти соревнования были международными, и по итогам 2012 года мы возглавили мировой рейтинг CTF-команд, в котором учитываются все результаты за год. В 2012 году мы стали самой крутой командой по спортивному хакингу в мире. Таким составом мы играли до 2015 года. Затем участники команды окончили вузы, стали работать и меньше играть в CTF. Мы начали искать новых игроков в команду и объединились с другой командой, у которой были те же проблемы с отваливающимися игроками, — московской BalalaikaCr3w (МИФИ). Так появилось наше сегодняшнее название (LeetChicken + BalalaikaCr3w = LC/BC). В таком составе мы и играем с тех пор. На студенческие и на международные соревнования мы ездим разными составами — на RuCTF был специальный состав, который состоял только из студентов и аспирантов, большинство из Университета ИТМО.
Кто вошел в состав команды Университета ИТМО в этом году?
Александр Менщиков, капитан команды LC/BC на RuCTF: По правилам RuCTF участники обязательно должны представлять какой-либо вуз, так как это студенческое состязание. В нашей команде было семь человек: Никита Тихомиров, Григорий Саблин, Сергей Борисов, Никита Сычев и я из Университета ИТМО, а также Егор Богомолов и Иннокентий Сенновский из МИФИ. Некоторые из состава аспиранты, кто-то еще студент. Несмотря на то, что соревнования RuCTF студенческие, отборочный этап к ним — соревнования RuCTFE – это отдельные состязания, в которых могут принять участие команды любого состава из любой страны, проводятся они онлайн. Как правило, в них принимают участие сотни команд со всего мира, однако у большинства команд нет студенческого состава, чтобы отправиться на RuCTF, а кто-то просто отказывается от поездки, поэтому возможность приехать на финал порой выпадает даже тем студенческим командам, которые заняли 40-ое место в общем зачете. На крайнем RuCTFE мы заняли пятое место.
В этом году команда Университета ИТМО возглавила всероссийский рейтинг, заняв первое место по стране на соревнованиях QCTF Starter для новичков. Чем формат QCTF отличается от RuCTF?
Александр Менщиков: QCTF проводится в формате Task-Based CTF: это означает, что команды решают задачи по разным категориям (криптография, форензика и другие), но между собой не взаимодействуют. На финале RuCTF совсем другой формат — классический (он же Attack-Defence), который подразумевает прямое взаимодействие между командами-участниками. Всем командам раздают одинаковые образы операционной системы, на которой функционируют различные сервисы, например, сайты, почта, мессенджеры и другие. В этот образ разработчики заранее вносят уязвимости. Так как все образы одинаковые, команды ищут уязвимости у себя, закрывая их, и в это же время атакуют соперников. Всего на «бой» выделяют порядка восьми часов. Также в RuCTF участвуют иностранные команды, хотя, как правило, их число гораздо меньше, чем на RuCTFE. В этот раз было порядка десяти зарубежных команд, всего участие приняли 27 команд. Это достаточно масштабное мероприятие, и Университет ИТМО регулярно принимает в нем участие. Я езжу в качестве участника команды вуза уже третий год подряд, до этого я ездил от команды Сибирского федерального университета, так как учился там. Гриша Саблин из нашей команды ездил уже в седьмой раз. Он, кстати, как и Влад Росков, застал время, когда команда Университета ИТМО занимала первое место — в 2013 и 2014 годах.
Есть соревнования по спортивному хакингу и есть соревнования по спортивному программированию. Пересекаются ли как-либо эти два вида состязаний? Возможно, игроки из одной сферы переходят в другую?
Александр Менщиков: Спортивным хакинг назвали по подобию спортивного программирования, чтобы было понятно, что мы взламываем не просто так, а потому что учимся, нам это интересно, мы так называемые White Hats. Между собой соревнования по спортивному программированию и хакингу серьезно отличаются спецификой. Особенно сильно отличается классический формат, потому что команды взламывают друг друга, и это гораздо зрелищнее и нагляднее, чем когда каждая команда условно сидит в своей песочнице. На ACM ICPC (и на Task-Based CTF) команды заняты именно этим, они не взаимодействуют вовсе. У нас же прямое столкновение: ты можешь зайти на сервер других команд, что-то сломать и обрушить, придумываешь стратегии, кого атаковать, кого нет. Все девять часов мы отражаем атаки и атакуем сами. Несмотря на то, что отличия между спортивным программированием и спортивным хакингом серьезные, и пересечение по навыкам не очень большое, они все-таки есть: известны истории, когда команды после ACM ICPC начинают играть в CTF, и у них это хорошо получается, потому что у них сыгранные команды и отработан навык быстрого кодирования, что немаловажно. В нашей команде есть участник, который участвует в CTF и олимпиадах по программированию.
Какой профит дает участие в соревнованиях по спортивному хакингу? Одобрение работодателя? Денежный выигрыш?
Влад Росков: И то, и другое. Во многих вакансиях на позиции практических безопасников (пентестеров, вирусных аналитиков) один из критериев отбора — участие кандидата в CTF. Если говорить о призах, то международные состязания CTF для профессионалов — достаточно прибыльная деятельность. Например, на азиатских соревнованиях за первое место можно получить порядка 30 тысяч долларов. В России многие говорят про CTF как про что-то студенческое, когда соревнуются университетские команды. На самом деле международных серьезных соревнований CTF много, в них играют профи, и призы на них соответствующие. Например, в этом году был CTF в Саудовской Аравии с наградой за первое место в 300 000 саудовских риалов, что равняется сумме в 80 тысяч долларов.
Есть самое крупное и престижное соревнование DEF CON, которое проводится в США в Лас-Вегасе каждое лето. Особенность этих соревнований: игрокам ничего не оплачивается, кроме пары номеров в отеле, поэтому на перелет и пребывание на команду из восьми человек уходит порядка 15 тысяч долларов, однако все участвуют в этом состязании ради престижа. Мы с командой LC/BC с 2011 года регулярно проходим на это состязание.
В России можно найти крупные соревнования с денежным призовым фондом?
Влад Росков: В России тоже есть серьезные соревнования для профи, они проходят при конференциях, и их организуют компании, которые занимаются безопасностью. Среди хороших — CTF, который проводит дочерняя компания «Сбербанка» BI.Zone, у них приз за первое место в прошлом году составил 10 тысяч долларов. Кстати, в RuCTFE тоже есть денежный приз, но скромнее. В целом, в пределах РФ в год можно найти три соревнования с приличным вознаграждением. Чаще всего соревнования организовывают университеты (однако тут без денежного призового фонда) и компании на конференциях по безопасности.
Самые щедрые соревнования CTF проходят в Азии — в Китае, в Южной Корее. Кажется, что там мощная господдержка практической безопасности. Например, в Корее есть соревнования CODEGATE, в которых мы однажды выиграли 20 тысяч долларов за первое место, и спонсорами выступало одно из корейских министерств. Вложения на государственном уровне оправдывают себя — в Южной Корее и Китае часто создаются очень конкурентоспособные компании в том, что актуально в безопасности.
Как CTF-команды оплачивают свои поездки?
Влад Росков: Студенческим командам, как правило, поездки оплачивают вузы. Например, поездку студенческой команде LC/BC в этом году оплатил факультет БИТ Университета ИТМО. Взрослые команды часто сами вынуждены оплачивать, если не предусмотрены «гранты» от организаторов. Мы, например, все выигранные нами средства откладываем на DEF CON. Там мы уже побывали шесть раз. Правда, в последние годы у нас были спонсоры — МТС, Лаборатория Касперского. Совсем скоро мы командой LC/BC поедем на два соревнования в Китай в города Пекин и Нанкин — в этом случае расходы нам оплачивает принимающая сторона.
В Санкт-Петербурге вы организовали образовательный проект SPbCTF. Это уникальная тусовка, одна из самых крупных в стране, которая готовит к CTF. Расскажите, что мотивировало создать сообщество?
Влад Росков: В конце 2015 года деятельность по созданию SPbCTF начала Ксения Кравцова, сейчас она работает в Университете ИТМО на кафедре проектирования и безопасности компьютерных систем. Думаю, одной из задач при создании сообщества было оживить движение вокруг соревнований CTF в Санкт-Петербурге, «сколотить» тусовку безопасников. Когда участники команды выпустились из университетов, разъехались по разным городам, ушли на работу, постепенно все перестало развиваться без поддержки крутого костяка, поэтому перестали набираться студенческие команды из Питера. После одного года деятельности SPbCTF в 2016 году в соревнованиях для новичков — QCTF Starter, проводимых в формате Task-Based, на площадке Университета ИТМО участвовало 33 команды. Это в шесть раз больше, чем в 2015 году на городских соревнованиях.
Генеральной идеей создания сообщества был сбор безопасников, чтобы они перестали быть разрозненными элементами, ничего друг о друге не знающими. Скрепляющая деятельность в данном случае — CTF. Соревнования происходят достаточно часто. В 2014 году, когда я выпускался, можно было раз в две недели поучаствовать, то есть 25 раз в год. Теперь же приходится выбирать, потому что состязания проходят каждую неделю.
Когда я вступал в сообщество, у меня была и личная мотивация. Во время учебы в школе у нас проходили соревнования по олимпиадному программированию прямо в школе, но алгоритмы мне не нравились, однако нравилось ковыряться в компьютере. Я всегда участвовал в этих соревнованиях, и был где-то в серединке. В это же время я интересовался безопасностью и хакингом, но этот интерес не находил выхода. Я поступил в Университет ИТМО и уже на первом курсе узнал про CTF. Почему я не узнал об этом еще в школе?! Поэтому моя мотивация еще и в том, чтобы школьники, которые чувствуют, что им хочется исследовать что-то компьютерное, но алгоритмы им не нравятся, знали, что можно начинать играть в CTF как можно раньше и прокачиваться в этом деле еще со школы. Сейчас на наши занятия иногда приходят школьники шестого и седьмого классов, представьте, какими крутыми они будут к выпускному.
Студенты, которые к вам ходят, говорят, что приходят в том числе потому, что вы даете много практически применимого, важного и интересного в сфере безопасности — того, чего не узнаешь из вузовской программы…
Влад Росков: Это еще одна важная составляющая нашей мотивации. Тот курс безопасности, который преподается в университетах, не включает большинства актуальных тем для безопасников. Например, я окончил вуз в 2014 году по курсу защиты информации. В течение пяти лет нам давали юридические аспекты, определения «информации» и «защиты», мы учились составлять руководящие документы. Кажется, что этот курс был направлен не на то, чтобы сделать систему защищенной, а на то, чтобы выбить на это денег, надув щеки перед генеральным директором.
Самым увлекательным из всего курса стали шпионские темы из времен СССР: мы знакомились с работой жучков, прослушки и так далее, однако технически это было уже неактуально. Никто не учил, как защищать и как строить системы, которые не взломают. Однако я не жалею, что учился в университете все эти годы, потому что именно благодаря вузу я узнал про CTF — все пять лет я играл и очень прокачал свои навыки.
Александр Менщиков: Однако наличие таких образовательных программ – это не проблема конкретно Университета ИТМО или даже российских вузов. Учиться безопасности сложно, потому что быстро меняется обстановка и набор технологий, который надо знать, поэтому образовательные программы не успевают подстроиться. Хороший безопасник — это тот, кто держит руку на пульсе, человек, который все новые модные технологии изучает детально и думает, как в них можно ошибиться при использовании. Как только появляется новая технология, на нее сразу же появляется задание в CTF.
Расскажите подробнее про образовательную деятельность, которую вы организовываете?
Влад Росков: Когда возникла идея создания сообщества, первым делом встал вопрос создания команды. У Ксюши не было спикеров — тех, кто будет передавать свои знания и проводить семинары, поэтому она искала тех, кто играет в CTF по всему городу, общалась с ними и принимала решение о приглашении в качестве наставника сообщества. Изначально у нас не было даже понимания, как именно преподавать и что рассказывать.
Первый сезон мы называем винегретом, потому что каждую тренировку была новая тема, не было структуры, мы искали формат. Цель у таких семинаров была — дать участникам базовое представление о всех категориях в CTF. Мы стараемся общаться с ребятами и собирать фидбэк после семинаров, чтобы вовремя среагировать на вопросы, узнать, что было непонятно, что не понравилось и так далее. Мы считаем, что формат семинаров должен быть гибким — участникам мы стараемся обеспечить индивидуальный подход, чтобы не осталось впечатления, что их мнение или вопрос остались без внимания. Мы хотим, чтобы каждый чувствовал себя частью сообщества. Пока не всегда удается достичь этого, но мы к этому стремимся.
За несколько месяцев до начала нового сезона мы собираемся с наставниками и разрабатываем учебный план, во время которого у участников поэтапно должны формироваться навыки. Начинаем всегда с азов. В процессе сезона, бывает, корректируем план. После первого сезона, в процессе летней рефлексии и чтения отзывов ребят, пришло понимание, как улучшить образовательный формат. Начиная со второго сезона, один сезон — это одно направление в безопасности. Кроме этого, мы стали делить одно занятие на несколько блоков. В каждом блоке чередуем теорию и практику. Кажется, ничего нового, но именно подача материала маленькими порциями с подкреплением практикой дала результаты. Сезон Reverse прошлой весной прошел с очень маленькими потерями: из пятидесяти пришедших остались 45 человек, учитывая, что Reverse — одна из самых трудных для освоения категорий в CTF.
Чему будет посвящен новый сезон?
Александр Менщиков: Будет сезон, посвященный Attack-Defence, когда команды атакуют друг друга. Мы будем готовить студентов и школьников, которые к нам приходят, конкретно к классическому формату CTF. Будем разбирать тактики, приемы, стратегии, писать скрипты. Планируем много соревнований, командной работы — такой подготовки к CTF на системном уровне никто в стране не делал. У ребят есть возможность даже попасть к нам в играющую команду, если мы увидим, что есть потенциал и желание. Прийти к нам может любой желающий, и это, естественно, бесплатно. Также мы открыты к набору в состав наставников — можно просто написать любому члену действующего состава.