Archiwa: Linux - Strona 40 z 52 - Security Bez Tabu

CVE‑2025‑42944 – SAP NetWeaver AS Java

TL;DR

Krytyczna podatność deserializacji w SAP NetWeaver AS Java (RMI‑P4) pozwala nieautoryzowanemu napastnikowi zdalnie wykonać dowolne komendy systemowe przez wysłanie złośliwych obiektów Java na otwarty port P4 (5NN04/50004). Należy załatać wg not SAP #3634501 oraz wdrożyć dodatkowe filtrowanie deserializacji JVM wg #3660659, a także ograniczyć ekspozycję portu P4 tylko do zaufowanych sieci. Brak publicznych dowodów eksploatacji/PoC w momencie publikacji dostawców, ale ryzyko jest maksymalne (CVSS 10).


Krótka definicja techniczna

CVE‑2025‑42944 to błąd deserializacji niezaufanych obiektów Java w module RMI‑P4 SAP NetWeaver AS Java. Wystawiony port P4 (np. 50004) przyjmuje obiekty, które po zdeserializowaniu mogą uruchomić dowolny kod/komendy OS w kontekście procesu aplikacyjnego — bez uwierzytelnienia.


Gdzie występuje / przykłady platform

  • Windows / Linux: serwery z SAP NetWeaver AS Java (procesy java, jstart, sapstartsrv).
  • AD / ESXi: pośrednio — jeśli hosty SAP są członkiem domeny/VM; wektor RMI‑P4 pozostaje usługą aplikacyjną.
  • Chmury (AWS/Azure/GCP): NetWeaver na IaaS — krytyczne są Security Groups/NSG, które mogą otworzyć 5NN04 na świat.
  • Kubernetes: rzadkie, ale jeśli AS Java działa w kontenerze, zagrożeniem jest Service/LoadBalancer/NodePort wystawiający 5NN04.
  • M365: brak bezpośredniego wpływu; telemetryka MDE może pomóc w detekcji skutków (procesy).
    Porty P4/P4S/P4HTTP zgodnie z dokumentacją SAP.

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

RMI‑P4 to protokół zdalnych wywołań w AS Java. Usługa nasłuchuje na porcie 5NN04 (np. 50004) i obsługuje obiekty Java przesyłane do deserializacji. W CVE‑2025‑42944 brak właściwej walidacji powoduje, że przesłany złośliwy obiekt (tzw. gadget chain) zostaje zdeserializowany, co może zakończyć się wykonaniem komend systemowych (np. powłoki), skutkując pełnym naruszeniem C/I/A aplikacji. SAP wydał poprawkę (#3634501) oraz późniejsze zalecenia utwardzające z #3660659 — w tym zastosowanie JVM‑wide jdk.serialFilter dla klas dozwolonych/blokowanych, co ogranicza powierzchnię gadgetów.

Uwaga kontekstowa: niektóre źródła branżowe raportowały brak obserwacji PoC/eksploatacji w czasie publikacji, lecz historycznie luki RCE w SAP są szybko weaponizowane po ujawnieniu poprawek. Priorytet: patch + segmentacja + filtracja P4.


Artefakty i logi

ŹródłoCo zbieraćEID / polaWzorce / wskazówkiUwagi
SAP AS Java defaultTrace.* / logi RMIBłędy RMI‑P4, nieudane żądania, przeciążenia kolejkicom.sap.engine.services.rmi_p4.*Wpisy o przetwarzaniu żądań P4, błędach połączeń, anomalie kolejkiPrzykładowe komunikaty RMI‑P4 potwierdza KBA SAP (P4/50004, kolejka).
Windows SecurityTworzenie procesów po udanej RCE4688Rodzic: java.exe/jstart.exe/sapstartsrv.exeDziecko: cmd.exe/powershell.exe/wscript.exeKorelować z czasem ruchu na P4
SysmonStart procesu / sieć1, 3, 10ParentImage jak wyżej; połączenia z/do *:5NN04
Linux auditdexecve/fork potomków Javytype=EXECVEppid/exe = java/jstart/sapstartsrv + sh/bash
Zeek / FWRuch przychodzący na P4dest_port50004–59904 i końcówka …04 (wzorzec 5NN04)Segmentacja i allowlista źródeł
AWS CloudTrailZmiany SG otwierające P4AuthorizeSecurityGroupIngress/Egress, CreateSecurityGrouptoPort w [50004..59904] (w przybliżeniu wzorzec 5NN04)Wykrywa „otwarcie świata” na P4 w chmurze
K8s auditWystawienie P4 z klastracreate/patch Service/Ingressspec.ports.port: 5NN04 / nodePort kończący się …04Jeśli NetWeaver w kontenerach
M365 Unified Audit Log[brak zastosowania]Detekcja skutków via MDE (telemetria endpoint)

Detekcja (praktyczne reguły)

Sigma (Windows – proces potomny od Javy/SAP)

title: SAP NetWeaver AS Java -> podejrzany interpreter poleceń (CVE-2025-42944)
id: 4c7b3c8b-7b5f-4f5f-9f1a-jnr-p4-rce
status: experimental
description: Wykrywa uruchomienie cmd/PowerShell przez procesy java/jstart/sapstartsrv (skutek RMI-P4 RCE).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2025-42944
  - https://onapsis.com/blog/sap-security-patch-day-october-2025/
logsource:
  product: windows
  category: process_creation
detection:
  parent_java:
    ParentImage|endswith:
      - '\java.exe'
      - '\jstart.exe'
      - '\sapstartsrv.exe'
  child_shell:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
  condition: parent_java and child_shell
fields:
  - Image
  - CommandLine
  - ParentImage
  - ParentCommandLine
  - User
falsepositives:
  - Rzadkie zadania serwisowe/upgrade AS Java wywołujące skrypty systemowe
level: high
tags:
  - attack.t1059
  - attack.t1190
  - attack.t1210

Wariant Linux/auditd (skrót):

logsource:
  product: linux
  service: auditd
detection:
  parent_java: selection where exe endswith "java" or "jstart" or "sapstartsrv"
  child_shell: selection where a0 in ("sh","bash","zsh","ksh")
  condition: parent_java and child_shell

Splunk (SPL)

A. Proces potomny od Javy/SAP (Win Security 4688 lub Sysmon 1)

(index=win* (sourcetype=WinEventLog:Security EventCode=4688)
 OR (sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=1))
| eval parent=coalesce(ParentImage, ParentProcessName)
| eval child=coalesce(Image, NewProcessName)
| where match(lower(parent), "(\\\\|/)java\\.exe$|(\\\\|/)jstart\\.exe$|(\\\\|/)sapstartsrv\\.exe$")
  AND match(lower(child), "(\\\\|/)cmd\\.exe$|(\\\\|/)powershell\\.exe$|(\\\\|/)wscript\\.exe$|(\\\\|/)cscript\\.exe$")
| stats count min(_time) max(_time) values(CommandLine) by host parent child user

B. Połączenia przychodzące na P4 (Zeek/FW)

(index=net* OR index=zeek* OR index=firewall*)
| eval port_str=tostring(dest_port)
| where dest_port>=50004 AND dest_port<=59904 AND like(port_str,"%04")
| stats dc(src_ip) as uniq_src count by dest_ip dest_port
| sort - count

KQL (Microsoft Defender/Defender for Cloud)

A. Proces potomny od Javy/SAP

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","jstart.exe","sapstartsrv.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","sh","bash")
| summarize cnt=count(), firstSeen=min(Timestamp), lastSeen=max(Timestamp) 
  by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName, ProcessCommandLine

B. Ruch na P4 (wejściowy)

DeviceNetworkEvents
| where RemotePort between (50004 .. 59904) and RemotePort % 100 == 4
| where Direction in ("Inbound","Listen") or Action =~ "Allowed"
| summarize cnt=count(), sources=dcount(RemoteIP) by DeviceName, RemotePort, Protocol, InitiatingProcessFileName

CloudTrail (AWS) — otwarcie portu 5NN04 w SG (CloudTrail Lake SQL)

SELECT eventTime, eventName, userIdentity.type AS actor, 
       requestParameters.groupId AS sg,
       json_extract_scalar(requestParameters, '$.toPort') AS toPort,
       sourceIPAddress
FROM aws_cloudtrail_events
WHERE eventSource='ec2.amazonaws.com'
  AND eventName IN ('AuthorizeSecurityGroupIngress','AuthorizeSecurityGroupEgress','CreateSecurityGroup')
  AND CAST(json_extract_scalar(requestParameters, '$.toPort') AS INT) BETWEEN 50004 AND 59904
  AND LIKE(json_extract_scalar(requestParameters, '$.toPort'), '%04')
ORDER BY eventTime DESC;

Elastic / EQL

Proces potomny od Javy/SAP → interpreter poleceń

process where event.type == "start" and 
  (process.parent.name in ("java","jstart","sapstartsrv") or
   process.parent.executable : "*\\java.exe") and
  process.name in ("cmd.exe","powershell.exe","sh","bash","zsh","ksh")

Heurystyki / korelacje (co łączyć)

  • Inbound na P4 (5NN04/50004) z Internetu ⟶ w krótkim czasie dziecko cmd/sh od procesu java/jstart.
  • Nietypowe argumenty potomnych (/c, -c, wget, curl, nc, zapisy do /tmp/%TEMP%).
  • Nagły wzrost błędów RMI‑P4 w defaultTrace koreluje z ruchem na P4 i alertami EDR.
  • Zmiany Security Group/NSG odsłaniające P4 ⟶ pierwsze próby skanowania/połączeń (Zeek).
  • Brak P4S (SSL) i brak ACL/allowlist dla P4 w ICM/WAF ⟶ ryzyko wyższe.

False positives / tuning

  • Legalne działania administracyjne/upgrade’owe AS Java mogą krótkotrwale wywoływać skrypty systemowe.
  • Ogranicz do hostów SAP, kont serwisowych (<SID>adm), okien zmian i baseline’u procesów.
  • Whitelistuj znane źródła administracyjne (jump‑hosty), a alertuj Internet/nieznane ASN.
  • W regułach sieciowych uwzględnij fakt, że P4 = 5NN04, więc dopasowanie końcówki …04 zwiększa precyzję.

Playbook reagowania (IR)

  1. Identyfikacja/triage: potwierdź alert (proces potomek od Javy + ruch na 5NN04).
  2. Izolacja: odetnij host/y SAP od niezaufanych sieci; tymczasowo zablokuj 5NN04 na brzegu/WAF.
  3. Forensics wstępne:
    • Windows: pobierz 4688/Sysmon oraz C:\usr\sap\*\J00\work\defaultTrace*.
    • Linux: journalctl/auditd, /usr/sap/<SID>/J*/work/defaultTrace*.
  4. Weryfikacja ekspozycji portu:
    • Linux: ss -lntp | awk '$4 ~ /:5[0-9]{2}04/ {print}'
    • Windows (PS): Get-NetTCPConnection | ? { $_.LocalPort -ge 50004 -and $_.LocalPort -le 59904 -and ($_.LocalPort % 100 -eq 4) }
  5. Patche / hardening: zastosuj SAP Note #3634501 (fix) i #3660659 (JVM serialFilter).
  6. Rekonesans kompromitacji: szukaj anomalii w kontach, nietypowych plikach w %TEMP%//tmp, połączeń wychodzących C2.
  7. Eradykacja/odzyskanie: po patchu uruchom kontrolę integralności, rotację haseł/kluczy, przywrócenie zaufanej konfiguracji ICM/WAF.
  8. Lessons learned: zamknij ekspozycje P4, egzekwuj allowlist, monitoruj porty 5NN**.

Przykłady z kampanii / case studies

  • Materiały branżowe (Arctic Wolf) wskazywały brak obserwowanej eksploatacji i publicznego PoC w chwili publikacji, choć luki SAP są atrakcyjne i szybko weaponizowane po patchach.
  • Dodatkowy hardening (JVM jdk.serialFilter) został opisany przez Onapsis i powiązany z notą SAP #3660659 — warto wdrożyć nawet po aktualizacji.
  • Komunikaty prasowe/serwisy bezpieczeństwa szeroko opisywały wagę CVE‑2025‑42944 (CVSS 10.0) oraz że został ujęty w wrześniowych i październikowych poradnikach SAP.

Lab (bezpieczne testy) — przykładowe komendy

Tylko w odizolowanym labie. Celem jest weryfikacja detekcji, nie wykorzystanie luki.

  • Symulacja dziecka cmd od Javy (Windows): # skompiluj prostą klasę Java uruchamiającą bezpieczną komendę echo @" public class P4Echo { public static void main(String[] args) throws Exception { new ProcessBuilder("cmd.exe","/c","echo lab-test").inheritIO().start().waitFor(); } } "@ | Set-Content .\P4Echo.java javac P4Echo.java java P4Echo Oczekiwany efekt: trigger reguł Sigma/Splunk/KQL (rodzic java.exe → dziecko cmd.exe).
  • Ruch na port P4 (bez payloadu), do testu korelacji sieciowej: # Linux/WSL: próba TCP handshake do P4 nc -vz <host_sap> 50004 Oczekiwany efekt: wpisy w logach FW/Zeek; brak błędów aplikacji (brak payloadu).
  • Weryfikacja portów SAP wg dokumentacji: sprawdź, że P4 to 5NN04 (np. 50004).

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software: szybkie wdrożenie not #3634501 (fix) + #3660659 (serialFilter).
  • M1030 – Network Segmentation: ogranicz zasięg P4 do VLAN‑ów admin/jump‑host; brak dostępu z Internetu.
  • M1037 – Filter Network Traffic: WAF/NGFW — allowlista do P4/P4S, TLS preferowany (P4S).
  • M1031 – Network Intrusion Prevention: sygnatury/analiza protokołu, blokowanie anomalii RMI/P4.
  • M1048 – Application Isolation & Sandboxing: ograniczenie uprawnień konta procesu AS Java.

Powiązane techniki ATT&CK:

  • T1190,
  • T1210,
  • T1059

Źródła / dalsza lektura

  • NVD: opis, wektor, daty → CVE‑2025‑42944. (NVD)
  • SAP Security Notes: #3634501 (fix), #3660659 (hardening jdk.serialFilter). (strony wymagają dostępu) — linki referencyjne z NVD. (NVD)
  • Onapsis (Oct 2025 Patch Day): tło hardeningu i jdk.serialFilter. (Onapsis)
  • Arctic Wolf (Sep 2025): przegląd luki, brak PoC/eksploatacji w momencie publikacji. (Arctic Wolf)
  • The Hacker News (Oct 2025): kontekst i wzmianka o dodatkowym utwardzeniu. (The Hacker News)
  • Tenable (Nessus Plugin 270696): detale skanera i potwierdzenie zakresu (AS Java, CVSS 10). (Tenable®)
  • SAP Help (AS Java Ports): P4 = 5NN04, P4S/P4HTTP. (SAP Help Portal)
  • MITRE ATT&CK v18 — wersje i techniki: wersja bieżąca, T1190/T1210/T1059. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna)

  • Reguły: Sigma (proc‑child Java→cmd/sh), SPL/KQL/EQL wdrożone.
  • Korelacje: ruch na 5NN04 + proces potomny cmd/sh.
  • Telemetria SAP: zbieranie defaultTrace.* i logów RMI‑P4.
  • Monitoring chmury: alerty na AuthorizeSecurityGroupIngress/Egress dla portów 50004–59904.
  • Wizualizacja źródeł z Internetu próbujących P4 (Zeek/FW).

CISO (strategiczna)

  • Patch wg SAP #3634501 + hardening #3660659 na wszystkich krajobrazach.
  • Segmentacja: P4 tylko z sieci admin/jump‑host; brak ekspozycji publicznej.
  • WAF/NGFW: allowlista + wymuszenie P4S (TLS) tam gdzie możliwe.
  • Ćwiczenia IR: scenariusz RCE w SAP; gotowe playbooki i retencja logów ≥ 90 dni.
  • Przegląd uprawnień dla kont procesu AS Java; zasada najmniejszych uprawnień.

CVE-2025-42890 — SAP SQL Anywhere Monitor (Non‑GUI) — „hard‑coded credentials” (CWE‑798)

TL;DR

  • Krytyczna luka (CVSS 10.0) w SQL Anywhere Monitor (Non‑GUI) 17.0 — wbudowane poświadczenia mogą dać zdalne RCE bez uwierzytelnienia.
  • Zastosuj SAP Note 3666261; SAP klasyfikuje jako HotNews. Onapsis: poprawka usuwa moduł monitora; doraźnie wyłącz i usuń bazę monitora.
  • Od strony detekcji: identyfikuj hosty nasłuchujące/historycznie na TCP/4950, koreluj z nietypowymi logowaniami i nowymi procesami systemowymi po ruchu na tym porcie.
  • Na moment publikacji brak informacji SAP o aktywnej eksploatacji; patchuj priorytetowo.

Krótka definicja techniczna

CVE‑2025‑42890 to błąd klasy CWE‑798 (hard‑coded credentials) w SAP SQL Anywhere Monitor (Non‑GUI), pozwalający zdalnemu napastnikowi — bez wcześniejszego uwierzytelnienia — uzyskać dostęp do funkcji administracyjnych monitora i potencjalnie wykonać kod z wysokimi uprawnieniami, co skutkuje wysokim wpływem na C/I/A.

Gdzie występuje / przykłady platform

  • Windows / Linux (on‑prem / IaaS): monitor uruchamiany jako usługa, historycznie eksponujący HTTP na TCP/4950.
  • VM/Cloud (AWS/Azure/GCP): spotykany jako komponent pomocniczy przy środowiskach rozproszonych SQL Anywhere; w chmurze ruch widoczny w VPC/NSG Flow Logs.
  • AD/M365/K8s/ESXi: brak bezpośredniej zależności; komponent jest aplikacją serwerową spoza tych platform.

Szczegółowy opis techniki

Moduł SQL Anywhere Monitor (Non‑GUI) zawiera w kodzie stałe poświadczenia. Jeżeli usługa jest osiągalna sieciowo, atakujący może z ich użyciem uzyskać dostęp administracyjny do funkcji monitora, a następnie (w zależności od konfiguracji i scenariusza) doprowadzić do zdalnego wykonania kodu na hoście. SAP sklasyfikował lukę jako Critical/HotNews i udostępnił notę 3666261; Onapsis podaje, że poprawka deinstaluje omawiany komponent, a do czasu wdrożenia łatki należy zatrzymać usługę monitora i usunąć jego bazę repozytoryjną.
Praktycznie oznacza to, że ekspozycja TCP/4950 (lub port skonfigurowany lokalnie) z hosta z zainstalowanym monitorem znacząco zwiększa ryzyko nieautoryzowanego dostępu.

Artefakty i logi (tabela)

ŹródłoArtefakt / logCo obserwować
Firewall / NTA / ZeekPołączenia dst.port=4950/tcp (lub port monitora)Pierwsze kontakty z zewnątrz, skoki wolumenu, nowe źródła IP, długość sesji.
SysmonEID 3 (NetworkConnect)Procesy nasłuchujące/łączące się na 4950; korelacja z nietypowymi parentami.
Windows SystemEID 7045/7036 (Service install/start)Pojawienie się/uruchomienie usługi powiązanej z SQL Anywhere/monitorem.
Linuxsystemd journal / ss -lntpSłuchanie na porcie monitora, restart usługi po patchu.
EDR (proc)Nietypowe spawny (cmd.exe/powershell.exe/bash) po ruchu na 4950Możliwy follow‑on execution.
Cloud (AWS)VPC Flow Logsdstport=4950 + action=ACCEPT dla instancji z SQL Anywhere.
Azure/GCPNSG/Flow LogsAnalogiczne do VPC Flow.
K8s/M365[brak danych / nie dotyczy]

Detekcja (praktyczne reguły)

a) Sigma (firewall/NTA) — zewnętrzny dostęp do monitora

title: External Access to SAP SQL Anywhere Monitor (TCP/4950)
id: 0f2e2b2c-5f1c-4a3c-8b0a-4a2b4c7e4950
status: stable
description: Wykrywa połączenia przychodzące do SQL Anywhere Monitor (historycznie TCP/4950) spoza sieci zaufanych.
references:
  - https://help.sap.com/docs/SAP_SQL_Anywhere/.../Monitor-architecture  # port 4950
logsource:
  category: firewall
detection:
  selection:
    dst_port: 4950
    action: allow
  not_internal:
    src_ip|cidr:
      - 10.0.0.0/8
      - 172.16.0.0/12
      - 192.168.0.0/16
  condition: selection and not not_internal
fields:
  - src_ip
  - dst_ip
  - dst_port
  - bytes
  - rule
falsepositives:
  - Legalny zdalny dostęp administracyjny z zaufanych adresów (rozszerz allowlistę).
level: high

b) Splunk (CIM: Network_Traffic)

| tstats summariesonly=false count as events
  from datamodel=Network_Traffic.All_Traffic
  where All_Traffic.dest_port=4950 All_Traffic.action=allowed
  by _time span=5m All_Traffic.dest, All_Traffic.src
| where NOT cidrmatch("10.0.0.0/8", 'All_Traffic.src')
  AND NOT cidrmatch("172.16.0.0/12", 'All_Traffic.src')
  AND NOT cidrmatch("192.168.0.0/16", 'All_Traffic.src')
| eventstats sum(events) as ev_by_pair by All_Traffic.dest, All_Traffic.src
| sort - ev_by_pair

c) KQL (Microsoft Defender for Endpoint / Sentinel – DeviceNetworkEvents)

DeviceNetworkEvents
| where Timestamp > ago(7d)
| where LocalPort == 4950 or RemotePort == 4950
| where ActionType in ("ConnectionSuccess", "InboundConnectionAccepted", "ListeningConnectionCreated")
| summarize firstSeen=min(Timestamp), lastSeen=max(Timestamp), cnt=count()
  by DeviceName, InitiatingProcessFileName, LocalIP, LocalPort, RemoteIP, RemotePort, Protocol
| order by cnt desc

d) AWS VPC Flow Logs (Athena)

SELECT dstaddr, dstport, srcaddr, COUNT(*) AS hits, MIN(start) AS first_seen, MAX(end) AS last_seen
FROM vpc_flow_logs
WHERE action='ACCEPT' AND dstport=4950 AND start BETWEEN from_iso8601_timestamp('${from}') AND from_iso8601_timestamp('${to}')
GROUP BY dstaddr, dstport, srcaddr
ORDER BY hits DESC;

e) Elastic (EQL)

network where destination.port == 4950 and event.action == "allowed"
  and not cidrmatch(source.ip, ["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"])

Uwaga: port 4950 jest historyczną wartością domyślną dla monitora — potwierdź w swojej konfiguracji (również pod kątem reverse proxy).

Heurystyki / korelacje

  • Ruch → wykonanie: przepływy na 4950 (lub port monitora) tuż przed nowymi procesami systemowymi na hoście (cmd/powershell/bash, instalacja usług).
  • Nowa ekspozycja: pojawienie się procesu nasłuchującego na 4950 po wdrożeniu lub aktualizacji hosta.
  • Anomalia źródeł: dostęp do monitora spoza adresów operacyjnych/monitorujących (jump‑hosty, narzędzia APM).
  • Zachowanie po kompromitacji: dodanie kont lokalnych, nowe zadania zaplanowane, modyfikacje reguł zapory.

False positives / tuning

  • Wewnętrzne systemy monitoringu/aplikacje APM mogą korzystać z dedykowanych portów — allowlista IP i okna czasowe maintenance.
  • Port 4950 bywa używany w dawnych wdrożeniach innych narzędzi — potwierdzaj banery/usługę zanim podniesiesz incydent.

Playbook reagowania (IR) — kroki + komendy

  1. Identyfikacja zasobu: inwentarz hostów z SQL Anywhere Monitor (Non‑GUI) 17.0. (SAP Note 3666261)
  2. Izolacja sieciowa: tymczasowo zablokuj dostęp do portu monitora z niezaufanych adresów (lub całkowicie).
    • Windows (PowerShell): New-NetFirewallRule -DisplayName "Block SQL Anywhere Monitor" -Direction Inbound -LocalPort 4950 -Protocol TCP -Action Block
    • Linux: sudo iptables -A INPUT -p tcp --dport 4950 -j DROP
  3. Wyłączenie komponentu: zatrzymaj usługę monitora; usuń instancję bazy monitora (zalecenie tymczasowe Onapsis).
  4. Wdrożenie poprawki SAP: zastosuj notę 3666261 (HotNews). Wg Onapsis poprawka usuwa komponent monitorujący.
  5. Rotacja sekretów: zmień hasła kont serwisowych powiązanych z SQL Anywhere / monitorowaniem.
  6. Łańcuch dowodowy: przejrzyj logi (sekcje 6–7) pod kątem nadużyć przed patchowaniem; skoreluj z EDR.
  7. Weryfikacja „po”: brak nasłuchu na 4950 (netstat/ss), brak procesu/usługi monitora, brak ruchu w Flow Logs.

Przykłady z kampanii / case studies

  • Stan na 11–12 lis 2025: SAP nie raportował wykorzystania „in the wild”; media branżowe również nie wskazują aktywnej eksploatacji — priorytet patchowania pozostaje wysoki ze względu na CVSS 10.0.

Lab (bezpieczne testy) — przykładowe komendy

Cel: sprawdzić, czy detekcje zadziałają bez reprodukowania luki.

  • Symulacja ekspozycji portu (host‑lab):
    • Windows: Start-Process -WindowStyle Hidden -FilePath "powershell.exe" -ArgumentList "while($true){$l=New-Object Net.Sockets.TcpListener([Net.IPAddress]::Any,4950);$l.Start();Start-Sleep -Seconds 600}"
    • Linux: sudo nc -l -p 4950
  • Weryfikacja logów:
    • Zeek/Suricata: wygeneruj połączenie curl http://<host>:4950/ z innego hosta labowego i sprawdź reguły Sigma/Splunk/KQL.
  • Test playbooku: zastosuj regułę zapory, sprawdź, że zapytania z sekcji 7 przestają wykrywać ruch.

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1037 – Filter Network Traffic (odcięcie ekspozycji monitora).
  • M1042 – Disable or Remove Feature or Program (usunięcie komponentu monitora zgodnie z zaleceniem).
  • M1036 – Account Use Policies (wymuszenie zasad użycia kont; lockouty, ograniczenia czasu).
  • M1026 – Privileged Account Management (segregacja kont serwisowych).
  • M1047 – Audit (ciągłe monitorowanie ruchu/zdarzeń powiązanych).

Powiązane techniki ATT&CK:

  • T1078.001,
  • T1210

Źródła / dalsza literatura

  • NVD: opis CVE, wektor CVSS, CWE‑798. (NVD)
  • SAP Security Patch Day (listopad 2025): produkt, wersja, klasyfikacja HotNews, CVSS 10.0, nr noty 3666261. (SAP Support Portal)
  • Onapsis (analiza): usunięcie komponentu, zalecenie wyłączenia i usunięcia bazy monitora. (Onapsis)
  • SecurityWeek: podsumowanie pakietu SAP, brak informacji o eksploatacji w momencie publikacji. (SecurityWeek)
  • BleepingComputer: streszczenie opisu CVE i wagi problemu. (BleepingComputer)
  • Dokumentacja SQL Anywhere — architektura monitora i domyślny port 4950. (infocenter.sybase.com)

Checklisty dla SOC / CISO

SOC:

  • Znajdź aktywne nasłuchy na TCP/4950 (lub port monitora) i ruch zewnętrzny → wewnątrz.
  • Uruchom reguły z sekcji 7; przejrzyj 7/30 dni wstecz.
  • Koreluj ruch z procesami systemowymi i nowymi usługami.
  • Eskaluj hosty z artefaktami na IR; potwierdź wersję i obecność komponentu monitora.

CISO / właściciel systemu:

  • Wymuś wdrożenie SAP Note 3666261 na wszystkich środowiskach (on‑prem/VM/IaaS).
  • Wdroż tymczasowe kontrole sieciowe (blokada portu/ACL/WAF).
  • Zaplanuj rotację sekretów/kont serwisowych i weryfikację uprawnień.
  • Zaktualizuj rejestr ryzyk (CRITICAL) i polityki „feature removal” dla komponentów wycofywanych przez producenta.

CVE-2019-11580 — Atlassian Crowd/Crowd Data Center RCE przez pdkinstall

TL;DR

Krytyczna luka w Atlassian Crowd i Crowd Data Center umożliwiała (bez uwierzytelnienia) przesłanie i zainstalowanie arbitralnego pluginu przez endpoint administracyjny — w efekcie zdalne wykonanie kodu (RCE). Wpływ: pełne przejęcie hosta aplikacyjnego/Tomcata, często zakończone doinstalowaniem webshella i dalszą penetracją sieci. Naprawa: aktualizacja do wersji 3.0.5/3.1.6/3.2.8/3.3.5/3.4.4 lub nowszej; doraźnie usunięcie paczki pdkinstall-plugin. Detekcja: szukaj żądań do /crowd/admin/uploadplugin.action oraz anomalii „java → sh/cmd” na hoście.


Krótka definicja techniczna

CVE‑2019‑11580 wynika z błędnie pozostawionego w buildach produkcyjnych pluginu developerskiego pdkinstall, który pozwalał (także bez autoryzacji) na upload i instalację komponentów OSGi/JAR. Umożliwia to instalację złośliwego pluginu i wykonanie kodu w kontekście procesu aplikacyjnego (Tomcat/Java), co skutkuje RCE.


Gdzie występuje / przykładowe platformy

  • Systemy: Linux/Unix (typowo), Windows (usługa Crowd/Tomcat).
  • Środowiska: bare metal, VM (ESXi/Hyper‑V), kontenery/K8s (Crowd w kontenerze lub jako Helm chart), reverse proxy (NGINX/Apache), WAF.
  • Chmury: AWS (EC2 + ALB/WAF), Azure (VM + App Gateway/WAF), GCP (Compute Engine + HTTP(S) LB).
  • Tożsamość: Crowd integruje się z AD/LDAP/Azure AD/M365, ale sama luka dotyczy Crowd, nie tych usług.

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

  • Przyczyna: w buildach Crowd błędnie włączono pdkinstall development plugin. Pozwalał on na instalację pluginów również na instancjach produkcyjnych.
  • Wektor: żądanie HTTP do endpointu administracyjnego odpowiedzialnego za upload pluginów (np. ścieżka zawierająca /crowd/admin/uploadplugin.action). Po stronie serwera plugin jest ładowany i wykonywany w kontekście aplikacji.
  • Skutki: wykonanie dowolnego kodu (Java/serwlety), możliwość dropu webshella, ruchu bocznego, kradzieży poświadczeń i pivotu. W praktyce technika była powszechnie wykorzystywana do instalacji webshelli.
  • Zasięg wersji: dotyczy wersji 2.1.0 ≤ v < 3.0.5, 3.1.0 ≤ v < 3.1.6, 3.2.0 ≤ v < 3.2.8, 3.3.0 ≤ v < 3.3.5, 3.4.0 ≤ v < 3.4.4; naprawione w 3.0.5 / 3.1.6 / 3.2.8 / 3.3.5 / 3.4.4. CVSS v3.1: 9.8 (CRITICAL).

Artefakty i logi (SOC „punkty zaczepienia”)

ŹródłoEID / typCo obserwowaćPrzykłady / uwagi
Web access (NGINX/Apache/ALB/WAF)HTTP accessŻądania do /crowd/admin/uploadplugin.action, metody POST/PUT, wzrost 4xx/5xx przed sukcesemEndpoint potwierdzony w analizach; logi WAF/ALB/AGW zawierają URI/metodę.
Aplikacja Crowd (atlassian-crowd.log)log4jWpisy dot. instalacji/ładowania pluginów, błędów UPM, wyjątków OSGiLokalizacja/konfiguracja logów Crowd.
Tomcat (catalina.out)logNiespodziewane błędy serwletów/przeładowanie klas tuż po podejrzanym żądaniuCrowd loguje zarówno do własnego logu, jak i Tomcata.
Windows4688 (Process Create), 7045 (Service Install), Sysmon 1/3/11ParentImage=java.exe uruchamia cmd.exe/powershell.exe, sieć wychodząca, tworzenie JAR w katalogach pluginówKorelować z czasem żądań HTTP
Linuxauditd EXECVE / EDRPPID=java uruchamia /bin/sh, curl/wget, „reverse shell” artefakty
K8s (jeśli Crowd w K8s)Ingress/Nginx accessURI jak wyżej; wzrost 5xx; nietypowe źródła
AWSWAF/ALB logs (CloudWatch/S3)httpRequest.uri zawiera ścieżkę; metoda POSTCloudWatch Logs Insights/Athena do analizy
AzureApp Gateway/WAFrequestUri_s zawiera ścieżkę; httpMethod_s = POSTDane w AzureDiagnostics
M365nie dotyczy bezpośrednioCrowd integruje się z M365/IdP, ale luka jest po stronie Crowd
CloudTrailnie dotyczy (aplikacyjny HTTP, nie API AWS)Traktuj CloudTrail pobocznie (zmiany infra)

Detekcja (praktyczne reguły)

Sigma (webserver → próby uploadu pluginu)

title: Atlassian Crowd CVE-2019-11580 - Podejrzany upload pluginu
id: 4c8f5ee1-7f6a-4a7c-9b8e-cc9a2cfe9e9a
status: experimental
description: Wykrywa żądania do endpointu uploadu pluginów Crowd często nadużywanego w CVE-2019-11580.
references:
  - https://confluence.atlassian.com/crowd/crowd-security-advisory-2019-05-22-970260700.html
  - https://nvd.nist.gov/vuln/detail/CVE-2019-11580
  - https://www.rapid7.com/db/modules/exploit/multi/http/atlassian_crowd_pdkinstall_plugin_upload_rce/
logsource:
  category: webserver
detection:
  sel_path:
    url|contains: '/crowd/admin/uploadplugin.action'
    cs-uri-stem|contains: '/crowd/admin/uploadplugin.action'
  sel_method:
    http_method|contains:
      - POST
      - PUT
    cs-method|contains:
      - POST
      - PUT
  condition: sel_path and sel_method
fields:
  - src_ip
  - url
  - http_user_agent
  - http_referer
  - status
falsepositives:
  - Legalna instalacja/aktualizacja pluginu przez admina (okno serwisowe)
level: high
tags:
  - attack.T1190
  - cve.2019-11580

(endpoint/metoda potwierdzone w źródłach)

Splunk (SPL) — logi www

index=web (sourcetype=access_combined OR sourcetype=aws:alb:accesslogs OR sourcetype=nginx:ingress)
| eval uri=coalesce(cs_uri_stem, uri_path, request, uri)
| eval method=coalesce(cs_method, method, http_method)
| search uri="/crowd/admin/uploadplugin.action" method IN ("POST","PUT")
| stats count min(_time) as first max(_time) as last values(status) as http_status by src_ip, uri, method, useragent
| where count>=1

KQL (Azure) — App Gateway/WAF

AzureDiagnostics
| where Category in ("ApplicationGatewayAccessLog","ApplicationGatewayFirewallLog")
| where requestUri_s has "/crowd/admin/uploadplugin.action"
| where httpMethod_s in ("POST","PUT")
| project TimeGenerated, clientIP_s, requestUri_s, httpMethod_s, httpStatus_d, userAgent_s

AWS — CloudWatch Logs Insights (WAF/ALB)

fields @timestamp, httpRequest.clientIp, httpRequest.uri, httpRequest.httpMethod, terminatingRuleId
| filter httpRequest.uri like '/crowd/admin/uploadplugin.action'
| filter httpRequest.httpMethod in ['POST','PUT']
| sort @timestamp desc

Elastic / EQL — post‑exploitation na hoście (Java → shell)

process where event.type == "start" and
  process.parent.name : ("java","java.exe","tomcat","catalina.sh","catalina.bat") and
  process.name : ("bash","sh","cmd.exe","powershell.exe","curl","wget","nc","socat")

Heurystyki / korelacje (co łączyć)

  • Łańcuch czasowy: (1) żądanie do /crowd/admin/uploadplugin.action(2) nagły 200/302 lub 5xx→200 → (3) na hoście java uruchamia sh/cmd(4) połączenie wychodzące na nietypowe IP/port.
  • Integracja z WAF: wysoki odsetek 4xx/5xx na tej ścieżce + próby multipart POST od pojedynczego źródła.
  • FIM/baseline: nowe .jar w katalogach pluginów Crowd; nagłe zmiany w atlassian-bundled-plugins.zip.

False positives / tuning

  • Legalne okna administracyjne (instalacja/aktualizacja pluginów) — stosuj allowlist IP/adminów oraz korelację z change window.
  • Skanery podatności/Nuclei — zwykle GET/HEAD i brak dalszych artefaktów hostowych.
  • Reverse proxy health checks — nie używają POST/PUT na admin‑endpointach.
    Tuning: ogranicz alerty do POST/PUT + 2xx/3xx i wyklucz znane sieci adminów; koreluj z host‑EDR (Java→shell).

Playbook reagowania (IR) — kroki & komendy

Kontekst tylko defensywny. Wykonuj wyłącznie w środowisku, którego jesteś administratorem.

  1. Triage & potwierdzenie
    • Sprawdź wersję Crowd (podatne pasma); jeżeli poniżej 3.4.4 (lub odpowiedni fix dla linii), traktuj jako incydent krytyczny.
    • Przejrzyj WAF/ALB/NGINX: żądania do /crowd/admin/uploadplugin.action.
  2. Izolacja
    • Tymczasowo zablokuj dostęp do ścieżki na WAF/reverse proxy (rule deny URI).
    • Rozważ odłączenie hosta od Internetu (zachowując dostęp IR).
  3. Zachowanie dowodów
    • Zrzut logów: web, atlassian-crowd.log, catalina.out; snapshot VM.
    • Hash/backup katalogów pluginów.
  4. Łowiectwo zagrożeń (host)
    • Linux: grep -E "uploadplugin|multipart|pdkinstall" /var/log/nginx/access.log* grep -i "plugin" $CROWD_HOME/logs/atlassian-crowd.log find $CROWD_HOME -type f -name "*.jar" -mmin -4320
    • Windows (PowerShell/Sysmon): filtruj EventID 1 (ParentImage=java.exe) → cmd.exe/powershell.exe.
  5. Eradykacja
    • Patch do wersji z poprawką (3.0.5/3.1.6/3.2.8/3.3.5/3.4.4 lub nowszej).
    • Jeżeli patch odroczony: usuń pdkinstall-plugin z instalacji i bundla (instrukcja vendor).
    • Usuń nieznane pluginy, przywróć baseline, zrestartuj usługę (kontrolując logi po starcie).
  6. Odzyskiwanie i weryfikacja
    • Testy funkcjonalne, monitorowanie podwyższone przez 7–14 dni, rotacja haseł/kluczy używanych przez Crowd (integracje AD/LDAP).
  7. Lekcje / hardening
    • WAF rule per‑URI, segmentacja DMZ, wymuszenie SSO/AdminVPN, FIM katalogów pluginów.

Przykłady z kampanii / case studies

  • CISA (AA21‑209A): luka była rutynowo wykorzystywana do instalacji webshelli na serwerach ofiar.
  • KEV: CVE‑2019‑11580 ujęty w CISA Known Exploited Vulnerabilities — zalecana pilna aktualizacja.
  • Detekcje rynkowe: dostawcy NDR/IDS publikowali sygnatury/artefakty dla tego CVE (m.in. opis ryzyka i łańcucha eksploatacji).

Lab (bezpieczne testy) — przykładowe komendy

Uwaga: Poniższe testy nie eksploatują luki. Służą do walidacji detekcji w kontrolowanym labie.

  1. Generowanie śladu www (WAF/NGINX/ALB)
# symulacja niegroźnego ruchu do admin-URI (powinno zwrócić 401/403/404/405)
curl -I -X POST https://lab.example.com/crowd/admin/uploadplugin.action
  1. Walidacja korelacji hostowej (Linux)
# kontrolowany start i szybkie zakończenie powłoki, do sprawdzenia korelacji "java -> sh"
sudo -u crowd bash -c 'true'   # wygeneruj bezpieczny event exec
  1. FIM (plik JAR w katalogu pluginów — lab only)
# NIE w produkcji: sprawdź, czy FIM łapie nowe JAR-y
touch $CROWD_HOME/shared/plugins/test-fim.jar

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software: szybka aktualizacja Crowd do wersji zawierającej fix.
  • M1042 — Disable or Remove Feature or Program: usunięcie pdkinstall-plugin i zbędnych komponentów.
  • M1030 — Network Segmentation: odseparowanie Crowd w DMZ/segmencie publikacyjnym.
  • M1047 — Audit: stały przegląd logów aplikacyjnych i kontroli integrity komponentów.

Powiązane techniki ATT&CK:

  • T1190,
  • T1505.003,
  • T1105,
  • T1059 .

Źródła / dalsza literatura

  • Atlassian: Crowd Security Advisory 2019‑05‑22 — wersje podatne, wersje naprawcze, mitigacja. (Atlassian Documentation)
  • NVD: opis i CVSS dla CVE‑2019‑11580. (NVD)
  • Rapid7 (opis modułu wykrywającego endpoint uploadu pluginu). (Rapid7)
  • CISA: Top Routinely Exploited Vulnerabilities — użycie do instalacji webshelli; KEV. (CISA)
  • Atlassian: lokalizacja i konfiguracja logów Crowd/Tomcat. (Atlassian Documentation)
  • ATT&CK: T1190, T1505.003, T1105, T1059 (wersje i zakres). (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Monitoruj POST/PUT na /crowd/admin/uploadplugin.action (www/WAF/ALB).
  • Koreluj z hostem: javash/cmd, nowe *.jar w katalogach pluginów.
  • Wdróż reguły Sigma/SPL/KQL z §7 i testy z §12.
  • Ustal allowlist IP adminów Crowd i okna serwisowe.
  • Myślistwo: poszukaj webshelli/serwletów nietypowych (hash/baseline).

CISO/Architekt (strategiczna):

  • Patch policy: Crowd ≥ naprawione wersje (3.0.5/3.1.6/3.2.8/3.3.5/3.4.4) lub nowsze.
  • Segmentacja DMZ i WAF z regułą blokującą wrażliwy URI.
  • FIM katalogów pluginów i podpisywanie komponentów (jeśli możliwe).
  • Przeglądy audit logów UPM i retencja logów aplikacyjnych.
  • Procedury IR: izolacja, backup artefaktów, rotacja sekretów systemów zintegrowanych (AD/LDAP/M365).

Status vendor: aktualizacja opublikowana 22 maja 2019; patche dostępne dla linii 3.0.x–3.4.x; problem jest ujęty w KEV.

CVE-2015-5122 — Adobe Flash Player UAF (opaqueBackground)

TL;DR

CVE‑2015‑5122 to krytyczna luka use‑after‑free w Adobe Flash Player (klasa DisplayObject/właściwość opaqueBackground), aktywnie wykorzystywana w 2015 r. m.in. przez zestawy exploitów (Angler, RIG, Neutrino) i kampanie watering‑hole. Daje zdalne wykonanie kodu po wizycie na złośliwej lub skompromitowanej stronie (łańcuch T1189 → T1203), typowo kończąc się uruchomieniem interpretera skryptów/LOLBin z procesu przeglądarki. Dziś Flash jest EOL i globalnie blokowany, ale detekcje nadal mają wartość do wykrywania analogicznych łańcuchów klient‑strona. Patch dla Flash: 18.0.0.209 (APSB15‑18).


Krótka definicja techniczna

CVE‑2015‑5122 to błąd Use‑After‑Free (CWE‑416) w implementacji ActionScript 3 (AS3) Adobe Flash Player, który przy specjalnie spreparowanej zawartości SWF prowadzi do korupcji pamięci i zdalnego wykonania kodu bez interakcji użytkownika poza odwiedzeniem strony. Dotyczy wersji 13.x–18.0.0.203 (Windows/macOS), 11.x–11.2.202.481 (Linux) i Chrome‑Linux do 18.0.0.204; podatność była wykorzystywana w naturze w lipcu 2015 r. (CVSS v3.1: 9.8).


Gdzie występuje / przykłady platform

  • Windows / macOS / Linux (endpointy z przeglądarkami) — wektorem jest załadowanie wtyczki Flash (PPAPI/NPAPI/ActiveX) i wykonanie SWF z exploitami; historycznie obserwowano ładowanie modułów pepflashplayer.dll, NPSWF*.dll, procesy pokrewne (np. plugin‑container.exe / FlashPlayerPlugin_.exe).
  • Active Directory / VDI — ryzyko lateralne, jeśli stacje domenowe/VDI mają przestarzały Flash.
  • Chmury (AWS/Azure/GCP), K8s, ESXi, M365 — sama podatność dotyczy klienta, ale artefakty sieciowe (pobrania .swf z S3/CloudFront) mogą być widoczne w telemetrych chmurowych organizacji hostującej treści.
  • Stan obecny — Adobe zakończyło wsparcie z końcem 2020 r. i blokuje uruchamianie Flash od 12 stycznia 2021 r., lecz „zombie‑instalacje” mogą nadal istnieć w niszach środowisk.

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

Atakujący dostarcza spreparowany plik SWF, który po załadowaniu przez wtyczkę Flash wyzwala UAF w obsłudze opaqueBackground w klasie DisplayObject. Stage shellcode/ROP przejmuje kontrolę w procesie wtyczki/przeglądarki i uruchamia trwały stage‑2 (np. interpreter skryptów lub „LOLBin”), często po cichu ściągając ładunek. W 2015 r. CVE‑2015‑5122 błyskawicznie trafił do zestawów exploitów (Angler, RIG, Neutrino, Magnitude) i był użyty w watering‑hole przeciw firmie z sektora lotniczego — właśnie dlatego technika była wyjątkowo skuteczna w łańcuchach malvertising i „wejdź‑i‑zainfekuj”.

Łańcuch ATT&CK (częsty):
T1189 (Drive‑by) → T1203 (Exploitation for Client Execution) → uruchomienie interpretera/LOLBin (np. powershell.exe, mshta.exe, rundll32.exe) → T1105 (Ingress Tool Transfer)/C2. (Wzorzec zgodny z analitykami/detection strategies MITRE v18).

Łatanie i reakcje ekosystemu (2015): Adobe wydało poprawkę APSB15‑18 podnosząc Flash do 18.0.0.209 (i 13.0.0.305). Mozilla tymczasowo „soft‑blockowała” wersje do 18.0.0.203.


Artefakty i logi

ŹródłoArtefakt / zdarzenieWartość dla detekcji
Windows SysmonEID 1 Process Create – dziecko powershell.exe, wscript.exe, mshta.exe, rundll32.exe, regsvr32.exe, cmd.exe, msiexec.exe uruchomione przez chrome.exe/msedge.exe/iexplore.exe/firefox.exe/plugin-container.exe/FlashPlayerPlugin_*.exeSilny sygnał post‑eksploitacyjny (client → OS).
EID 3 Network Connection – po podejrzanym procesie (C2/transfer)Korelacja czasowa po EID 1.
EID 7 Image Loaded – załadowanie pepflashplayer.dll / NPSWF*.dllKontekst historyczny (Flash w systemie).
EID 11 FileCreate – drop w %TEMP%/%APPDATA% (EXE/DLL/SCT/VBS)Artefakt płatka.
EID 22 DNS Query – zapytania do rzadkich domen chwilę po wizycie WWWCzęsty sygnał EK/C2.
Windows Security4688 Process CreationAlternatywa gdy brak Sysmon.
Przeglądarka/OSCrash/WER Event 1001 po błędzie wtyczkiUAF bywa poprzedzony niestabilnością.
Proxy/DNS/NGFWŻądania *.swf, nietypowe przekierowania, malvertisingKontekst T1189.
AWS CloudTrail (Data events/S3)GetObject na kluczach *.swf z publicznych bucketów (gdy Twoja organizacja hostuje treści)Do skanów higieny/ekspozycji.
K8s audit / M365[nie dotyczy]Luka dotyczy klienta, nie kontrol‑plane/SaaS.

Detekcja (praktyczne reguły)

Sigma (Windows / process_creation)

title: Browser/Flash Spawning Script Interpreters Or LOLBins
id: 4d9b8f83-7c2b-45b1-9e4b-ffb1b7b31012
status: stable
description: Wykrywa uruchomienie interpreterów/LOLBinów jako dziecka procesu przeglądarki/wtyczki Flash (łańcuch po T1203/CVE-2015-5122).
author: Badacz CVE
logsource:
  category: process_creation
  product: windows
detection:
  parent_browsers:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\iexplore.exe'
      - '\firefox.exe'
      - '\plugin-container.exe'
      - '\FlashPlayerPlugin_32.exe'
      - '\FlashPlayerPlugin_64.exe'
  suspicious_children:
    Image|endswith:
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\cmd.exe'
      - '\bitsadmin.exe'
      - '\certutil.exe'
      - '\msiexec.exe'
  condition: parent_browsers and suspicious_children
fields:
  - User
  - CommandLine
  - ParentCommandLine
  - Image
  - ParentImage
  - ProcessGuid
  - ParentProcessGuid
falsepositives:
  - Aktualizacje/instalatory uruchamiane z przeglądarki przez użytkownika
level: high
tags:
  - attack.t1203
  - attack.t1189

Splunk (Sysmon)

index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(coalesce(ParentImage,ParentProcessName)), child=lower(Image)
| where like(parent,"%\\chrome.exe") OR like(parent,"%\\msedge.exe") OR like(parent,"%\\iexplore.exe")
  OR like(parent,"%\\firefox.exe") OR like(parent,"%\\plugin-container.exe") OR like(parent,"%\\flashplayerplugin%")
| where child like("%\\powershell.exe") OR child like("%\\wscript.exe") OR child like("%\\cscript.exe")
  OR child like("%\\mshta.exe") OR child like("%\\rundll32.exe") OR child like("%\\regsvr32.exe")
  OR child like("%\\cmd.exe") OR child like("%\\bitsadmin.exe") OR child like("%\\certutil.exe") OR child like("%\\msiexec.exe")
| stats count min(_time) as first_seen max(_time) as last_seen values(CommandLine) as child_cmd by host, user, parent, child, ParentCommandLine, ProcessGuid, ParentProcessGuid
| convert ctime(first_seen) ctime(last_seen)

KQL (Microsoft Defender for Endpoint / Sentinel)

DeviceProcessEvents
| where Timestamp > ago(14d)
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","iexplore.exe","firefox.exe","plugin-container.exe",
                                      "FlashPlayerPlugin_32.exe","FlashPlayerPlugin_64.exe")
| where FileName in~ ("powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe",
                      "regsvr32.exe","cmd.exe","bitsadmin.exe","certutil.exe","msiexec.exe")
| summarize cnt=count(), first=min(Timestamp), last=max(Timestamp),
            make_set(ProcessCommandLine), make_set(InitiatingProcessCommandLine)
          by DeviceName, AccountName, FileName, InitiatingProcessFileName

CloudTrail (S3 data events, higiena własnych zasobów)

Szuka pobrań plików .swf z Twoich bucketów (kontrola ekspozycji/legacy).

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

Elastic / EQL

process where
  process.parent.name in ("chrome.exe","msedge.exe","iexplore.exe","firefox.exe","plugin-container.exe",
                          "FlashPlayerPlugin_32.exe","FlashPlayerPlugin_64.exe") and
  process.name in ("powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe",
                   "regsvr32.exe","cmd.exe","bitsadmin.exe","certutil.exe","msiexec.exe")

Heurystyki / korelacje (co łączyć)

  • Krótki łańcuch czasowy: wizytę WWW (proxy/DNS) → child process z przeglądarki → ruch wychodzący/C2 → drop w %TEMP%. (Wzorzec MITRE Detection Strategies dla technik klienckich).
  • Rzadkie moduły: ładowanie starych bibliotek Flash (NPSWF*, pepflashplayer.dll) na hostach, gdzie Flash nie powinien istnieć.
  • Domeny jednorazowe/malvertising: przekierowania, iFrame, 302‑cushioning — znane z EK (Angler).
  • WER/crashe po wtyczce tuż przed spawnem interpretera.

False positives / tuning

  • Instalacje/aktualizacje uruchamiane z przeglądarki (np. msiexec.exe po pobraniu legalnego instalatora).
  • Skrypty administracyjne wywoływane z web‑portali korporacyjnych (Self‑Service).
  • Tuning: zawęź do parent=browser/plugin + dziecko z listy + CommandLine z wzorcami web‑download (http, -enc, -w hidden, urlmon, bitsadmin, certutil -urlcache -split) i korelacja DNS/proxy w ±2 min.

Playbook reagowania (IR)

  1. Triage & izolacja hosta (EDR network containment).
  2. Zabezpieczenie artefaktów:
    • Zrzut pamięci podejrzanych procesów (przeglądarka/child).
    • Logi: Sysmon 1/3/11/22, WER 1001, proxy/DNS; Prefetch dla child.
  3. Szybkie IOC sweep: domeny/URL z proxy, hash dropu, ścieżki %TEMP%/%APPDATA%.
  4. Eradykacja: usuń pozostałości, zablokuj domeny/IP, wymuś aktualizację przeglądarek, odinstaluj Flash (jeśli gdzieś jeszcze jest). Adobe blokuje uruchamianie od 12.01.2021 — resztki usunąć.
  5. Higiena systemowa: ASR/EDR polityki block browser child, blokada wykonywania w %TEMP%.
  6. Post‑incident: przegląd polityk web (bloki *.swf), inwentaryzacja legacy.

Przykłady z kampanii / case studies

  • Watering‑hole na firmę lotniczą (lipiec 2015): strona ofiary serwowała exploit na CVE‑2015‑5122; po eksploatacji instalowano backdoor IsSpace.
  • Exploit‑kity (2015): 0‑day z wycieku Hacking Team trafił błyskawicznie do Angler/Neutrino/RIG/Magnitude (malvertising, przekierowania).
  • Reakcje vendorów: aktualizacja Adobe APSB15‑18 (18.0.0.209); Mozilla czasowo blokowała starsze wersje; CISA dodała CVE‑2015‑5122 do KEV.

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w odseparowanym labie. Nie używamy prawdziwych exploitów. Celem jest walidacja detekcji łańcucha browser → child → network.

A. Szybki test detekcji (Windows)

  1. Otwórz przeglądarkę (np. Edge/Chrome), zostaw aktywne okno.
  2. W drugim oknie PowerShell uruchom „symulację dziecka” (bez złośliwości):
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoLogo -NoProfile -Command whoami" -WindowStyle Hidden
Start-Process -FilePath "rundll32.exe" -ArgumentList "shell32.dll,Control_RunDLL" -WindowStyle Hidden

Ten test nie odtworzy rodzica=browser, ale pozwala przetestować parsowanie pól i konfigurację korelacji w SIEM/EDR (warunki z sekcji 7). Następnie tymczasowo wyświetl alerty „wszędzie”, aby potwierdzić, że reguły działają i dociśnij tuning do parent=browser.

B. Atomic Red Team — technika pokrewna (User Execution)
Zainstaluj Invoke-AtomicRedTeam i wykonaj bezpieczne atomiki dla T1204 (np. testy link/pliku nie ściągające malware) — cel: zobaczyć eventy procesowe i dopracować korelacje.

Set-ExecutionPolicy Bypass -Scope Process -Force
iwr https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install.ps1 | iex
Invoke-AtomicTest T1204.002 -ShowDetails -PromptForInputArgs

Dokumentacja i repozytoria: Atomic Red Team, Invoke-AtomicRedTeam.

C. Higiena legacy — skan resztek Flash
Sprawdź, czy na hostach nie ma katalogów C:\Windows\SysWOW64\Macromed\Flash\ lub starych OCX/DLL i usuń/wycofaj — Flash jest EOL i blokowany.


Mapowania (Mitigations, powiązane techniki)

Mitigations (MITRE):

  • M1051 — Update Software (patch management przeglądarek/wtyczek; historycznie APSB15‑18).
  • M1040 — Behavior Prevention on Endpoint (ASR/EDR: blok browser‑child).
  • M1031 — Network Intrusion Prevention (IDS/IPS/secure web gateway; blokowanie *.swf, wykrywanie przekierowań/ek).
  • M1017 — User Training (świadomość soc‑eng/malvertising).

Powiązane techniki ATT&CK:

  • T1189 Drive‑by Compromise (malvertising, iFrame, redirect).
  • T1204.001/002 User Execution: Malicious Link/File.
  • T1105 Ingress Tool Transfer (pobranie ładunku po eksploatacji). (strona referencyjna ogólna)

Źródła / dalsza literatura

  1. NVD — opis CVE‑2015‑5122 (CWE‑416, zakres wersji, CVSS, „exploited in the wild”). (NVD)
  2. CERT/CC VU#338736 — opaqueBackground UAF, APSB15‑18, wersja naprawcza 18.0.0.209. (kb.cert.org)
  3. CISA KEV — wpis dla CVE‑2015‑5122. (NVD)
  4. MITRE ATT&CK T1203 / T1189 / T1204.* (opisy technik i detekcje). (MITRE ATT&CK)
  5. Palo Alto Networks Unit 42 — watering‑hole na aerospace z wykorzystaniem CVE‑2015‑5122. (Unit 42)
  6. Malwarebytes (J. Segura) — EK (Angler/RIG/Neutrino/Magnitude) przyjmują 0‑day Flash. (Malwarebytes)
  7. Keysight/analiza Angler EK — techniki przekierowań (302 cushioning, domain shadowing). (Keysight)
  8. Adobe — EOL/blokada Flash od 12.01.2021. (Adobe)
  9. Mozilla — blokowanie starych wersji Flash (soft‑block). (Mozilla Support)
  10. Trend Micro — podsumowanie EK w 2015 r. (dominacja Flash, malvertising). (www.trendmicro.com)
  11. ATT&CK v18 — info o wersji/aktualizacjach. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjne):

  • Reguły z sekcji 7 wdrożone (Sigma/SPL/KQL/EQL) + korelacja proxy/DNS ±2 min.
  • Alarm „browser → child (interpreter/LOLBin)” = high + auto‑contain host.
  • Widoczność na WER/crashe pluginów i file drops w %TEMP%.
  • Blokowanie *.swf i legacy MIME w web‑gateway/NGFW.
  • Threat hunt: hosty z pepflashplayer.dll / NPSWF*.dll.

CISO (strategiczne):

  • Politycznie zabroniony Flash (potwierdzona deinstalacja; EOL).
  • ASR/EDR: „Block Office/Browser child process” i „Block executable content from email/web.”
  • Patch management (M1051) — gwarancja aktualnych przeglądarek; legacy wycofane.
  • Program szkoleń użytkowników (malvertising, „click‑to‑play” historia).

Uwagi końcowe

Flash Player jest wyłączony i blokowany przez Adobe — jakiekolwiek pozostałości należy usuwać. Dzisiejsza wartość detekcyjna polega na rozpoznawaniu wzorca zachowań klient‑strona, który pozostaje aktualny dla nowych błędów RCE w przeglądarkach/wtyczkach.

CVE-2015-3113 — Adobe Flash Player RCE

TL;DR

Krytyczna luka w Adobe Flash Player (CVE‑2015‑3113) umożliwiała zdalne wykonanie kodu poprzez przepełnienie bufora na stercie, m.in. po wejściu na złośliwą stronę lub kliknięciu odsyłacza w kampanii phishingowej. Zero‑day wykorzystywany był w operacji Clandestine Wolf (APT3), z łańcuchem: e‑mail → profilowanie JS → załadowanie pliku SWF/FLV → ROP/DEP/ASLR bypass → zrzut backdoora (SHOTPUT). Detekcja: obserwuj pobrania .swf, procesy/załadowane moduły Flash oraz nietypowe dzieci procesów Flash (cmd/powershell/wscript). Ponieważ Flash jest EOL (12.2020), każde użycie Flash w 2025 r. jest co najmniej podejrzane.


Krótka definicja techniczna

CVE‑2015‑3113 to luka typu heap‑based buffer overflow w Adobe Flash Player (przed 13.0.0.296; 14.x–18.x < 18.0.0.194 dla Windows/OS X; Linux < 11.2.202.468), pozwalająca zdalnie wykonać kod przy przetwarzaniu specjalnie spreparowanych treści Flash; w czerwcu 2015 była aktywnie wykorzystywana na wolności.


Gdzie występuje / przykłady platform

  • Endpointy: Windows (IE/Edge Legacy/Chrome/Firefox), macOS (Safari/Firefox/Chrome), Linux (Firefox/Chromium – PPAPI/NPAPI).
  • Scenariusze ataku: phishing z linkiem do serwisu z exploitem, drive‑by po wejściu na zainfekowaną stronę; znane cele zawierały m.in. Windows 7 (IE) i Firefox na XP.
  • Stan dzisiaj: Flash Player zakończył życie 31.12.2020 (blokada uruchomienia od 12.01.2021) — użycie w sieci produkcyjnej to incydent ryzyka.

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

Kampania Operation Clandestine Wolf przypisywana APT3 wykorzystywała e‑maile z odsyłaczami do przejętych witryn. Po kliknięciu ofiara była przekierowywana do skryptów profilujących (JS), które sprawdzały wersje przeglądarki/wtyczek. Następnie serwer dostarczał parę plików SWF + FLV wykorzystujących CVE‑2015‑3113. Exploit uzyskiwał arbitralny zapis/odczyt, wykonywał łańcuch ROP omijający DEP/ASLR, a finalnie odpalał shellcode i zrzucał backdoora SHOTPUT. Efekt: zdalne RCE i trwała kontrola hosta.

Dlaczego skuteczna?
(1) popularność Flash w 2015, (2) atak drive‑by nie wymagał pobierania plików przez użytkownika, (3) łańcuch exploitów obchodził mechanizmy łagodzące (DEP/ASLR), (4) szybka adopcja w ekosystemie exploit kitów (np. Magnitude).


Artefakty i logi

WarstwaArtefakt / źródłoWskaźniki / polaUwagi
Windows (Sysmon)EID 1 Process CreateImage/ParentImage: FlashPlayer.exe, FlashUtil*.exe, FlashPlayerPlugin*.exe; dzieci: cmd.exe, powershell.exe, wscript.exe, rundll32.exe, regsvr32.exeNietypowe dziecko procesu Flash = silny sygnał RCE. Nazwy procesów potwierdza Adobe Flash Player Admin Guide.
Windows (Sysmon)EID 7 Image LoadedImageLoaded = \pepflashplayer.dll (Chrome/Chromium)Obserwuj załadowanie w procesach przeglądarki.
Windows (Application)EID 1000 Application ErrorAwaria modułów Flash/pepflashNagłe crashe Flash niedługo przed nietypowym procesem‑dzieckiem.
Proxy/NGFW/DNSDostęp HTTP/S do *.swf, MIME application/x-shockwave-flashurl, mime, user_agent, referrerKoreluj z kliknięciami z e‑maila (M365).
M365 DefenderEmailUrlInfo, UrlClickEventsUrl, UrlDomain, kliknięcia Safe LinksŁącz URL .swf z hostami, które uruchomiły procesy Flash.
MITRE ATT&CK (kontekst)APT3 + SHOTPUTProfilowanie, dostarczenie backdooraDo korelacji z TTP grupy.
AWS (opcjonalnie)CloudTrail Lake (S3 Data Events)GetObject na kluczach %.swfWymaga włączonych data events.
CDNCloudFront Access Logs / Athenacs-uri-stem like '%.swf', sc-content-typePrzy hostowaniu/pośrednictwie treści.

Detekcja (praktyczne reguły)

Sigma (Windows / Sysmon – anomalie dzieci procesów Flash)

title: Flash Plugin Spawns Suspicious Child (CVE-2015-3113 Context)
id: 5a8b2f3b-8ce3-49d0-9f1f-6a2e1d1f3f31
status: experimental
description: Wykrywa nietypowe dzieci procesów Flash (cmd/powershell/skrpty), co bywa obserwowane przy RCE (np. CVE-2015-3113).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2015-3113
  - https://cloud.google.com/blog/topics/threat-intelligence/operation-clandestine-wolf-adobe-flash-zero-day/
tags:
  - attack.t1203
  - attack.t1189
  - attack.t1566.002
  - cve.2015-3113
logsource:
  category: process_creation
  product: windows
detection:
  sel_parent:
    ParentImage|contains:
      - '\FlashPlayer'
      - '\FlashUtil'
      - '\FlashPlayerPlugin'
  sel_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: sel_parent and sel_child
fields:
  - ParentImage
  - ParentCommandLine
  - Image
  - CommandLine
falsepositives:
  - Rzadkie narzędzia korporacyjne wołane z aplikacji opartej na Flash (dziś skrajnie rzadkie)
level: high

Splunk (SPL)

1) Flash uruchomiony przez przeglądarkę

index=sysmon EventCode=1
(ParentImage="*\\iexplore.exe" OR ParentImage="*\\chrome.exe" OR ParentImage="*\\firefox.exe" OR ParentImage="*\\msedge.exe")
(Image="*\\FlashPlayer*.exe" OR Image="*\\FlashUtil*.exe" OR Image="*\\FlashPlayerPlugin*.exe")
| stats count min(_time) max(_time) by host, ParentImage, Image, CommandLine, ParentCommandLine

2) Dzieci procesów Flash

index=sysmon EventCode=1
(ParentImage="*\\FlashPlayer*.exe" OR ParentImage="*\\FlashUtil*.exe" OR ParentImage="*\\FlashPlayerPlugin*.exe")
(Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\wscript.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe")
| table _time host ParentImage Image CommandLine

3) Proxy/HTTP — pobrania .swf

index=proxy (uri_path="*.swf" OR mime_type="application/x-shockwave-flash")
| stats count by src_ip, user, uri, http_status, user_agent, referrer

KQL (Microsoft Defender / M365)

Defender for Endpoint — dzieci procesów Flash

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine

MDO — kliknięcia linków .swf

UrlClickEvents
| where Url endswith ".swf" or Url has ".swf?"
| summarize Clicks=count() by UrlDomain, Url, AccountUpn, Timestamp

MDO — adresy URL w wiadomościach

EmailUrlInfo
| where Url endswith ".swf" or Url has ".swf?"
| join kind=leftouter EmailEvents on NetworkMessageId
| project Timestamp, SenderFromAddress, RecipientEmailAddress, Url, UrlDomain, Subject, ThreatTypes

(Definicje tabel: EmailUrlInfo, UrlClickEvents — dokumentacja Microsoft).

CloudTrail / CloudWatch (AWS)

Założenie: włączone S3 Data Events lub logi CloudFront.

CloudTrail Lake SQL (AWS CLI): wyszukaj pobrania *.swf z bucketów

SELECT eventTime, sourceIPAddress, userIdentity.principalId, requestParameters.bucketName AS bucket,
       requestParameters.key AS objectKey
FROM event_data_store
WHERE eventSource = 's3.amazonaws.com'
  AND eventName   = 'GetObject'
  AND requestParameters.key LIKE '%.swf'
  AND eventTime > TIMESTAMP '2025-11-01 00:00:00';

(Wymaga włączonych data events).

CloudFront / Athena (przykład):

SELECT date, time, cs_host, cs_uri_stem, sc_status, sc_content_type, c_ip, cs_user_agent
FROM cloudfront_logs
WHERE cs_uri_stem LIKE '%.swf'
ORDER BY date, time DESC;

Elastic EQL

process where
  process.parent.name in ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")

Heurystyki / korelacje

  • Klik .swf ⇒ proces Flash ⇒ podejrzane dziecko ⇒ połączenie wychodzące (czasowo blisko) — korelacja M365 (UrlClickEvents / EmailUrlInfo) + EDR + egress DNS/HTTP.
  • Załadowanie pepflashplayer.dll przez przeglądarkę, następnie nietypowe zachowanie (np. nagłe powershell.exe).
  • Rzadko używane dziś MIME application/x-shockwave-flash w ruchu web — traktuj jako anomalię.
  • Artefakty APT3/SHOTPUT (nietypowe rozpoznanie hosta/użytkowników/sieci po kompromitacji) jako sygnały post‑exploitation do korelacji (np. lista kont, netstat).

False positives / tuning

  • Dziedzictwo wewnętrzne: pojedyncze kioski/offline‑aplikacje z zawartością SWF (dziś wyjątkowe). Użyj allowlist domen/aplikacji biznesowych i ogranicz reguły do organizacji/OU, gdzie jakiekolwiek Flash jest dopuszczone.
  • Narzędzia administracyjne mogą incydentalnie wywołać interpretery (np. skrypty logowania), ale rodzicem nie powinien być proces Flash.
  • Ustal okno czasowe (np. ±5 min od kliknięcia URL .swf) i filtruj znane testy w labie.

Playbook reagowania (SOC/IR)

  1. Zablokuj źródło: domenę/URL z .swf w proxy/DNS firewall; wypchnij blokadę przez EDR.
  2. Izoluj host z alertem (EDR quarantine).
  3. Triage artefaktów:
    • Procesy potomne Flash, dropy w %APPDATA%, połączenia C2.
    • Zrzut pamięci procesu przeglądarki/Flash (jeśli polityka na to pozwala).
  4. Hunting rozprzestrzenienie: użyj zapytań (SPL/KQL/EQL powyżej) w horyzoncie 7–30 dni.
  5. Patch & harden: potwierdź brak Flash w flocie (wycofanie EOL), wymuś aktualizacje przeglądarek.
  6. Eradykacja: usuń artefakty, przeinstaluj przeglądarkę, unieważnij poświadczenia pozyskane po kompromitacji.
  7. Lessons learned: blokada typów/MIME, EDR policy na podejrzane dzieci procesów, kampania edukacyjna „nie klikaj .swf”.

Przykłady z kampanii / case studies

  • Operation Clandestine Wolf (APT3/UPS) — phishing z odsyłaczami do przejętych witryn; profilowanie JS; exploit CVE‑2015‑3113; backdoor SHOTPUT (Backdoor.APT.CookieCutter). Branże: A&D, telco, high‑tech, transport, budownictwo.
  • Eksploatacja na szeroką skalę — szybka adopcja w exploit kitach (np. Magnitude) w 2015 r.

Lab (bezpieczne testy) — tylko w kontrolowanym środowisku

Nie instaluj Flash w produkcji. Nie testujemy exploitu — jedynie łańcuch detekcji.

  • Symulacja ruchu web
    • curl -I https://lab.example.org/test.swf (serwuj neutralny plik binarny z nagłówkiem Content-Type: application/x-shockwave-flash).
    • Zweryfikuj, że proxy/NGFW/Athena (CloudFront) odnotowały żądanie *.swf.
  • Symulacja korelacji M365
    • Wyślij na skrzynkę testową e‑mail z linkiem do https://lab.example.org/test.swf.
    • Sprawdź EmailUrlInfo / UrlClickEvents (KQL z sekcji 7).
  • Symulacja anomalii procesów
    • Zastępczo uruchom aplikację, która imituje wzorzec: proces „AplikacjaGUI.exe” → cmd.exe /c whoami. Reguły powinny złapać schemat „aplikacja multimedialna → interpreter”. (Bez użycia Flash).

Mapowania

Mitigations (ATT&CK):

  • M1050 Exploit Protection — ASR/Exploit Guard/EDR exploit prevention.
  • M1033 Limit Software Installation — blokada instalacji wtyczek/dodatków; usunięcie Flash.
  • M1040 Behavior Prevention on Endpoint — blokuj podejrzane łańcuchy (Flash → skrypty/LOLBins).
  • M1017 User Training — prewencja kliknięć w odsyłacze .swf.

Powiązane techniki (kaskada):

  • T1105 Ingress Tool Transfer — dociąganie backdoora po RCE.
  • T1027 Obfuscated/Compressed Files & Information — xor/steganografia/packery w payloadach.

Źródła / dalsza literatura

  • NVD: opis, wersje, „exploited in the wild” (VI 2015). (NVD)
  • Mandiant/FireEye: Operation Clandestine Wolf, łańcuch ataku, SHOTPUT (APT3). (Google Cloud)
  • SecurityWeek: zero‑day, cele (IE na Win7, Firefox na XP), powiązanie z APT3. (SecurityWeek)
  • Trend Micro: adopcja w exploit kitach (Magnitude). (www.trendmicro.com)
  • Adobe: EOL Flash (31.12.2020). (Adobe)
  • Adobe Flash Player 32 Admin Guide: procesy/plik DLL (FlashUtil*, pepflashplayer.dll). (open-flash.github.io)
  • MITRE ATT&CK: T1189, T1566.002, T1203; wersja v18.0. (MITRE ATT&CK)
  • Microsoft Defender: tabele EmailUrlInfo, UrlClickEvents. (Microsoft Learn)
  • AWS: CloudTrail Data Events, CloudFront/Athena zapytania. (AWS Documentation)

Checklisty dla SOC / CISO

SOC (operacyjne):

  • Włączone telemetry: Sysmon (EID 1/7), proxy/DNS, M365 Defender (EmailUrlInfo/UrlClickEvents).
  • Reguły: Sigma (Flash → cmd/powershell), SPL/KQL/EQL z sekcji 7.
  • Korelacja: klik .swf ↔ procesy Flash ↔ dziecko/egress DNS/HTTP.
  • Blokady: MIME application/x-shockwave-flash, rozszerzenie .swf w bramkach.
  • Hunting retro 30 dni: dzieci procesów Flash i ruch do domen z kampanii (wg TI).

CISO (strategiczne):

  • Potwierdzić brak Flash w organizacji (EOL).
  • Polityka „deny by default” dla wtyczek przeglądarek.
  • Wymuszony Exploit Protection/EDR (M1050/M1040).
  • Szkolenia użytkowników (M1017) z naciskiem na klikalność linków.
  • Gotowość IR: playbook powyżej, retencja logów ≥ 30–90 dni.

Specjalistyczne Dystrybucje Linuksa W Cyberbezpieczeństwie

Po co nam tyle dystrybucji bezpieczeństwa? Krótki kontekst techniczny

W świecie cyberbezpieczeństwa Linux odgrywa szczególną rolę – to fundament wielu narzędzi i środowisk do testów bezpieczeństwa, analizy incydentów czy ochrony prywatności. Zwykła dystrybucja Ubuntu czy Fedora oczywiście może zostać wyposażona w potrzebne programy, ale istnieją gotowe systemy tworzone z myślą o konkretnych zadaniach.

Czytaj dalej „Specjalistyczne Dystrybucje Linuksa W Cyberbezpieczeństwie”

Pentest (Test Penetracyjny) — Co To Jest? Kompletny Przewodnik

Co to jest test penetracyjny (pentest)?

Test penetracyjny (ang. penetration test, potocznie pentest) to kontrolowany, celowy atak symulowany na system informatyczny, aplikację lub sieć, przeprowadzany w celu oceny bezpieczeństwa tego systemu. Innymi słowy, jest to zaplanowane “hakowanie” własnej infrastruktury – etyczny atak wykonywany za zgodą właściciela systemu.

Czytaj dalej „Pentest (Test Penetracyjny) — Co To Jest? Kompletny Przewodnik”