
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 как основной вектор заражения остается небольшим.

Далее мы рассмотрим обход средств защиты и наш опыт по детектированию такой активности.
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%.

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).
Предположение: У вас есть helloworld.jar, скачанный с https://github.com/jarirajari/helloworld/blob/master/helloworld.jar. Перед тестированием убедитесь, что Java Runtime Environment (JRE) установлена:
java -version4.1. Проверка запуска Java-процесса
- Задача: Убедиться, что фиксируете запуск helloworld.jar из нестандартной директории, как STRRAT.
- Действия: Скачайте helloworld.jar (если ещё не скачан):
wget https://github.com/jarirajari/helloworld/raw/master/helloworld.jarПоместите helloworld.jar в AppData\Roaming и запустите:
Copy-Item helloworld.jar $env:APPDATA\helloworld.jar
Start-Process -FilePath "java" -ArgumentList "-jar $env:APPDATA\helloworld.jar" -NoNewWindow- Ожидаемый результат: запуск Java из AppData\Roaming и фиксация алерта.

4.2. Проверка автозагрузки
- Задача: Проверить, обнаруживаете ли создание запланированной задачи, имитирующей персистентность STRRAT.
- Действия: Создайте запланированную задачу с маскировкой и скрытым расписанием:
schtasks /create /tn "NCALayerUpdate" /tr "cmd.exe /c java -jar %APPDATA%\helloworld.jar" /sc daily /st 02:00 /f- Удалите задачу:
schtasks /delete /tn "NCALayerUpdate" /fОжидаемый результат: алерт о создании запланированной задачи.

4.3. Проверка cкачивания файла с Pastebin
- Задача: Убедиться, что фиксируете HTTPS-запрос для скачивания файла с Pastebin, как у STRRAT.
- Действия: Выполните запрос для скачивания файла:
Invoke-WebRequest -Uri "https://pastebin.com/raw/dFKy3ZDm" -OutFile "$env:APPDATA\testfile.txt"- Ожидаемый результат: регистрация HTTPS-запрос к Pastebin и создание файла, отправляя алерт.

5. Заключение
Атаки с использованием JAR-файлов, представляют серьёзную угрозу, особенно в Казахстане. Злоумышленники эффективно обходят традиционные EDR-системы, используя социальную инженерию, динамическую загрузку RAT, отложенный запуск и механизмы закрепления.
Ключевая роль в обеспечении безопасности отводится квалифицированному аутсорсинговому SOC, который должен предоставлять круглосуточный мониторинг, быстрое реагирование на инциденты и своевременное обновление правил детектирования на основе актуальных IOC и TTP. Пользователям рекомендуется загружать ПО исключительно с официальных источников (например, pki.gov.kz) и использовать антивирусные решения с функциями поведенческого анализа.
6. Референсы
- https://bi.zone/expertise/blog/bloody-wolf-primenyaet-kommercheskoe-vpo-strrat-protiv-organizatsiy-v-kazakhstane/
- https://media.kaspersky.com/pdf/Report_Java_under_attack_2012-2013.pdf
- https://cyble.com/blog/strrats-latest-version-incorporates-dual-obfuscation-layers/
- https://snailsploit.com/evading-endpoint-detection-and-response-edr-f18cf2da38ed
- https://www.nature.com/articles/s41598-022-05921-5
- https://detection.fyi/sigmahq/sigma/windows/process_creation/proc_creation_win_java_susp_child_process/
- https://en.wikibooks.org/wiki/Java_Programming/Reflection/Dynamic_Class_Loading
- https://www.elastic.co/docs/solutions/security/detect-and-alert/create-detection-rule
- https://egov.kz/cms/sites/default/files/kaz_instr_ncalayer_4.pdf
- https://bluescreen.kz/tiekhnichieskii-razbor-intsidienta-s-falshivym-obnovlieniiem-ncalayer/


