Как взломать премию, пропустив деньги через шредер

onvv20i4qtfzkapghgz0gav3cro.png

Отлично заканчивается апрель для RUVDS! Мы победили в ежегодном конкурсе среди профессионалов на рынке дата-центров и получили премию «ЦОДы.РФ» в номинации «Креатив года». Помните тот эмоциональный хакерский квест, который мы устроили в августе 2020-го? Неплохо повеселились, правда? За него нам и дали премию. Кто пропустил посты про эту чумовую игру — подробности внутри.

Немного про конкурс


cc4ee450c623f62bc5c379e21086fc92.jpg
Основатель и управляющий партнер RUVDS Никита Цаплин

Его уже пятый год проводят организаторы — маркетинговые компании Media Grus и AnyLine. Премия присуждается по нескольким номинациям, в этот раз их было 13. Победителей определяет сообщество крупных профессионалов российской ЦОД-отрасли методом открытого голосования.

Премию в номинации «Креатив года» присуждают за творческий подход к продвижению услуг в нашей сфере. И мы решили, что обязательно должны участвовать с нашей беспрецедентной интерактивной рекламной кампанией в виде квеста в комнате, в которой участвовало более 600 человек. Суммарный охват публикаций в СМИ и трансляций в соцсетях про игру составил около полмиллиона человек. В победе мы не сомневались! Совсем… ну, почти (на самом деле волновались ещё как).

Про квест, принёсший победу


12 августа 2020 года мы опубликовали пост с видео-роликом, в которых предлагали читателям Хабра сыграть в игру с денежным призом. Нужно было хакнуть реальную комнату, созданную для квеста, в которой якобы находился офис веб-студии «Сокол», предлагающей услуги подкроватного хостинга. Комната была напичкана IoT-устройствами, управлять которыми нужно было с сайта компании.

Завязка квеста была в том, что владелец компании Андрей Соколов, заработавший некоторую сумму услугами хостинга на самосборном сервере и создания стрёмных сайтов, улетел на Бали. Оставшиеся 200 000 рублей он спрятал в этом офисе, который снабдил «умной» защитой от грабителей с трансляцией системы слежения на том же сайте. Но спрятал он их не в сейф, а в шредер, который, при попытке взлома, начинает уничтожать купюры, чтобы деньги не достались грабителям.

По сценарию раз в час уничтожается 1000 рублей, что стимулирует участников думать и действовать быстро — ведь победитель забирает сумму, оставшуюся на момент взлома. А взломом должно стать короткое замыкание, к которому приведёт управление IoT-устройствами через сайт и которое уничтожит сервер. Короткое замыкание надо было устроить так: найти спрятанный лазер, активировать его, подобрав код доступа и направить в подвешенную гирю, которая, падая, разбивала аквариум с водой, который заливал сервер. Были и подсказки. Прямая трансляция происходившего в комнате-офисе велась на YouTube двое суток: лампочки мигали, телефон звонил, интернет вещей свирепствовал.

Как проходил квест и кто в нём победил, забрав 134 000 рублей, можно почитать здесь.

Как создавалась игра


Мы публиковали два подробнейших поста про бэкенд и про железо проекта — там вы можете пошагово почитать, как всё настраивалось, тестировалось, какие были сложности и как мы из них выходили. А здесь в двух словах про основное.
rk0s9sqluiuiflagxkukft_9sxs.png
Тестирование выстрела лазера.

Бэкенд


Состоял из шести архитектурных единиц:
  1. Бэкенд игровых сущностей, отвечающих за игровые механизмы. Реализация в виде spring boot-приложения, которое имело три rest-контроллера (Мегатрон для лазера, контроллер для капчи и контроллер для мапинга тильдовских страниц), websocket endpoint для управления гаджетами и сервисы с игровой логикой.
  2. Шина обмена данных бэкенда и площадки на наших VPS. Сначала использовали тариф за ресурсы, но потом поняли, что лучше фиксированный тариф из-за постоянной высокой нагрузки. Для подобных квестов хорошо использовать тариф Turbo. На VPS-сервере был запущен RabbitMQ, от DDoSa применили Cloudflare.
  3. Транслятор из запросов бэкенда игровых сущностей на Ардуино и железо на площадке. Через скрипт на Питоне транслятор отвечал за таймер шредера, передачу изображений на экран и логику параллельного включения света на разные устройства.
  4. Ардуино, которая получала команды с транслятора и управляла разными реле.
  5. Игровые устройства: вентилятор, гирлянды на светящихся буквах, торшеры и так далее.
  6. Фронтенд — вырвиглазный сайт компании «Сокол» на Тильде, с которого игроки управляли игровыми устройствами. Попросили у Тильды разрешения менять код, чтобы добавить недостающую js-логику на отправку запросов на игровые устройства.

fmstmv-dddomjaimw7sf9h6alyw.png
Жуткий сайт Сокола.

Железо


Мы не использовали коробочные решения и устройства для умного дома и не использовали беспроводные подключения, поскольку все девайсы находились друг от друга на расстоянии максимум 3 метров. В кадре не было видно никаких реле и Ардуино. Мегатрон-3000 — это лазерный модуль для резки с ручной фокусировкой LSMVR450–3000MF, 3000 мВт, 450нм. Для резервирования электричества и интернета использовали привычную для ЦОДов схему N+1 и роутер на базе OpenWRT с пакетом mwan3 для переключения на резервный модем с Yota в случае обрыва. Больше железных подробностей и киношных нюансов здесь.

Про награждение


aa944a9392d5ba24a4ebe8da5ee3c652.jpg
Основатель и управляющий партнер RUVDS и Сания Галимова на вручении премии «ЦОДы.РФ»/

Церемония была торжественная, как Оскар. Состязаться за премию в номинации нам выпало с профессионалами из ООО «АФЕСПРО», C3 Solutions и GreenMDC. По задумке наш проект — это не просто рекламная кампания, пусть даже такая креативная. Основной посыл заключался в том, что мы против распространения на рынке виртуальных VDS/VPS серверов таких компаний, которые оказывают услуги низкого качества, которые предлагают хостинг на непрофессиональном оборудовании и которые таким подходом дискредитируют всю сферу услуг виртуальных серверов в России. Спасибо устроителям и жюри премии, за то, что высоко оценили нашу акцию. И огромное спасибо «хакерам» Хабра, так увлечённо проходившим квест. Вы вдохновляете!

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru