Archiwa: Windows - Strona 85 z 98 - Security Bez Tabu

CVE-2013-1493 — Oracle Java SE (2D/CMM) RCE przez obraz rastrowy

TL;DR

Krytyczna luka w Java SE 5/6/7 (moduł 2D/CMM) umożliwia zdalne wykonanie kodu przy przetwarzaniu spreparowanego obrazu rastrowego w aplecie/Java Web Start. W 2013 r. była aktywnie wykorzystywana w kampaniach drive‑by (np. pakiety exploitów), a Oracle załatał ją w JRE/JDK 7u17 i 6u43. Dla SOC mapujemy to na T1189 (wejście przez stronę WWW) oraz T1203 (eksploatacja klienta). Zalecane: odinstalować wtyczkę Java w przeglądarkach (legacy), wymusić aktualizacje, monitorować łańcuch browser → java.exe → LOLBIN.


Krótka definicja techniczna

CVE‑2013‑1493 to błąd w Color Management (CMM) komponentu Java 2D, który przy przetwarzaniu obrazu o specjalnie przygotowanych parametrach rastra powoduje odczyt poza buforem i/lub uszkodzenie pamięci JVM, co umożliwia RCE przez aplet/Java Web Start w przeglądarce. CVSS v2: 10.0 (AV:N/AC:L/Au:N/C:C/I:C/A:C).


Gdzie występuje / przykłady platform

  • Endpointy z przeglądarką i wtyczką Java: Windows, macOS, Linux (w 2013 r. powszechne; dziś przeważnie legacy/ICS/offline).
  • Środowiska VDI/kioski z dziedziczonymi aplikacjami Web Start.
  • Nie dotyczy bezpośrednio serwerów (Oracle: luka dotyczy Javy uruchamianej w przeglądarce).

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

Atakujący umieszcza na stronie WWW (lub w pakiecie exploitów) aplet/Java Web Start wczytujący obraz z nietypowymi parametrami rastra. Podczas renderowania w module Java 2D/CMM dochodzi do naruszenia pamięci JVM → przekazanie sterowania do złośliwego payloadu. W typowym łańcuchu drive‑by użytkownik odwiedza stronę (często watering hole), przeglądarka ładuje wtyczkę Java, a po eksploatacji następuje pobranie i uruchomienie kolejnego modułu (np. downloader), często z wykorzystaniem systemowych LOLBIN‑ów (cmd.exe, powershell.exe, rundll32.exe). Oracle podkreślał, że lukę należy traktować jako dotyczącą Javy w przeglądarkach (nie serwerowej).

Dlaczego skuteczna (historycznie):

  • masowa ekspozycja wtyczki Java w przeglądarkach;
  • niska interakcja użytkownika (często brak – lub akceptacja ostrzeżenia);
  • natychmiastowe przejście do Execution po Initial Access (ATT&CK).

Artefakty i logi

ŹródłoID / typCo obserwowaćWskazówki
Windows Security4688 (Process Create)java.exe/javaw.exe/javaws.exe jako dziecko chrome.exe/msedge.exe/firefox.exe/iexplore.exeNietypowe dziś; silnie podejrzane w 2025 r.
Sysmon1 (Process Create)java*.exe → uruchamia cmd.exe/powershell.exe/wscript.exe/rundll32.exe/mshta.exeŁańcuch post‑eksploatacyjny
Sysmon3 (Network Connect), 22 (DNS)Połączenia HTTP(S) zaraz po starcie java.exe do nieznanych domen; rzadkie SNI/JA3Korelować z Proxy/NGFW
Sysmon7 (ImageLoad)Dynamiczne DLL do Javy ładowane z %TEMP%/%APPDATA%Droppery
Sysmon11 (FileCreate)Nowe JAR/EXE/DLL w profilach użytkownikaArtefakty post‑eksploatacyjne
Proxy/HTTPPobrania .jar/.class/MIME application/java-archive, stare typy application/x-java-appletWzorzec drive‑by
EDR (MDE/SentinelOne/itp.)Reguły behawioralne: przeglądarka → Java → LOLBIN → siećKorelacje
CloudTrail (S3 data events)GetObjectPobrania .jar/.class z bucketów spoza allowlistyDetekcja hostingu artefaktów
K8s audit[N/D] — luka dot. klienta przeglądarkowego
M365 Audit[N/D] — brak bezpośredniego śladu

Detekcja (praktyczne reguły)

Sigma (Windows / Sysmon)

title: Browser-Spawns-Java-And-Java-Spawns-LOLBIN (CVE-2013-1493 TTP)
id: 9b9a6e2f-9a1c-4bde-b3d9-13d313493000
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  browser_parent:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
      - '\iexplore.exe'
  java_proc:
    Image|endswith:
      - '\java.exe'
      - '\javaw.exe'
      - '\javaws.exe'
  lolbin_child:
    ParentImage|endswith:
      - '\java.exe'
      - '\javaw.exe'
      - '\javaws.exe'
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\mshta.exe'
  condition: (browser_parent and java_proc) or lolbin_child
fields:
  - UtcTime
  - Image
  - ParentImage
  - CommandLine
  - ParentCommandLine
falsepositives:
  - Rzadkie, legacy Web Start / środowiska deweloperskie
level: high
tags:
  - attack.T1189
  - attack.T1203

Splunk (SPL)

1) Przeglądarka → Java

index=sysmon sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=1
| where mvfind(["chrome.exe","msedge.exe","firefox.exe","iexplore.exe"], lower(coalesce(ParentImage,ParentImage)))>=0
| where like(lower(Image), "%\\java.exe") OR like(lower(Image), "%\\javaw.exe") OR like(lower(Image), "%\\javaws.exe")
| stats earliest(_time) as firstSeen latest(_time) as lastSeen values(CommandLine) by Computer, User, ParentImage, Image, ParentCommandLine

2) Java → podejrzany LOLBIN / łańcuch procesu

index=sysmon EventCode=1 (Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\wscript.exe" OR Image="*\\rundll32.exe" OR Image="*\\mshta.exe")
| join ProcessGuid type=inner [
  search index=sysmon EventCode=1 (Image="*\\java.exe" OR Image="*\\javaw.exe" OR Image="*\\javaws.exe")
  | table ProcessGuid, Computer, User, Image, ParentImage, CommandLine, ParentCommandLine, _time
]
| table _time, Computer, User, ParentImage, Image, CommandLine, ParentCommandLine

KQL (Microsoft Defender/Sentinel)

// Browser -> Java
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","firefox.exe","iexplore.exe")
| where FileName in~ ("java.exe","javaw.exe","javaws.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName

// Java -> LOLBIN within 2 min
let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","wscript.exe","rundll32.exe","mshta.exe"]);
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe","javaws.exe")
| join kind=inner (
    DeviceProcessEvents
    | where FileName in~ (suspiciousChildren)
    | project ChildTime=Timestamp, DeviceId, ChildFile=FileName, ChildCmd=ProcessCommandLine, InitiatingProcessParentId
) on DeviceId, InitiatingProcessId==InitiatingProcessParentId
| where ChildTime between (Timestamp .. Timestamp + 2m)
| project DeviceName, Timestamp, ChildTime, InitiatingProcessFileName, ChildFile, ChildCmd

CloudTrail query (CloudWatch Logs Insights – S3 Data Events)

Użyteczne, gdy wykrywamy hostowanie artefaktów JAR/CLASS w S3 (częsty etap w kampaniach drive‑by).

fields @timestamp, eventSource, eventName, requestParameters.bucketName, requestParameters.key, sourceIPAddress, userAgent
| filter eventSource = "s3.amazonaws.com" and eventName = "GetObject"
| filter requestParameters.key like /\.jar$/ or requestParameters.key like /\.class$/
| filter ispresent(userAgent) and (userAgent like 'Mozilla%' or userAgent like '%Java%')
| sort @timestamp desc

Elastic / EQL (Endpoint)

// Java spawns LOLBIN
process where
  process.name in ("cmd.exe","powershell.exe","wscript.exe","rundll32.exe","mshta.exe") and
  parent.process.name in ("java.exe","javaw.exe","javaws.exe")

Heurystyki / korelacje

  • Łańcuch czasowy: browser → java.exe → LOLBIN → outbound HTTP(S)/DNS w krótkim oknie (≤2 min).
  • Pliki tymczasowe: nowe .jar/.dll/.exe w %TEMP%, %APPDATA%, ~/Library/Application Support.
  • Proxy/NGFW: nagłe pobrania JAR/CLASS z rzadkich domen → brak wcześniejszej reputacji.
  • EDR: zastrzyk modułów do JVM spoza katalogów Javy; Java jako nietypowy rodzic skryptów/LOLBIN‑ów.
  • Reputacja/Threat Intel: korelacja domen/IP z historycznymi pakietami exploitów (Blackhole/Sweet Orange itd.).

False positives / tuning

  • Legitymne środowiska Web Start/IcedTea‑Web (intranety, ICS) — białe listy domen/aplikacji.
  • Deweloperzy Javy uruchamiający narzędzia buildujące z przeglądarki.
  • W 2025 r. każde uruchomienie wtyczki Java w przeglądarce jest podejrzane; tuning opierać na allowlistach domen i podpisów plików JAR.

Playbook reagowania (IR)

  1. Triage i izolacja: odłącz host, zachowaj pamięć/dysk (artefakty JVM).
  2. Zbieranie faktów: drzewo procesów od przeglądarki do java*.exe, następnie do LOLBIN‑ów; zrzut listy modułów JVM; lista nowo utworzonych plików.
  3. Sieć: zablokuj domeny/sumy SHA256 pobranych JAR/EXE; sprawdź proxy dla innych ofiar.
  4. Eskalacja/przeciwdziałanie:
    • odinstaluj/wyłącz plugin Java;
    • wymuś aktualizacje do JRE/JDK 7u17/6u43 na hostach legacy; rozważ całkowite usunięcie Javy z przeglądarek.
  5. Hunting retro (30–90 dni): wzorce pobrań .jar/.class, łańcuchy browser → Java → LOLBIN.
  6. Lessons learned: polityka click‑to‑play / blokada wtyczek, patch management, segmentacja egress.

Przykłady z kampanii / case studies

  • Blackhole i inne pakiety exploitów (2013) szeroko nadużywały luk w Javie, w tym CVE‑2013‑1493, do drive‑by download i pobierania malware.
  • Detekcje vendorów (MSFT) klasyfikowały ruch jako Exploit:Java/CVE‑2013‑1493 – wejście przez stronę WWW, następnie pobranie i uruchomienie plików.

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w odizolowanym, testowym środowisku (VM, brak Internetu). Celem jest wygenerowanie artefaktów detekcyjnych, nie eksploatacja luki.

A. Symulacja łańcucha browser → Java

  1. Otwórz w przeglądarce lokalny plik HTML z linkiem jnlp (pusty, benigny) albo uruchom:
# Windows (zainstalowana Java): symulacja startu Java z procesu użytkownika
Start-Process -FilePath "$env:ProgramFiles\Google\Chrome\Application\chrome.exe" -ArgumentList "about:blank"
Start-Sleep -Seconds 2
Start-Process -FilePath "C:\Program Files\Java\jre\bin\javaw.exe" -ArgumentList "-version"
  1. Sprawdź, czy reguły Sigma/Splunk/KQL łapią „browser → javaw.exe”.

B. Java → LOLBIN (benigny helper)
Utwórz prosty JAR uruchamiający notepad (tylko logówka):

# Linux/macOS (analogicznie w Windows z javac)
cat > Runner.java << 'EOF'
public class Runner {
  public static void main(String[] args) throws Exception {
    new ProcessBuilder("notepad.exe").start(); // na *nix np. "xcalc"
  }
}
EOF
javac Runner.java && jar cfe runner.jar Runner Runner.class
# Uruchom:
java -jar runner.jar

Oczekiwany artefakt: java.exe → notepad.exe (LOLBIN), co powinno trafić w reguły.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software (patchowanie Javy; eliminacja wtyczki/legacy)
  • M1031 – Network Intrusion Prevention (blok sygnatur exploit‑kit/JAR)
  • M1040 – Behavior Prevention on Endpoint (EDR/anty‑exploit)
  • M1017 – User Training (świadomość ryzyk apletów/ostrzeżeń przeglądarki)

Powiązane techniki:

  • T1189 Drive‑by Compromise (wejście)
  • T1203 Exploitation for Client Execution (RCE w kliencie)
  • T1204.002 User Execution: Malicious File (czasem wymagane kliknięcie/akcept)
  • T1059 Command and Scripting Interpreter (następstwa)

Źródła / dalsza literatura

  • Oracle Security Alert (zakres: dotyczy Javy w przeglądarkach; wersje naprawcze 7u17/6u43) (Oracle)
  • Oracle JDK 7u17 Release Notes (baseline wersji z poprawką) (Oracle)
  • NVD CVE‑2013‑1493 (opis techniczny, CVSS 10.0, „exploited in the wild”) (NVD)
  • CISA Alert: Oracle Java Contains Multiple Vulnerabilities (wersje podatne i zalecenia) (CISA)
  • Microsoft WDSI – Exploit:Java/CVE‑2013‑1493 (mechanika ataku przez WWW) (Microsoft)
  • McAfee Labs (pakiety exploitów wykorzystywały m.in. CVE‑2013‑1493) (McAfee)
  • ATT&CK – T1189 / T1203 / TA0001 / TA0002 / v18 updates (mapowanie technik i wersja ATT&CK) (MITRE ATT&CK)

Checklisty dla SOC / CISO (krótko)

SOC (operacyjne):

  • Włączone logi: Sysmon (1/3/7/11/22), Security 4688, EDR z korelacją rodzic‑dziecko.
  • Reguły: „browser → java.exe”, „java.exe → LOLBIN”, pobrania .jar/.class.
  • Blokady: domeny/URL z kampanii, Content‑Type application/java-archive.
  • Hunting retro: 30–90 dni w proxy/EDR pod kątem JAR/CLASS + łańcuch procesów.
  • Alerting na dowolne uruchomienie wtyczki Java w przeglądarce (2025).

CISO (strategiczne):

  • Eliminacja wtyczek Java (NPAPI) w organizacji; akceptacja wyjątków tylko czasowa.
  • Polityka patchowania: min. 7u17/6u43 na systemach legacy lub migracja/wycofanie.
  • EDR z prewencją behawioralną (M1040) i IPS przy egress (M1031).
  • Program świadomości (M1017) dot. apletów/ostrzeżeń przeglądarki.


Uwaga o ryzyku: Choć wtyczka Java jest powszechnie wycofana we współczesnych przeglądarkach, luka ma znaczenie historyczne, a wewnętrzne środowiska legacy (np. ICS/offline) mogą wciąż generować analogiczne ścieżki ataku.
Rekomendacja: najlepiej całkowicie usunąć wtyczkę Java z przeglądarek i ograniczyć Javę do aplikacji lokalnych z aktualną wersją JVM.

LPI Security Essentials (Moduł 022.4) -Szyfrowanie Danych

Zanim zaczniesz

Ten artykuł jest częścią serii „Bezpłatny Kurs LPI Security Essentials, w ramach której znajdziesz wszystko, co potrzeba, aby zdać egzamin LPI Security Essentials 020-100 już za pierwszym razem.

Każdy moduł zawiera praktyczne przykłady, wyjaśnienia i materiały pomocnicze – wszystko po polsku, zrozumiale i konkretnie.

Czytaj dalej „LPI Security Essentials (Moduł 022.4) -Szyfrowanie Danych”

LPI Security Essentials (Moduł 022.3) – OpenPGP czy S/MIME

Zanim zaczniesz

Ten artykuł jest częścią serii „Bezpłatny Kurs LPI Security Essentials, w ramach której znajdziesz wszystko, co potrzeba, aby zdać egzamin LPI Security Essentials 020-100 już za pierwszym razem.

Każdy moduł zawiera praktyczne przykłady, wyjaśnienia i materiały pomocnicze – wszystko po polsku, zrozumiale i konkretnie.

Czytaj dalej „LPI Security Essentials (Moduł 022.3) – OpenPGP czy S/MIME”

LPI Security Essentials (Moduł 022.1) – Hash Vs Szyfrowanie

Zanim zaczniesz

Ten artykuł jest częścią serii „Bezpłatny Kurs LPI Security Essentials, w ramach której znajdziesz wszystko, co potrzeba, aby zdać egzamin LPI Security Essentials 020-100 już za pierwszym razem.

Każdy moduł zawiera praktyczne przykłady, wyjaśnienia i materiały pomocnicze – wszystko po polsku, zrozumiale i konkretnie.

Czytaj dalej „LPI Security Essentials (Moduł 022.1) – Hash Vs Szyfrowanie”

GlassWorm znowu na OpenVSX: trzy nowe rozszerzenia VS Code z ukrytym malware

Wprowadzenie do problemu / definicja luki

Na OpenVSX (alternatywny rejestr rozszerzeń VS Code) wykryto powrót kampanii GlassWorm – zestawu złośliwych rozszerzeń wykorzystujących niewidzialne znaki Unicode do ukrywania i wykonywania JavaScriptu. Nowa fala obejmuje 3 rozszerzenia (m.in. ai-driven-dev.ai-driven-dev, adhamu.history-in-sublime-merge, yasuyuky.transient-emacs) i według bieżących raportów odnotowała łącznie >10 tys. pobrań. Kampania kontynuuje wcześniej opisane techniki: C2 w łańcuchu Solana, kradzież tokenów GitHub/npm/OpenVSX oraz danych portfeli krypto z 49 popularnych wtyczek.


W skrócie

  • Co się stało: po październikowych czyszczeniach OpenVSX znów pojawiły się 3 zainfekowane rozszerzenia z ukrytym ładunkiem GlassWorm.
  • Jak działa: payload jest schowany w znakach PUA/VS (Private Use Area/Variation Selectors) – „puste” w edytorze, ale dekodowane i wykonywane przez JS. C2 i aktualizacje są osadzane w transakcjach Solana (trwałość, anonimizacja, niskie koszty).
  • Po co: kradzież sekretów (GitHub, npm, OpenVSX), drenaż krypto, tworzenie SOCKS proxy/HVNC i budowa infrastruktury przestępczej na stacjach devów.
  • Skala i spór: OpenVSX informował, że incydent z października był „opanowany” i że nie była to autonomiczna samoreplikacja; jednak badacze widzą „samopowielanie” przez kradzież i użycie poświadczeń.
  • Nowość: potwierdzone wejście na GitHub (commity z doklejonym, ukrytym dekoderem + eval) – to rozszerza wektor poza marketplace.

Kontekst / historia / powiązania

Pierwsza fala GlassWorm została opisana 20 października 2025 r., gdy wykryto pakiet zainfekowanych rozszerzeń na OpenVSX i w marketplace Microsoftu (łączny licznik pobrań szacowany na ok. 35,8 tys., choć mógł być sztucznie zawyżony przez atakujących). 2 listopada OpenVSX ogłosił rotację tokenów i dodatkowe zabezpieczenia po wykryciu wycieku >550 sekretów; jednocześnie podkreślił, że kod nie był „samoreplikującym się” robakiem w klasycznym sensie. 6 listopada badacze Koi i Aikido pokazali jednak nową falę oraz pivot na GitHub. 8 listopada media potwierdziły trzy świeże rozszerzenia na OpenVSX.


Analiza techniczna / szczegóły luki

1) „Niewidzialny” ładunek

  • Atak wykorzystuje PUA/VS (np. zakresy U+E000–U+F8FF, U+FE00–U+FE0F), które nie renderują się w edytorze, ale są parsowane przez dekoder w JS. Typowy wzorzec: dekoder mapujący punkty kodowe → bajty → eval. Na GitHub widziano jednolinijkowy wariant, który dołączał dekoder na końcu pliku.

2) Kanał C2/aktualizacji w Solanie

  • Rozszerzenia pobierają następne etapy na podstawie transakcji Solana (w polach danych trzymane są base64 z URL-ami serwerów C2). Rozwiązanie trudne do zdejmowania (odporne, tanie, anonimowe). Backup: Google Calendar z linkiem base64 w tytule wydarzenia.

3) Zdolności końcowe

  • Kradzież tokenów/logowań (GitHub/npm/OpenVSX), portfeli krypto (49 wtyczek), uruchamianie SOCKS proxy, HVNC (ukryty VNC) – praktycznie przejęcie stacji deweloperskiej jako węzła przestępczego.

4) Infrastruktura i IOC

  • Koi w nowej fali wskazało, że używana jest ta sama infrastruktura (zaktualizowane wskaźniki C2 publikowane w Solanie; przykładowo w raporcie widnieją adresy 199.247.10.166 oraz 199.247.13.106:80/wall jako punkty komunikacji/eksfiltracji).

Praktyczne konsekwencje / ryzyko

  • Łańcuchowe kompromitacje: kradzione tokeny wydawnicze pozwalają wstrzykiwać złośliwe aktualizacje do innych rozszerzeń/repozytoriów/teamów.
  • Trwałość i trudne wyłączenie: C2 na blockchainie zmniejsza skuteczność klasycznych Takedownów. Zmiana transakcji → nowy endpoint → „samoleczenie” C2.
  • Ryzyko finansowe i reputacyjne: wyciek sekretów organizacji, kradzież krypto, nadużycie zasobów (proxy, botnet z dev-workstation).
  • Rozszerzenie wektora: pojawienie się ukrytych commitów na GitHub (AI-like, wiarygodne modyfikacje) utrudnia code review i detekcję.

Rekomendacje operacyjne / co zrobić teraz

0) Szybkie kroki IR (dla SOC/ITSec)

  1. Zidentyfikuj i usuń trzy rozszerzenia z nowej fali (oraz te z list październikowych):
    • ai-driven-dev.ai-driven-dev, adhamu.history-in-sublime-merge, yasuyuky.transient-emacs.
  2. Sprawdź stacje devów pod kątem IOC/C2 i anomalii sieciowych (np. komunikacja do znanych hostów z raportu Koi).
  3. Rotuj sekrety: patche PAT/ghp, npm tokens, OpenVSX tokens, klucze do CI/CD; wymuś 2FA i SSO. (OpenVSX przeszedł już rotację tokenów, ale Twoja organizacja musi zrobić to samo).

1) Wykrywanie „niewidzialnego” kodu (proste skrypty)

Linux/macOS – skan katalogów rozszerzeń VS Code/VSCodium

# VS Code i VSCodium: typowe ścieżki
EXT_DIRS=("$HOME/.vscode/extensions" "$HOME/.vscode-oss/extensions" "$HOME/.vscode-insiders/extensions")
# Znaki PUA/VS: U+E000–U+F8FF, U+FE00–U+FE0F, U+E0100–U+E01EF
for d in "${EXT_DIRS[@]}"; do
  [ -d "$d" ] || continue
  echo "[*] Skanuję $d"
  grep -RIl --include='*.js' --include='*.ts' \
    -P "[\x{E000}-\x{F8FF}\x{FE00}-\x{FE0F}\x{E0100}-\x{E01EF}]" "$d" || true
done

Windows (PowerShell)

$paths = @("$env:USERPROFILE\.vscode\extensions", "$env:USERPROFILE\.vscode-oss\extensions")
$pattern = '[\x{E000}-\x{F8FF}\x{FE00}-\x{FE0F}\x{E0100}-\x{E01EF}]'
foreach ($p in $paths) {
  if (Test-Path $p) {
    Get-ChildItem -Recurse -Include *.js,*.ts -Path $p |
      Select-String -Pattern $pattern -AllMatches | Select-Object Path,LineNumber
  }
}

Prosty YARA snippet (heurystyka):

rule Invisible_Unicode_PUA_Eval_JS {
  meta: author="BlueTeam" description="GlassWorm-like hidden code"
  strings:
    $pua = /[\x{E000}-\x{F8FF}\x{FE00}-\x{FE0F}\x{E0100}-\x{E01EF}]+/u
    $eval = /eval\s*\(/ nocase
  condition:
    uint16(0) == 0xFFFE or uint16(0) == 0xFEFF or filesize < 5MB and $pua and $eval
}

2) Usuwanie podejrzanych rozszerzeń

# VS Code
code --list-extensions | grep -E "ai-driven-dev|sublime-merge|transient-emacs"
code --uninstall-extension ai-driven-dev.ai-driven-dev
code --uninstall-extension adhamu.history-in-sublime-merge
code --uninstall-extension yasuyuky.transient-emacs

# VSCodium
codium --list-extensions | grep -E "ai-driven-dev|sublime-merge|transient-emacs"
codium --uninstall-extension ai-driven-dev.ai-driven-dev
...

3) Twardnienie łańcucha wydawniczego

  • Sekrety: ogranicz TTL tokenów, wprowadź krótko żyjące PAT, automatyczną re-rotację po wykryciu wycieku; secret scanning w CI. (Zgodne z kierunkiem zmian deklarowanych przez OpenVSX).
  • Publikacja rozszerzeń: SBOM + skan artefaktów przed publikacją, signowanie, zasada 4-oczu na „release”.
  • Review kodu: wymuś widoczność znaków niewidzialnych w IDE i Diffach (np. włącz „Render Control Characters” w VS Code, używaj pre-commit hooków skanujących PUA). (W raporcie Aikido wskazano, że interfejsy nie zawsze oznaczały te znaki).
  • Egress i DNS: blokady do znanych IOC oraz monitorowanie zapytań powiązanych z Solaną używaną jako kanał C2 (telemetria proxy, NetFlow/Zeek).

Różnice / porównania z innymi przypadkami

  • Klasyczne „tylne drzwi” w npm (post-install, skrypty lifecycle) były wyraźniejsze w kodzie; tutaj ładunek „nie istnieje gołym okiem” i potrafi przenikać code review.
  • C2 w Solanie to nowszy trend utrudniający Takedown – w porównaniu do typowych domen/URL na VPS, które łatwiej zawiesić.
  • Spór o „worma”: OpenVSX wskazuje, że brak autonomicznej replikacji; badacze argumentują, że automatyczne aktualizacje + wykorzystanie wykradzionych tokenów de facto umożliwia rozprzestrzenianie się w ekosystemie. Wniosek operacyjny: dla obrony nie ma to znaczenia – ścieżka propagacji i tak omija kontrole.

Podsumowanie / kluczowe wnioski

  • Niewidzialny kod + blockchain C2 + kradzież sekretów = bardzo skuteczny model ataku na ekosystemy developerskie.
  • Nowa fala na OpenVSX pokazuje, że nawet po rotacji tokenów atakujący szybko wracają – potrzebne są krótkie TTL, skanowanie podczas publikacji i silne procesy w organizacjach.
  • Blue Teamy powinny wdrożyć skan PUA, bloki IOC, telemetrię egress i procedury IR wyspecjalizowane dla stacji developerskich (zależne od IDE/marketplace).

Źródła / bibliografia

  1. BleepingComputer – nowa fala, 3 rozszerzenia i >10k pobrań (08.11.2025). (BleepingComputer)
  2. BleepingComputer – analiza pierwszej fali (20.10.2025). (BleepingComputer)
  3. Eclipse Foundation (OpenVSX) – aktualizacja bezpieczeństwa, rotacje tokenów i stanowisko nt. „self-replicating” (27.10.2025; podsumowane także 02.11.2025). (Eclipse Foundation Staff Blogs)
  4. Koi Security – „GlassWorm Returns”: nowe IoC, opis pivotu i zrzuty z serwera atakujących (06.11.2025). (Koi)
  5. Aikido Security – „The Return of the Invisible Threat”: wzorzec jednolinijkowego dekodera, pivot na GitHub (31.10.2025). (Aikido)

China-linked APT na celowniku: długotrwała kampania szpiegowska przeciwko amerykańskiej organizacji non-profit

Wprowadzenie do problemu / definicja luki

W kwietniu 2025 r. amerykańska organizacja non-profit, zaangażowana w kształtowanie polityki międzynarodowej USA, została cicho skompromitowana przez aktora powiązanego z ChRL. Napastnicy utrzymywali dostęp przez tygodnie, budując persystencję i przygotowując się do długoterminowej kradzieży informacji. Najważniejsze: wykorzystano DLL sideloading z legalnym plikiem vetysafe.exe, a także MSBuild i harmonogram zadań do “bezplikowego” uruchamiania kodu oraz zainteresowanie kontrolerami domeny (DC), sugerujące zamiar przejęcia środowiska AD. To wpisuje się w wieloletnie wzorce chińskich operacji wywiadowczych ukierunkowanych na podmioty mające wpływ na politykę USA.

W skrócie

  • Cel: amerykańska instytucja non-profit wpływająca na politykę zagraniczną USA.
  • Czas: pierwsze ślady 5 kwietnia 2025; intensywna aktywność 16 kwietnia; utrzymanie dostępu przez tygodnie.
  • Wejście: skan masowy pod znane RCE (m.in. Log4Shell, CVE-2022-26134 w Atlassian, Apache Struts CVE-2017-9805, GoAhead RCE), następnie rekonesans i budowa persystencji.
  • TTP: scheduled task uruchamiający msbuild.exe, DLL sideloading przez vetysafe.exe → złośliwy sbamres.dll, aktywność dcsync-like; obserwacja Imjpuexc.exe (legalny komponent IME dla języków azjatyckich) na hostach.
  • Atrybucja: zbieżność TTP/artefaktów z kampaniami Kelp/Salt Typhoon (Earth Estries), Space Pirates i Earth Longzhi (sub-grupa APT41); możliwe współdzielenie narzędzi.

Kontekst / historia / powiązania

Opisane techniki i pliki łączono wcześniej z chińskimi grupami: Kelp / Salt Typhoon (Earth Estries), Space Pirates oraz Earth Longzhi (sub-grupa APT41). W 2024–2025 r. Salt Typhoon była publicznie wiązana przez FBI/CISA z serią kompromitacji operatorów telekomunikacyjnych (setki celów, dziesiątki krajów), co pokazuje skalę zdolności i apetyt wywiadowczy. Jednocześnie Trend Micro szczegółowo dokumentował długotrwałe operacje Earth Estries oraz wcześniej aktywność Earth Longzhi.

Analiza techniczna / szczegóły luki

Łańcuch ataku (kill chain)

  1. Wejście / Discovery – 5.04.2025: automatyczne skany pod publiczne RCE (Log4Shell, Atlassian OGNL, Struts, GoAhead). Celem było znalezienie “słabego punktu” ekspozycji internetowej.
  2. Rekonesans sieciowy – 16.04.2025: seria poleceń curl (również do 192.0.0.88), testy łączności i pingowanie zasobów wewnętrznych; następnie netstat do enumeracji połączeń/procesów.
  3. Persystencja i wykonanie – utworzono zadanie zaplanowane \Microsoft\Windows\Ras\Outbound, co godzinę uruchamiające msbuild.exe jako SYSTEM z plikiem outbound.xml. Z niego ładowano kod do csc.exe, który łączył się z C2: http://38.180.83[.]166/6CDF0FC26CDF0FC2.
  4. Ładowanie ładunku – o 02:50 uruchomiono niestandardowy loader (SHA-256: f52b86...cb69), który odszyfrowywał i ładował w pamięci prawdopodobny RAT.
  5. Uprzywilejowanie/AD – obserwacje aktywności DCSync-like oraz obecność Imjpuexc.exe tego samego dnia; silny nacisk na DC i rozprzestrzenianie się w domenie.

DLL sideloading przez VipreAV

Napastnicy wykorzystali legalny komponent vetysafe.exe (podpis „Sunbelt Software, Inc.”) do wstrzyknięcia sbamres.dll. Ten mechanizm wcześniej widziano u aktorów z Chin (np. Space Pirates, Earth Longzhi/APT41) oraz w połączeniu z Deed RAT / Snappy Bee, współdzielonym przez kilka grup z ekosystemu PRC (m.in. Kelp/Salt Typhoon/Earth Estries).

IOC (wybór)

  • Imjpuexc.exe – SHA-256: 51ffcff8...c4d
  • msoutbound6f7f099d...50ed9
  • sbamres.dll99a0b424...b106 (łączony także z Space Pirates)
  • mmp.exe (DCSync) – dae63db9...61e2
  • vetysafe.exee356dbd3...65af2
  • msascui.exef52b86b5...cb69
  • C2: 38.180.83[.]166/6CDF0FC26CDF0FC2
    Źródło: analiza Broadcom/Symantec

Mapowanie do MITRE ATT&CK (skrócone)

  • Initial Access: Exploit Public-Facing Application (T1190)
  • Execution: MsBuild (T1127.001), Command & Scripting (T1059)
  • Persistence: Scheduled Task/Job (T1053.005)
  • Privilege Escalation / Defense Evasion: DLL Search Order Hijacking (T1574.001), Signed Binary Proxy Execution (T1218)
  • Credential Access: DCSync (T1003.006)
  • Discovery: Network Service Scanning (T1046), System Network Connections Discovery (T1049)
  • C2: Application Layer Protocol – HTTP (T1071.001)

Praktyczne konsekwencje / ryzyko

  • Think-tank effect: organizacje non-profit zajmujące się polityką są łakomym kąskiem — mają wrażliwe kontakty/dokumenty, ale zwykle mniejszy budżet bezpieczeństwa niż agencje rządowe.
  • AD-first kompromitacja: próby DCSync i zainteresowanie DC wskazują na dążenie do pełnej dominacji domeny i trwałej obecności.
  • Tool-sharing utrudnia atrybucję: współdzielenie łańcuchów ładowania (np. vetysafe.exe + sbamres.dll) między Kelp/Earth Estries, Space Pirates i APT41/Longzhi zmniejsza wartość pojedynczych IOC — trzeba koncentrować się na behawiorystyce i korelacjach.
  • Szerszy obraz: kampanie Salt Typhoon z 2024–2025 pokazały potencjał strategicznego podsłuchu i pivotu między sektorami (telco → polityka/public policy).

Rekomendacje operacyjne / co zrobić teraz

1) Szybka walidacja (IR triage)

EDR/SIEM – zapytania ad-hoc

  • KQL (Microsoft 365 Defender / Sentinel): wykrywanie zadań MSBuild jako SYSTEM
DeviceProcessEvents
| where FileName =~ "schtasks.exe" and ProcessCommandLine has_all ("\\Microsoft\\Windows\\Ras\\Outbound", "msbuild.exe")
or (FileName =~ "msbuild.exe" and InitiatingProcessIntegrityLevel =~ "System")
  • Sigma (Windows Process Creation) – MsBuild + DLL sideloading vipre
title: Suspicious MsBuild with Outbound XML and Vipre Sideloading
id: 1d1c0b5b-2a5b-4c2e-9d1c-apt-cn-msbuild-vipre
logsource: { category: process_creation, product: windows }
detection:
  sel1:
    Image|endswith: '\msbuild.exe'
    CommandLine|contains: 'outbound.xml'
  sel2:
    Image|endswith: '\vetysafe.exe'
  condition: sel1 or sel2
level: high
tags:
  - attack.execution.T1127.001
  - attack.defense_evasion.T1218
  • YARA (na sbamres.dll wg znanych hash):
rule SBAMRES_Suspicious_DLL
{
  meta:
    description = "Detect sbamres.dll linked in Symantec report"
    sha256_1 = "99a0b424bb3a6bbf60e972fd82c514fd971a948f9cedf3b9dc6b033117ecb106"
  condition:
    uint16(0) == 0x5A4D and sha256(0, filesize) == sha256_1
}
  • PowerShell: IOC sweep (hash + ścieżki)
$hashes = @(
"51ffcff8367b5723d62b3e3108e38fb7cbf36354e0e520e7df7c8a4f52645c4d",
"6f7f099d4c964948b0108b4e69c9e81b5fc5ff449f2fa8405950d41556850ed9",
"99a0b424bb3a6bbf60e972fd82c514fd971a948f9cedf3b9dc6b033117ecb106",
"dae63db9178c5f7fb5f982fbd89683dd82417f1672569fef2bbfef83bec961e2",
"e356dbd3bd62c19fa3ff8943fc73a4fab01a6446f989318b7da4abf48d565af2",
"f52b86b599d7168d3a41182ccd89165e0d1f2562aa7363e0718d502b7e3fcb69"
)
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue |
  ForEach-Object {
    try {
      $h = Get-FileHash $_.FullName -Algorithm SHA256
      if ($hashes -contains $h.Hash) { $_.FullName }
    } catch {}
  }

(IOC pochodzą z publikacji Broadcom/Symantec).

2) Utrudnij techniki użyte w kampanii

  • Zablokuj sideloading: wdroż Application Control (WDAC/AppLocker) – zezwalaj na uruchamianie vetysafe.exe tylko z oczekiwanych katalogów i z poprawnym chain-of-trust; blokuj ładowanie niezaufanych DLL obok binariów vendorów AV.
  • Twarde zasady dla MSBuild: jeżeli niepotrzebny na stacjach/serwerach, blokuj msbuild.exe; w przeciwnym razie rejestruj i alertuj wykonywanie jako SYSTEM i z plikami .xml poza zaufanymi ścieżkami.
  • AD hardening: ogranicz DC replication permissions, monitoruj DSGetNCChanges/DCSync i nieużywane replication rights; wdroż tiering administracyjny i PAW dla kont uprzywilejowanych.
  • Egress control: blokuj ruch HTTP do 38.180.83.166 i wariantów ścieżek; wdroż proxy z inspekcją egress + DLP na ruch do nieznanych hostów.
  • Patch hygiene: ponieważ initial access mógł używać znanych RCE, włącz ataki priorytetowe (OGNL Atlassian CVE-2022-26134, Log4Shell, Struts 2017-9805, GoAhead 2017-17562) w planie poprawek oraz skany pre-/post-patch.

3) Dodatkowe zalecenia zgodne z wytycznymi rządowymi (Salt Typhoon)

  • Zgodnie z poradnikami CISA/FBI/NSA dot. Salt Typhoon: segmentacja krytycznych systemów, kontrola urządzeń brzegowych, rotacja poświadczeń, telemetry z routerów/telco, odseparowanie usług zarządzania i out-of-band management. Nawet jeśli nie jesteś telco, tradecraft przenika między sektorami.

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

  • Telco 2024–2025 vs think-tank 2025: w telco dominował cel SIGINT/komunikacje (podsłuch, CDR, dane abonentów), tutaj – influence intelligence (dokumenty, korespondencja, mapy wpływów). Jednak techniki (MSBuild, sideloading, legalne binaria, długi dwell time) są spójne.
  • APT41/Earth Longzhi: ten klan od lat używa elastycznych łańcuchów ładowania i sideloadingu do ukrycia RAT-ów. Obecne artefakty (vetysafe.exe + sbamres.dll) mają historyczne analogie.
  • Earth Estries (Kelp/Salt Typhoon): Trend Micro pokazał długofalowe, “ciche” kampanie z własnymi backdoorami i użyciem SnappyBee/Deed RAT; wnioskiem jest współdzielenie toolingu między podgrupami i trudna atrybucja.

Podsumowanie / kluczowe wnioski

  • Atak na non-profit pokazuje, że organizacje kształtujące politykę są w orbicie zainteresowań aktorów państwowych z ChRL.
  • Behawiorystyka > IOC: z racji współdzielenia narzędzi, kluczem jest korelacja TTP (MSBuild + SYSTEM + harmonogram + sideloading Vipre).
  • AD to crown jewels: każda wzmianka o DCSync/replication powinna wywoływać high-severity IR.
  • Wdrożenia application control, detekcji living-off-the-land i telemetrii egress znacząco utrudniają powtórkę.

Źródła / bibliografia

  1. Broadcom/Symantec: China-linked Actors Maintain Focus on Organizations Influencing U.S. Policy (06.11.2025) – główne źródło analizy (TTP/IOC/czas). (security.com)
  2. SecurityAffairs: omówienie incydentu i streszczenie wniosków Symantec (08.11.2025). (Security Affairs)
  3. CISA/NSA/FBI: Countering Chinese State-Sponsored Actors… (27.08.2025) – kontekst Salt Typhoon i zalecenia strategiczne. (CISA)
  4. Trend Micro: Breaking Down Earth Estries’ Persistent TTPs… (08.11.2024) – tło dot. Earth Estries/Salt Typhoon/Deed RAT. (www.trendmicro.com)
  5. Trend Micro: Hack the Real Box: APT41’s New Subgroup Earth Longzhi (09.11.2022) – tło dot. Earth Longzhi/APT41. (www.trendmicro.com)

LPI Security Essentials (Moduł 021.2) – Ocena Ryzyka Bez Mitów

Zanim zaczniesz

Ten artykuł jest częścią serii „Bezpłatny Kurs LPI Security Essentials, w ramach której znajdziesz wszystko, co potrzeba, aby zdać egzamin LPI Security Essentials 020-100 już za pierwszym razem.

Każdy moduł zawiera praktyczne przykłady, wyjaśnienia i materiały pomocnicze – wszystko po polsku, zrozumiale i konkretnie.

Czytaj dalej „LPI Security Essentials (Moduł 021.2) – Ocena Ryzyka Bez Mitów”