Archiwa: Linux - Strona 21 z 27 - Security Bez Tabu

CVE-2013-0422 — Java 7 Security Manager Bypass / Sandbox Escape (RCE)

TL;DR

  • Krytyczna luka w Oracle Java 7 (JDK/JRE 7u10 i starsze) pozwalała na zdalne wykonanie kodu przez applet lub Java Web Start (drive‑by). Java 6 nie była podatna. CVSS v2: 10.0.
  • Mechanizm: obejście Security Managera przez dwie podatności: (a) łańcuch JMX/MBean (getMBeanInstantiatorfindClass), (b) błąd w Reflection (rekurencja i pominięcie kontroli). Powszechnie wykorzystywana w styczniu 2013 r. (m.in. Blackhole/Nuclear Pack).
  • Oracle wydało poza‑cykliczną łatę (7u11) i podniosło domyślny poziom bezpieczeństwa Javy do High (klik‑to‑run).
  • Typowe ślady: łańcuch procesów browser → jp2launcher/java[w].exe → cmd/powershell/wscript, pobrania .jar/.jnlp z nieznanych domen, logi Sun/Java/Deployment.
  • Detekcja: korelacja proxy/DNS + EDR/Windows (Sysmon 1/3/7/11/22, Security 4688/5156) + MDE (DeviceProcessEvents/DeviceNetworkEvents).
  • Mitigacje: aktualizacja/wyłączenie wtyczki Java, blokada MIME application/java-archive i application/x-java-jnlp-file, polityki ASR/EDR.

Krótka definicja techniczna

CVE‑2013‑0422 to para luk w Oracle Java 7 umożliwiająca zdalne wykonanie kodu i wyjście z piaskownicy przez niezaufane applet/JNLP w przeglądarce. Wektor: drive‑by. Dotyczy JDK/JRE 7u10 i starszych; JDK/JRE 6 nie dotyczy. CVSSv2=10.0.


Gdzie występuje / przykłady platform

  • Windows/macOS/Linux (endpoint, przeglądarka + plugin Java) — klientowe uruchomienie applet/JNLP. Nie dotyczy serwerów ani samodzielnych aplikacji Java bez przeglądarki.
  • VDI / środowiska korporacyjne — stacje administracyjne z historycznie zainstalowaną Javą 7.
  • Proxy/NGFW/MDE/EDR/SIEM — główne źródła telemetrii do detekcji.
  • Chmury (M365/Azure/AWS/GCP) — detekcja po stronie endpointów zarządzanych (Defender for Endpoint), na brzegach (CloudFront/NGFW) lub – rzadziej – w CloudTrail (gdy organizacja sama hostowała artefakty .jar/.jnlp w S3).

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

Atak następował po wejściu użytkownika na złośliwą lub skompromitowaną stronę. Niezaufany applet/JNLP wykorzystywał dwa błędy w Javie 7:

  1. JMX/MBean — publiczne getMBeanInstantiator w JmxMBeanServer dawało dostęp do prywatnego obiektu MBeanInstantiator i metod findClass, co umożliwiało załadowanie klas poza kontrolą Security Managera.
  2. Reflection — rekurencyjne wywołania API refleksji omijały kontrolę w MethodHandles.Lookup.checkSecurityManager z powodu sposobu działania sun.reflect.Reflection.getCallerClass.
    W praktyce oznaczało to pełne RCE z uprawnieniami użytkownika po samej wizycie na stronie (0‑click beyond browsing). Luki były aktywnie wykorzystywane przez Blackhole i Nuclear Pack od 10–11 stycznia 2013 r. Oracle zareagowało alarmem bezpieczeństwa i 7u11 (zmiana default na High, wymuszając potwierdzenia dla appletów).

Artefakty i logi

ŹródłoEID/typCo szukaćUwagi
Sysmon1 (Process Create)chrome/iexplore/firefox → jp2launcher.exe/java.exe/javaw.exe; dalej spawn cmd.exe, powershell.exe, wscript.exe, mshta.exejp2launcher.exe = Java Web Launcher.
Sysmon3 (Network Connect)java[w].exe łączące się do Internetu (80/443) tuż po pobraniu .jar/.jnlpKorelować z proxy/DNS.
Sysmon7 (Image Load)DLL wtyczki Java (np. npjp2.dll, jp2iexp.dll)Indykatory uruchomienia pluginu.
Sysmon11/22Tworzenie plików w %AppData% / zapytania DNS przez java.exeDropper po eksploatacji.
Windows Security4688/4689Tworzenie/zamknięcie procesu jak wyżejWłącz audyt procesu.
Windows Filtering Platform5156/5157Dopuszczenie/blokada połączeń java.exeKorelacja z hostem docelowym.
Proxy/NGFWHTTPOdpowiedzi Content-Type: application/java-archive (.jar), application/x-java-jnlp-file (.jnlp) z nietypowych domenWzorzec drive‑by.
Java Deploymentplikideployment.properties, logi w …\LocalLow\Sun\Java\Deployment\Lokacje użytkownika na Windows/macOS/Linux.
MDE (Advanced Hunting)DeviceProcessEvents, DeviceNetworkEventsTe same łańcuchy + zdalne URL .jar/.jnlp
CloudTrail (S3 data events)GetObjectJeśli organizacja hostowała .jar/.jnlp — nieoczekiwane pobrania/UA z Java 1.7Wymaga włączonych data events.
KEV statusCVE figuruje w CISA KEV (znana eksploatacja)Odniesienie przez NVD.

Detekcja (praktyczne reguły)

Sigma (Sysmon — Java spawn + post‑exploitation shell)

title: Java Plugin Spawns Suspicious Shell (CVE-2013-0422 Context)
id: 6f1a2a0c-5a0e-4bde-9d1c-0422a7java
status: experimental
description: Wykrywa łańcuch browser→java/jp2launcher→shell po wizycie na stronie (drive-by).
author: Badacz CVE
logsource:
  product: windows
  category: process_creation
detection:
  selection_parent:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\iexplore.exe'
      - '\firefox.exe'
      - '\msedge.exe'
  selection_java:
    Image|endswith:
      - '\java.exe'
      - '\javaw.exe'
      - '\jp2launcher.exe'
  selection_shell:
    CommandLine|contains:
      - 'cmd.exe'
      - 'powershell.exe'
      - 'wscript.exe'
      - 'mshta.exe'
  condition: selection_parent and selection_java and selection_shell
fields:
  - Image
  - ParentImage
  - CommandLine
  - ProcessGuid
  - ParentProcessGuid
falsepositives:
  - Legit applet/JNLP uruchamiający narzędzia systemowe (rzadkie)
level: high
tags:
  - attack.t1189
  - attack.t1203
  - cve.2013-0422

Sigma (Sysmon — podejrzane połączenia java.exe)

title: Java Process Network Activity To Untrusted Domains
id: 8b0f7c87-8d07-4a1b-9f77-jar-net
status: experimental
logsource:
  product: windows
  category: network_connection
detection:
  selection:
    Image|endswith:
      - '\java.exe'
      - '\javaw.exe'
    DestinationPort:
      - 80
      - 443
  filter_corp_domains:
    DestinationHostname|endswith:
      - '.corp.local'
      - '.trusted.example'
  condition: selection and not filter_corp_domains
level: medium
tags:
  - attack.t1189
  - attack.t1203

Splunk (SPL)

index=winevent* (EventCode=4688 OR sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1)
| eval parent=coalesce(ParentImage,ProcessGuidParent,ParentProcessName)
| search parent IN ("*\\chrome.exe","*\\iexplore.exe","*\\firefox.exe","*\\msedge.exe")
| search Image IN ("*\\java.exe","*\\javaw.exe","*\\jp2launcher.exe")
| stats earliest(_time) as first_seen, values(CommandLine) values(ParentCommandLine) by host, Image, parent, ProcessId
| join type=left host, ProcessId [ search index=winevent* EventCode IN (4688,1) Image IN ("*\\cmd.exe","*\\powershell.exe","*\\wscript.exe","*\\mshta.exe") | table host, ParentProcessId, Image, CommandLine, _time ]
| sort - first_seen

KQL (Microsoft 365 Defender – Advanced Hunting)

let browsers = dynamic(["chrome.exe","iexplore.exe","firefox.exe","msedge.exe"]);
let shells = dynamic(["cmd.exe","powershell.exe","wscript.exe","mshta.exe"]);
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("java.exe","javaw.exe","jp2launcher.exe")
| where InitiatingProcessFileName in~ (browsers)
| join kind=leftouter (
    DeviceProcessEvents
    | where Timestamp > ago(7d)
    | where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
    | where FileName in~ (shells)
    | project DeviceId, ShellTime=Timestamp, FileName, ProcessCommandLine, InitiatingProcessId
) on DeviceId, InitiatingProcessId
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, RemoteUrl

CloudTrail (CloudWatch Logs Insights — S3 data events)

Uwaga: tylko gdy masz S3 data events. Szuka pobrań .jar/.jnlp z User-Agent zawierającym „Java”.

fields @timestamp, eventSource, eventName, sourceIPAddress, userAgent, requestParameters.bucketName as bucket, requestParameters.key as key
| filter eventSource = "s3.amazonaws.com" and eventName = "GetObject"
| filter key like /(\.jar|\.jnlp)$/i
| filter userAgent like /Java/i
| sort @timestamp desc

Elastic EQL

sequence by host.id with maxspan=5m
  [ process where event.action == "start" and
      process.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
  [ process where event.action == "start" and
      process.name in ("java.exe","javaw.exe","jp2launcher.exe") and
      process.parent.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
  [ process where event.action == "start" and
      process.parent.name in ("java.exe","javaw.exe") and
      process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe") ]

Heurystyki / korelacje

  • Korelacja czasu: pobranie *.jar/*.jnlp w proxy/DNS ±30s → java.exe/javaw.exe → shell.
  • User‑Agent / MIME: Java/1.7.0_10 i application/java-archive z domen o niskiej reputacji.
  • Ścieżki plików: nowe pliki w %AppData%\ po uruchomieniu java.exe.
  • Rzadkie procesy potomne: Java rzadko powinna uruchamiać interpreter poleceń na stacjach użytkowników.
  • Zbieżność z KEV: priorytetyzuj alerty dla CVE na liście Known Exploited Vulnerabilities.

False positives / tuning

  • Starsze aplikacje intranetowe oparte na appletach/JNLP (bankowość/SCADA/HCM). Dodaj allowlist domen i ścieżek aplikacji.
  • Dev‑tooling (Maven/Gradle) – rozpoznaj przez parametry linii poleceń i katalog roboczy.
  • Zamiast wyłączać reguły, dookreśl łańcuch (browser→java→shell) lub warunki (spoza strefy zaufanej, brak podpisu binariów).

Playbook reagowania (IR)

  1. Triage & izolacja: odłącz host, zabezpiecz RAM/dysk.
  2. Zbieranie artefaktów:
    • EDR, Sysmon, Windows Security; cache przeglądarek; katalog …\LocalLow\Sun\Java\Deployment\.
  3. Łowy zależne od CVE: wyszukaj łańcuch browser→java→shell, pliki .jar/.jnlp, anomalie DNS.
  4. Usunięcie wektora: odinstaluj/wyłącz Javę w przeglądarce, wymuś JRE ≥ 7u11 (historycznie; dziś → brak pluginu) i politykę High.
  5. Analiza dropperów/persistencji: Autoruns (Run/RunOnce), Scheduled Tasks, %ProgramData%/%AppData%.
  6. Blokady: domeny/URL/sha256 w proxy/EDR; reguły w NGFW.
  7. Komunikacja i lessons learned: wytyczne dla użytkowników, polityki usunięcia legacy‑Javy.

Przykłady z kampanii / case studies

  • Blackhole/Nuclear Pack (styczeń 2013): szybka integracja exploita 0‑day CVE‑2013‑0422, masowe drive‑by.
  • Reakcja dostawcy: Oracle Security Alert z 13 stycznia 2013 r., podniesienie domyślnego poziomu bezpieczeństwa na High i publikacja 7u11 (poza cyklem).

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w izolowanym labie. Poniższe testy nie eksploatują CVE‑2013‑0422 — służą do walidacji detekcji (łańcuch procesów i artefakty sieciowe).

A. Symulacja łańcucha browser → java → shell

  1. Otwórz przeglądarkę, następnie uruchom Java w trybie „klienta” (symulacja): # uruchamia jawnie 'java.exe' z benignym poleceniem do wygenerowania telemetrii & "$Env:ProgramFiles\Java\jre*\bin\java.exe" -cp . -Dtest.run=1 -jar .\benign.jar 2>$null
  2. Zastępczo (bez JAR): Start-Process -FilePath "$Env:ProgramFiles\Java\jre*\bin\javaw.exe" -ArgumentList "-version"
  3. Uruchomioną telemetrię „shella” zasymuluj (bezpiecznie): # symulacja potomka (cmd) po Java — tylko test logów Start-Process -FilePath "$Env:SystemRoot\System32\cmd.exe" -ArgumentList "/c", "echo test-from-java"

Cel: sprawdzić, czy reguły z sekcji 7 flagują procesy potomne po aktywności Java.

B. Symulacja artefaktu sieciowego (.jar/.jnlp)

  1. Na hoście labowym: python3 -m http.server 8000
  2. Pobierz plik test.jar przez przeglądarkę lub Invoke-WebRequest – wygeneruje log proxy/DNS/MDE: iwr http://<twoj_lab_host>:8000/test.jar -OutFile $env:TEMP\test.jar

C. Walidacja logów Java Deployment (Windows)
Sprawdź obecność deployment.properties w:
%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\deployment.properties.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 — Update Software (aktualizacje/łatki).
    • M1042 — Disable or Remove Feature or Program (wyłączenie wtyczki Java, blokada JNLP).
    • M1040 — Behavior Prevention on Endpoint (EDR/ASR).
    • M1037 — Filter Network Traffic (blok MIME/TLD/URL).
    • M1030 — Network Segmentation (izolacja stacji wysokiego ryzyka/VDI).

Powiązane techniki ATT&CK (przykłady):

  • T1189 — Drive‑by Compromise (Initial Access).
  • T1203 — Exploitation for Client Execution (Execution).
  • T1204.001 — User Execution: Malicious Link (Execution → Social / link trigger).

Źródła / dalsza lektura

  • Oracle Security Alert for CVE‑2013‑0422 (opis, wersje dotknięte, CVSS 10.0, domyślny poziom High, data 2013‑01‑13). (Oracle)
  • NVD CVE‑2013‑0422 (szczegóły MBean/Reflection, KEV, metryki). (NVD)
  • ESET WeLiveSecurity (2013‑01‑11) — Blackhole/Nuclear zawierają exploit 0‑day na CVE‑2013‑0422. (We Live Security)
  • KrebsOnSecurity (2013‑01‑10 i 2013‑01‑13) — informacja o 0‑day w crimeware oraz publikacja poprawki Oracle. (Krebs on Security)
  • Microsoft Security Intelligence — klasyfikacje Exploit:Java/CVE‑2013‑0422 i wersje dotknięte. (Microsoft)
  • Tenable (Nessus) — wzmianka o wektorze MBeanInstantiator.findClass. (Tenable®)
  • MITRE ATT&CK — T1189, T1203, T1204.001; ATT&CK v18 update. (MITRE ATT&CK)
  • Lokalizacje plików Java Deployment (Oracle docs). (Oracle Docs)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Korelacja: proxy/DNS *.jar/*.jnlpjava[w].exe ↔ shell (Sysmon 1/3 + Security 4688).
  • Hunting MDE: InitiatingProcessFileName in (chrome.exe, iexplore.exe, firefox.exe, msedge.exe)FileName in (java.exe, javaw.exe, jp2launcher.exe) ∧ (dziecko = cmd/powershell/wscript/mshta).
  • Sprawdź …\LocalLow\Sun\Java\Deployment\ na artefakty (czas/moduły).
  • Wzorce User‑Agent: Java/1.7.0_10; MIME application/java-archive / application/x-java-jnlp-file.
  • Skan hostów pod kątem dropperów w %AppData% i autostartu.

CISO (strategiczna):

  • Eliminacja Javy w przeglądarkach (M1042) + polityka click‑to‑run.
  • Patch management i wycofanie legacy (M1051).
  • Wymuszenie EDR/ASR (M1040) i filtracji na brzegu (M1037).
  • Segmentacja (M1030) dla stacji wysokiego ryzyka.
  • Priorytetyzacja KEV i regularne tabletopy „drive‑by → execution”.

Uwaga końcowa: Oracle wskazuje, że podatność dotyczyła tylko klientowych wdrożeń Javy (applet/JNLP), a nie serwerów czy samodzielnych aplikacji Java; poprawka 7u11 wprowadziła High jako domyślny poziom bezpieczeństwa. Dziś najlepszą praktyką jest całkowite usunięcie lub odseparowanie wtyczki Java z przeglądarek użytkowników.

Fedora 42 łata krytyczne luki w X.Org X11 Server (xserver 21.1.20): CVE-2025-62229, CVE-2025-62230, CVE-2025-62231

Wprowadzenie do problemu / definicja luki

6 listopada 2025 r. Fedora udostępniła aktualizację xorg-x11-server do wersji 21.1.20 dla Fedora 42, która eliminuje trzy nowe luki w X.Org/Xwayland: CVE-2025-62229, CVE-2025-62230 i CVE-2025-62231. Pakiet został zbudowany w ramach zgłoszenia FEDORA-2025-43c76ece40 i jest dostępny przez system aktualizacji Bodhi/DNF. Aktualizacja podbija wersję serwera X i zawiera poprawki bezpieczeństwa dostarczone upstream przez X.Org.

W skrócie

  • Dotknięte komponenty: X.Org X server (Xorg) oraz Xwayland.
  • Wersja naprawcza (Fedora 42): 21.1.20-1.fc42.
  • Vektory ataku: głównie lokalne – złośliwy lub skompromitowany klient X11 może spowodować use-after-free lub nadpisanie pamięci w serwerze X.
  • Skutki: awarie (DoS) lub potencjalnie wykonanie kodu w kontekście serwera X.
  • Działaj teraz: zaktualizuj pakiety i zrestartuj sesję graficzną/menedżer logowania.

Kontekst / historia / powiązania

X.Org pozostaje krytycznym elementem stosu graficznego na Linuksie – nawet w dystrybucjach domyślnie używających Waylanda, ponieważ Xwayland utrzymuje kompatybilność z aplikacjami X11. W 2025 r. X.Org kilkukrotnie poprawiał błędy klasy memory safety, a dystrybucje (w tym Fedora) backportują te poprawki do stabilnych wydań. Najnowszy update dla F42 scala poprawki z upstream i udostępnia je poprzez Bodhi.

Analiza techniczna / szczegóły luki

CVE-2025-62229 — use-after-free w obsłudze powiadomień X11 Present
Błąd w logice tworzenia powiadomień Present może pozostawić „dangling pointery” i prowadzić do use-after-free, skutkując korupcją pamięci lub crashem serwera X/Xwayland. Atakujący może wywołać błąd, generując odpowiednio spreparowane powiadomienia Present.

CVE-2025-62230 — use-after-free w czyszczeniu zasobów XKB
Niewłaściwa obsługa sprzątania zasobów klienta w rozszerzeniu XKB prowadzi do wcześniejszego zwolnienia struktur bez poprawnego odłączenia powiązanych obiektów. Skutkiem jest use-after-free, który może ujawnić się przy rozłączaniu się klienta.

CVE-2025-62231 — przepełnienie (overflow) w XkbSetCompatMap
Brak właściwych kontroli zakresów podczas przetwarzania danych wejściowych do funkcji XkbSetCompatMap() może spowodować nadpisanie pamięci lub awarię. Problem dotyczy rozszerzenia XKB i może być wyzwalany specjalnie spreparowanymi danymi od klienta.

Wersja naprawcza i pakietowanie (Fedora 42)
Fedora podniosła pakiet xorg-x11-server do 21.1.20-1.fc42 w ramach aktualizacji FEDORA-2025-43c76ece40, opisanej jako „Update to xserver 21.1.20, CVE fix for: CVE-2025-62229, CVE-2025-62230, CVE-2025-62231”.

Praktyczne konsekwencje / ryzyko

  • Priorytet: średni–wysoki w środowiskach z wieloma użytkownikami na tym samym hoście, z X11 forwarding lub z nieufnymi klientami (np. CI, VDI, laby).
  • Model ataku: lokalny (z poziomu klienta X), ale skutki mogą obejmować DoS i potencjalny RCE w procesie serwera X/Xwayland.
  • Zakres: dotyczy zarówno klasycznego Xorg, jak i Xwaylanda – praktycznie wszystkich stacji roboczych korzystających z aplikacji X11 na Fedorze 42.

Rekomendacje operacyjne / co zrobić teraz

  1. Zaktualizuj system (Fedora 42): sudo dnf upgrade --advisory FEDORA-2025-43c76ece40 # lub pełna aktualizacja sudo dnf upgrade --refresh Następnie zrestartuj sesję graficzną (wylogowanie/logowanie) lub przeładuj menedżer logowania (gdm/sddm/lightdm), aby nowe biblioteki/serwer zostały wczytane.
  2. Zweryfikuj wersję: rpm -q xorg-x11-server # oczekiwane: xorg-x11-server-21.1.20-1.fc42
  3. Zmniejsz powierzchnię ataku (best practices):
    • Wyłącz/ogranicz X11 forwarding w SSH lub używaj trybu ForwardX11Trusted=no tylko w razie potrzeby.
    • Preferuj Waylanda tam, gdzie to możliwe; jeśli aplikacje X11 są niezbędne, uruchamiaj je przez Xwayland (izolacja per-proces).
    • Monitoruj logi (journalctl -b | grep -i Xorg\|Xwayland) po aktualizacji, czy nie pojawiają się crashe/ostrzeżenia.
    • Egzekwuj aktualizacje także na systemach headless z pakietami Xvfb/Xwayland.

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

W 2025 r. X.Org łatał też inne błędy pamięci w komponentach XKB/kompozytora (m.in. use-after-free i przepełnienia bufora) – omawiane tu CVE wpisują się w ten trend: błędy walidacji długości/żywotności obiektów w rozszerzeniach X11 skutkujące korupcją pamięci. Aktualizacja 21.1.20 w Fedorze 42 konsoliduje poprawki konkretnie dla CVE-2025-62229/-62230/-62231.

Podsumowanie / kluczowe wnioski

  • Fedora 42 wydała szybką aktualizację do xserver 21.1.20, eliminując trzy świeże luki w X.Org/Xwayland.
  • Ataki są głównie lokalne, ale mogą skutkować poważnymi konsekwencjami (DoS/RCE).
  • Zaktualizuj pakiety i zrestartuj środowisko graficzne – to najprostszy i najskuteczniejszy krok ograniczający ryzyko.

Źródła / bibliografia

  • Fedora Bodhi — FEDORA-2025-43c76ece40: opis aktualizacji do 21.1.20 i listy CVE. (bodhi.fedoraproject.org)
  • Debian Security Tracker — CVE-2025-62229: opis use-after-free w Present. (security-tracker.debian.org)
  • Debian Security Tracker — CVE-2025-62231: opis overflow w XkbSetCompatMap. (security-tracker.debian.org)
  • cve.org — CVE-2025-62230: opis use-after-free w czyszczeniu zasobów XKB. (cve.org)
  • LinuxSecurity Advisory (link od użytkownika) — streszczenie wydania dla Fedora 42. (Linux Security)

CVE-2012-1723 — Oracle Java SE HotSpot (bytecode verifier) RCE

TL;DR

Błąd w podsystemie HotSpot/bytecode verifier Javy umożliwia zdalne wykonanie kodu oraz ucieczkę z sandboxa po wejściu na złośliwą stronę lub uruchomieniu nieufnego apletu/JNLP. W praktyce był intensywnie wykorzystywany przez zestawy exploitów (np. Blackhole) do początkowej infekcji stacji roboczych. Aktualizacja JRE/JDK do 7u5/6u33+ i blokada treści web to kluczowe działania. Mapa do ATT&CK: T1189 + T1203.


Krótka definicja techniczna

CVE-2012-1723 to krytyczna podatność RCE w Oracle Java SE (HotSpot) polegająca na błędnej optymalizacji i niewystarczającym sprawdzaniu typów w weryfikatorze bajtkodu dla instrukcji dostępu do pól/statycznych, co umożliwia sandbox escape i wykonanie dowolnego kodu w kontekście użytkownika.


Gdzie występuje / przykładowe platformy

  • Windows / macOS / Linux (endpointy z JRE/JDK, dawne wtyczki przeglądarek NPAPI, Java Web Start) — scenariusz klienta (najczęstszy).
  • AD / M365 / ESXi / K8s / chmury (AWS/Azure/GCP): brak bezpośredniego wektora — wpływ pośredni poprzez kompromitację stacji użytkownika i dalsze TTPs (np. kradzież sesji/danych po inicjalnym dostępie). [Nie dotyczy bezpośrednio].

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

Błąd wynika z nieprawidłowej optymalizacji i niedostatecznej kontroli typów przez weryfikator bajtkodu HotSpot dla instrukcji GETFIELD/PUTFIELD/GETSTATIC/PUTSTATIC, co prowadzi do niespójności typów i obejścia kontroli bezpieczeństwa. Skutkiem jest ucieczka z sandboxa JRE i możliwość załadowania dodatkowych klas z podwyższonymi uprawnieniami, a dalej RCE. Podatność była wieloplatformowa i szybko trafiła do Blackhole exploit kit oraz do modułów narzędzi ofensywnych, przez co stała się powszechna w kampaniach drive‑by.

Z punktu widzenia ofiary inicjatorem jest zwykle przeglądarka otwierająca stronę z applet/JAR/JNLP, co powoduje załadowanie złośliwej klasy Javy i eksploitację bez dodatkowej interakcji użytkownika (CVSS UI:N). Efektem wtórnym bywają procesy potomne (np. cmd.exe, powershell.exe) lub pobieranie dodatkowych plików (droppers).


Artefakty i logi

ŹródłoCo zbieraćPrzykłady / wskazówki
Windows SecurityEID 4688 (tworzenie procesu)ParentImage=...\\java.exe/javaw.exe uruchamia cmd.exe, powershell.exe, wscript.exe, rundll32.exe, mshta.exe.
SysmonEID 1 (Process Create), 3 (Network Connect), 11 (FileCreate)Łańcuch java[w].exe → {shell/script}; połączenia HTTP/HTTPS do domen niskiej reputacji; zapisy .jar/.class w %TEMP%.
Proxy/HTTP logsŻądania do *.jar/*.jnlp; UA Java/; referrer do świeżo zarejestrowanych domenKorelować z następnymi procesami potomnymi i zapisami w profilu użytkownika.
EDR/AVDetekcje apletów i loaderówNazwy: Exploit:Java/CVE-2012-1723 (Microsoft), sygnatury IDS/IPS (Symantec/Broadcom).
DNSRozwiązania domen wykorzystywanych w kampaniachDomeny jednorazowe, fast‑flux.
CloudTrail (S3 Data Events)*Rzadkie — pobrania GetObject .jar przez konta korp.eventSource='s3.amazonaws.com' AND eventName='GetObject' AND requestParameters.key LIKE '%.jar' — tylko jeśli włączone Data Events/Lake.
K8s audit / M365[brak bezpośrednich artefaktów]Nie dotyczy — klientowa eksploitacja Javy.

* Uwaga: większość scenariuszy drive‑by nie przechodzi przez konta AWS ofiary.


Detekcja (praktyczne reguły)

Sigma (Sysmon / Windows)

title: Java Spawning Suspicious Children (CVE-2012-1723 Pattern)
id: 8da0d2b5-4f2b-4a1e-9f1e-1723java-rce
status: experimental
description: Wykrywa uruchamianie podejrzanych procesów potomnych przez java.exe/javaw.exe
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2012-1723
  - https://attack.mitre.org/techniques/T1203/
  - https://attack.mitre.org/techniques/T1189/
tags:
  - attack.t1203
  - attack.t1189
logsource:
  product: windows
  service: sysmon
detection:
  parent_java:
    ParentImage|endswith:
      - '\java.exe'
      - '\javaw.exe'
  child_susp:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\mshta.exe'
  condition: parent_java and child_susp
falsepositives:
  - Narzędzia deweloperskie (Maven/Gradle), instalatory
level: high

Splunk (SPL, Sysmon EID=1)

index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(ParentImage), child=lower(Image)
| search parent="*\\java.exe" OR parent="*\\javaw.exe"
| search child="*\\cmd.exe" OR child="*\\powershell.exe" OR child="*\\wscript.exe" OR child="*\\cscript.exe" OR child="*\\rundll32.exe" OR child="*\\mshta.exe"
| stats count min(_time) as first_seen max(_time) as last_seen by host, ParentImage, ParentCommandLine, Image, CommandLine, User, process_guid, parent_process_guid

KQL (Microsoft 365 Defender)

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")
| summarize count(), first_seen=min(Timestamp), last_seen=max(Timestamp)
  by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName,
     InitiatingProcessCommandLine, CommandLine, InitiatingProcessSHA256, SHA256

(Opcjonalnie, korelacja ruchu sieciowego):

DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl has_any (".jar",".jnlp",".class")
| summarize dcount(RemoteUrl), makeset(RemoteUrl) by DeviceName, InitiatingProcessFileName, bin(Timestamp, 15m)

AWS (CloudTrail Lake / Athena — tylko gdy włączone S3 Data Events)

-- CloudTrail Lake / Athena (przykład): pobrania *.jar* przez tożsamości korp.
SELECT eventTime, userIdentity.arn, sourceIPAddress, requestParameters.bucketName as bucket,
       requestParameters.key as objectKey, userAgent
FROM cloudtrail_logs
WHERE eventSource = 's3.amazonaws.com'
  AND eventName = 'GetObject'
  AND requestParameters.key LIKE '%.jar'
  AND userAgent LIKE 'Java/%';

Wymaga rejestrowania Data Events dla S3 i zapytań Lake/Athena.

Elastic (EQL)

process where
  process.parent.name in ("java.exe","javaw.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")

Heurystyki / korelacje (co łączyć)

  • Łańcuch czasowy (±5 min): (Proxy/EDR) pobranie *.jar/*.jnlp(Sysmon) java[w].exe start → proces potomny z interpretatorem/skryptem → (Sysmon 3) nowa sesja sieciowa C2.
  • UA i referer: User-Agent: Java/ + domena świeżo zarejestrowana + brak wcześniejszych hitów w organizacji.
  • Ścieżki plików: zapisy w %TEMP%, %USERPROFILE%\AppData\Local\Temp\ z rozszerzeniami .jar/.class, po których następuje wykonanie EXE/DLL.
  • EDR/AV: alarmy typu Exploit:Java/CVE-2012-1723 skorelowane z ruchem do nowych domen.

False positives / tuning

  • Deweloperzy Java (Maven/Gradle/ant) mogą sporadycznie uruchamiać powłokę — whitelisting hostów dev, podpisanych ścieżek narzędzi (np. maven wrapper) i repozytoriów artefaktów.
  • Instalatory (np. launchery gier/aplikacji na Javie) — filtruj po katalogu Program Files\Java\bin\java.exe vs. embedded JRE w katalogu aplikacji.
  • Agreguj alert dopiero, gdy co najmniej dwa warunki spełnione: java → child proc i pobranie *.jar/.jnlp z nieznanej domeny.

Playbook reagowania (IR)

  1. Kwalifikacja/izolacja: odłącz host od sieci (EDR izolacja).
  2. Identyfikacja wersji JRE/JDK: java -version; w Windows sprawdź HKLM\Software\JavaSoft\Java Runtime Environment\*.
  3. Zabezpieczenie dowodów: ram dump (jeśli polityka pozwala), MFT/$UsnJrnl, prefetch, zestaw logów (Sysmon, proxy, DNS).
  4. Triage wskaźników: hashe pobranych JAR/EXE, domeny, UA Java/.
  5. Remediacja: usuń artefakty, zablokuj domeny/URL-e, zaktualizuj JRE/JDK do 7u5/6u33+ (lub nowszych LTS), wyłącz przestarzałe wtyczki Java/Java Web Start.
  6. Hunt (24–72h wstecz): wzorzec java[w].exe → {cmd/powershell/...} + GET *.jar w proxy/DNS.
  7. Lessons learned: egzekwuj M1021/M1048/M1051 (Mitigations, poniżej).

Przykłady z kampanii / case studies

  • Blackhole exploit kit (2012): szybka integracja exploitu na CVE‑2012‑1723; ataki drive‑by masowo infekowały hosty przez aplety Javy; publiczny opis procesu wykorzystania i ucieczki z sandboxa.
  • Microsoft WDSI: rodzina detekcji Exploit:Java/CVE‑2012‑1723 — aplet pobiera i uruchamia dodatkowe pliki z zewnętrznego hosta po wejściu na zhakowaną stronę.
  • Sygnatury IPS (Broadcom/Symantec): gotowe reguły sieciowe podkomponentu HotSpot dla tego CVE.
  • CISA KEV: CVE wpisany do Known Exploited Vulnerabilities (wymóg patchowania dla FCEB). Informacja widnieje m.in. na karcie NVD (odniesienie do KEV).

Lab (bezpieczne testy) — symulacja dla SOC

Cel: przetestować reguły bez eksploitacji — wygenerować podejrzany łańcuch java → shell.

  1. Kod (bezpieczny): TestSpawn.java import java.io.*; public class TestSpawn { public static void main(String[] args) throws Exception { new ProcessBuilder("cmd.exe", "/c", "echo HelloFromJava").start().waitFor(); } }
  2. Budowa i uruchomienie (host testowy/VM): javac TestSpawn.java jar --create --file test.jar TestSpawn.class java -cp . TestSpawn java -jar test.jar
  3. Oczekiwane artefakty: Sysmon EID=1 (java.execmd.exe), opcjonalnie EID=3 (połączenia, jeśli dodać curl w ProcessBuilder).
  4. Weryfikacja: sprawdź, czy zadziałały Sigma/SPL/KQL/EQL z sekcji 7.

Uwaga: Testy wyłącznie w odizolowanej VM i ze znanym, niewinnym ładunkiem.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software: szybkie łatki JRE/JDK (7u5/6u33+).
    • M1042 — Disable or Remove Feature or Program: usuń/wyłącz wtyczkę Java, Java Web Start.
    • M1021 — Restrict Web‑Based Content: proxy/WAF/filtry treści blokujące *.jar/*.jnlp.
    • M1048 — Application Isolation and Sandboxing: sandboxing przeglądarki/aplikacji.
    • M1031 — Network Intrusion Prevention: sygnatury IDS/IPS dla znanych kampanii.

Powiązane techniki ATT&CK:

  • T1189 — Drive‑by Compromise (wejście na stronę inicjuje eksploatację).
  • T1203 — Exploitation for Client Execution (podatność w aplikacji klienckiej — Java).

Źródła / dalsza lektura

  • NVD (CVE-2012-1723): opis, CVSS 3.1 (9.8), wzmianka o KEV, historia zmian. (NVD)
  • Oracle Java SE CPU — czerwiec 2012 (tekstowa risk matrix): opis CVE‑2012‑1723 (HotSpot), dotknięte wersje, scenariusz klienta. (Oracle)
  • Tenable (Nessus 64848): wersje naprawcze 7u5/6u33/5.0u36/1.4.2_38. (Tenable®)
  • OpenJDK (mailing list): powiązanie z Issues in client compiler (S7152811). (mail.openjdk.java.net)
  • ESET WeLiveSecurity: analiza (błąd w weryfikatorze bajtkodu, Blackhole). (We Live Security)
  • Microsoft WDSI: Exploit:Java/CVE-2012-1723 — zachowanie zagrożenia. (Microsoft)
  • Broadcom/Symantec: sygnatura Web Attack: Oracle Java SE CVE‑2012‑1723. (Broadcom)
  • ATT&CK v18 (Version history): aktualna wersja ramy. (MITRE ATT&CK)
  • ATT&CK techniki: T1189, T1203. (MITRE ATT&CK)
  • AWS (CloudTrail/Athena/Lake): przykłady zapytań i wymagania dla Data Events. (AWS Documentation)

Checklisty dla SOC / CISO (krótko)

SOC (operacyjne):

  • Wdrożone reguły: Sigma/EQL/KQL/SPL z korelacją java[w].exe → child + *.jar/.jnlp
  • Blokady proxy: *.jar, *.jnlp, UA Java/ z Internetu, wyjątki tylko dla zaufanych repozytoriów
  • Polowanie na hosty z niezałatanym JRE/JDK; inwentaryzacja wersji
  • Blokada/wycofanie wtyczek Java/Java Web Start (jeśli jeszcze obecne)
  • Feed KEV — CVE-2012-1723 oznaczone jako exploited-in-the-wild (priorytet)

CISO (strategiczne):

  • Polityka M1051: SLA na łatki dla RCE w komponentach klienckich
  • M1042/M1048: eliminacja legacy pluginów + izolacja aplikacji przeglądarkowych
  • M1021/M1031: restrykcja treści web i IPS na granicy
  • Program zarządzania technologiami starszymi (EOL) oraz egzekwowanie standardów oprogramowania

Uwaga o ryzyku: CVE‑2012‑1723 pozostaje klasycznym przykładem, jak jedna luka w środowisku klienckim może zapewnić atakującym natychmiastowy punkt wejścia (Initial Access) i wykonanie kodu (Execution). Nawet dziś, w retrospektywie, jej wzorce artefaktów (Java → child proc, pobrania JAR) są cennymi sygnałami do budowy analityk behawioralnych w SOC.

CVE-2012-0507 — Java SE (AtomicReferenceArray, type confusion)

TL;DR

CVE‑2012‑0507 to błąd type confusion w Java SE (klasa AtomicReferenceArray), umożliwiający zdalne wykonanie kodu przez złośliwy aplet na stronie (drive‑by). Luka była masowo wykorzystywana w 2012 r. (m.in. Blackhole EK i botnet Flashback), szczególnie na macOS, gdzie łatka pojawiła się z opóźnieniem. SOC powinien łączyć telemetry z przeglądarek/proxy (pobrania JAR), EDR (łańcuch procesów java[w].exe → LOLBIN), Sysmon (EID 1/3/11/22) i M365 UrlClickEvents. Podstawowe mitygacje: aktualizacje (M1051), wyłączenie/odinstalowanie wtyczki Java (M1042), restrykcja treści web (M1021), kontrola egzekucji (M1038).

Krótka definicja techniczna

CVE‑2012‑0507 to podatność w Java Runtime Environment (JRE 7u2 i starsze, 6u30 i starsze, 5.0u33 i starsze) w module Concurrency; nieprawidłowe sprawdzanie typów w AtomicReferenceArray pozwala atakującemu ominąć sandbox i wykonać dowolny kod w kontekście użytkownika po otwarciu złośliwego apletu/aplikacji Java Web Start.

Gdzie występuje / przykłady platform

  • Windows / Linux / macOS: przeglądarka z wtyczką Java/Java Web Start. W 2012 r. Flashback masowo infekował macOS przez CVE‑2012‑0507 (ponad 550k–600k hostów), m.in. z powodu opóźnienia w wydaniu łatki dla Java na macOS.
  • VDI/DaaS, stacje adminów, serwery jump: ryzyko przy swobodnym surfowaniu z podatną wtyczką.
  • Chmura / M365: wektor kliknięcia z e‑maila/Teams (telemetria UrlClickEvents), hosty w VDI w chmurze.
  • Przeglądarki: drive‑by przez skompromitowane witryny, malvertising, iFrame; klasyczny T1189.

Szczegółowy opis techniki (jak działa, cele, skuteczność)

CVE‑2012‑0507 umożliwia eskalację uprawnień apletu poprzez błędną obsługę typów w AtomicReferenceArray. Poprzez manipulację obiektem zserializowanym atakujący doprowadza do type confusion i zapisu referencji poza oczekiwanym typem, co skutkuje wyjściem z sandboxa Javy i RCE. W praktyce exploit był osadzany w stronie www; odwiedziny (lub przeklikany link) inicjowały pobranie JAR i łańcuch dalszej egzekucji/pobrania ładunku (np. przez exploit kity typu Blackhole), czyli T1189 → T1203, często poprzedzone T1204.001.

Dlaczego skuteczna?
W 2012 r. wtyczki Java były powszechne; rozproszenie wersji, opóźnienia łatek (zwł. macOS) i automatyczne uruchamianie apletów w przeglądarkach sprzyjało cichym kompromitacjom (drive‑by). Kampania Flashback osiągnęła setki tysięcy ofiar; Oracle załatało błąd w lutym 2012, a Apple dostarczyło aktualizację dla macOS dopiero na początku kwietnia.


Artefakty i logi (tabela)

Zdarzenie / ArtefaktWindows (EID/Sysmon)macOS/LinuxProxy/WAF/ALB/CFCloudTrailK8s auditM365 (Defender XDR)
Pobranie JAR/apletu z WWWSysmon EID 3 (połączenie), EID 22 (DNS); Security 5156Unified Logging (Safari/Chrome net events)ALB/CloudFront/WAF: UA Java/*, ścieżka *.jarn/dn/dUrlClickEvents (klik źródła), DeviceNetworkEvents (host)
Egzekucja exploitaSysmon EID 1: java.exe/javaw.exeprocess: java w unify/journald/auditd (execve)DeviceProcessEvents (jeśli MDE)
Łańcuch: Java → LOLBIN (np. rundll32, mshta, wscript, powershell)Sysmon EID 1 z ParentImage=java[w].exeparent: java → child: sh/bash/pythonDeviceProcessEvents korelacja InitiatingProcessFileName
Zapisy dropperaSysmon EID 11 (file create), EID 13 (reg set)File audit/journaldProxy: kolejny GET (payload)DeviceFileEvents

Uwaga: to ataki klienckie – CloudTrail nie rejestruje procesów na hostach; w chmurze szukaj korelacji w ALB/CF/WAF/NGFW oraz telemetry endpointów.

Detekcja (praktyczne reguły)

Sigma (Sysmon/Windows) – Java → podejrzany child

title: Java Spawns Suspicious Child Process (CVE-2012-0507 tradecraft)
id: 5c4b6a0e-9d7a-4d8f-8b28-java-child-suspicious
status: experimental
description: Wykrywa łańcuch java.exe/javaw.exe uruchamiający interpretery/LOLBIN po potencjalnym drive-by (np. Blackhole/Flashback-era).
references:
  - https://attack.mitre.org/techniques/T1189/
  - https://attack.mitre.org/techniques/T1203/
logsource:
  product: windows
  category: process_creation
detection:
  selection_parent:
    ParentImage|endswith:
      - '\java.exe'
      - '\javaw.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\msiexec.exe'
  condition: selection_parent and selection_child
fields:
  - CommandLine
  - ParentCommandLine
  - Image
  - ParentImage
falsepositives:
  - Instalatory/launchery oparte na Java (Install4j/Launch4j)
level: high
tags:
  - attack.t1189
  - attack.t1203

Splunk (Sysmon + Proxy)

# Child processes z Java (Sysmon)
index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
(ParentImage="*\\java.exe" OR ParentImage="*\\javaw.exe")
Image IN ("*\\powershell.exe","*\\cmd.exe","*\\wscript.exe","*\\cscript.exe","*\\rundll32.exe","*\\mshta.exe","*\\regsvr32.exe","*\\msiexec.exe")
| stats count earliest(_time) as first latest(_time) as last by host, ParentImage, ParentCommandLine, Image, CommandLine, ParentProcessGuid, ProcessGuid

# Proxy/secure web gateway: pobrania JAR z UA Java (dostosuj pola)
index=proxy (cs_user_agent="Java*" OR user_agent="Java*") (uri_path="*.jar" OR url="*.jar")
| stats count by src_ip, user, url, user_agent

KQL (Defender for Endpoint / Microsoft 365 Defender)

// 1) Child processy z Java
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("powershell.exe","cmd.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine

// 2) Pobrania JAR przez procesy Java
DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl endswith ".jar" or RequestUrl endswith ".jar"
| summarize cnt=count(), firstSeen=min(Timestamp), lastSeen=max(Timestamp) by DeviceName, InitiatingProcessFileName, RemoteUrl

// 3) Kliknięcia linków (MDO Safe Links)
UrlClickEvents
| where Url has ".jar" or Url has "java" // dopasuj pod kampanie
| project Timestamp, AccountUpn, Url, ActionType, Workload, IPAddress, ThreatTypes

(„UrlClickEvents” w Advanced Hunting zawiera pełny URL i werdykt kliknięcia.)

AWS (CloudWatch Logs Insights — ALB/CloudFront/WAF)*

fields @timestamp, @message
| filter @message like /User-Agent=.*Java\/[0-9]/ and @message like /\.jar/
| sort @timestamp desc
| limit 100

(*CloudTrail nie loguje żądań HTTP do aplikacji; użyj logów ALB/CloudFront/WAF lub NGFW.)

Elastic / EQL

// Java -> LOLBIN
process where process.parent.name in ("java.exe","javaw.exe") and
           process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")

// HTTP: UA Java + JAR (przykładowy ECS)
network where network.protocol == "http" and
             http.request.method == "GET" and
             http.request.headers.user_agent : "Java*" and
             url.path : "*.jar"

Heurystyki / korelacje

  • Łańcuch czasowy: browser → java[w].exe → LOLBIN → outbound (HTTP/DNS) w krótkim oknie.
  • Proxy/NGFW: UA „Java/*” oraz *.jar z domen o niskiej reputacji → koreluj z procesami Java na hostach.
  • macOS: brak Gatekeeper promptów przy apletach w WWW (historycznie); sprawdzaj ~/Library/LaunchAgents po nietypowych wpisach.
  • Zestawy exploitów: obserwuj wzorce Blackhole/Blacole (historyczne IOC/telemetria) jako retro‑threat hunting.

False positives / tuning

  • Instalatory oparte na Java (Install4j/Launch4j) uruchamiają msiexec.exe/regsvr32.exewhitelist po ścieżce, podpisie i hashu.
  • Narzędzia deweloperskie (Gradle/Maven) – generują ruch HTTP; filtruj po docelowych repo (repo.maven.org, wew. Artifactory).
  • UA „Java/*” bywa używany przez skrypty integracyjne — weryfikuj hosty serwerowe vs. stacje użytkowników.

Playbook reagowania (IR)

  1. Izoluj host/VDI (EDR „isolate”).
  2. Zabezpiecz artefakty: pamięć, %TEMP%/Downloads, ~/Library/ (macOS), logi proxy/EDR.
  3. Weryfikuj wersje Javy i wtyczek:
    • Windows (PowerShell): Get-ItemProperty 'HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment' | select CurrentVersion
    • macOS: /usr/libexec/java_home -V
  4. Analiza drzew procesów: szukaj java[w].execmd/powershell/mshta/rundll32/....
  5. Zidentyfikuj źródło: domene/URL z UrlClickEvents i proxy; odetnij na FW/DNS.
  6. Eradykacja: odinstaluj/wyłącz plugin Java w przeglądarkach (M1042), zaktualizuj JRE/JDK (M1051).
  7. Hunting wsteczny: wzorce z pkt 7 i 8, retro na 2012‑style TTP (dla zestawów lab/archiwum).
  8. Lessons learned: polityka disable‑by‑default dla wtyczek, ASR/AppControl (M1038), URL filtering (M1021).

Przykłady z kampanii / case studies

  • OSX/Flashback (2012) — masowe infekcje macOS (550k–600k hostów) przez CVE‑2012‑0507; Apple wydało aktualizację w kwietniu 2012 i dodało narzędzia usuwające.
  • Blackhole Exploit Kit (2012) — zestaw exploitów zaczął obsługiwać CVE‑2012‑0507, znacząco zwiększając skuteczność drive‑by.

Lab (bezpieczne testy) — przykładowe komendy

Cel: wygenerować telemetrię detekcyjną, bez exploita.

  • Proxy/ALB telemetry: serwuj plik hello.jar z wewn. HTTP i symuluj pobranie „klient‑Java”: # serwer python3 -m http.server 8000 # klient (symulacja UA Java z curl) curl -A "Java/1.6.0_31" http://<lab-web>:8000/hello.jar -o /tmp/hello.jar Następnie uruchom zapytania (Splunk/Elastic/KQL/Insights) z sekcji 7.
  • EDR/Sysmon łańcuch procesów (symulacja benign): uruchom legalną aplikację Java, a oddzielnie (ręcznie) proces pomocniczy, by sprawdzić reguły korelacyjne — nie symuluj złośliwego kodu.
  • M365: wyślij do siebie e‑mail z bezpiecznym linkiem do hello.jar w labie i sprawdź UrlClickEvents (czy klik i domena są odnotowane).

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software (szybkie łatanie JRE/JDK; polityki patch).
  • M1042 – Disable or Remove Feature or Program (wyłączenie/odinstalowanie wtyczki Java w przeglądarkach).
  • M1021 – Restrict Web‑Based Content (URL filtering, blokowanie typów plików, skanowanie pobrań).
  • M1038 – Execution Prevention (AppControl/ASR, blokada uruchamiania niepodpisanych binariów).
  • M1037 – Filter Network Traffic (blokada znanych domen EK/C2, polityki egress).
  • M1017 – User Training (świadomość dot. linków/ostrzeżeń przeglądarki).

Powiązane techniki:

  • T1189 — Drive‑by Compromise – Exploit ładuje się po wejściu na stronę (watering hole/malvertising/iFrame), skanuje wersje wtyczek i serwuje JAR z exploitem; po skutecznym RCE dropper pobiera właściwy malware.
  • T1203 — Exploitation for Client Execution – Wykorzystanie luki w aplikacji klienckiej (tu: plugin/Java Web Start) do wykonania kodu — bez potrzeby interakcji poza wejściem na stronę.
  • T1204.001 — User Execution: Malicious Link – Często poprzedza drive‑by; kliknięcie linku kieruje do strony serwującej exploit i uruchamia T1203.

Źródła / dalsza literatura

  • MITRE ATT&CK: T1189, T1203, T1204 (sub‑tech). (MITRE ATT&CK)
  • ATT&CK wersjonowanie: v18.0 (Oct 28, 2025). (MITRE ATT&CK)
  • NVD / CVE record: opis, zakres wersji. (NVD)
  • Oracle CPU (Feb 2012) – advisory i tabeli ryzyka/wersje. (Oracle)
  • Analiza techniczna typu type confusion (AtomicReferenceArray). (media.blackhat.com)
  • Flashback/ekosystem 2012: ESET whitepaper/blog, Dr.Web liczby, przegląd prasy. (web-assets.esetstatic.com)
  • Blackhole EK: wpisy ESET, Krebs, overview MS/F‑Secure. (We Live Security)
  • M365 UrlClickEvents – schema/detekcja klików. (Microsoft Learn)

Checklisty dla SOC / CISO (krótko)

SOC

  • Reguły detekcji: Java → LOLBIN (Endpoint + Sigma/SPL/KQL/EQL).
  • Korelacje: UA Java/* + *.jar + proces java[w].exe.
  • Blokady: FW/DNS dla domen kampanii; zasady SWG (blok JAR).
  • Telemetria: Sysmon EID 1/3/11/22 wdrożone i wysyłane.
  • Retrospektywa na 2012‑style TTP (archiwalne logi/laby).

CISO

  • Polityka disable‑by‑default dla przeglądarkowych wtyczek/Java.
  • Patch SLA dla JRE/JDK (M1051) i egzekucja wytycznych.
  • URL filtering/SSL inspection (M1021/M1037) i polityki egress.
  • AppControl/ASR (M1038) na stacjach użytkowników.
  • Program szkoleniowy nt. drive‑by/kliknięć (M1017).

CVE-2011-0609 — Adobe Flash/Reader (Authplay) RCE w kampaniach spear‑phishingowych

TL;DR

Krytyczny błąd w Adobe Flash Player oraz w komponencie Authplay bibliotek Adobe Reader/Acrobat (CVE‑2011‑0609) umożliwiał zdalne wykonanie kodu przez spreparowane pliki SWF. W 2011 r. był aktywnie wykorzystywany w atakach z załącznikami XLS (osadzony SWF), m.in. w incydencie RSA SecurID. Detekcja: korelacja Email → Office/Reader → podejrzany child‑process/C2, blokada starych Flash/Reader, sandboxing załączników.


Krótka definicja techniczna

CVE‑2011‑0609 to luka (memory corruption/unspecified) w Adobe Flash Player 10.2.154.13 i starszych (Windows/macOS/Linux/Solaris, Android), Adobe AIR 2.5.1 i starszych oraz w Authplay.dll/AuthPlayLib.bundle używanym przez Adobe Reader/Acrobat 9.x–9.4.2 oraz 10.x–10.0.1. Otwarcie złośliwego SWF (np. osadzonego w pliku Excel) skutkuje RCE w kontekście aplikacji.


Gdzie występuje / przykłady platform

  • Windows / macOS / Linux / Solaris (endpointy) — przeglądarki i Office/Reader ładujące wtyczkę Flash/komponent Authplay.
  • Android (mobile) — podatne wydania Flash 10.1.106.16 i starsze.
  • Active Directory — punkt rozprzestrzenienia po początkowym foothold; nie jest bezpośrednio podatne.
  • M365 — wektor mailowy (Exchange/Defender for Office 365: Safe Attachments/Safe Links, Message trace).
  • AWS/Azure/GCP — brak bezpośredniej podatności; możliwa telemetria z WorkMail/SES/WorkSpaces, VPC Flow/Firewall do korelacji C2.
  • Kubernetes/ESXi — nie dotyczy bezpośrednio; przydatne do detekcji lateral movement po inicjalnym włamaniu.
    (Flash i Authplay są EOL; nadal warto utrzymywać detekcję retro/archiwalną dla threat huntingu i IR).

Szczegółowy opis techniki (jak działa, cele, skuteczność)

Ataki wykorzystywały SWF z exploitem osadzony w pliku .xls wysyłanym jako spear‑phishing. Po otwarciu arkusza Excel ładował komponent Flash/ActiveX, wykonywał payload w pamięci i uruchamiał proces podrzędny (np. dropper/loader), typowo ustanawiający łączność C2 i dogrywający RAT (w publicznych opisach wskazywano m.in. Poison Ivy). W kampanii na RSA załącznik o nazwie “2011 Recruitment plan.xls” prowadził do kradzieży poufnych danych SecurID. Ta taktyka była skuteczna z powodu: zaufania do dokumentów Office, łańcucha User Execution → Client Exploitation, braku patchy i ograniczonej widoczności korelacyjnej między warstwą e‑mail, procesami na hoście i ruchem sieciowym.


Artefakty i logi (tabela — EID, CloudTrail, K8s audit, M365)

KategoriaŹródłoID/OperacjaWzorzec / PolaCo oznacza
WindowsSysmonEID 1 (ProcessCreate)ParentImage in (EXCEL.EXE,AcroRd32.exe,WINWORD.EXE) + Image in (cmd.exe,powershell.exe,wscript.exe,mshta.exe,rundll32.exe)Nietypowe child‑procesy po otwarciu dokumentu/Readera (wskaźnik exploit→payload).
SysmonEID 3 (NetworkConnect)ParentImage jak wyżej; dest na świeże domeny/DGA/dynamic DNSWczesne C2 po exploitacji.
SysmonEID 7 (ImageLoaded)ImageLoaded endswith authplay.dll / Flash*.ocx z nieaktualnych ścieżekŁadowanie wrażliwego komponentu.
SysmonEID 11 (FileCreate)Tworzenie dropperów w %APPDATA%, %TEMP% (np. *.tmp, *.dat)Artefakty pierwszego etapu.
Windows Security4688Jak EID 1 (jeśli brak Sysmon)Procesy uruchomione przez Office/Reader.
Windows PowerShell4104Nieoczekiwane skrypty po otwarciu plikuWskaźnik T1059.
M365Defender for Office 365EmailEventsAttachmentExtension="xls" + ThreatTypes/MalwareVerdict + DetectionMethod=SafeAttachmentsZatrzymane/wykryte załączniki ze SWF/osadzonymi obiektami.
Unified Audit LogMailItemsAccessed/SendKorelacja adresatów/wątków phishingowychZasięg kampanii.
Proxy/DNSSecure Web Gateway / resolverUser-Agent Office/Reader → outbound, świeże domeny, nietypowe SNIPotwierdzenie C2 po otwarciu dokumentu.
AWS (telemetria)CloudWatch/VPC FlowNietypowe wyjścia z hostów WorkSpaces/EC2 po zdarzeniu e‑mailKorelacja sieciowa (brak bezpośredniego CloudTrail dla kontentu maili).
CloudTrail[brak danych / nie dotyczy] — CloudTrail nie rejestruje zawartości załącznikówUżyć WorkMail Message Flow/SES logs, VPC Flow.
K8s audit[brak danych / nie dotyczy]Dotyczy etapów późniejszych (lateral movement), nie samej CVE.

Detekcja (praktyczne reguły)

Sigma (Windows — Office/Reader uruchamia interpreter/shell po Flash/Authplay)

title: Office/Reader Suspicious Child Process (CVE-2011-0609 Tradecraft)
id: 6c6f3a3c-8f8c-4f2e-91c3-ofs-cve20110609
status: stable
description: Wykrywa uruchomienie interpreterów/shelli przez EXCEL/AcroRd32/Word – wzorzec obserwowany w eksploatacji SWF/Authplay (2011).
author: Badacz CVE
date: 2025/11/05
logsource:
  product: windows
  category: process_creation
detection:
  parent_office:
    ParentImage|endswith:
      - '\EXCEL.EXE'
      - '\AcroRd32.exe'
      - '\WINWORD.EXE'
  suspicious_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
  condition: parent_office and suspicious_child
falsepositives:
  - Dodatki/plug‑iny wywołujące narzędzia systemowe (rzadkie)
level: high
tags:
  - attack.t1204.002
  - attack.t1203
  - attack.t1059
  - cve.2011.0609

Splunk (Sysmon EID 1 + 3)

index=endpoint (sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1)
| where like(ParentImage,"%\\EXCEL.EXE") OR like(ParentImage,"%\\AcroRd32.exe") OR like(ParentImage,"%\\WINWORD.EXE")
| where match(Image,"(?i)\\(cmd|powershell|wscript|cscript|mshta|rundll32)\\.exe$")
| stats earliest(_time) as firstSeen latest(_time) as lastSeen values(CommandLine) values(ParentCommandLine) by Computer, Image, ParentImage, ParentProcessGuid, ProcessGuid
| join type=left ProcessGuid
    [ search index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3
      | stats values(DestinationIp) values(DestinationHostname) by ProcessGuid ]
| sort - lastSeen

KQL (Defender for Endpoint + MDO korelacja)

// 1) Host: podejrzane child-procesy po Office/Reader
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("EXCEL.EXE","AcroRd32.exe","WINWORD.EXE")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","mshta.exe","rundll32.exe")

// 2) E-mail: załączniki .xls ze złą reputacją
let suspiciousMail =
EmailEvents
| where AttachmentCount > 0 and tostring(AttachmentExtensions) has_cs "xls"
| where ThreatTypes has_any ("Malware","Phish") or MalwareFilterVerdict in~ ("Malware","HighConfMalware");
suspiciousMail
| project NetworkMessageId, RecipientEmailAddress, SenderFromDomain
| join kind=innerunique (
  DeviceProcessEvents
  | where InitiatingProcessFileName in~ ("EXCEL.EXE","AcroRd32.exe")
  | project Timestamp, DeviceId, InitiatingProcessParentCreationTime, InitiatingProcessFileName, FileName, ProcessCommandLine, NetworkMessageId
) on NetworkMessageId

AWS (CloudWatch Logs Insights — Amazon WorkMail Message Flow / alternatywnie SES)

Jeśli używasz Amazon WorkMail/SES z loggingiem do CloudWatch/S3:

fields @timestamp, fromAddress, recipient, attachmentExtension, malwareVerdict, attachmentMimeType
| filter attachmentExtension="xls"
| filter malwareVerdict="MALICIOUS"
  or like(attachmentMimeType, "%shockwave%")
  or like(attachmentMimeType, "%flash%")
| sort @timestamp desc

(CloudTrail nie zawiera treści e‑maili; użyj WorkMail Message Flow / SES event logs oraz VPC Flow do wskazania ewentualnego C2).

Elastic / EQL

process where
  process.parent.name in ("EXCEL.EXE","AcroRd32.exe","WINWORD.EXE") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe","rundll32.exe")

Heurystyki / korelacje

  • Łańcuch czasowy: Email (.xls z osadzonym SWF) → uruchomienie Office/Reader → child‑process → połączenie sieciowe do świeżej domeny → zapis droppera w %TEMP%/%APPDATA%.
  • Artefakty Flash/Authplay: ładowanie authplay.dll/Flash*.ocx przez Office/Reader w momencie otwarcia pliku.
  • Pola do pivotowania: NetworkMessageIdDeviceProcessEvents ↔ proxy/DNS; hash załącznika ↔ sandbox verdict.
  • Treść socjotechniki: tematy rekrutacyjne/HR (“Recruitment plan”), krótka treść maila zachęcająca do otwarcia załącznika.

False positives / tuning

  • Legalne dodatki Office/Reader mogą incydentalnie uruchamiać narzędzia systemowe (rzadkie).
  • Zastosuj tuning po wersjach: skup się na hostach, gdzie w telemetrycznych śladach widać obiekty Flash/Authplay lub historyczne wersje Reader/Flash (jeśli utrzymywane w VDI/legacy).
  • Kontekst e‑mail: preferuj zdarzenia z verdictem Malware/High‑confidence lub z sandboxu (MDO Safe Attachments/3rd‑party).
  • Sieć: ogranicz alerty tylko do outbound na świeże/dynamiczne domeny i/lub niedawno zarejestrowane certyfikaty.

Playbook reagowania (IR)

  1. Triage & izolacja hosta (EDR isolate/quarantine).
  2. Zabezpieczenie artefaktów: hash i kopia pliku .xls, volatile data (listy procesów, połączenia, moduły).
    • Windows (PowerShell, konto z uprawnieniami IR): Get-Process EXCEL,AcroRd32 -IncludeUserName Get-ChildItem $env:TEMP | Sort LastWriteTime -desc | Select -First 20 Get-FileHash "C:\Path\to\Attachment.xls" -Algorithm SHA256
  3. Hunting w skali organizacji: IOC = hash załącznika / domeny C2 / temat maila; wyszukaj w EmailEvents/MessageTrace i w EDR.
  4. Blokady: reguła w Secure Email Gateway/MDO na typ załączników (XLS z OLE/ActiveX), blokada starych komponentów Flash/Authplay.
  5. Eradykacja: usuń dropper/RAT, unieważnij poświadczenia z hosta, sprawdź persistence (usługi/Run Keys/Tasks).
  6. Lessons learned: wdroż patch‑management, makra ograniczone, otwieranie załączników w izolacji (sandbox/VDI).

Przykłady z kampanii / case studies

  • Incydent RSA SecurID (marzec 2011): spear‑phishing z „2011 Recruitment plan.xls”, osadzony SWF wykorzystał CVE‑2011‑0609, po czym doinstalowano backdoor (m.in. raportowano Poison Ivy) i kradziono dane związane z SecurID.
  • Wnioski branżowe: Adobe ostrzegało o aktywnej eksploatacji w ukierunkowanych atakach; aktualizacje zostały opublikowane w drugiej połowie marca 2011 r.

Lab (bezpieczne testy) — przykładowe komendy

Cel: zweryfikować, czy Twoje detektory wychwytują łańcuch Email/Office → child‑process/C2 bez używania realnego exploita.

  • Test 1 (host): z poziomu kontenera testowego/VDI uruchom kontrolowany child‑process z Office (np. otwarcie pliku, który uruchamia calc/whoami przez zgodny z polityką add‑in) i sprawdź, czy reguły Sigma/Splunk/KQL go łapią.
  • Test 2 (poczta): wyślij do skrzynki testowej plik XLS z nieszkodliwym osadzonym obiektem (np. formularz OLE bez makr) i obserwuj, czy Safe Attachments nadaje verdict i czy pipeline korelacyjny łączy NetworkMessageId ↔ DeviceProcessEvents.
  • Atomic Red Team (alternatywa): użyj atomików dla T1204.002 i T1566.001 (wersje bezpieczne/PUA), by wygenerować telemetryczne ślady bez rzeczywistej eksploatacji.

Mapowania (Mitigations, powiązane techniki)

Mitigations ATT&CK:

  • M1051 — Update Software: natychmiastowe łatki Flash/Reader (historycznie) i rygorystyczny patch management.
  • M1031 — Network Intrusion Prevention: IDS/IPS do blokady znanych C2/eksploatacji w ruchu.
  • M1047 — Audit: regularne audyty konfiguracji, telemetrii, list uprawnień.

Powiązane techniki (ATT&CK):

  • T1566.001 — Spearphishing Attachment (wektor początkowy).
  • T1204.002 — User Execution: Malicious File (uruchomienie przez użytkownika).
  • T1203 — Exploitation for Client Execution (RCE w aplikacji klienckiej).
  • T1105 — Ingress Tool Transfer (dogrywanie narzędzi/RAT).
  • T1059 — Command & Scripting Interpreter (uruchomienie poleceń/payloadów).

Źródła / dalsza literatura

  • Adobe Security Advisory APSA11‑01 (opis wektora: SWF w Excelu; aktywna eksploatacja). (adobe.com)
  • NVD/CVE — szczegóły produktu/wersji podatnych. (NVD)
  • CERT/CC VU#192052 (informacja o biuletynie z poprawką). (kb.cert.org)
  • Kaspersky/QuickHeal (informacja o wydaniu poprawek). (Securelist)
  • Case study RSA: Infosecurity‑Magazine, The Register, Wired, F‑Secure. (Infosecurity Magazine)
  • ATT&CK (T1566.001, T1204.002, T1203; Detection Strategies). (MITRE ATT&CK)
  • Wersjonowanie ATT&CK (aktualna v18.0). (MITRE ATT&CK)

15) Checklisty dla SOC / CISO

SOC:

  • Korelacja EmailEvents ↔ DeviceProcessEvents ↔ DNS/Proxy dla załączników .xls.
  • Aktywne reguły na Office/Reader → shell/interpreter (Sigma/SIEM).
  • Hunting: authplay.dll / Flash*.ocx załadowane przez Office/Reader (historyczne hosty/VDI).
  • Blokady w SEG/MDO: OLE/ActiveX w dokumentach Office z internetu.
  • Sandboxing załączników (dynamic + static) i automatyczna kwarantanna.

CISO:

  • Egzekwowanie M1051 (patch management) i EOL hygiene (wyeliminować Flash/Authplay).
  • NIPS/SSL inspection dla wczesnego C2 (M1031).
  • Szkolenia z rozpoznawania spear‑phishingu; procedury zgłoszeń.
  • Testy kontrolne (Purple Team/Atomic) mapowane do T1566.001/T1204.002/T1203.

Uwaga końcowa: Flash/Reader wersje z 2011 r. są dziś wygasłe, ale ślady i techniki (phishing + client‑side RCE) pozostają aktualne. Warto utrzymywać detekcje oparte na wzorcu zachowania (ATT&CK), nie na konkretnym CVE.

Krytyczna luka w React Native Community CLI (CVE-2025-11953): zdalne wykonanie kodu przez niezaufane żądania POST

Wprowadzenie do problemu / definicja luki

JFrog ujawnił krytyczną podatność CVE-2025-11953 (CVSS 9.8) w popularnym pakiecie npm @react-native-community/cli (i komponencie cli-server-api) wykorzystywanym do uruchamiania serwera deweloperskiego Metro w projektach React Native. Luka pozwala niezautoryzowanemu atakującemu na zdalne wykonanie poleceń poprzez wysłanie żądania POST do podatnego endpointu serwera. Błąd został załatany — poprawka dostępna jest od wersji 20.0.0 pakietu @react-native-community/cli-server-api.

W skrócie

  • CVE-2025-11953 umożliwia zdalne wykonanie kodu (RCE) na maszynie, która uruchomiła serwer Metro z podatną wersją CLI.
  • Dotyczy projektów inicjalizowanych z użyciem @react-native-community/cli (bez frameworka), gdy Metro nasłuchuje na interfejsach zewnętrznych. Expo i środowiska niekorzystające z Metro zwykle nie są podatne.
  • Wykonalność: pełne RCE potwierdzone na Windows; na macOS/Linux — uruchamianie arbitralnych programów z ograniczoną kontrolą argumentów (prawdopodobnie możliwa eskalacja po dalszych badaniach).
  • Aktualizacja do ≥20.0.0 (cli-server-api) lub wiązanie serwera do 127.0.0.1 niweluje ryzyko.

Kontekst / historia / powiązania

Zespół JFrog Security Research opisał podatność 4 listopada 2025 r.; SecurityWeek nagłośnił problem tego samego dnia. Meta (współopiekun ekosystemu RN) szybko wprowadziła poprawkę. Incydent wpisuje się w szerszy trend zagrożeń łańcucha dostaw JavaScript/npm oraz ataków na narzędzia deweloperskie.

Analiza techniczna / szczegóły luki

  • Zakres wersji: podatny jest komponent @react-native-community/cli-server-api w wersjach 4.8.0–20.0.0-alpha.2; naprawiono od 20.0.0. W praktyce dotyczy to również odpowiadających im wersji @react-native-community/cli.
  • Przyczyna: endpoint /open-url w middleware CLI przyjmował wartość z ciała żądania (req.body.url) i przekazywał ją bez walidacji do funkcji open() (pakiet open), co prowadzi do Command Injection. Dodatkowo serwer bywał wiązany do 0.0.0.0/[::] (zamiast localhost), wystawiając go na sieć.
  • Wektor ataku (bez uwierzytelniania): atakujący w tej samej sieci (lub przez ekspozycję portu) wysyła POST na podatny endpoint; na Windows możliwe jest wykonanie dowolnych poleceń shell (np. cmd /c ...).
  • Identyfikatory i scoring: CVE-2025-11953, CVSS 3.1: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
  • Advisory: wpis w GitHub Advisory Database opisuje podatność jako OS command injection w serwerze Metro otwieranym przez RN CLI.

Praktyczne konsekwencje / ryzyko

  • Przejęcie stacji deweloperskiej: uruchamianie arbitralnych poleceń (pełne RCE na Windows) może skutkować kradzieżą tokenów, kluczy SSH, poświadczeń do rejestrów, a nawet zatruciem łańcucha dostaw poprzez wstrzyknięcie backdoorów do kodu aplikacji.
  • Pivot w sieci firmowej: stanowiska Dev często mają szerokie uprawnienia i dostęp do CI/CD; złośliwy kod może rozprzestrzenić się do pipeline’ów. (Wniosek na bazie wektora RCE i typowych konfiguracji CI/CD).
  • Atak z sąsiedniej sieci / Wi-Fi gościnne: domyślny binding na wszystkie interfejsy zwiększa ryzyko w środowiskach współdzielonych (biura, coworkingi).

Rekomendacje operacyjne / co zrobić teraz

1) Natychmiastowe działania naprawcze

  • Zaktualizuj **@react-native-community/cli-server-api do wersji >= 20.0.0 we wszystkich projektach RN; w razie potrzeby zaktualizuj także @react-native-community/cli do wersji zgodnej z poprawką.
  • Jeśli aktualizacja teraz niemożliwa: uruchamiaj Metro z wiązaną pętlą zwrotną:
    npx react-native start --host 127.0.0.1

2) Detekcja i triage

  • Sprawdź, czy w projekcie/globalnie masz podatny pakiet:
    npm list @react-native-community/cli-server-api oraz npm list -g @react-native-community/cli-server-api.
  • Przejrzyj logi zapór/IDS oraz telemetrykę hostów pod kątem nietypowych żądań POST do serwera Metro i uruchomień procesów spoza IDE (zwłaszcza na Windows). (Dobre praktyki wynikające z wektora ataku).

3) Utwardzenie procesu developerskiego

  • Ogranicz ekspozycję: tuneluj dostęp do Metro przez adb reverse/USB lub używaj sieci izolowanych dla dev.
  • Higiena sekretów: rotuj tokeny npm/GitHub, klucze SSH i ciasteczka SSO, jeśli Metro było wystawione i podatne.
  • CI/CD: uruchamiaj buildy w czystych, odseparowanych agentach; włącz skan zależności (SCA) i SAST (np. reguły wykrywające flow req.bodyopen()). (Rekomendacje spójne z analizą JFrog).

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

  • W przeciwieństwie do wielu incydentów npm z 2025 r. (ataków supply-chain poprzez zainfekowane pakiety), CVE-2025-11953 nie wymaga zainstalowania złośliwej wersji biblioteki — atak trafia w interfejs HTTP serwera dev działający lokalnie, ale często wystawiony do sieci. (Porównanie do ostatnich kampanii npm ma charakter kontekstowy).

Podsumowanie / kluczowe wnioski

  • Zagrożenie jest realne i krytyczne (CVSS 9.8): wystarczy niezaufane żądanie POST do serwera Metro.
  • Patch jest dostępny: aktualizuj do @react-native-community/cli-server-api >= 20.0.0 i/lub wiąż Metro do 127.0.0.1.
  • Zadbaj o higienę środowisk Dev: ogranicz ekspozycję, rotuj sekrety, wzmocnij monitoring oraz polityki CI/CD.

Źródła / bibliografia

  • JFrog Security Research — „Critical RCE Vulnerability CVE-2025-11953 Puts React Native Developers at Risk” (04.11.2025). Szczegóły techniczne, zakres wersji, mitigacje. (JFrog)
  • SecurityWeek — „Critical Flaw in Popular React Native NPM Package Exposes Developers to Attacks” (04.11.2025). Ujęcie newsowe, kontekst i potwierdzenie patcha. (SecurityWeek)
  • GitHub Advisory Database — opis OS command injection w Metro/CLI (CVE-2025-11953). (GitHub)
  • JFrog Advisory (JFSA-2025-001495618) — karta podatności, komponent i zakres wersji. (research.jfrog.com)
  • CVE feed (CVSS/Wejście CVE) — wektor i metadane CVE-2025-11953. (cvefeed.io)

Rosyjska grupa Curly COMrades ukrywa malware w linuksowych VM-ach Hyper-V, by omijać EDR

Wprowadzenie do problemu / definicja techniki

Badacze opisali nową technikę operacyjną grupy Curly COMrades: po kompromitacji hosta z Windows napastnicy włączają Hyper-V i importują ukrytą, minimalistyczną maszynę wirtualną z Alpine Linux, w której uruchamiają własne implanty. Dzięki izolacji wykonywania w VM unikają detekcji przez rozwiązania EDR działające na hoście.

W skrócie

  • Atakujący tworzą lekki VM (ok. 120 MB dysku, 256 MB RAM) na Hyper-V i nazywają go „WSL”, aby zlał się z otoczeniem.
  • Wewnątrz VM działają CurlyShell (reverse shell przez HTTPS, persystencja cron) i CurlCat (reverse proxy/SSH→HTTPS).
  • VM używa Default Switch Hyper-V, więc cały ruch wygląda jakby pochodził z IP hosta. To utrudnia sieciową detekcję C2.
  • Kampania była obserwowana m.in. latem 2025 r.; badania prowadził Bitdefender z udziałem CERT Gruzja.

Kontekst / historia / powiązania

Curly COMrades to aktor APT działający co najmniej od 2024 r., powiązany z celami zgodnymi z interesami Rosji. Wcześniejsze aktywności obejmowały m.in. sektor publiczny w Gruzji i energetykę w Mołdawii. Najnowsza publikacja rozszerza znane TTP o trwałą obecność w VM Hyper-V na hostach ofiar.

Analiza techniczna / szczegóły luki

Wejście i przygotowanie środowiska

  • Napastnicy zdalnie włączają rolę Hyper-V i wyłączają interfejs zarządzania, używając poleceń DISM; następnie importują prekonfigurowaną VM (VMCX/VHDX) i startują ją PowerShellem: Import-VM oraz Start-VM -Name WSL. Pliki VM trafiają pod mylącą ścieżkę w C:\ProgramData\Microsoft\AppV\app\.

Konfiguracja VM

  • VM z Alpine Linux jest skrojony „pod ofiarę” (m.in. wpisy /etc/hosts, niestandardowy DNS w /etc/resolv.conf). Sieć ustawiona na Default Switch (NAT), co tuneluje ruch przez stos sieciowy hosta.

Implanty i persystencja

  • CurlyShell (ELF, C++, libcurl) – reverse shell przez HTTPS, uruchamiany okresowo via cron; ukrywa I/O, stosuje niestandardową bazę Base64 w protokole C2. Przykładowy hash: MD5 c6dbf3de8fd1fc9914fae7a24aa3c43d.
  • CurlCat (ELF, C++, libcurl) – lekki tunnel/ProxyCommand w ~/.ssh/config, pakuje SSH w HTTP/HTTPS; przykład MD5: 1a6803d9a2110f86bb26fcfda3606302.

Dalsze operacje

  • Skrypty PowerShell do lateral movement/persystencji (m.in. wstrzyknięcia biletów Kerberos do LSASS oraz zadania GPO zakładające lokalne konta).

Praktyczne konsekwencje / ryzyko

  • Omijanie EDR host-based: wykonanie i artefakty procesu są „przeniesione” do VM, a ruch C2 bywa widoczny jedynie jako zwykły HTTPS z IP hosta. Bez inspekcji na granicy host↔VM anomalia może pozostać niewidoczna.
  • Trwałość i pivot: reverse proxy ułatwia skryte łącza zwrotne i przesiadki w sieci, także gdy host jest pozornie „czysty”.
  • Mylenie obrony: nazwanie VM jako „WSL” i ulokowanie plików w ProgramData\Microsoft\AppV\ ma obniżyć czujność operatorów SOC.

Rekomendacje operacyjne / co zrobić teraz

  1. Inwentaryzacja i kontrola wirtualizacji
    • Wymuś politykę: Hyper-V wyłączone na stacjach/serwerach, gdzie nie jest potrzebne. Alarmuj na nagłe włączenie roli Hyper-V (zapis DISM), import/start VM (logi Hyper-V/VMMS) oraz tworzenie VMCX/VHDX w nietypowych ścieżkach (ProgramData\Microsoft\AppV\...).
  2. Telemetria host↔VM i sieć
    • Monitoruj interfejs vEthernet (Default Switch), nietypowe połączenia wychodzące przez 443 z hostów bez roli serwerowej, a także HTTP/HTTPS z długimi sesjami i stałą entropią (tunnel). Stosuj egress filtering i listy dozwolonych kierunków.
  3. Hunting
    • Szukaj: Start-VM -Name WSL, Import-VM na hostach użytkowników; śladów RAR/WinRAR rozpakowujących VM z archiwów; obecności katalogu AppV\app\Virtual Machines\*.vmcx. W logach PowerShell – nietypowe I/O redirection typu | cmd > %ProgramData%\WindowsUpdateTask_*.tmp.
  4. EDR/EDR+NDR
    • Uzupełnij EDR o host-based network inspection (np. sensoring ruchu z interfejsów wirtualnych) i detekcje HTTPS-tunnel. Bez takiej warstwy VM-based C2 może pozostać niewidoczny.
  5. Twardnienie i polityki
    • Blokuj możliwość Import-VM/Start-VM dla zwykłych użytkowników; kontroluj WinRM/PowerShell Remoting, używaj Credential Guard/LSA Protection, ogranicz Kerberos ticket manipulation.
  6. IR: triage VM-ów
    • Jeśli wykryto ślady: zrzut konfiguracji Hyper-V (VM list, switch, NAT), snapshot dysku VHDX do analizy (montaż read-only), sprawdzenie cronów w /etc/crontabs i plików /bin/init_tools, /root/updater, ~/.ssh/config. Hashy CurlyShell/CurlCat porównaj z IOC z publikacji.

Różnice / porównania z innymi przypadkami

Kryminaliści/ransomware wcześniej wykorzystywali VM-y (np. do szyfrowania z wnętrza maszyny), jednak Curly COMrades idzie dalej: VM stanowi bazę operacyjną C2 z customowymi implantami i trwałą łącznością, a nie tylko jednorazowym narzędziem. Nowością jest też agresywne „udawanie” WSL i prekonfigurowany tunel SSH→HTTPS oparty na własnym komponencie (CurlCat).

Podsumowanie / kluczowe wnioski

  • Wirtualizacja to nie „bezpieczna strefa” – to wektor ukrywania operacji.
  • Widoczność w warstwie Hyper-V (zdarzenia, konfiguracje, pliki) i inspekcja ruchu z interfejsów wirtualnych stają się krytyczne.
  • Implementuj zasadę najmniejszych uprawnień dla operacji Hyper-V, monitoruj Default Switch i poluj na artefakty „WSL” w Hyper-V.

Źródła / bibliografia

  • Bitdefender: „Curly COMrades: Evasion and Persistence via Hidden Hyper-V Virtual Machines” (04.11.2025) – analiza techniczna, TTP, IoC. (Bitdefender)
  • BleepingComputer: „Russian hackers abuse Hyper-V to hide malware in Linux VMs” (04.11.2025) – omówienie kampanii. (BleepingComputer)
  • Dark Reading: „Pro-Russian Hackers Use Linux VMs to Hide in Windows” (04.11.2025) – kontekst i wnioski. (darkreading.com)
  • The Register: „Russian spies pack custom malware into hidden VMs on Windows” (04.11.2025) – streszczenie i cytaty z badań. (The Register)