GNNCRY: macOS PoC-вымогатель с ненадёжной генерацией ключей
Программа-вымогатель GNNCRY, известная также как GonnaCry, изначально появилась как учебный proof-of-concept (PoC) для Linux в 2017 году. Исследование показало, что в последние годы этот PoC получил модификации, нацеленные на реальные системы, в том числе — на macOS. В материале — разбор ключевых технических особенностей образца для macOS, его поведения и оценки риска.
Краткая сводка
GNNCRY — демонстрационный PoC-вымогатель, который иллюстрирует механику шифрования пользовательских файлов и запрос выкупа. Несмотря на образовательное происхождение, к 2021 году появились реальные варианты для Linux, шифрующие файлы и требующие выкуп в криптовалюте. Версия для macOS повторяет алгоритм оригинала и демонстрирует аналогичное поведение при атаке на файловую систему.
Цели и механизм поиска файлов
Анализ выявил жестко закодированный список целевых расширений: в него входят разные типы документов, изображения, архивы и базы данных. Для обнаружения файлов вредонос использует рекурсивный обход каталогов через функцию _find_files(). Как только обнаружены файлы с предопределёнными расширениями, запускается процесс шифрования.
- Категории целей: документы, изображения, архивы, базы данных и т. п.
- Поиск — рекурсивный обход файловой системы (
_find_files()). - Шифрование производится «на месте» — файл перезаписывается функцией
_encrypt().
Алгоритм шифрования и управление ключами
GNNCRY генерирует 16-байтовый вектор инициализации (IV) и 32-байтовый ключ через функцию _generate_key. При этом фактически используемый алгоритм — Blowfish — задействует только первые 16 байт ключа. Ключевая запись сохраняется в определённом порядке: сначала 16-байтовый IV, затем 32-байтовый ключ, а после — путь к зашифрованному файлу, который получает расширение .GNNCRY. Отмечено, что исходный путь в открытом виде не сохраняется.
Критически важно, что генерация ключей выполняется с использованием стандартной функции rand() из библиотеки C, а не криптографически стойкого генератора (CSPRNG). Это вызывает серьёзные сомнения в криптографической безопасности ключей и их случайности.
Технические наблюдения
- Поток выполнения образца повторяет оригинальную концепцию PoC для Linux, но адаптирован под macOS.
- В бинарнике обнаружена переменная пути в открытом тексте — признак среды разработчика, что указывает на создание или тестирование в конкретной среде.
- Шифрование выполняется локально (in-place), без использования удалённых команд шифрования.
Поведение в системе и детекция
Динамическое тестирование на macOS показало, что образец вызывает стандартные предупреждения безопасности системы, указывающие на потенциальную опасность. Антивирусные решения уже реагируют на варианты GNNCRY после появления реальных случаев шифрования файлов в Linux-окружениях.
«GNNCRY классифицируется как неотвратимая угроза для пользователей macOS; он остается тестовым PoC, демонстрирующим, как может функционировать программа-вымогатель, освещая важные технические аспекты… не представляя активной угрозы в текущем киберпространстве.»
Оценка риска и рекомендации
Хотя текущая версия для macOS остаётся PoC и не идентифицирована как широкомасштабно распространяемая угроза, она подчёркивает ряд уязвимых мест:
- Использование нестандартного и криптографически небезопасного PRNG (
rand()) — снижает стойкость ключей. - Жёстко заданные списки расширений и модель обхода файлов показывают, какие файлы подвергаются наибольшему риску.
- Наличие тестовых строк пути в бинарнике облегчает атрибуцию и указывает на возможные ошибки в процессе разработки.
Рекомендации для пользователей и администраторов:
- Регулярно обновлять антивирусное ПО и сигнатуры; следить за детекцией новых вариантов PoC-образцов.
- Делать регулярные резервные копии критичных данных и хранить их отдельно от основной системы.
- Ограничивать привилегии учетных записей и доступ приложений к файловой системе (по возможности — использовать принцип least privilege).
- Мониторить необычную активность файловой системы и предупреждения macOS о потенциально опасных программах.
Вывод
GNNCRY — наглядный пример того, как PoC-вредонос может быть адаптирован под новую платформу. Несмотря на образовательное предназначение, его модификации напомнили индустрии о необходимости своевременной детекции и защиты. Текущая версия для macOS носит демонстрационный характер и не считается повсеместной угрозой, но показывает реальные техники таргетинга файлов, управления ключами и слабые места в реализации криптографии, которые могут быть использованы злоумышленниками при дальнейшей эволюции образцов.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



