четверг, 7 августа 2014 г.

Общее. О CTF и не только

Компании нанимающие на работу свежих выпускников вузов по специальностям связанным с ИБ жалуются на отсутствие у этих выпускников практического опыта, а так-же знаний именно в той области, которая нужна для выполнения служебных обязанностей. В результате новых сотрудников поИБ приходится отправлять на доп. обучение и долгое время доращивать  до нужного состояния.
Что-бы хоть как-то исправить эту ситуацию в свое время в ВУЗах были придуманы соревнования по ИБ типа CTF - Capture the Flag. Соревнования обычно проводятся раз в год разными организаторами, но кроме этого есть ещё командные тренировки, индивидуальные практики и изучение технического материала. В результате, студенты получают необходимый опыт, учатся работать в команде, получают обратную реакцию в виде результатов соревнований и наборе ошибок, которые были на этих соревнованиях не-/допущены.

На мировой сцене основоположниками CTF соревнований в области ИБ были DefCon CTF и UCSB iCTF. В России первыми CTF, о которых мне известно и о которых есть публичная информация, были UralCTF от HackerDom.

Давайте подробнее посмотрим, чем занимаются на CTF-ах и в каких специальностях эти знания могут пригодиться:
·        Администрирование сервера под управлением, как правило, open-source ОС типа linux, в том числе администрирование сетевых сервисов на базе linux.
В начале соревнований командам выдается образ сервера, которой они в первый раз видят, нужно быстро разобраться с тем какие сервисы на нем в принципе работают, возможно исправить какие-то “сломанные” сервисы, запустить их, в течении соревнований поддерживать их в работоспособном состоянии, мониторить системные события, делать резервные копии и возможно восстанавливать систему из резервных копий.
Этот опыт в будущем подойдет для должностей – администратор серверов, администратор сервисов на базе linux, инженер технической поддержки, специалист мониторинга ИТ.
·        Поиск уязвимостей в исходных кодах приложений
Обычная ситуация когда на выданном вам сервере, а так-же на серверах других комманд запущен сервис, а рядом лежит его исходный код. Команда, которая находит уязвимость в своей версии исходного кода, автоматически получает уязвимость в сервисах других команд.
Для поиска используют автоматизированные средства анализа кода и анализ кода в ручную. Если это возможно, то найденные уязвимости необходимо ещё и оперативно исправить, переписать код, перезапустить сервис.
Этот опыт в будущем подойдет для должностей – исследователь, специалист по тестированию ИБ кода, пентестер, разработчик безопасного ПО.
·        Поиск уязвимостей в приложениях без исходного кода
Регулярно встречается ситуация когда на выданном вам сервере, а так-же на серверах других комманд запущен сервис, но исходных кодов нет. Тогда для поиска уязвимостей применяются другие методы – reverse-engineering, fussing, подбор параметров, перебор типовых атак и т.п.
Этот опыт в будущем подойдет для тех же должностей – исследователь, специалист по тестированию ИБ кода, пентестер, разработчик безопасного ПО.
·        Оперативное написание утилит: эксплоитов для найденных уязвимостей, утилит для автоматизации атаки на большое количество узлов, утилит для автоматизации сбора флагов, утилит для автоматизации отправки флагов на сервер жюри и т.п.
В ходе соревнований постоянно возникают задачи, требующие написание какого-то небольшого ПО или утилиты, поэтому без программиста не обойтись.
Этот опыт в будущем подойдет для тех же должностей – пентестер, разработчик безопасного ПО.
·        Мониторинг сетевого трафика и обнаружение атак на уровне сети
Так как участники получают сервера как черный ящик, без дополнительной информации, то анализ текущего трафика помогает определить, какие сервисы, как и для чего используются клиентами. Дальше необходимо оперативно научится разделять легитимный трафик пользователей и нелегитимный трафик атакующих. После определения уязвимостей и написания эксплоита, можно заблокировать аналогичные атаки на свой сервер.
Этот опыт в будущем подойдет для тех же должностей – специалист мониторинга ИТ, специалист по IPS.
·        Решение различных дополнительных заданий (task-based ctf)
Как правило за решение задач дают дополнительные баллы. Сами задачи развлекательные (типа сфотографироваться, станцевать, спеть всей командой) либо задачи на техническо-исследовательские темы: OSINT, reverse-engineering, стеганография, программирование, криптоанализ и т.п.
Этот опыт в будущем подойдет для тех же должностей – исследователь, администратор сервера, специалист по тестированию ИБ кода, пентестер, разработчик безопасного ПО.

К сожалению, CTF никак не помогает нам с должностями типа: CISO, администратор средств защиты информации, разработчик документов по ИБ, администратор информационной безопасности, ответственный за ОБПДн, пресейл-инженер, проектировщик СОИБ, внедренец СОИБ, консультант по ИБ. А именно таких вакансий большинство на рынке ИБ. Получается что, если вы ищете именно таких специалистов, то опыт CTF для вас не будет большим преимуществом.
Бывают попытки разнообразить задачи в рамках CTF, но по моему мнению они не дают нужного эффекта, нужной подготовки и опыта в объеме, который получают участники CTF идущие по пути исследователя, пентестера, программиста.
Я в свое время и отошел от CTF, потому что это никак не пересекалось с моей профессиональной деятельностью – пресейлом, подбором технических решений, проектированием, внедрением СОИБ, консалтингом по ИБ.

Практика, подобная CTF нужна и студентов, идущих по другим под направлениям. В вузах нужны практические курсы для студентов в части подбора технических решений, проектирования, установки и настройки СЗИ, в части моделирования угроз, оценки рисков, разработки процедур ИБ, внедрения процедур ИБ, контроля процедур ИБ. А чтобы было интересно, нужны ещё и соревнования. В своем формате.
Вариантов много.  Один из них – можно проводить по правилам классического матбоя.
Берем 2 команды. Дается общий набор задач: исходные данные, надо построить модель угроз, определить необходимый набор контрмер, подобрать решение.
Одна команда рассказывает решение, вторая рецензирует, указывает на недочеты, говорит как можно было бы улучшить. Потом меняются местами. Жури присуждает баллы.

Второй вариант – просто соревнование на время. Участники разворачивают и настраивают техническое решение по ИБ, например SSL VPN и обеспечивают доступ к паре приложений. Кто быстрее выполнил, тот и победил (при условии прохождения ПМИ).
В общем, варианты есть. Студентам ВУЗов по ИБ советую получать  практический опыт любыми доступными способами, а руководству ВУЗов – организовывать и обеспечивать получение студентами актуальных знаний и опыта.



2 комментария:

Артем Агеев комментирует...

Тут романтика нужна.

Что романтичного в модели угроз? Да ничего...

Сергей Борисов комментирует...

Согласен что в CTF есть своя романтика. Особенно, когда организаторы - профи, типа PT или HD.

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