Наше подразделение расследований в области ИБ недавно вело дело о почти полностью зараженной криптомайнинговым вирусом сети в одной из компаний среднего размера. Анализ
собранных образцов вредоносного ПО показал, что была найдена новая модификация
таких вирусов, получившая название Norman, использующая различные способы сокрытия своего присутствия. Кроме того, был обнаружен интерактивный веб-шелл, который может иметь отношение к операторам майнинга.

Обзор исследования


  • Компания Varonis выявила крупномасштабное заражение криптомайнерами: практически все серверы и рабочие станции в компании были инфицированы таким ПО
  • Начиная с первоначального заражения, произошедшего более года тому назад, количество модификаций и инфицированных устройств постоянно увеличивалось
  • Обнаруженный нами новый вид криптомайнера Monero (Norman) использует различные способы сокрытия его от анализа защитным ПО, чтобы избежать обнаружения
  • Большинство вариантов вредоносного ПО использовали DuckDNS (бесплатную службу Dynamic DNS) для соединений с центром управления (C&C серверами), а также для получения параметров конфигурации или отправки новых данных
  • Norman — высокопроизводительный майнер криптовалюты Monero на основе майнера с открытым исходным кодом — XMRig
  • У нас пока нет неопровержимых доказательств связи криптомайнеров с интерактивным PHP-шеллом. Однако, есть веские причины полагать, что их источником является один и тот же злоумышленник. Исследователи проводят сбор дополнительных доказательств наличия или отсутствия такой связи
  • В данной статье вы можете ознакомиться с рекомендациями компании Varonis относительно защиты от удаленных веб-шеллов и криптомайнеров

Расследование


Расследование началось во время очередного пилотного проекта Платформы
кибербезопасности Varonis
(Varonis Data Security Platform), который позволил быстро выявить несколько подозрительных аномальных событий на уровне сети при запросах в Интернет (через веб-прокси), связанных при этом с аномальными действиями на файловой системе.
Заказчик сразу же указал на то, что устройства, идентифицированные нашей Платформой,
принадлежали тем же пользователям, которые недавно сообщали о сбоях в работе приложений и замедлении работы сети.

Наша команда вручную исследовала среду заказчика, переходя от одной инфицированной станции к другой в соответствии с оповещениями, сгенерированными Платформой Varonis. Команда реагирования на инциденты же разработала специальное правило в модуле DatAlert для обнаружения компьютеров, на которых активно осуществлялся майнинг, что помогло быстро устранить угрозу. Образцы собранного вредоносного ПО были направлены командам отделов форензики и разработки, которые сообщили, что необходимо провести дополнительное исследование образцов.
Инфицированные узлы были обнаружены благодаря использованным ими обращениям к DuckDNS, службу Dynamic DNS, которая позволяет своим пользователям создавать свои доменные имена и оперативно сопоставлять их с изменяющимися IP-адресами. Как было указано выше, основная часть вредоносного ПО в рамках инцидента обращалась к DuckDNS для соединений с центром управления (C&C), другая — для получения параметров конфигурации или отправки новых данных.

Вредоносным ПО были заражены почти все серверы и компьютеры. В основном, применялись
распространенные варианты криптомайнеров. Другими вредоносами были также средства создания дампов паролей, PHP-шеллы, при этом ряд инструментов работал уже на протяжении нескольких лет.

Мы предоставили полученные результаты заказчику, удалили вредоносное ПО из их среды, и прекратили дальнейшее заражение.

Среди всех обнаруженных образцов криптомайнеров особняком стоял один. Его мы назвали Norman.

Встречайте! Norman. Криптомайнер


Norman представляет собой высокопроизводительный майнер криптовалюты Monero на основе кода XMRig. В отличие от других найденных образцов майнеров, Norman использует способы сокрытия его от анализа защитным ПО, чтобы избежать обнаружения и предотвращения дальнейшего распространения.

На первый взгляд, это вредоносное ПО является обычным майнером, скрывающимся под именем svchost.exe. Тем не менее, исследование показало, что в нем применяются более интересные методы сокрытия от обнаружения и поддержания работы.

Процесс развертывания данного вредоносного ПО можно разделить на три этапа:

  • выполнение;
  • внедрение;
  • майнинг.

Пошаговый анализ


Этап 1. Выполнение


Первый этап начинается с исполняемого файла svchost.exe.

Вредоносное ПО компилируется с помощью NSIS (Nullsoft Scriptable Install System), что является необычным. NSIS представляет собой систему с открытым исходным кодом, используемую для создания установщиков Windows. Как и SFX, данная система создает архив файлов и файл сценария, который выполняется во время работы установщика. Файл сценария сообщает программе, какие файлы нужно запускать, и может взаимодействовать с другими файлами в архиве.

Примечание: Чтобы получить файл сценария NSIS из исполняемого файла, необходимо использовать 7zip версии 9.38, так как в более поздних версиях данная функция не реализована.

Архивированное NSIS вредоносное ПО содержит следующие файлы:

  • CallAnsiPlugin.dll, CLR.dll — модули NSIS для вызова функций .NET DLL;
  • 5zmjbxUIOVQ58qPR.dll — главная DLL-библиотека полезной нагрузки;
  • 4jy4sobf.acz, es1qdxg2.5pk, OIM1iVhZ.txt — файлы полезной нагрузки;
  • Retreat.mp3, Cropped_controller_config_controller_i_lb.png — просто файлы, никак не связанные с дальнейшей вредоносной деятельностью.

Команда из файла сценария NSIS, которая запускает полезные данные, приводится ниже.



Вредоносное ПО выполняется путем вызова функции 5zmjbxUIOVQ58qPR.dll, которая принимает другие файлы в качестве параметров.

Этап 2. Внедрение


Файл 5zmjbxUIOVQ58qPR.dll — это основная полезная нагрузка, что следует из приведённого выше сценария NSIS. Быстрый анализ метаданных показал, что DLL-библиотека изначально называлась Norman.dll, поэтому мы и назвали его так.

Файл DLL разработан на .NET и защищён от реверс-инжиниринга троекратной обфускацией
с помощью широко известного коммерческого продукта Agile .NET Obfuscator.

В ходе выполнения задействуется много операций внедрения самовнедрения в свой же процесс, а также и в другие процессы. В зависимости от разрядности ОС вредоносное ПО будет
выбирать разные пути к системным папкам и запускать разные процессы.



На основании пути к системной папке вредоносное ПО будет выбирать разные процессы для запуска.



Внедряемая полезная нагрузка имеет две основные функции: выполнение криптомайнера и предотвращение обнаружения.

Если ОС 64-хбитная


При выполнении исходного файла svchosts.exe (файла NSIS) он создаёт новый собственный процесс и внедряет в него полезную нагрузку (1). Вскоре после этого он запускает notepad.exe или explorer.exe, и внедряет в него криптомайнер (2).



После этого исходный файл svchost.exe завершает работу, а новый файл svchost.exe используется в качестве программы, наблюдающей за работой процесса майнера.



Если ОС 32-хбитная


Во время выполнения оригинального файла svchosts.exe (файла NSIS) он дублирует собственный процесс и внедряет в него полезную нагрузку, как и в 64-разрядном варианте.

В данном случае вредоносное ПО внедряет полезную нагрузку в пользовательский процесс explorer.exe. Уже из него вредоносный код запускает новый процесс (wuapp.exe или vchost.exe), и внедряет в него майнер.



Вредоносное ПО скрывает факт внедрения в explorer.exe, перезаписывая внедренный ранее код путём к wuapp.exe и пустыми значениями.



Как и в случае выполнения в 64-хразрядной среде, исходный процесс svchost.exe завершает работу, а второй используется для повторного внедрения вредоносного кода в explorer.exe, если процесс будет завершен пользователем.

В конце алгоритма выполнения вредоносное ПО всегда внедряет криптомайнер в запускаемый им легитимный процесс.

Оно спроектировано так, чтобы предотвращать обнаружение путем завершения работы майнера, при запуске пользователем Диспетчера задач.

Обратите внимание, что после запуска Диспетчера задач завершается процесс wuapp.exe.



После закрытия диспетчера задач вредоносное ПО вновь запускает процесс wuapp.exe и снова
внедряет в него майнер.

Этап 3. Майнер


Рассмотрим майнер XMRig, упомянутый выше.

Вредоносное ПО внедряет замаскированную UPX версию майнера в notepad,exe, explorer.exe,
svchost.exe или wuapp.exe, в зависимости от разрядности ОС и стадии алгоритма выполнения.

Заголовок PE в майнере был удален, и на скриншоте ниже мы можем увидеть, что он замаскирован с помощью UPX.



После создания дампа и пересборки исполняемого файла нам удалось его запустить:



Следует отметить, что доступ к целевому XMR-сайту запрещен, что эффективно нейтрализует этот майнер.

Конфигурация майнера:

"url": "pool.minexmr.com:5555","user":
"49WvfokdnuK6ojQePe6x2M3UCD59v3BQiBszkuTGE7wmNJuyAvHM9ojedgxMwNx9tZA33P84EeMLte7t6qZhxNHqHyfq9xA","pass":"x"

Загадочный PHP-шелл, передающий данные в C&C


В ходе данного расследования наши специалисты по форензике обнаружили файл XSL, привлекший их внимание. После глубокого анализа образца был обнаружен новый PHP-шелл, который постоянно подключается к центру управления (C&C серверу).

На нескольких серверах в среде заказчика был найден файл XSL, запускаемый известным исполняемым файлом Windows (mscorsv.exe) из папки в каталоге sysWOW64.

Папка вредоносного ПО называлась AutoRecover и содержала несколько файлов:

  • файл XSL: xml.XSL
  • девять файлов DLL

Исполняемые файлы:
  • Mscorsv.exe
  • Wmiprvse.exe



Файл XSL


Файлы XSL — это таблицы стилей, похожие на таблицы, используемые в CSS, в которых описывается как отображать XML-документ.

Используя Блокнот, мы установили, что на самом деле это был не файл XSL, а обфусцированный Zend Guard код PHP. Этот любопытный факт позволил предположить, что это
полезная нагрузка вредоносного ПО, исходя из алгоритма его выполнения.



Девять библиотек DLL


Первоначальный анализ файла XSL позволил сделать вывод, что наличие такого количества
библиотек DLL имеет определенный смысл. В основной папке находится DLL под именем php.dll и три другие библиотеки, связанные с SSL и MySQL. В подпапках специалисты обнаружили четыре библиотеки PHP и одну библиотеку Zend Guard. Все они являются легитимными, и получены из установочного пакета PHP или как внешние dll.

На данном этапе и было сделано предположение о том, что вредоносное ПО создано на основе PHP и обфусцированно Zend Guard.

Исполняемые файлы


Также в этой папке присутствовали два исполняемых файла: Mscorsv.exe и Wmiprvse.exe.

Проанализировав файл mscorsv.exe, мы установили, что он не был подписан корпорацией Майкрософт, хотя его параметр ProductName имел значение «Microsoft. Net Framework».
Вначале это просто показалось странным, но анализ Wmiprvse.exe позволил лучше понять ситуацию.

Файл Wmiprvse.exe также не был подписан, но содержал обозначение авторских прав PHP group и значок PHP. При беглом просмотре в его строках были найдены команды из справки по PHP. При его выполнении с ключом -version было обнаружено, что это исполняемый файл, предназначенный для запуска Zend Guard.



При аналогичном запуске mscorsv.exe на экран выводились те же данные. Мы сравнили двоичные данные двух этих файлов и увидели, что они идентичны, за исключением метаданных
Copyright и Company Name/Product Name.



На этом основании был сделан вывод, что файл XSL содержит код PHP, который запускается с использованием исполняемого файла Zend Guard, скрытого под именем mscorsv.exe.

Разбор файла XSL


Воспользовавшись поиском в Интернет, специалисты быстро получили средство для деобфускации Zend Guard и восстановили исходный вид файла xml.XSL:



Оказалось, что само вредоносное ПО представляет собой PHP-шелл, который постоянно подключается к центру управления (C&C серверу).

Команды и выходные данные, которые он отправляет и получает, являются шифрованными. Поскольку мы получили исходный код, у нас были как ключ шифрования, так и команды.

Данное вредоносное ПО содержит следующую встроенную функциональность:

  • Eval — обычно используется для модификации существующих переменных в коде
  • Локальная запись файла
  • Возможности работы с БД
  • Возможности работы с PSEXEC
  • Скрытое выполнение
  • Сопоставление процессов и служб

Следующая переменная позволяет предположить, что у вредоносного ПО есть несколько версий.



При сборе образцов были обнаружены следующие версии:

  • 0.5f
  • 0.4p
  • 0.4o

Единственной функцией обеспечения постоянного присутствия вредоносного ПО в системе является то, что при выполнении оно создает службу, которая исполняет себя саму, а ее имя
изменяется от версии к версии.

Специалисты попытались найти в Интернете похожие образцы и обнаружили вредоносное ПО,
которое, на их взгляд, было предыдущей версией имеющегося образца. Содержимое папки было схожим, но файл XSL отличался, и в нем был указан другой номер версии.

Парле-Ву Малваре?


Возможно, родиной этого вредоносное ПО является Франция или другая франкоговорящяя страна: в файле SFX имелись комментарии на французском языке, которые указывают на то, что автор использовал французскую версию WinRAR для его создания.



Более того, некоторые переменные и функции в коде также были названы по-французски.





Наблюдение за выполнением и ожидание новых команд


Специалисты модифицировали код вредоносного ПО, и безопасно запустили уже изменённую
версию, чтобы собрать информацию о командах, которые оно получало.



По окончании первого сеанса связи специалисты увидели, что вредоносное ПО получает команду, закодированную с помощью Base64, как аргумент для ключа запуска EVAL64.
Данная команда декодируется и выполняется. Она меняет несколько внутренних переменных (размеры буферов чтения и записи), после чего вредоносное ПО входит в рабочий цикл ожидания команд.

На данный момент новые команды не поступали.

Интерактивный PHP-шелл и криптомайнер: связаны ли они между собой?


Специалисты Varonis не уверены, связан ли Norman с PHP-шеллом, так как существуют весомые аргументы как «за», так и «против» данного предположения:

Почему они могут быть связаны


  • Ни один из образцов вредоносного криптомайнингового ПО не имел возможностей самостоятельного распространения на другие системы, хотя они были найдены на различных устройствах в различных сетевых сегментах. Не исключено, что злоумышленник заражал каждый узел отдельно (возможно, с использованием того же вектора атаки, что и при заражении «нулевого пациента»), хотя и было бы более эффективно использовать PHP-шелл для распространения по сети, ставшей целью атаки.
  • Крупномасштабные таргетированные автоматизированные кампании, направленные против конкретной организаций, часто оставляют при своей реализации технические артефакты или распознаваемые следы угроз кибербезопасности. В данном случае ничего подобного не было обнаружено.
  • Как Norman, так и PHP-шелл использовали сервис DuckDNS.

Почему они могут быть не связаны


  • Между вариантами вредоносного ПО для криптомайнинга и PHP-шеллом нет никаких технических сходств. Вредоносный криптомайнер создан на C++, а шелл — на PHP. Также, в структуре кода нет сходств, и сетевые функции реализованы по-разному.
  • Между вариантами вредоносного ПО и PHP-шеллом нет никакого прямого взаимодействия для обмена данными.
  • У них нет общих комментариев разработчиков, файлов, метаданных или цифровых отпечатков.

Три рекомендации по защите от удаленных шеллов


Вредоносное ПО, для работы которого требуются команды с центра управления (C&C серверов), не похожи на обычные вирусы. Его действия не столь предсказуемы и, будут скорее похожи на выполняемые без автоматизированных средств или скриптов действия хакера или пентестера. Поэтому, обнаружение этих атак без сигнатур вредоносного ПО является более сложной задачей, чем обычное антивирусное сканирование.

Ниже приведены три рекомендации по защите компаний от удаленных шеллов:
  1. Своевременно обновляйте все программное обеспечениe
    Злоумышленники часто используют уязвимости в программном обеспечении и операционных системах для распространения по сети организации и поиска интересующих данных с целью их
    кражи. Своевременная установка исправлений существенно снижает риск таких угроз.
  2. Отслеживайте аномальные события доступа к данным
    Скорее всего, злоумышленники будут пытаться вывести конфиденциальные данные организации за периметр. Мониторинг аномальных событий доступа к этим данным позволит
    обнаружить скомпрометированных пользователей и весь набор папок и файлов, которые фактически могли попасть в руки злоумышленникам, а не просто считать таковыми все доступные этим пользователям данные.
  3. Отслеживайте сетевой трафик
    Благодаря использованию брандмауэра и/или прокси-сервера можно обнаруживать и блокировать вредоносные подключения к центрам управления вредоносным ПО (C&C серверам), что не позволит злоумышленникам выполнять команды и затруднит задачу вывода
    данных за периметр.

Озабочены вопросом серого майнинга? Шесть рекомендаций по защите:

  1. Своевременно обновляйте все операционные системы
    Управление исправлениями имеет очень большое значение для предотвращения неправомочного использования ресурсов, и заражения вредоносным ПО.
  2. Контролируйте сетевой трафик и веб-прокси
    Делайте это для обнаружения некоторых атак, а для предотвращения их части можно блокировать трафик на основе информации о вредоносных доменах или ограничивать ненужные каналы передачи данных.
  3. Используйте и поддерживайте в рабочем состоянии антивирусные решения и защитные системы конечных устройств (но ни в коем случае не ограничивайте себя использованием лишь этого слоя защиты).
    Продукты на конечных устройствах позволяют обнаруживать широко известные криптомайнеры и предотвращать заражения до того, как будет нанесен ущерб производительности систем и использованию электроэнергии. Следует иметь в виду, что новые модификации или новые способы препятствования обнаружению могут быть причиной того, что средства безопасности на конечных устройствах не обнаружат новые версии того же вредоносного ПО.
  4. Контролируйте активность ЦП компьютеров
    Как правило, криптомайнеры используют для майнинга центральный процессор компьютера. Необходимо анализировать любые сообщения о снижении производительности («У меня стал тормозить компьютер.»).
  5. Контролируйте DNS на предмет необычного использования сервисов Dynamic DNS (подобных DuckDNS)\

    Несмотря на то, что DuckDNS и другие сервисы Dynamic DNS сами по себе не несут вреда для системы, использование DuckDNS вредоносным ПО упростило обнаружение инфицированных узлов для задействованных нами в расследовании команд специалистов.
  6. Разработайте план реагирования на инциденты
    Убедитесь, что у вас есть необходимые описанные процедуры для подобных инцидентов, позволяющие автоматически обнаруживать, ограничивать и устранять угрозу серого криптомайнинга.

Примечание для заказчиков Varonis.
Varonis DatAlert включает в себя модели угроз, которые позволяют обнаруживать вредоносное ПО для криптомайнинга. Заказчики также могут создавать собственные правила для целенаправленного обнаружения ПО на основе доменов, которые являются кандидатами в черный список. Чтобы убедиться, что вы используете последнюю версию DatAlert и применяете нужные модели угроз, обратитесь к своему торговому представителю или в службу поддержки Varonis.

Комментарии (5)


  1. EvgeniyNuAfanasievich
    10.09.2019 09:44

    Странно, что нет рекомендаций использования SRP, запрета запуска из тех каталогов, куда есть возможность записи у пользователя и уж тем более модификации файлов/процессов системы.


    1. Varonis Автор
      10.09.2019 16:19

      SRP, ПО класса Application Control, и иные инструменты запрета запуска стороннего ПО, а также политики по запрету запуска ПО не из строго определённых каталогов – это эффективные меры, которые входят в пункт 3. под именем «защитные системы конечных устройств». Здесь «и предотвращать заражения» — можно (и следует) читать как «предотвращать заражения, в том числе независимо от того, известно ли уже конкретное вредоносное ПО».
      Строго говоря, дискуссия о защите непосредственно конечных точек несколько выходит за рамки данной статьи, а наша компания занимается скорее детектированием угроз и помогает при устранении последствий, а также помогает предотвратить утечки данных, при своевременной реакции на «тревожные звонки», нежели предотвращением заражений как таковых :)


  1. EvgeniyNuAfanasievich
    10.09.2019 09:44

    дубль


  1. polearnik
    10.09.2019 10:04

    то что были использованы пару слов на французком и французкая версия винрара ничего не говорит о национальности прогера. Тем более это выглядит довольно топопрно потомучто в одной строчке кода использованы понятия «месяц» и «день» на французком но зато «год» и «час» написаны на английском


    1. Varonis Автор
      10.09.2019 16:13

      Речь не идёт о национальности. Скорее о стране, где писавший код находился в момент скачивания WinRAR, или какая локаль OS была использована в этот же самый момент.
      А что касается второго утверждения – видимо, это то самое «Ы» в названии операции. :)