Поиск уязвимостей в веб-приложениях и файлах, работа с криптоалгоритмами, анализ операционных систем и защита от киберугроз. Участники финала смогут решать задачи на Национальном киберполигоне — учебные угрозы основаны на реальных приемах и инструментах хакеров.
В рамках первого отборочного этапа предстоит решить задачи по математике и информатике в предметном туре, освоить образовательный блок по направлению профиля и решить профильные задания в инженерном туре.
В рамках второго этапа вам предстоит принять участие в командном соревновании по практической информационной безопасности.
Решайте задачи по криптографии, расследованию инцидентов, закрытию бинарных уязвимостей, веб-безопасности, анализу протоколов атак.
Всё автоматизировано и с динамическим рейтингом: решил сложную задачу — получил больше баллов.
В начале вам будет необходимо решить несколько заданий на знания уязвимостей веб-приложений, бинарных уязвимостей, программирования и криптографии.
Дальше вам необходимо будет провести расследование инцидента в компании путем анализа образов машин и восстановить действия злоумышленника, после чего вы сможете защитить инфрастурктуру от его атак в реальном времени. Для работы вам потребуются компьютер, а также знания и навыки, полученные на предыдущих этапах олимпиады.
В результате вам необходимо полностью восстановить вектор атаки злоумышленника и устранить уязвимости приложения, атакуемого в реальном времени.
Представленные ниже знания должны быть «распределены» в команде. Нет необходимости, чтобы каждый владел всеми знаниями, но необходимо, чтобы каждый понимал в этих областях смысл базовых слов и конструкций. Иначе не получится построить коммуникацию.
Криптография и математика — она нужна для того, чтобы разобраться с алгоритмами шифрования.
Алгоритмизация и базовые алгоритмы программирования и обеспечения безопасности, которые нужны для проектирования алгоритмов защиты и анализа вредоносных алгоритмов.
Устройство unix-систем, ведь многое специализированное программное обеспечение работает гораздо эффективнее на unix машинах.
Хотя бы один высокоуровневый язык программирования, чтобы суметь написать код.
Основы технологий обеспечения защиты информации.
Чтобы успешно справиться с задачами важно знать математику и уметь программировать. Но если вы уже интересуетесь основами информационной безопасности и у вас есть знания в области безопасности web-приложений, реверс-инжиниринга и вирусного анализа, цифровой форензики, поиска бинарных уязвимостей, безопасной разработки и проектировании систем информационной безопасности, то решать задачи будет приятно и интересно.
Советуем исследовать самый крупный новостной портал в России, посвященный соревнованиям по информационной безопасности — CTF News. Стоит начать с раздела для новичков. Кроме того, можно попробовать свои силы и порешать задачи прошлого года.
Очень полезно попробовать решить задачу и заглянуть в разбор, если застрял на каком-то шаге и не понимаешь, как двигаться дальше.
Цель каждого задания — найти флаг. Все флаги данного соревнования имеют одинаковый формат: CC{[\x20-\x7A]+}. Пример: CC{w0w_y0u_f0und_7h3_fl46}. Флаг используется в качестве некоторой секретной информации, которую нужно извлечь, находя уязвимости в анализируемых сервисах или исследуя предоставленный файл.
Если не знаешь, с каких заданий начать, начни с тех, которые уже решило больше всего участников. Скорее всего, они будут проще остальных.
Для каждой из категорий мы собрали список инструментов, которые могут оказаться полезными при решении:
Если не знаешь, какой операционной системой пользоваться, то тебе стоит попробовать Kali Linux
Основы синтаксиса Питона/С
Поиск необходимой информации в интернете
Каждый участник должен уметь:
писать простые программы и читать программные коды, в том числе неизвестных авторов;
составить карту сетевой инфраструктуры ;
Кто-то из участников команды точно должен уметь:
написать алгоритм шифрования и расшифрования данных;
провести анализ скомпилированного программного кода;
провести анализ вредоносного воздействия и определить его природу и источник;
найти спрятанную информацию в незнакомом объекте;
находить и закрывать уязвимости в веб-сервисах.
Обычно все эти профессиональные навыки увязываются в знакомые категории соревнований в области информационной безопасности, но в финальной задаче не будет «категорий». Поэтому держите при себе «навык», а не умение решить конкретный тип «таска».
Для участия на втором и заключительном этапах вам понадобится команда из 4 человек:
Лидер команды (тимлид) — из этой роли видно задачу целиком. Тот, кто выберет эту роль должен уметь разделить задачу на подзадачи, а также собирать вместе результаты выполнения подзадач. В этой роли может быть как самый подготовленный человек в команде, так и тот, кто просто лучше всех знает сильные и слабые стороны каждого члена команды.
Программист — это роль техническая. Программист должен написать нужный программный код, который работает правильно и быстро. Правильно и быстро, а не абы как!
Ревёрсер — ещё одна техническая роль. Это человек, который разберёт любые бинарники на запчасти и увидит их слабое место. Эта роль очень важна, так как только в этой роли можно разобрать вредоносного агента.
У одного человека может быть несколько ролей, но не переборщите. Понятно, что ревёрсер скорее всего умеет программировать. Но вот программист вовсе не обязан уметь делать ревёрс. Учтите, что базовые навыки должны быть у всех примерно одинаковые, иначе не получится наладить взаимодействие.