Как студенты из «Сириуса» защитили от хакеров олимпийский стадион в Сочи
В октябре 2020 года в научно-технологическом университете «Сириус» прошла уже ставшая традиционной образовательная программа по информационной безопасности для студентов профильных вузов. В ней приняли участие победители всероссийской олимпиады «Кибервызов: Новый уровень». Как и в прошлом году, организаторами выступили «Ростелеком», его дочерняя компания «Ростелеком-Солар» и университет «Сириус», в этот раз – при содействии Банка России.
В течение 14 дней 49 будущих специалистов по кибербезопасности из десяти городов России изучали типовую информационную инфраструктуру банка, основные виды атак на нее и способы их отражения, пентестинг, безопасную разработку и форензику. Отдельный трек был посвящен развитию soft skills: эмоционального интеллекта и навыков работы в команде, а также профориентации и построению карьеры. Все учебные модули завершались практическими заданиями, а в конце учащихся поджидало главное испытание — в условиях дефицита времени отбить инфраструктуру олимпийского стадиона «Фишт» у криминальной хакерской группировки Bobalt. Рассказываем, как это было.
Ясное и теплое октябрьское утро в Сочи не предвещало беды. Никто не знал, что накануне ночью хакеры из группы Bobalt, прославившейся громкими киберпреступлениями, проникли во внутреннюю информационную инфраструктуру стадиона «Фишт». Злоумышленники быстро захватили управление центральным сервером, получили доступ к двум банкоматам на территории спортивного сооружения и использовали сеть Wi-Fi, чтобы заразить их новым вирусом. Теперь в нужный момент банкоматы можно было опустошить, заставив выбросить кассеты с купюрами наружу. До прибытия дропов, нанятых хакерами чтобы забрать деньги, оставалось пять часов... Такова была легенда финального задания – киберучений в ситуации, максимально приближенной к условиям реальной хакерской атаки.
Команды одновременно занялись поиском возможности восстановления доступа к инфраструктуре, перехвата контроля над сервером управления вредоносным программным обеспечением и отмены процесса шифрования внутри сети «Фишта».
Всего за 4 часа 20 минут отразить атаку Bobalt удалось команде «Киберкринж». Ребята расследовали инцидент, обнаружили уязвимости и преодолели сопротивление хакеров. В благодарность сотрудники «Фишта» позволили победителям включить на стадионе музыку, сопроводив это иллюминацией огней прожекторов и подсветкой трибун, а также дали поиграть в Pac-Man на гигантских медиаэкранах.
Полный курс образовательной программы по информационной безопасности в финансовой сфере в 2020 году состоял из трех модулей. В рамках первого из них преподаватели из НИЯУ МИФИ рассказали про нормативную документацию, основные понятия и термины, подходы, правила и политики в обеспечении информационной безопасности и анализе инцидентов. Сотрудники Банка России из Департамента финансовых технологий и Департамента национальной платежной системы подробно объяснили, как работают финансовые организации, из чего состоит их информационная инфраструктура и как в ней реализуется защита потенциальных уязвимостей. Эксперты из компании-оператора Национальной Системы Платежных Карт продемонстрировали методы организации защиты сервисов и приложений использующих платежную системы и данные составляющие коммерческую тайну.
Во втором модуле ребят обучали эффективно взаимодействовать в команде, понимать состояние и возможности других людей, а также выступать публично. Одним из самых полезных в этом смысле оказался тренинг Людмилы Волковой, директора по управлению талантами «Ростелекома». Студенты научились составлять хорошее резюме, добиваться повышения зарплаты без смены работы и организовывать рабочее время в период удаленки.
Практическая часть включала, в том числе, и обучение навыкам пентестинга и анализу защищенности систем. Занятия вели лучшие эксперты «Ростелеком-Солар» и SolidLab. Практическую часть разработал и провел Александр Колесов, руководитель отдела анализа защищенности «Ростелеком-Солар».
Для студентов заранее заготовили три vulnerable machines — специально подготовленные образы Windows- или Linux-систем с заложенными уязвимостями, которые имитировали банковскую информационную инфраструктуру. Первая должна была продемонстрировать важность человеческого фактора: большинство уязвимостей возникает не из-за ошибок в технических или программных системах, а из-за необдуманных действий людей. Студенты научились реализовывать атаку «распыления паролей» или password spraying — подбора учетной записи.
При анализе системы юные пентестеры получали набор из логинов к десяти учетным записям. Затем скачивали из интернета список из пятисот наиболее распространенных паролей. Далее — дело техники: студенты перебирали варианты ко всем логинам посредством готовой утилиты Patator или собственного скрипта на Python, пока не обнаруживали подходящий.
Подобрав пароль к аккаунту, кибердетективы получали доступ к почте. Им необходимо было проанализировать переписку и найти письма от службы технической поддержки, где указывалось, что уже известный пароль подходит и к другому ресурсу. Там же находилась ведущая на этот ресурс ссылка.
Используя скомпрометированную учетную запись, студенты получали права администратора в новой системе, а поэтому могли залить shell — интерпретатор команд пользователя (в данном случае хакера) и получить доступ к серверу.
Вторая и третья виртуальные машины представляли собой аналог банковских систем. На одной из них располагалась ДБО (программа для дистанционного банковского обслуживания), которая позволяла переводить деньги с одного аккаунта на другой. Как и во многих других многопоточных системах в ней имелась типичная ошибка — race condition или «состояние гонки», когда при исполнении нескольких операций в один момент одна из них «пропадает». Другими словами, вместо одного рубля переводится два, но записи о втором перечислении в системе не остается. Таким образом, эксплуатируя ее, участники могли «начислить» себе на счет миллион виртуальных рублей. Как только им это удавалось, на экране появлялась подсказка о наличии уязвимости, но уже в другом месте.
Узнав об очередной бреши в системе безопасности, студенты могли использовать ее, реализовав атаку посредством Server-Side Template Injection (SSTI) — инъекции шаблона (файла HTML) с вредоносным кодом, который позволяет осуществлять удаленный доступ на сервер.
А вот на другой системе находились неправильно настроенный веб-сервер Nginx и веб-приложение на Python. В итоге, заполучив фрагменты исходников последнего, ребята могли понять, что веб-приложение получает cookies со встроенным сериализованным объектом в виде последовательности битов. Восстановление начальной структуры данных из битовой последовательности этого объекта приводило к ошибке десериализации — еще одной потенциальной уязвимости.
Участникам требовалось написать небольшой скрипт на Python для подписи cookies, который бы заменял изначальный сериализованный объект на подложный, созданный хакерами, и скормить получившееся «отравленное печенье» серверу через любой возможный запрос. Получив такой cookies, веб-приложение отправляет его на десериализацию, сервер видит там команду и исполняет ее, тем самым позволяя атакующему получить доступ к командной строке для удаленного управления. И все — сервера банка окончательно захвачены.
Решая такие практические задачи, студенты учатся проверять системы на наличие уязвимостей и защищать их от киберпреступников. Проверить полученные навыки и победить зло юные пентестеры могли на финальном испытании — максимально приближенных к реальным киберучениях на стадионе «Фишт».
Прибыв на стадион, ребята немедленно получили доступ к взломанным банкоматам. На первом этапе от них потребовалось исследовать снятый образ банкомата — все данные, которые хранились на его внутреннем компьютере по состоянию на момент взлома. Оказалось, что для работы банкомата используются две учетные записи: одна из них — администратора, а из-под второй запускалось основное программное обеспечение. Причем вторая учетная запись работала в режиме autologon. Через реестр участники выяснили пароль ко второй учетной записи. Теперь перед ними стояла задача поработать непосредственно с банкоматом, а именно войти в учетную запись на его терминале и продолжить расследование.
Выяснилось, что банкоматы связаны с внутренней сетью стадиона через Wi-Fi — редкий, но иногда встречающийся и в реальной жизни способ (обычно они соединены по кабелю или сети 3G). Студенты обнаружили профиль Wi-Fi и вытащили оттуда SSID и пароль для Wi-Fi-точки. Немного побродив по «Фишту», они обнаружили саму wi-fi точку, к которой незамедлительно подключились, получив доступ во внутреннюю сеть «Фишта».
Хакеры из Bobalt заметили, что кто-то — по-видимому, сотрудники службы безопасности, — идут по их следу, и запустили шифрование всей внутренней сети стадиона. На медиаэкранах появился таймер обратного отсчета. У студентов осталось ровно четыре часа, чтобы обезвредить преступников. Громкоговорители арены зловещим голосом объявили: «Мы обнаружили вашу активность! Через четыре часа мы удалим ваши данные! Попробуйте нас остановить!».
Внутри сети «Фишта» оказалось четыре сервера с разными системами и софтом. Перейти с одного на другой можно было только решив все задачи. Иными словами, каждая команда пентестеров, чтобы победить в киберучениях, должна была последовательно пройти все четыре «станции».
На первом сервере находилась система мониторинга Zabbix, которая широко используется компаниями по всему миру. Zabbix делится на серверную часть и множество агентов, установленных на эндпоинтах (endpoints) в сети — других серверах, рабочих станциях, лэптопах и т.д. Поэтому, получив доступ к серверной части, можно легко управлять любыми агентами.
Проникновение в систему студенты реализовали достаточно просто: загуглили используемые по умолчанию в Zabbix логин и пароль (они подошли!), затем обнаружили API для административных запросов в серверной части, нашли подходящего агента и составили для него задачу на выполнение. Проще говоря, притворились «легальным» сервером Zabbix и отправляли один из разрешенных запросов к агентам: host get, script create, script execute. С этой задачей, увы, справились всего пять команд.
С помощью агента оставшиеся в строю команды залили shell на второй сервер — машину под управлением Windows c запущенным антивирусом. Обычно в Windows можно авторизоваться двумя методами: через логин/пароль и логин/хэш пароля. Второй подход уходит корнями в давние времена: LM или NTLM-хэши (от NT LAN Manager — протокола сетевой аутентификации, разработанного Microsoft для Windows NT) — это старейшее хранилище паролей, ведущее свою историю еще с 1990-х годов, а также с OS/2 от IBM и первых версий Windows. Проблема заключается в том, что его довольно легко атаковать с помощью pass-the-hash — не зная пароль в открытом виде, его подменяют похищенным хэшем.
Студенты так и поступили: выгрузили файл lsass.exe (любой пользователь, запустив диспетчер программ, может найти этот стандартный процесс на машине под управлением Windows) и с его помощью нашли и забрали хэш. После этого проверили сетевое окружение и обнаружили еще одну машину под Windows. На ней им также удалось авторизоваться, используя ранее полученный хэш пароля. Из пяти оставшихся команд, продемонстрировав владение методом pass-the-hash, с этой задачей справились только две команды.
На третьей машине студенты обнаружили софт для управления версиями программного обеспечения Gitea. Для его работы необходим файл config. В нем, по счастливой случайности, оказался очередной пароль. Войдя с правами администратора в систему контроля версий, ребята обнаружили проект, который содержал две ветки кодов: master и dev. Там они нашли ссылку на следующий хост, а в config-файле обнаружились сведения об учетной записи к нему.
Подключившись через SSH (Security Shell) — сетевой протокол для удаленного управления — команды обнаружили лимитированный shell. Он мог исполнять удаленные команды, однако их репертуар был ограничен. В ходе экспериментов выяснилось, что среди них есть команда / pic. Применив ее в сопровождении определенного набора данных, можно было переключиться в неограниченный вариант командной строки для удаленного управления. Кстати, обычно подобные лимитированные shells встраивают в различные устройства, относящиеся к интернету вещей (IoT): датчики, камеры видеонаблюдения, контроллеры, точки доступа и т.д.
Четвертая машина работала под управлением Linux. Студентам удалось выяснить, что у системы несколько пользователей. В папке одного из них нашелся интересный файл — sudo_as_admin_successful — означающий, что данный пользователь состоит в группе sudoers (имеют административные права в ОС Linux). Испробовав различные доступные из программы sudo команды, ребята обнаружили файл securels с ошибкой, позволяющей выполнить команду от root-пользователя, администратора системы с максимальными правами.
Участники исследовали систему из-под root и установили, что в ней зарегистрировано два сетевых адаптера: основной по адресу 10.16.01/24 и второй 10.17.01/24. Используя взломанный хост как SOCKS-прокси (промежуточный сервер для управления правами доступа) команда «Киберкринж» просканировала адаптер 10.17.01/24. В ходе сканирования они обнаружили сервер 10.17.02, а на нем два доступных сервиса — веб-приложение и VNC (Virtual Network Computing) — систему удаленного доступа к рабочему столу компьютера.
Среди множества функций веб-приложения оказалась и регистрация. Правильно подобрав и подставив параметры, а также передав серверу admin = true, можно было добиться прав администратора в приложении отвечающих за работоспособность всей сети стадиона «Фишт». Наконец участники «Киберкринжа» получили власть в свои руки. Команда остановила шифрование сети, отключила таймер с обратным отсчетом на экране и защитила инфраструктуру «Фишта» от злоумышленников.
Опыт проведения киберучений в «Сириусе» показал: подобный формат и темы особенно интересны способным студентам. Мероприятие позволяет направить опасный интерес к взлому систем, характерный для этого возраста, в социально полезное русло, получить необходимые навыки, а по окончании вуза — приглашение на легальную и высокооплачиваемую работу.
По словам вице-президента «Ростелекома» по информационной безопасности, генерального директора компании «Ростелеком-Солар» Игоря Ляпунова, уникальная ценность образовательной программы, которая проводится совместно с «Сириусом», состоит в том, что студентов обучают лидеры отрасли и практики, с которыми можно напрямую общаться, задавать вопросы и даже спорить. «Участие в таких программах — первая ступень для входа в профессиональное сообщество безопасников, — считает Ляпунов. — Наша задача не только передать студентам знания и практические навыки, но и сделать их сплоченной командой и частью коммьюнити».
Учитывая успешность «Кибервызовов», компания «Ростелеком» совместно с Научно-технологическим университетом «Сириус», создает опорный центр национального киберполигона для практической подготовки специалистов в области информационной безопасности. Этот проект будет реализован в рамках Национальной программы «Цифровая экономика». По сути, киберполигон — это виртуальная копия инфраструктуры компаний из различных отраслей. Он позволяет отрабатывать практические навыки по быстрому выявлению и предотвращению кибератак, подходит для проведения киберучений и стресс-тестов информационных систем и программного обеспечения.
Опорный центр национального киберполигона будет развернут на базе университетского Научного центра информационных технологий и искусственного интеллекта, который развивает также направление математической робототехники и искусственного интеллекта, финансовой математики и финансовых технологий.
Как сообщает ректор университета «Сириус» Роман Иванов, здесь для студентов создается особая среда, в которой они получают все необходимое — глубокие предметные знания, умение применить их на практике и поддержку ведущих отраслевых компаний, что в будущем позволит им стать первоклассными и конкурентными специалистами.
Одним из ключевых секторов экономики, где требуются новые кадры и постоянное повышение квалификации в области кибербезопасности, является финансовый рынок. Поэтому Банк России стал индустриальным партнером компании «Ростелеком», чтобы совместно организовать постоянные образовательные программы по кибербезопасности финансовых организаций для школьников, студентов и специалистов. Программы будут состоять из отработки множества сценариев отражения атак на инфраструктуру финансовых организаций. Для поддержки этой образовательной инициативы Банк России совместно с Научно-технологическим университетом «Сириус»создал специальное подразделение Финтех Хаб. В ближайшее время на сайте Банка России будет опубликована подробная информация как подать заявку на образовательные программы Финтех Хаба Банка России на 2021 год.
Закономерно, что первыми бета-тестерами инфраструктуры киберполигона становятся самые молодые и перспективные специалисты по кибербезопасности.
Даниил Кузнецов