Ryuk: как устроен топовый вымогатель
Киберкриминалитет нашёл для себя практически идеальную схему получения сверхдоходов: проникнуть в корпоративную сеть, скопировать все данные, до которых получилось добраться, а затем зашифровать информацию на всех скомпрометированных ресурсах и потребовать выкуп. Слитая информация может быть продана, если жертва откажется платить. А с зашифрованными системами особо не поработаешь, как показывает пример с Norsk Hydro или более свежие случаи с Kia Motors, Garmin, Hyundai и Kawasaki Heavy Industries. Одним из самых успешных вымогателей последних лет считается Ryuk, операторы которого заработали более 150 млн долларов США. Разберёмся, как работает топовый вымогатель.
Распространение и проникновение
Для доставки в целевую сеть Ryuk использует множество вариантов. В числе наиболее частых — распространение с помощью других вредоносных программ. В 2019 году это были в основном Trickbot и Emotet, в 2020-м операторы Ryuk стали использовать в качестве дроппера BazarLoader, новую разработку авторов TrickBot. Как и TrickBot, BazarLoader распространяется в основном через фишинговые письма, которые содержат либо вредоносные вложения, либо ссылки на вредоносные программы и сайты, размещённые на бесплатных хостингах. Эти фишинговые письма использовали обычные методы социальной инженерии, маскируясь под деловую переписку или другие важные сообщения. В одной из таких кампаний письмо якобы содержало важную информацию о заболевшем COVID-19 президенте США Д. Трампе:
Источник: Threat Insight
Если жертва нажимала на ссылку, чтобы посмотреть документ о здоровье Трампа, она видела страницу Документов Google, на которой сообщалось, что документ проверен и безопасен:
Источник: Bleeping Computer
Вместо документа на компьютер жертвы загружался BazarLoader, который, получив управление, скачивал с управляющего сервера Ryuk и запускал его.
Подразделения Trend Micro предоставляющие услуги по обнаружению и реагированию на угрозы (Managed Detection and Response, MDR) также зафиксировали случаи распространения Ryuk и Trickbot внутри организации с помощью скомпрометированных маршрутизаторов MikroTik. Предположительно злоумышленники использовали RCE-уязвимости MikroTik CVE-2018-1156 иCVE-2018-14847. Цепочка заражения начиналась с вредоносного спама, содержавшего загрузчик для TrickBot, который после загрузки распространялся внутри сети через SMB-эксплойт EternalBlue и через собранные учётные данные сотрудников. Затем Trickbot связывался со скомпрометированным интернет-маршрутизатором MikroTik, который использовался в качестве управляющего сервера.
В другом зафиксированном случае злоумышленники развернули Ryuk внутри сети, используя похищенные учётные данные администратора компании. При этом они:
отключили антивирусы и другие защитные системы;
загрузили в систему дроппер;
скачали с его помощью Ryuk и зашифровали несколько серверов.
Примечательно, что полноценное выявление векторов заражения Ryuk в большинстве случаев затруднено или невозможно, поскольку программа-вымогатель, как правило, удаляет все следы своего дроппера после завершения шифрования.
Перемещение по сети
Для перемещения по сети злоумышленники в большинстве случаев активно использовали Powershell и эксплуатировали уязвимости EternalBlue и Zerologon.
В начале работы вымогатель убивает более 40 процессов и останавливает более 180 служб с помощью taskskill и net stop. Эти службы и процессы в основном принадлежат антивирусам, базам данных и ПО для резервного копирования.
Чтобы получать управление после перезагрузки, Ryuk добавляет себя в ключ реестра Run с помощью команды: reg add /C REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "svchos" /t REG_SZ/d".
Шифрование
Вымогатель использует относительно простую трёхуровневую схему для шифрования файлов жертвы:
Первый уровень: глобальная пара ключей RSA, которая хранится у злоумышленников и никогда не попадает к жертвам.
Второй уровень: пара ключей RSA, которая генерируется для каждой жертвы. После генерации приватный ключ шифруется с помощью глобального ключа первого уровня и внедряется в конкретный экземпляр вымогателя.
Третий уровень: стандартный симметричный ключ шифрования AES, генерируемый с помощью Win32API-функции CryptGenKey для каждого шифруемого файла. Этот ключ экспортируется с помощью CryptExportKey и шифруется при этом с помощью RSA-ключа второго уровня, а зашифрованный результат добавляется к зашифрованному файлу. Удивительно, что разработчики Ryuk изучили документацию по функции CryptExportKey и использовали ключ второго уровня в качестве параметра hExpKey, чтобы выдать на экспорт уже зашифрованный AES-ключ. Большинство программ-вымогателей экспортируют ключ AES в чистом виде и лишь потом шифруют его с помощью CryptEncrypt.
Закончив с подготовкой криптоарсенала, вымогатель выполняет рекурсивный обход всех дисков и сетевых ресурсов в системе-жертве и шифрует каждый файл и каталог за исключением содержащих в имени текст из жёсткого белого списка, который включает в себя «Windows», «Mozilla», «Chrome», «RecycleBin» и «Ahnlab».
Помимо локальных дисков, Ryuk пытается зашифровать сетевые ресурсы без назначенных букв, формируя их список с помощью функций WnetOpenEnum/WnetEnumResource.
Завершив своё чёрное дело, Ryuk уничтожает ключ шифрования, запускает скрипт windows.bat, который удаляет теневые копии и бэкапы, и размещает вымогательскую записку RyukReadMe.txt с требованиями выкупа.
Содержимое пакетного файла показано ниже:
vssadmin Delete Shadows /all /quiet
vssadmin resize shadowstorage /for=c: /on=c: /maxsize=401MB
vssadmin resize shadowstorage /for=c: /on=c: /maxsize=unbounded
vssadmin resize shadowstorage /for=d: /on=d: /maxsize=401MB
vssadmin resize shadowstorage /for=d: /on=d: /maxsize=unbounded
vssadmin resize shadowstorage /for=e: /on=e: /maxsize=401MB
vssadmin resize shadowstorage /for=e: /on=e: /maxsize=unbounded
vssadmin resize shadowstorage /for=f: /on=f: /maxsize=401MB
vssadmin resize shadowstorage /for=f: /on=f: /maxsize=unbounded
vssadmin resize shadowstorage /for=g: /on=g: /maxsize=401MB
vssadmin resize shadowstorage /for=g: /on=g: /maxsize=unbounded
vssadmin resize shadowstorage /for=h: /on=h: /maxsize=401MB
vssadmin resize shadowstorage /for=h: /on=h: /maxsize=unbounded
vssadmin Delete Shadows /all /quiet
del /s /f /q c:\*.VHD c:\*.bac c:\*.bak c:\*.wbcat c:\*.bkf c:\Backup*.* c:\backup*.* c:\*.set c:\*.win c:\*.dsk
del /s /f /q d:\*.VHD d:\*.bac d:\*.bak d:\*.wbcat d:\*.bkf d:\Backup*.* d:\backup*.* d:\*.set d:\*.win d:\*.dsk
del /s /f /q e:\*.VHD e:\*.bac e:\*.bak e:\*.wbcat e:\*.bkf e:\Backup*.* e:\backup*.* e:\*.set e:\*.win e:\*.dsk
del /s /f /q f:\*.VHD f:\*.bac f:\*.bak f:\*.wbcat f:\*.bkf f:\Backup*.* f:\backup*.* f:\*.set f:\*.win f:\*.dsk
del /s /f /q g:\*.VHD g:\*.bac g:\*.bak g:\*.wbcat g:\*.bkf g:\Backup*.* g:\backup*.* g:\*.set g:\*.win g:\*.dsk
del /s /f /q h:\*.VHD h:\*.bac h:\*.bak h:\*.wbcat h:\*.bkf h:\Backup*.* h:\backup*.* h:\*.set h:\*.win h:\*.dsk
del %0
Команда vssadmin Delete Shadows /all /quiet обычно используется ransomware’ом, в то время как опция команды vssadmin resize shadowstorage используется редко. В ситуациях, когда теневые копии создавались не vssadmin, а сторонними приложениями (например, ПО для резервного копирования), vssadmin может отображать ошибку и не удалять резервные копии.
Команда vssadmin resize shadowstorage — это хак, который использует vssadmin для удаления хранилища при изменении размера теневых копий. Она заставляет удалять теневые копии независимо от их контекста. Команда работает путём изменения размера теневого тома по умолчанию с 10% до 401 MБ (минимальный размер 300 MБ). Затем теневое хранилище становится неограниченным, что позволяет ему использовать всё доступное дисковое пространство. После этого теневые копии удаляются второй раз с помощью команды vssadmin Delete Shadows /all /quiet.
Требования выкупа
Мы встретили несколько вариантов записок с требованиями о выкупе. По большей части основное содержимое не меняется за исключением адреса электронной почты и адреса кошелька Bitcoin. Адреса электронной почты обычно содержат один адрес на protonmail.com и другой адрес на tutanota.com. В качестве имён ящиков электронной почты обычно используются персонажи сказок, писатели и модели из Instagram. Один из вариантов вымогательской записки удивительно похоже на записку BitPaymer:
Размер выкупа, который злоумышленники используют в записках, варьируется от 1,7 до 99 BTC и выше. Один из крупнейших переводов на кошельки вымогателей составил 365 BTC, что составляет более 18 млн долларов США по текущему курсу (50 124 доллара США за 1 BTC).
Монетизация выкупа
Для получения выкупа от жертв операторы Ryuk используют несколько десятков биткоин-кошельков. Большая часть выкупов поступает от известного криптоброкера, который производит выплаты от жертв шифровальщиков.
Криптовалюта, аккумулированная на счетах преступников, направляется специальным сервисам по отмыванию денег, а затем разделяется на две части: одна используется для оплаты криминальных услуг на подпольных площадках, вторая обналичиваются на криптовалютных биржах. Удивительным является тот факт, что операторы Ryuk без малейших опасений используют для выхода в кэш вполне легальные биржи типа Binance и Huobi, хотя и используют для этого ворованные личности. Однако чаще преступники выбирают для обналички мелкие обменники.
По данным ФБР, только в период с февраля 2018 по октябрь 2019 операторы Ryuk заработали более 61 млн долларов США и уже тогда занимали первое место по доходности среди других вымогателей.
Резюме
Вымогательское ПО представляет большую опасность, поскольку сверхдоходы его операторов обеспечивают им возможность подобрать в команду высококвалифицированных участников для проведения самых изощрённых операций. Учитывая этот факт, для надёжной защиты следует использовать максимально эффективные меры, наиболее важными среди которых мы считаем следующие:
Повышайте киберграмотность сотрудников, чтобы исключить фишинг как возможный вектор проникновения преступников в систему. На сегодняшний день именно фишинг является средством для получения учётных данных сотрудников и внедрения вредоносного ПО в корпоративные сети.
Обновите контроллеры домена, чтобы защитить их от использования Zerologon, который используется для получения доступа на уровне домена.
Рассмотрите возможность полного отключения административных ресурсов или блокирования доступа через брандмауэры, поскольку Ryuk пытается шифровать файлы с помощью административных ресурсов Windows (C$ и т. п.).
Отключите PowerShell с помощью групповой политики, поскольку это добавит ещё один уровень защиты, учитывая широкое использование PowerShell в атаках вредоносного ПО в сети.
Всегда регулярно создавайте резервные копии всех данных, чтобы обеспечить доступ к ним даже в случае успешной атаки вымогателя.
Подумайте о том, чтобы сделать файлы доступными только для чтения большинству пользователей, если только им не требуется разрешение на чтение/запись. Переводите файлы на сетевых ресурсах старше определённого периода (в идеале от трёх до шести месяцев) в режим «только чтение».