- PVSM.RU - https://www.pvsm.ru -

Валидная цифровая подпись на DLL со встроенным бэкдором
Практически по всем профильным СМИ прошла новость [1] о взломе программного обеспечения SolarWinds в рамках глобальной кампании кибершпионажа. Здесь нужно понимать масштаб атаки: этот софт для мониторинга IT-инфраструктуры (CPU, RAM, сеть) используют тысячи частных компаний и государственных учреждений, включая АНБ, Пентагон, Госдеп и проч. В общей сложности 300 000 клиентов по всему миру [2] (данная страница уже удалена с официального сайта SolarWinds, по ссылке — копия из веб-архива).
Самое интересное в этой атаке: 1) внедрение бэкдора внутрь обновлений SolarWinds и 2) оригинальный механизм сокрытия данных в служебном HTTP-трафике программы SolarWinds. В двух словах расскажем о методе стеганографии (covert signaling), который здесь применялся.
Отдельные подробности об атаке опубликовала [3] компания FireEye в отчёте от 13 декабря 2020 года. Эта американская компания должна защищать сети своих клиентов от подобных диверсий, но в итоге и сама пострадала от взлома вместе с ними.
Некоторые из клиентов SolarWinds:


Платформа SolarWinds Orion
Бэкдор обнаружен в библиотеке SolarWinds.Orion.Core.BusinessLayer.dll, которая подписана действительной цифровой подписью компании SolarWinds Worldwide, LLC (скриншот выше).
В частности, инфицирован ряд обновлений программы SolarWinds Orion за март-май 2020 года, которые распространялись с действительной цифровой подписью.
Это был стандартный файл Windows Installer Patch со всеми обычными ресурсами, включая заражённую библиотеку SolarWinds.Orion.Core.BusinessLayer.dll. После установки библиотека нормально загружалась в память штатным экзешником SolarWinds.BusinessLayerHost.exe.
Специалисты Microsoft пояснили [5], что злоумышленники «использовали локальный взлом [on-premises compromise], чтобы получить доступ к доверенному сертификату подписи SAML-токенов организации [SolarWinds]. Это позволило им подделать токены SAML для всех существующих пользователей и аккаунтов организации, включая высокопривилегированные». Судя по всему, речь о физическом проникновении в офис компании (on-premises compromise).
А вот самая интересная часть — как именно бэкдор маскировал пакеты в обычном сетевом трафике:
Для получения данных зловред использовал запросы HTTP GET или HTTP HEAD, и для отправки — HTTP PUT или HTTP POST. Метод PUT использовался, когда полезная нагрузка меньше 10000 байт; в противном случае используется POST. HTTP-заголовок If-None-Match содержит заксоренное представление userID, вычисленного ранее, с добавлением случайного массива байтов той же длины.
Полезная нагрузка JSON в запросах HTTP POST и PUT содержит ключи userId, sessionId и steps. Сообщения с данными для отправки на сервер сжаты DEFLATE и однобайтовым XOR. Каждое сообщение отдельно кодируется Base64.
В наблюдаемом трафике тела HTTP-ответов скрываются под доброкачественные XML, связанные со сборками .NET [6]. Но на самом деле данные распределены по многим строкам GUID и HEX. Команды извлекаются из тел HTTP-ответов путём поиска hex-строк с использованием следующего регулярного выражения:
{[0-9a-f-]{36}}"|"[0-9a-f]{32}"|"[0-9a-f]{16}. Командные данные распределены по нескольким строкам, замаскированным под строки GUID и HEX. Все совпадающие подстроки в ответе фильтруются на наличие символов не-HEX, объединяются вместе и декодируются HEX. Первое значение DWORD показывает фактический размер сообщения, за которым сразу же следует сообщение, а затем необязательные мусорные байты. Извлечённое декодируется однобайтным XOR с использованием первого байта сообщения, а затем разархивируется DEFLATE. Первый символ — это целое число ASCII, которое соответствует команде JobEngine с необязательными дополнительными аргументами, разделёнными пробелами.
В случае таких продвинутых атак невозможно установить разработчиков программы. Исследователи делают предположения на основании совпадения кода с ранее обнаруженными хакерскими инструментами, а также исходя из того, кто именно стал жертвой шпионажа.
Например, в 2010 году были повреждены иранские установки для обогащения урана [7]. Очень продвинутый зловред Stuxnet слегка менял скорость вращения установок — и в конце концов вывел их из строя. Соответственно, логично предположить, что заказчиками и разработчиками зловредров были спецслужбы США и Израиля [8], поскольку эти страны планомерно пытаются помешать изготовлению ядерного оружия в Иране, действуя не всегда дипломатическими методами.
Что касается бэкдора SUNBURST, то его приписывают скорее российским хакерам из группировки APT29 [9] (Cozy Bear), исходя из хитроумности применяемых техник, выбора целей и физического проникновения в офис жертвы. Хотя достоверно заказчик и исполнитель не известны.
Правила Snort для обнаружения и блокировки трафика SUNBURST опубликованы в свободном доступе [10].
[11]
Автор: GlobalSign_admin
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/359926
Ссылки в тексте:
[1] прошла новость: https://habr.com/ru/news/t/533220/
[2] 300 000 клиентов по всему миру: https://web.archive.org/web/20201214065921/https://www.solarwinds.com/company/customers
[3] опубликовала: https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html
[4] SolarWinds Orion: https://documentation.solarwinds.com/en/Success_Center/orionplatform/Content/Core-How-Orion-Works-sw1625.htm
[5] пояснили: https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/
[6] сборками .NET: https://docs.microsoft.com/en-us/dotnet/standard/assembly/
[7] повреждены иранские установки для обогащения урана: https://habr.com/ru/post/105964/
[8] заказчиками и разработчиками зловредров были спецслужбы США и Израиля: https://en.wikipedia.org/wiki/Operation_Olympic_Games
[9] APT29: https://en.wikipedia.org/wiki/Cozy_Bear
[10] опубликованы в свободном доступе: https://github.com/fireeye/sunburst_countermeasures/blob/main/all-snort.rules
[11] Image: https://www.globalsign.com/ru-ru/digital-signatures
[12] Источник: https://habr.com/ru/post/534094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=534094
Нажмите здесь для печати.