Информационная безопасность тема серьезная и сложная, может именно поэтому обучать ей эффективней простыми приемами и играючи?

Привет, меня зовут Алексей Бабенко и в команде Mир Plat.Form я отвечаю за вопросы связанные с тестированием безопасности разрабатываемых программных продуктов. Наши системы — платежные сервисы, которые используют десятки миллионов клиентов. Помимо устойчивости и надежности, одной из основных характеристик для нас является безопасность. 

Поделюсь нашим опытом проведения игр по информационной безопасности внутри компании, но прежде, чем начать, немного расскажу о том, почему мы вообще пришли к этой истории.

Обеспечение безопасности систем — это процесс, который затрагивает многие этапы, начиная от непосредственно момента создания ПО, заканчивая безопасностью компонентов на базе которого это ПО будет запущено и даже надежностью процессов и сотрудников, участвующих в процессе эксплуатации.

Моя зона ответственности — безопасность на уровне приложений. А когда речь идет о продуктовой безопасности, первое что приходит на ум — это тестирование. Делаем надежное выявление багов до выкатки в продакшен и проблем не будет. К сожалению, реальность вносит свои коррективы. Чем позже мы выявили недостатки в ПО — тем сложнее их исправить, а это влияет на скорость выкатки релиза в прод.

Поэтому наша задача не только выявлять недостатки при тестировании, а делать так, чтобы они стали реже появляться в создаваемых нами продуктах. Таким образом, один из векторов деятельности продуктовой безопасности — обучение и поднятие культуры безопасной разработки в продуктовых командах. 

Давайте поиграем

Классический подход к обучению — лекция + практическое задание, хорош, но не всегда оптимален. Мы используем различные варианты — тематические семинары, лучшие практики для самостоятельного ознакомления, информационные рассылки. В прошлом году решили добавить геймификацию в наше обучение и провели task-based CTF.

Если говорить о CTF в целом, то выделяют 2-а основных варианта:

  • классический CTF, где каждой команде выдается образ с заранее заложенными уязвимыми сервисами, которые нужно защищать со своей стороны и атаковать сервисы соперников.

  • task-based CTF, представляющий из себя набор независимых заданий на различные тематики, связанные с безопасностью.

Классический CTF более динамичный и ограниченный по времени, но, к сожалению, предъявляет требования к минимальному порогу вхождения. Человек со стороны не поймет, что нужно делать и интерес к игре быстро угаснет. Для первого раза мы выбрали более размеренный и простой в освоении подход в виде task-based игры.

Дополнительным плюсом выбора этого направления была возможность растянуть протяженность игры на две недели, а значит все желающие могли найти время что бы поучаствовать в ней без ущерба основной занятости.

Перед планированием любой активности мы задаем себе вопрос: "А что мы хотим получить в итоге?" Запуская CTF мы сформировали следующие цели: 

  • повысить интерес к теме безопасности среди разработчиков, 

  • показать реальный риск, который может нести уязвимость, которая изначально не кажется критичной,

  • собрать сообщество увлеченных разработчиков, которые хотят развиваться в теме безопасности и нести эту культуру в команды. 

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

StarMir

C самого начала мы придумали историю — мы не просто запускаем очередной квест, мы запускаем минивселенную. Тематика — увлекательная и многосторонняя — пришла сразу: «Звездные войны»! Все задачи легко вписались в общую историю, даже призы оказались в нужной тематике и пришлись по вкусу всем победителям. А «StarWars» стал «StarMir».

Задачи по категориям
Задачи по категориям

Красивая картинка и «легенда» — отличный способ завлечь участников, но все-таки главное это начинка. Все задачи были разбиты на достаточно классические CTF тематики: 

Web

Начиная от простых захардкоденных паролей в html и js скриптах, заканчивая зубодробительными задачами на реализацию SSRF и RaceCondition. 

Crypto&stegano

Кейсы c криво реализованными алгоритмами шифрования и слабыми входными параметрами. Сюда же мы добавили пару заданий, связанных со стеганографией, чтобы познакомить участников с этим направлением.

Network

Примеры различных популярных протоколов передачи данных, в которых не обеспечивается должная их защита.

Forensic

Задачи, связанные с исследованием предоставленных данных: секретов хранимых в метаданных документов, замысловатые кодировки, защищенные архивы.

Reverse

Категория задач «со звездочкой», направленных на обратный инжиниринг скомпилированных приложений.

Trivia

Набор тасков без единого направления, которые не кажутся сложными с первого взгляда. Простые задачи, связанные с поиском данных, смекалкой, а где-то и везением.

В выборе задач нам важно было сохранить баланс между тем, что бы они отражали наши «болевые точки», но при этом «мы не получили еще один курс» или «не превратились в очередной курс», в котором мы разбираем классические недостатки. 

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

Распределение задач по количеству решенных за время игры
Распределение задач по количеству решенных за время игры

Для тех, кто уверенно чувствует себя в теме безопасности были заготовлены и более сложные таски, а несколько задач изначально создавались сложными в решении, чтобы всю игру нельзя было пройти за один подход и поддерживался интерес участников в течение всего времени проведения. 

Горшочек с медом

Во время разработки игры мы понимали, что наша целевая аудитория — все ИТ-специалисты Мир Plat.Form, а, значит, попыток выйти за рамки, обозначенные игрой, не избежать и полезно будет подумать о выявлении альтернативных методов решения. 

На всякий случай решили одно из заданий сделать заведомо с неправильным ответом, а в журейку вбить ответ, который не мог быть получен путем решения задачи. И действительно, через несколько дней после начала игры, азарт накалился и вход пошли заранее неоговоренные способы (сложность в том, что некоторые потенциальные участники имеют административный доступ на сервераразвернутого решения). 

В результате один из участников сдал злополучное решение. Какое-то время мы отслеживали его активность и когда окончательно убедились в мухлеже, предъявили доказательства и с чистой совестью понизили его в турнирной таблице.

Поддержка участников

Важным фактором при проведении StarMir оказалась поддержка участников. Для этого был организована группа в мессенджере с практически круглосуточным дежурством организаторов. Это помогло снизить порог входа в игру, решать возникающие проблемы, а иногда и понять, что формулировка задания не до конца очевидна и скорректировать ее.

Бонус-вопрос в чате мессенджера
Бонус-вопрос в чате мессенджера

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

Итоги игры

Приятным фактом для нас, как организаторов, стало то, что она протяжении всей игры не было общего лидера — ребята активно соревновались друг с другом и на столько вошли в азарт, что в какой-то момент  нерешенные задания стали заканчиваться и мы решили добавить еще несколько «зубодробительных» задач для лидеров гонки. 

Вплоть до последних дней игры сохранялась интрига, кто же возьмет первое место.

Рейтинг Топ-10 участников в течение игры
Рейтинг Топ-10 участников в течение игры

В результате победитель решил все предоставленные таски, но сделал это буквально в последний день — заданий хватило ровно на время проведения игры.

 Завершающей частью стало награждение победителя и ТОП—20 итогового рейтинга. Ребята получили крутые конструкторы Lego StarWars, а организаторы лишний раз пожалели, что сами не смогли принять участие в игре.

В конце активности мы  собрали обратную связь от игроков. Всем понравилось: участники отмечали, что узнали для себя много нового, писали в личных сообщения о том, что и не догадывались, как легко можно реализовать безобидные с первого взгляда недостатки.

 Дополнительно мы собрали и проанализировали все недочеты, которые были допущены, услышали пожелания участников. На этот год у нас запланирована аналогичная игра, но уже с учетом прошлого опыта, а главное поделенная на две категории — для ИТ-специалистов и для бизнес-пользователей. Цель сделать так, чтобы и далекие от ИТ сотрудники в игровой форме смогли усвоить основные требования информационной гигиены и обеспечения безопасности. Думаю, этому событию мы посвятим отдельную статью.