Royal Ransomware IOCs - Part 3

ransomware IOC

Компания FortiGuard Labs неоднократно предупреждала организации о том, что разработчики вымогательского ПО все чаще выбирают в качестве мишени Linux-системы. Поэтому не стало неожиданностью сообщение о том, что новый вариант Royal Ransomware начал атаковать Linux-машины.

Royal Ransomware

Функциональность Linux-версии Royal Ransomware очень похожа на версию для Windows. Однако она включает некоторые дополнительные функции для поражения виртуальных машин. Образец, который мы проанализировали, предоставлял следующие параметры командной строки:

  • -id <32-символьная строка>: 32-символьная идентификационная строка, добавляемая к URL-адресу в примечании о выкупе, идентифицирует цель. Это обязательный параметр, и без него программа выкупа не запускается.
  • -ep <процент>: этот параметр определяет часть каждого целевого файла, которая будет зашифрована. Многие операторы ransomware применяют стратегии оптимизации производительности, которые не шифруют весь файл, что позволяет ransomware работать быстрее. В данном примере мы обнаружили простую реализацию такой стратегии. Файлы размером менее 5 245 000 байт всегда шифруются на 100%. Для больших файлов, если используется параметр -ep, обычные и зашифрованные секции чередуются таким образом, чтобы достичь заранее выбранного процента шифрования.
  • -stopvm: Эта функция останавливает работу виртуальных машин на целевой системе, вероятно, чтобы позволить программе-выкупу снять блокировку с соответствующих файлов и зашифровать их.
  • -vmonly: Название этого параметра указывает на то, что он шифрует только виртуальные машины. Однако в проанализированном образце этот параметр ничего не делал. Возможно, эта функция находится в стадии реализации.
  • -fork: Этот параметр определяет, следует ли главному процессу выполнить форк и позволить дочернему процессу выполнить остальную работу.
  • -log: Отправляет журналы в stdout.

Способность Linux-версии взаимодействовать с виртуальными машинами, похоже, является основным отличием от Windows-версий. В настоящее время реализована только функция -stopvm. Однако недоработанный параметр -vmonly указывает на то, что впереди еще много интересного.

1) Он составляет список виртуальных машин с помощью следующей команды оболочки:

esxcli vm process list > list

2) Затем он открывает созданный файл под названием 'list' и разбирает перечисленные 'World IDs'.

3) В дочернем процессе он выполняет следующую команду для каждого World ID:

esxcli vm process kill --type=hard --world-id=%s

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

Программа ransomware развертывается с помощью следующей команды:

# ./sample <целевая папка> -id <32-символьный идентификатор> [другие параметры командной строки].

Должна быть выбрана целевая папка. В противном случае образец завершится до шифрования. В рассмотренном нами образце нет списка исключений папок, что означает, что запуск ransomware в корневой папке с привилегиями root приведет к повреждению операционной системы. Эти признаки позволяют предположить, что ransomware выполняется либо вручную, либо с помощью программы-дроппера, которая указывает, какие папки должны быть зашифрованы. Простая схема выполнения выглядит следующим образом:

1) Тест шифрования: Программа выполняет тест шифрования, прежде чем делать что-либо еще. Вероятно, это функция обеспечения качества, чтобы убедиться, что шифрование файлов будет чистым и не приведет к их повреждению. Это может указывать на то, что объект угрозы серьезно относится к делу и хочет убедиться, что восстановление возможно.

2) Параметры командной строки: Программа анализирует параметры командной строки и сохраняет их значения до конца выполнения.

3) Инициализация пула потоков: Создается пул потоков для последующего выполнения шифрования. Отдельный поток создается для каждого ядра ЦП, которым располагает машина.

4) Поиск целевых файлов: функция search_files()запускается из выбранного корневого каталога и рекурсивно ищет файлы. Список исключений, показанный на рисунке 3, гарантирует, что файлы, которые были ранее зашифрованы, не будут зашифрованы снова и что записка о выкупе (readme) не будет зашифрована. Полный путь разрешенных файлов помещается в очередь, чтобы зачислить их для рабочих потоков.

5) Шифрование: Потоки в пуле потоков следят за очередью целевых файлов. Когда в очереди появляется какой-либо файл, рабочий поток извлекает его оттуда и начинает шифрование. Шифрование подробно описано в следующем разделе.

6) Переименование: На последнем этапе файлы переименовываются, чтобы включить .royal_u postfix

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

1) Загружается открытый ключ RSA: Открытый ключ RSA был жестко закодирован в образце, который мы анализировали. Этот ключ используется для шифрования ключей AES, которыми шифруются файлы.

2) Генерируются случайные значения: Для каждого файла генерируется 32-байтовое случайное значение, которое служит ключом файла AES, и 16-байтовое значение, которое служит вектором инициализации для шифрования AES.

3) Ключ файла шифруется: Сгенерированный ключ файла шифруется с помощью открытого ключа RSA.

4) Файл шифруется: Ключ файла затем используется для шифрования файла с помощью алгоритма AES CBC. Если размер файла превышает 5245000 байт (~5 МБ), и был установлен параметр -ep, то поочередно шифруется только выбранный процент файла.

5) Ключ конкатенируется в зашифрованный файл: После завершения шифрования в файл конкатенируются следующие три значения:

a. Ключ зашифрованного файла: Расшифровщик, вероятно, загружает и расшифровывает этот ключ, чтобы расшифровать содержимое файла.

b. Оригинальный размер файла: Размер файла изменяется, чтобы вместить эту дополнительную информацию, тем самым сохраняя исходный размер файла для восстановления.

c. Значение -ep: Процентная доля файла, которая была зашифрована, также сохраняется для восстановления.

Indicators of Compromise

Onion domains

  • http://royal2xthig3ou5hd7zsliqagy6yygk2cdelaxtni2fyad6dpmpxedid.onion

SHA256

  • b57e5f0c857e807a03770feb4d3aa254d2c4c8c8d9e08687796be30e2093286c
Добавить комментарий