RANSOMWARE ДАВНО ПЕРЕСТАЛ БЫТЬ ИСКЛЮЧИТЕЛЬНО ТЕХНИЧЕСКОЙ ПРОБЛЕМОЙ. ДЛЯ БИЗНЕСА ЭТО РИСК ПРОСТОЯ, ПРЯМЫХ ФИНАНСОВЫХ ПОТЕРЬ И УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ ПОД ДАВЛЕНИЕМ ВРЕМЕНИ.
Bloody Wolf vs Kazakhstan (Part II - Что под капотом)
TL:DR
О тактиках и инструментах группы Bloody Wolf мы уже писали в первой части.В этой статье мы расскажем о сложности детектирования зловредных JAR и предложим свое решение и чек лист по проверке готовности вашего SOC к подобным атакам.
1. INTRO: Тепличные условия для STRRAT
Несмотря на редкость вредоносов на Java, атаки с использованием JAR-файлов представляют особенно высокий риск для инфраструктуры Казахстана. Исторически сложилось так, что для работы с ЭЦП пользователи должны устанавливать NCALayer - программное обеспечение, которое требует наличия Java Virtual Machine (JVM) для запуска.
NCALayer - это программное обеспечение, разработанное для работы с электронной цифровой подписью (ЭЦП) на государственных порталах Республики Казахстан, в частности, на портале электронного правительстваeGov.kz. Оно было создано в 2017 году, когда популярные браузеры прекратили поддержку Java апплетов, и необходимо было альтернативное решение для работы с ЭЦП. NCALayer позволяет использовать средства ЭЦП в веб-приложениях, обеспечивая работу Java в браузере.
1.1. Особенности вредоносов Java
Что такое Java?
Java - кроссплатформенный язык программирования и среда исполнения (JRE) с возможностью запускать байткод на разных ОС через виртуальную машину (JVM). Другими словами, разработчику не нужно переписывать приложение каждый раз, когда оно сталкивается с новой операционной системой или браузером. Поэтому инструмент Java, чрезвычайно популярный среди разработчиков веб-сайтов и программного обеспечения для различных устройств.
Что необходимо для вредоноса?
Для корректного запуска вредоносного ПО на Java требуется установленный JRE, который все еще встречается в корпоративной инфраструктуре. Также злоумышленники нередко внедряют собственный JRE непосредственно в состав .exe-файла, чтобы гарантировать выполнение вредоносного кода вне зависимости от конфигурации окружения.
В казахстанском контексте широкое использование NCALayer усиливает уязвимость, так как JRE установлена на большинстве рабочих станций. Например, в инциденте 2023 года злоумышленники рассылали фишинговые письма с просьбой установить "обновление" NCALayer, что приводило к загрузке вредоносного скрипта и установке RAT (Venom RAT v6.0.1). Это подчёркивает, как популярность NCALayer используется для маскировки атак, подобных STRRAT, применяемым группой Bloody Wolf.
Распространенность атак связанных с Java
По данным нашего Threat Intelligence сервиса, можно сделать следующие выводы:
В представленных отчетах за 2024–2025 годы наблюдаются четыре кампании, в которых используется вредоносный JAR файл. Cтоит отметить, что несмотря на присутствие JAR-файлов в нескольких исследованиях общий объем атак использующих JAR как основной вектор заражения остается небольшим.
Отчеты с TI
Далее мы рассмотрим обход средств защиты и наш опыт по детектированию такой активности.
2. Обход средств защиты (EDR)
Тестирование вредоносного JAR-файла STRRAT (NCALayer240RU.jar) показали, что EDR-системы, такие как Elastic и Microsoft Defender, не фиксировали события в период активности (май–июнь), несмотря на явные признаки вредоносного поведения: сетевые соединения, попытки закрепления в системе и манипуляции с автозагрузкой. Это связано с нестандартными методами, характерными для JAR-based атак:
Обфускация кода: STRRAT использует инструменты обфускации шифруя строковые константы и имена методов, что затрудняет сигнатурный анализ EDR.
Отложенный запуск: Пример из NCALayer240RU.jar демонстрирует использование ScheduledExecutorService для планирования выполнения через 3 минуты, обходя песочницы с временными ограничениями.
Динамическая загрузка классов: STRRAT и подобные образцы применяют ClassLoader.defineClass() для расшифровки и выполнения бинарного blob в памяти, избегая записи на диск и затрудняя анализ.
Анти-анализ: Вредонос проверяет процессы (ProcessHandle.allProcesses()) на наличие EDR/AV (например, defender, avast) и песочниц (хостнеймы user, test, lab), останавливая выполнение при обнаружении.
Слепые зоны EDR: EDR фокусируется на нативных Windows API (ntdll.dll, kernel32.dll), тогда как действия внутри JVM (java.exe, javaw.exe) остаются скрытыми благодаря интерпретации байткода и JIT-компиляции.
Загрузка второго этапа: Временный JAR (например, C:\Users\user\AppData\Local\Temp\tmp35290.jar) сохраняется в %TEMP% и запускается через javaw.exe с Runtime.getRuntime().exec().
Имитация легитимного поведения: GUI показывает фальшивое сообщение об отсутствии задолженностей, легитимный сайт КГД открывается для маскировки под NCALayer.
Коммуникация с C2: JAR-загрузчик обращается к pastebin.com за URL следующей стадии, обходя статические блокировки.
Автозагрузка без реестра: Вредонос копируется в %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\NCALayerServer.jar, избегая реестра.
Запуск без shell: Использование ProcessBuilder("java", "-jar", <путь>) минует cmd.exe или powershell, снижая обнаружение поведенческими правилами.
Согласно исследованиюза 2022 год, проведенному с использованием VirusTotal с участием 86 AV-решений общий средний уровень обнаружения зловредов с использованием JAR составил всего 34,95%.
Результат с участием 86 AV-решений
2.1 Недостаточность правил SIEM в Elastic Security
Еще одним недостатком является количество prebuilt detection rules, связанных с Java из под коробки в Elastic Security доступно всего три подобных правила. Это создает слепые зоны в защите от атак, использующих нестандартные и редко встречающиеся исполняемые форматы.
3. Простое решение по детектировнию STRRAT для Elastic Security
В качестве решения мы предлагаем простое, но эффективное правило под каждую ОС, для детектирования запуска любых JAR-файлов:
process where host.os.type == "windows" and event.type == "start" and
process.name == "javaw.exe" and
process.executable: "*\\bin\\javaw.exe" and
process.args: "-jar"
process where host.os.type == "linux" and event.type == "start" and
process.name == "java" and
process.args: ("*-jar*", "*.jar") and
process.executable: ("/usr/bin/java", "/usr/lib/jvm/*/bin/java")
process where host.os.type == "macos" and event.type == "start" and process.name == "java" and
process.executable: (
"/usr/bin/java",
"/Library/Java/*/bin/java",
"/Users/*/.sdkman/candidates/java/*/bin/java",
"*/bin/java")
and (process.args: ("-jar*", "-J-jar*")
or process.args: ("*.jar", "*/*.jar")
or process.command_line: ("*-jar*", "*.jar"))
Эти правила приведены в качестве примера и могут быть доработаны с учётом особенностей вашей инфраструктуры.
Также рекомендуем использовать Sigma-правила, которые выявляют подозрительное поведение, связанное с запуском дочерних процессов Java.
4. Чек лист по проверке вашего SOC (ОЦИБ)
Цель: Проверить, способна ли команда SOC обнаружить запуск Java-процесса, автозагрузку, C2-подобный трафик и аномалии, имитирующие STRRAT, с использованием легитимного helloworld.jar в казахстанском контексте (аналогично NCALayer).
Ожидаемый результат: регистрация HTTPS-запрос к Pastebin и создание файла, отправляя алерт.
5. Заключение
Атаки с использованием JAR-файлов, представляют серьёзную угрозу, особенно в Казахстане. Злоумышленники эффективно обходят традиционные EDR-системы, используя социальную инженерию, динамическую загрузку RAT, отложенный запуск и механизмы закрепления.
Ключевая роль в обеспечении безопасности отводится квалифицированному аутсорсинговому SOC, который должен предоставлять круглосуточный мониторинг, быстрое реагирование на инциденты и своевременное обновление правил детектирования на основе актуальных IOC и TTP. Пользователям рекомендуется загружать ПО исключительно с официальных источников (например, pki.gov.kz) и использовать антивирусные решения с функциями поведенческого анализа.