Перейти к основному контенту
Bloody Wolf (AI)

RTEAM

Блог

Другие новости
ВЕРНУТЬСЯ НА ГЛАВНУЮ

RANSOMWARE ДАВНО ПЕРЕСТАЛ БЫТЬ ИСКЛЮЧИТЕЛЬНО ТЕХНИЧЕСКОЙ ПРОБЛЕМОЙ. ДЛЯ БИЗНЕСА ЭТО РИСК ПРОСТОЯ, ПРЯМЫХ ФИНАНСОВЫХ ПОТЕРЬ И УПРАВЛЕНЧЕСКИХ РЕШЕНИЙ ПОД ДАВЛЕНИЕМ ВРЕМЕНИ.

23 декабря 2025 г.

#RTEAM #ОЦИБ #Cybersecurity #Ransomware #InfoSec #CISO #SOC #Blueteam #Veeam #VMware #ThreatIntelligence

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).

Предположение: У вас есть helloworld.jar, скачанный с https://github.com/jarirajari/helloworld/blob/master/helloworld.jar. Перед тестированием убедитесь, что Java Runtime Environment (JRE) установлена:

java -version

4.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. Референсы

  1. https://bi.zone/expertise/blog/bloody-wolf-primenyaet-kommercheskoe-vpo-strrat-protiv-organizatsiy-v-kazakhstane/
  2. https://media.kaspersky.com/pdf/Report_Java_under_attack_2012-2013.pdf
  3. https://cyble.com/blog/strrats-latest-version-incorporates-dual-obfuscation-layers/
  4. https://snailsploit.com/evading-endpoint-detection-and-response-edr-f18cf2da38ed
  5. https://www.nature.com/articles/s41598-022-05921-5
  6. https://detection.fyi/sigmahq/sigma/windows/process_creation/proc_creation_win_java_susp_child_process/
  7. https://en.wikibooks.org/wiki/Java_Programming/Reflection/Dynamic_Class_Loading
  8. https://www.elastic.co/docs/solutions/security/detect-and-alert/create-detection-rule
  9. https://egov.kz/cms/sites/default/files/kaz_instr_ncalayer_4.pdf
  10. https://bluescreen.kz/tiekhnichieskii-razbor-intsidienta-s-falshivym-obnovlieniiem-ncalayer/