Сказ о том, как проходил M*CTF 2017. Этим постом мы хотели бы пролить свет на проблемы, которые присутствовали на соревнованиях M*CTF 2017. Если бы организаторы признали хотя бы часть из них, этого поста бы не было. Первая проблема заключается в обязательном присутствии всех членов команды на протяжении всего первого дня. Мы понимаем необходимость регистрации команд на соревнования, но когда мы упомянули, что придем на регистрацию не в полном составе, от нас потребовали документ от “руководителя организации” (Ректор ВУЗа?!). Это самый незначительный момент. Дальше было круче. Дальше было открытие соревнований. Открытие можно разделить на две части: до и после отхода VIPов на фуршет. Пока они были в зале, все чинно сидели, слушали их выступления о том, какое мы крутое будущее для КИБЕРбезопасности, как это все важно и т. д. К n-му выступлению мы уже начали угадывать сценарий следующей речи (часть ораторов вообще читала с бумажки). Стоит отдать должное девушке, которая вышла, сказала, что не будет это все в сотый раз повторять, пожелала всем удачи и раскланялась. Здесь конкретно мы ещё не понимали всей проблемы ситуации, просто была очевидна крайне явная “игра на камеры”. После этого всех VIP гостей проводили, и в зале остались в основном только участники. На сцену вышел тов. Минин, спросил мнение зала о необходимости официальной части, получил от большинства отрицательный ответ и сказал, что мы не правы, так как все что нам нужно - это сидеть и решать ctf, и на социальные моменты нам плевать. Казалось бы это так, но на том же RuCTF все с огромным удовольствием ходили в 1 день на конференцию, слушали доклады и участвовали в секциях. После опроса мнения тов. Минин сказал, что на лекциях будут раскрыты практические моменты, которые завтра будут в заданиях (слив?), а также что они могут снять баллы командам, которые не останутся на лекции, и что они уже так делали. На мой взгляд, это прямая угроза. Далее на сцену поднимается докладчик из МинОбороны. Мы сразу узнаем этого человека, на RuCTF он провел самый скучный доклад о “Разработке плагинов для IDA Pro”, просто перечисляя заголовочные файлы и читая объявленные там функции. К счастью, он опоздал, и ему потребовалось настраивать оборудование, поэтому объявили 5 минутный перерыв, во время которого мы и уехали. Как позже оказалось, он вышел с тем же самым докладом. По словам тов. Минина, они пересмотрели список докладчиков и подготовили интересные и практичные доклады. Стоило нам отъехать от МТУСИ, наш волонтер пишет нам, что в 16:00 будет жеребьевка, и на ней обязательно должна присутствовать вся команда. У нас опять в очередной раз сдали нервы, но в итоге мы договорились, и к 16:00 поехали только 2 члена нашей команды. Надо отметить, что в первый день один из членов нашей команды пытался подойти к тов. Минину и выяснить, почему все происходит именно так как происходит, почему нас принуждают оставаться в первый день. Был получен ответ, что CTF проходит в два дня, и присутствие обязательно. В противном случае организаторы, и в частности тов. Минин, оставляет за собой право дисквалифицировать команду. И воспользуется им, если какой-либо команды не будет на жеребьевке. Потому что “жеребьевку и регистрацию специально поставили на начало и конец дня, чтобы все присутствовали на лекциях”. На какие-либо компромиссы тов. Минин идти отказался. Позже удалось договориться с другими представителями оргкомитета о присутствии исключительно капитана. На 2й день мы приехали писать CTF. Про технические проблемы и проблемы, связанные с администраторами соревнований, уже сказано много, но опишу концептуальный провал. В первую очередь это регламент (правила), который банально скопировали с RuCTF. В документе даже не поменяли продолжительность соревнований. Несмотря на то, что тов. Минин неоднократно напоминал всем участникам о необходимости прочитать данный документ, регламент не был соблюден самими организаторами. Пройдемся по нарушенным пунктам регламента: • Пункт 3, Жюри. В ходе соревнований происходили изменения в сервисах, в логике работы проверяющих и принимающих систем. Об этих изменениях участникам не объявляли и информацию мы получали по крупицам, задавая вопросы про конкретные изменения в конкретных сервисах. • Пункт 3, Жюри. Решение о штрафе команд принималось не централизованно, без необходимого расследования инцидентов, просто по жалобам. Проштрафившиеся команды почти одновременно отключили от сети, подержали так несколько раундов и затем обратно подключили. Комментариев о дальнейших штрафах не последовало. В итоге о том, что все отключенные команды получили множитель 0.5 на свои очки сами команды узнали только на награждении и то потому, что на пьедестал вышли другие команды. • Пункт 4, Разработка сервисов и системы проверки результатов. Систему проверки флагов разрабатывала одна из команд, что нарушает требования о тайности разработки от участников. • Пункт 7, Игровой раунд. Все раунды должны длиться равное количество времени. Был раунд, который длился около 30 минут. По поводу этого инцидента действий никаких предпринято не было. • Пункт 8, Проведение соревнований. Соревнования (время открытой сети) длились 7, а не 8 часов. Не прописан перерыв на обед. Сервисы были не идентичны, в частности в сервисе J флаг(и) был зашит в apk, который у всех был уникален. • Пункт 9, Схема сети. В документе присутствует ссылка на ructf.org, где должна располагаться схема сети. На момент начала соревнований схемы на сайте не было. В итоге можно сказать, что по нарушениям приведенных выше пунктов соревнования можно признать недействительными, но судя по происходящему, тов. Минину важнее видимость красивых соревнований, нежели сами соревнования. Итак, ключевые пункты, которые организаторам необходимо пропустить через себя для создания качественных соревнований: • Количество людей на конференции можно увеличить не обязав всех присутствовать, а подняв качество докладов, добавив интерактива и устранив какую-либо враждебность к командам, не имеющим возможности по тем или иным причинам присутствовать. • Соревнования стоит проводить в соответствии с регламентом. • Организационные решения, которые могут повлиять на положения команд по результатам соревнований стоит принимать публично, единоразово и проведя максимально объективное расследование. • Поиском команды, которая будет делать сам CTF стоит озаботиться заранее, их подготовку стоит контролировать. • Не стоит поручать какой-либо из команд писать часть инфраструктуры. В таком случае либо меняется положение и публикуется ВЕСЬ исходный код компонента, предоставленного командой либо организаторы отказываются от услуг других команд. Наличие бэкдоров возможно и у команд должна быть возможность удостовериться в их отсутствии. • Стоит ограничить игру на спонсоров. Несмотря на заявленную возможность пообщаться, у участников не было возможности поговорить с ними и поделиться впечатлениями. Признавать свои ошибки полезно. Этого всего документа не было бы если бы хотя бы о части проблем, описанных в этом документе, было бы объявлено публично. Ниже вы можете ознакомиться с менее сдержанной версией, где мы подробно описали ход самих соревнований: https://vk.com/mkapps?w=wall9426625_2263%2Fall #mctf#мцтф#мктф#Арсиб#Kaspersky#Ростелеком#1С#Воентелеком#Zelax#Groupib#КРОК