Как провести первый онлайн-хакатон и не наломать дров: ожидание и реальность
Минувшей зимой мы впервые опробовали формат хакатона. Из-за ограничений на массовые мероприятия он проходил в формате онлайн, но это никак не сказалось на наших ожиданиях. Нам давно хотелось повысить узнаваемость бренда работодателя за пределами ИБ-рынка — среди разработчиков и других айтишников, которые зачастую не имеют о нас никакого представления. Кроме того, мы хотели понять, можно ли на хакатоне познакомиться с перспективными специалистами, а еще нам было очень интересно узнать внутреннюю кухню профессиональных организаторов таких мероприятий, чтобы научиться проводить их самим.
Если вам давно не дает покоя идея провести хакатон, но трясутся поджилки, и вы не знаете, с чего начать, добро пожаловать под кат. Мы расскажем, как это происходило у нас, как миновать наши грабли, и как ожидания могут разойтись с реальностью, а также можно ли воссоздать атмосферу офлайнового хакатона в режиме онлайн.
Как нам пришла в голову идея провести первый онлайн-хакатон?
Помимо всего, что мы перечислили выше, перед нами стояла основная задача — решить практическую проблему, к которой одна из наших команд долго не могла подступиться. У нас был корпус текстов, и на его основе нужно было создать алгоритм, который бы выбирал из этого корпуса именованные сущности, относящиеся к предметной области threat intelligence: злоумышленников (threat actors), вредоносное ПО (malwares), индикаторы компрометации (indicators of compromise) и прочие. Нюанс заключался в том, что корпус текстов был на английском языке. Задача была нетривиальная, интересная, но у нас до нее очень долго не доходили руки.
Почему именно хакатон, когда есть много других инструментов?
В целом для решения основной задачи можно было нанять аутсорсеров, а для поиска кандидатов активнее задействовать HR и сконцентрироваться на подборе персонала. Но внезапно с нами на связь вышел представитель компании Pystech.Genesis, специализирующейся на проведении хакатонов для айтишников. Мы начали обсуждать организационный процесс и в итоге решили протестировать проведение совместного онлайн-хакатона с поддержкой профессионального организатора таких мероприятий. Поскольку у нас самих были планы проводить хакатоны в будущем, нам хотелось посмотреть вживую, как это делают специалисты с богатым опытом за плечами.
Мы отобрали большое количество экспертов от нашей компании, чтобы иметь возможность на каждом этапе наблюдать, что и как делают наши организаторы. Так нам удалось собрать информацию о том, как правильно организовывать этот процесс. Оказалось, что в этом нет ничего сложного, но нужно достаточное количество времени и, самое главное, человеческий ресурс — люди, готовые максимально погрузиться в организацию подобной движухи. Мы обсудили с организаторами условия и начали готовиться к проведению первого совместного онлайн-хакатона.
Как выбирали задание?
Процесс выбора задания сам по себе был увлекательным. В нем участвовали сотрудники сразу двух подразделений: Центра экспертизы и Департамента разработки. Первый помогает клиентам и партнерам выстраивать ИБ-процессы на базе наших решений, а второй разбит на команды по создаваемым продуктам. По сути департаменты и отдельные команды конкурировали друг с другом, и все они были заинтересованы в том, чтобы выбрали именно их задачу.
Мы проводили отдельную встречу, на которой желающие питчили каждый свою задачу и объясняли присутствующим, почему именно их задача должна быть выполнена на хакатоне. Например, Центр экспертизы предлагал в качестве задачи разработку нового генератора лицензий для компании. Было много интересных задач, но победила в итоге задача от команды продукта R-Vision Threat Intelligence Platform (TIP), представляющего собой платформу для управления данными киберразведки.
Суть задачи
Изначально задача в постановке команды TIP была конкретная и слишком специфичная для ИБ-сферы. Это было не очень удачно, поскольку на хакатоне предполагается определенная свобода действий для команды. Поэтому мы решили разбить задачу на две части.
Основная задача была достаточно широка: построить интерфейс сбора, описания и аналитики угроз, индикаторов компрометации по реальным документам.
Далее командам давалась полная свобода по созданию продукта. Результатом могла стать программа, ML-модель, иная реализация, которая позволила бы решать прикладные задачи сбора и анализа неструктурированных данных об ИБ-угрозах. Предпочтение планировали отдавать наиболее законченным решениям, которые закрывали бы целостную (end-to-end) задачу.
Неожиданности, с которыми мы столкнулись
Когда мы окончательно утвердили задание, организаторы начали привлекать аудиторию. Неожиданно для нас заявки подали много сработанных команд, которые специализируются на участии в хакатонах и заинтересованы в финансовом вознаграждении. Нам же хотелось, чтобы к нам пришло больше любителей-хакатонщиков, потому что именно среди них мы надеялись встретить потенциальных соискателей.
Изначально мы рассчитывали примерно на 60 участников, то есть не более чем на 10 команд. Но из-за того, что это был первый в этом году онлайн-хакатон в России, количество претендентов превысило 200 человек. В итоге мы вынуждены были проводить отсев, потому что с точки зрения организации просто не выдержали бы такое количество команд. В конце концов мы отобрали 13 команд, из которых до фактической реализации — прототипа решения — дошли 9, остальные выбыли на промежуточных этапах.
С чего начали подготовку к хакатону
У нашего задания была определенная ИБ-специфика, мы поняли, что нужно доступно объяснить задачу участникам, которые вообще не знают, что такое ИБ и индикаторы компрометации. Для этого Антон Соловей aka @likeafreedom, менеджер продукта R-Vision TIP и по совместительству «тамада» нашего хакатона, отвечал за взаимодействие с участниками: готовил задания, презентацию, проводил питчинги с командами вместе с другими экспертами нашей компании, — делал все необходимое, чтобы хакатон состоялся. Чтобы ввести в курс дела далеких от области ИБ разработчиков и дизайнеров, мы решили отойти от позиционирования наших продуктов и не объяснять, что такое IRP, SGRC, TIP, SENSE и Deception, поэтому в презентации о компании визуализировали наши решения в виде маскотов.
В подготовке презентации было задействовано много людей — вычитывали синтаксические ошибки, предлагали, как улучшить презентацию, какие слайды вставить для того, чтобы правильно преподнести нашу компанию.
В итоге мы пришли к тому, что к проведению хакатона нужно подключить экспертов с нашей стороны, которые участвовали бы в питчах команд, принимали задания и оценивали их, отвечали на технические вопросы участников. Мы собрали большую команду экспертов: в нее вошли эксперты по продукту, датасайнтист, фронтендер и бэкендер, тестировщики, менеджер проектов и даже руководитель департамента разработки.
Хакатон в цифрах
Длительность 45 часов.
Более 220 заявок на участие, конкурс 4,5 человека на место.
13 команд, 9 из них дошли до готового решения, 6 прошли в финал, из них осталось 3 победителя.
Этапы хакатона
Пятница, вечер. Знакомство. Рассказ о задании, презентация компании R-Vision.
Пятница, ночь. Разработка прототипа.
Суббота, утро. Питч решения: то, что успели сделать за ночь. 5 минут на питч.
Суббота, весь день и ночь. Второй питч: относительно готовый вариант.
Воскресенье, утро. Готовое решение на оценку экспертам.
Решения, которые выполнили команды
Команды-участники прорабатывали презентации своих решений и дизайн инструмента. Из интересных можно выделить решение команды Digital Rover, которая придумала что-то вроде Алисы для инфобеза — виртуальный помощник на основе искусственного интеллекта для описания угроз по реальным документам. Решение на основе языковой модели ruGPT3 представляет собой бот для Telegram, который позволяет написать что-то на нативном языке текстом либо отправить голосовой запрос. У инструмента есть весь наш корпус текстов, который он переводит на английский язык. Затем он переводит на английский полученное текстовое или аудиосообщение, анализирует соответствие запроса содержимому корпуса документа и выдает пользователю релевантную информацию. Например, можно написать или сказать: «Расскажи мне про такую-то уязвимость» или «Напиши больше информации про такой-то индикатор компрометации», и бот будет отвечать выжимками из корпуса текстов.
У нас была опросная форма, где каждый эксперт ставил оценки по своему блоку по 10-балльной шкале, на каждом этапе эксперты выставляли промежуточные оценки. Изначально задумывался один победитель, но после финального суммирования весов (баллов) по каждой экспертизе оказалось, что у трех команд была настолько минимальная разница в баллах, что мы приняли решение определить трех победителей, которые разделили между собой призовое место. У всех были очень интересные решения, было просто невозможно выделить кого-то одного. В итоге победителями стали команды:
ARES. Разработка продукта для аналитиков в сфере ИБ — базы знаний, агрегирующей источники данных с анализом угроз компьютерной безопасности, справочники с терминами, взаимосвязи между сущностями предметной области. Задачи, которые воплотили в продукте:
Создание системы фильтрации источников аналитики по ключевым словам
Аннотация новых отчетов для выделения терминов, имеющих отношение к ИБ-аналитике, и добавления документа в базу знаний
Подключение справочных систем (MITRE и MISP)
Визуализация взаимосвязей между сущностями предметной области ИБ
Stellar. Проект R-Vision Assistant — cервис для сбора, визуализации и аналитики данных по угрозам кибербезопасности. Особенности сервиса — удобный и понятный UX/UI-интерфейс, возможность работы с различными источниками данных о киберугрозах и добавления новых. Решение содержит много вариантов визуализации, аналитики.
DEV Labs. Интерфейс для полуавтоматизированного парсинга основных сущностей из неструктурированных источников данных, в рамках которых ИБ-специалист анализирует уязвимости. Программа нацелена на повышение качества данных, сохраняемых в базу знаний.
Находчивость приветствуется
Организаторы создавали общий канал в Telegram для общения с экспертами. Но некоторые участники, то ли чтобы не раскрывать свою задумку, то ли чтобы получить конкурентное преимущество, начинали писать нашим экспертам в личку, например, уточняли, насколько будет интересна та или иная идея в качестве решения. В этом мы не увидели ничего плохого, поскольку это также входит в работу над продуктом и это не было запрещено правилами хакатона. Чтобы не создавать слишком большого конкурентного преимущества в итоге мы, конечно же, старались все коммуникации переводить в общий канал, но этот заход все равно оценили положительно, потому что это вполне естественная история для взаимодействия с заказчиком.
Выводы
Что нам в итоге удалось
Мы смогли использовать хакатон как возможность рассказать о нас как о компании и в результате отобрали 15 человек для дальнейшего общения по поводу трудоустройства. Однако специалисты, показавшиеся нам интересными, не были заинтересованы в смене работодателя, а были готовы только к работе на отдельных проектах.
Что можно было бы сделать лучше
Мы выделили слишком много экспертов от нашей компании, это отнимало много рабочего времени наших сотрудников. В следующий раз сократим количество экспертов как минимум вдвое.
Также очень много времени у нас уходило на развертывание продуктов на наших стендах: на каждую команду тратили по 10–15 минут. На будущее решили давать командам заранее сформированный стенд, чтобы у них была возможность разворачивать готовое решение самим.
Планы на будущее
Мы получили полезный практический опыт и обязательно будем его использовать в дальнейшем. Теперь планируем раз в квартал проводить свои внутренние хакатоны и периодически организовывать внешние с привлечением подрядчиков. Это реально сделать и своими силами, но поддержка со стороны профессионального организатора хакатонов позволяет сократить количество экспертов от компании до 2–3 человек, а значит, сэкономить рабочее время сотрудников.