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

CVE-2025-62215 — Windows Kernel EoP (race condition)

TL;DR

CVE‑2025‑62215 to lokalna eskalacja uprawnień w jądrze Windows spowodowana warunkiem wyścigu (CWE‑362; także przypisana CWE‑415). Wymaga uprzywilejowanego (ale nie admin) dostępu lokalnego i pozwala podnieść uprawnienia do SYSTEM. Microsoft potwierdził aktywną eksploatację (zero‑day); poprawka została wydana w Patch Tuesday (listopad 2025). Priorytet: natychmiastowe łatanie oraz telemetria post‑eksploatacyjna (procesy SYSTEM z katalogów zapisywalnych przez użytkownika, podejrzane tworzenie usług).


Krótka definicja techniczna

Błąd klasy race condition w Windows Kernel umożliwia atakującemu z kontekstu lokalnie uwierzytelnionego (PR:L) wygrać wyścig w obsłudze zasobu współdzielonego, co skutkuje podniesieniem uprawnień do SYSTEM. Wektor CVSS v3.1 (wg Microsoft/CNA): AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H (bazowa 7.0). CWE‑362 (race) oraz CWE‑415 (double free) są przypisane do rekordu.


Gdzie występuje / przykłady platform

  • Windows (desktop i serwer) — komponent: Windows Kernel; konkretne edycje/wersje patrz karta MSRC. (Microsoft i niezależne serwisy potwierdzają, że jedna z 63 poprawek w listopadzie 2025 dotyczy właśnie tej luki).
  • Active Directory / M365 / Azure / AWS / GCP / K8s / ESXinie dotyczy bezpośrednio (luka jest systemowa na hostach Windows).

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

CVE‑2025‑62215 wykorzystuje niesynchronizowany dostęp do współdzielonego zasobu w jądrze. Napastnik o uprawnieniach użytkownika (np. standard user lub service account z ograniczeniami) może, poprzez odpowiednie tykowanie operacji (wyścig), doprowadzić do uzyskania tokenu SYSTEM i pełnej kontroli nad hostem. Luki EoP w kernelu są szczególnie atrakcyjne, bo zamyka to łańcuch ataku po początkowym footholdzie (np. RCE w Office/przeglądarce), a ślady w dziennikach często są pośrednie (nie ma “jednego” zdarzenia „użyto sploit kernelowy”). Microsoft oznaczył tę podatność jako aktywnie wykorzystywaną w czasie wydania poprawek.


Artefakty i logi (co obserwować)

ŹródłoTyp/IDCo szukać (skrót)
Security.evtx4688 (Process Creation), 4672 (Special Privileges), 4624 (logon), 4697 (service installed – jeśli włączone)Procesy z Integrity/System lub kontem SYSTEM uruchamiane z katalogów użytkownika/Temp/ProgramData; niespodziewane “Special privileges” zaraz po aktywności użytkownika.
System.evtx7045 (Service Installed)Nowe usługi wskazujące na binaria w %USERPROFILE%, C:\ProgramData, C:\Windows\Temp.
Sysmon1 (ProcessCreate), 6 (DriverLoad), 7 (ImageLoad), 10 (ProcessAccess), 11 (FileCreate), 13 (Registry)Procesy SYSTEM z nietypowych ścieżek; ewentualne ładowanie sterowników/obrazów z dysku użytkownika; dostęp do lsass.exe po nagłym wzroście uprawnień.
Microsoft Defender for EndpointDeviceProcessEvents, DeviceRegistryEvents, DeviceImageLoadEventsProcessIntegrityLevel == "System" + FolderPath w lokacjach zapisywalnych; nagłe wyłączanie AV/EDR; tworzenie usług/zadań.
M365 / CloudTrail / K8s auditNie dotyczy (luka hostowa Windows).
NVD/MSRC metadaneCVSS/CWE/stan exploituPotwierdzenie klasy błędu (race), wektora, aktywnej eksploatacji.

Detekcja (praktyczne reguły)

Sigma (Sysmon — podejrzany SYSTEM z katalogów zapisywalnych)

title: Suspicious SYSTEM Process From User-Writable Path
id: d3f9b3b2-0f4f-4d9e-9b8a-2025-11-12
status: experimental
description: Wykrywa procesy z IntegrityLevel=System uruchomione z katalogów zapisywalnych (Users/ProgramData/Windows\Temp) – wskaźnik post-EoP (np. CVE-2025-62215).
logsource:
  product: windows
  service: sysmon
  definition: 'EventID=1 ProcessCreate'
detection:
  selection:
    EventID: 1
    IntegrityLevel|contains: 'System'
    Image|startswith:
      - 'C:\Users\'
      - 'C:\ProgramData\'
      - 'C:\Windows\Temp\'
  filter_legit:
    Image|startswith:
      - 'C:\ProgramData\Microsoft\Windows Defender\'
      - 'C:\ProgramData\Microsoft\IntuneManagementExtension\'
  condition: selection and not filter_legit
fields:
  - UtcTime
  - Image
  - CommandLine
  - ParentImage
  - User
falsepositives:
  - Rzadkie legalne narzędzia utrzymaniowe działające jako SYSTEM z ProgramData
level: high
tags:
  - attack.T1068

Splunk (Sysmon)

index=xmlwineventlog sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
IntegrityLevel=System (Image="C:\\Users\\*" OR Image="C:\\ProgramData\\*" OR Image="C:\\Windows\\Temp\\*")
| stats count min(_time) as first_seen max(_time) as last_seen values(ParentImage) values(CommandLine) by host, Image, User

KQL (Microsoft 365 Defender / Sentinel)

DeviceProcessEvents
| where ProcessIntegrityLevel == "System"
| where FolderPath has_any ("\\Users\\", "\\ProgramData\\", "\\Windows\\Temp\\")
| where not(FolderPath startswith @"C:\ProgramData\Microsoft\Windows Defender\" 
         or FolderPath startswith @"C:\ProgramData\Microsoft\IntuneManagementExtension\")
| summarize firstSeen=min(Timestamp), lastSeen=max(Timestamp), examples=make_set(ProcessCommandLine, 5) by DeviceName, AccountName, FolderPath, InitiatingProcessFileName

Windows Security: instalacja usług (Security 4697 / System 7045)

(index=wineventlog sourcetype="WinEventLog:System" EventCode=7045) OR
(index=wineventlog sourcetype="WinEventLog:Security" EventCode=4697)
| eval bin=coalesce(ImagePath, ServiceFileName, Service_FileName, ObjectName)
| where like(bin,"C:\\Users\\%") OR like(bin,"C:\\ProgramData\\%") OR like(bin,"C:\\Windows\\Temp\\%")
| table _time host EventCode ServiceName bin

Elastic EQL

process where process.integrity_level == "System" and
  (process.executable like "C:\\Users\\*" or
   process.executable like "C:\\ProgramData\\*" or
   process.executable like "C:\\Windows\\Temp\\*")

Uwaga: brak “jednego” logu potwierdzającego exploit kernelowy. Detekcja opiera się na anomaliach post‑eksploatacyjnych i korelacjach. Informacja o aktywnej eksploatacji oraz naturze (race condition) pochodzi z MSRC/NVD/Tenable.


Heurystyki / korelacje

  • Nagły skok uprawnień: proces użytkownika → w <60 s> pojawia się proces SYSTEM z tej samej sesji/typu konsoli.
  • SYSTEM z podejrzanych ścieżek: C:\Users\, C:\Windows\Temp\, C:\ProgramData\ (nie dotyczy znanych agentów).
  • Tworzenie usługi/zadania tuż po EoP (7045/4697, SchTasks).
  • Działania obronne zaburzane po EoP (wyłączenie AV/EDR — T1562), dostęp do LSASS (Sysmon 10) — możliwa kradzież poświadczeń po podniesieniu uprawnień.
  • Koreluj z alertem “Windows Kernel EoP” w EDR (jeśli vendor publikuje taką sygnaturę dla listopadowej łatki). Publiczne raporty z 11–12 XI 2025 potwierdzają status zero‑day.

False positives / tuning

  • Oprogramowanie korporacyjne uruchamiające moduły jako SYSTEM z ProgramData (agent instalacyjny, MDM/Intune, niektóre backupy).
  • Skrypty utrzymaniowe uruchamiane przez SCCM/Intune.
  • Tuning: białe listy ścieżek dla znanych agentów (Defender, Intune, narzędzia backupu), kontrola podpisu cyfrowego obrazu oraz producenta, okno czasowe korelacji (np. 30–120 s).

Playbook reagowania (IR)

  1. Triaging & izolacja: odłącz host od sieci (EDR isolate), zachowaj lotne artefakty (PID‑y SYSTEM z nietypowych ścieżek).
  2. Weryfikacja łatek: sprawdź, czy aktualizacja zbiorcza z 11 listopada 2025 jest zastosowana (np. KB5066835/KB5066793 dla Windows 11, KB5068781 dla Windows 10 ESU).
    • PowerShell: Get-HotFix | Where-Object {$_.HotFixID -match 'KB506'}
    (Numery KB podane m.in. w przeglądzie Patch Tuesday).
  3. Hunting: uruchom reguły/SPL/KQL z sekcji 7 na ostatnie 7–14 dni.
  4. Artefakty: zrzuty dla podejrzanych procesów SYSTEM (moduły, podpis, ścieżka), wpisy 7045/4697, zmiany w Run/Services, logi EDR.
  5. Eradykacja: usuń nieautoryzowane usługi/zadania, przywróć polityki EDR/AV, wymuś Windows Update.
  6. Recovery: reboot po łatce; monitoring wzmocniony (procesy SYSTEM z user‑paths).
  7. Komunikacja/CVE tracking: odnotuj CVE‑2025‑62215 w systemie zarządzania podatnościami, śledź MSRC/NVD.

Przykłady z kampanii / case studies

  • Status: publicznie brak szczegółów o kampaniach/aktorem; Microsoft i media branżowe potwierdzają aktywną eksploatację w momencie wydania poprawek, bez ujawniania wektora wejścia.

Lab (bezpieczne testy)

Celem jest walidacja detekcji post‑EoP, bez eksploatowania luki.

  1. Symulacja “SYSTEM z user‑path” (usługa): copy %SystemRoot%\System32\notepad.exe C:\Users\Public\demo.exe sc.exe create DemoSvc binPath= "C:\Users\Public\demo.exe" start= demand sc.exe start DemoSvc sc.exe delete DemoSvc Oczekiwane: 7045/4697 oraz Sysmon EID=1 z Image=C:\Users\Public\demo.exe i Integrity=System.
  2. Symulacja procesu SYSTEM z konsoli (PsExec, Sysinternals): psexec.exe -i -s cmd.exe Następnie uruchom tymczasowy plik z %TEMP% jako SYSTEM, by trafić w reguły z sekcji 7.
  3. Kontrola huntingu KQL/SPL — uruchom zapytania i potwierdź trafienia.

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software (natychmiastowe wdrożenie poprawek).
  • M1040 — Behavior Prevention on Endpoint (EDR/anty‑tampering, blokady zachowań post‑EoP).
  • M1026 — Privileged Account Management (minimalizacja i monitoring użycia kont uprzywilejowanych).

Powiązane techniki (ATT&CK Enterprise):

  • T1068 — Exploitation for Privilege Escalation
  • T1543 — Create or Modify System Process
  • T1562 — Impair Defenses
  • T1055 — Process Injection

Źródła / dalsza literatura

  • MSRC — CVE‑2025‑62215 (oficjalna karta). (Microsoft Security Response Center)
  • NVD — CVE‑2025‑62215 (opis, CVSS, CWE). (NVD)
  • Tenable: opis zero‑day i klasy błędu (race condition), kontekst listopadowego Patch Tuesday. (Tenable®)
  • BleepingComputer: przegląd aktualizacji, potwierdzenie 1 zero‑day (CVE‑2025‑62215) i numery wybranych KB. (BleepingComputer)
  • SecurityWeek / DarkReading: wzmianki o aktywnej eksploatacji. (SecurityWeek)
  • ZDI / Qualys / HKCERT / SANS ISC / Talos: przeglądy miesiąca z odniesieniami do CVE‑2025‑62215. (Zero Day Initiative)
  • ATT&CK v18 — wersja i historia wydań. (MITRE ATT&CK)
  • CISA KEVna moment pisania brak wpisu dla CVE‑2025‑62215 (sprawdź ponownie przed podejmowaniem decyzji). (CISA)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Wdrożone reguły z sekcji 7 (Sysmon/Splunk/KQL/Elastic).
  • Dodatkowy “watchlist” na procesy SYSTEM z Users/ProgramData/Temp.
  • Monitor 7045/4697 + korelacja <120 s> od procesów użytkownika.
  • Threat hunting 14 dni wstecz pod kątem post‑eksploatacyjnych anomalii.
  • Walidacja, że hosty dostały listopadową CU (Windows Update/KB).

CISO (strategiczna):

  • Patch SLA: 48–72 h dla krytycznych hostów Windows przy aktywnej eksploatacji.
  • Egzekwuj M1051/M1040/M1026 (patching, EDR z ochroną przed wyłączeniem, PAM).
  • Testy kontrolne w labie (sekcja 12) i przegląd wyjątków z białych list.
  • Ciągły przegląd komunikatów MSRC/NVD; dodaj CVE‑2025‑62215 do dashboardu ryzyka.

Uwagi końcowe (stan na 12 lis 2025): Rekord NVD zawiera opis, wektor CVSS i przypisania CWE‑362/CWE‑415; MSRC potwierdza zero‑day i dostępność poprawek; niezależne serwisy (Tenable/BleepingComputer) opisują ją jako Windows Kernel EoP używaną w atakach. Sprawdzaj cyklicznie MSRC/NVD/CISA KEV, bo szczegóły (np. listy wersji Windows, atrybucje) mogą się zmienić.

CVE-2025-42887 — Code Injection w SAP Solution Manager

TL;DR

Krytyczna podatność CVE‑2025‑42887 w SAP Solution Manager (ST 720) umożliwia wstrzyknięcie kodu podczas wywołania zdalnie udostępnionego modułu funkcyjnego (RFC) przez uwierzytelnionego atakującego. Skutkiem może być pełna kontrola systemu (wysokie C/I/A). CVSS v3.1: 9.9 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H). Dostawca opublikował poprawkę w Security Note 3668705 — należy wdrożyć niezwłocznie oraz ograniczyć dostęp do SAP RFC Gateway (porty 33xx) i monitorować Security Audit Log (SM20) i logi bramy RFC/ICM.


Krótka definicja techniczna

Błąd walidacji danych wejściowych w SAP Solution Manager pozwala podczas wywołania remote‑enabled function module na umieszczenie i wykonanie złośliwego kodu w kontekście aplikacyjnym. Wektor ataku jest sieciowy, z niską złożonością, wymaga niskich uprawnień (PR:L), nie wymaga interakcji użytkownika i zmienia zakres (Scope: Changed).


Gdzie występuje / przykłady platform

  • Produkt: SAP Solution Manager 7.2 (komponent ST 720) – krajobrazy on‑prem (Windows/Linux) i IaaS (AWS/Azure/GCP).
  • Protokół/warstwa dostępu: SAP RFC/Gateway (TCP 33xx/sapgw<inst>), HTTP(S)/ICM w wybranych scenariuszach SOAP RFC.
  • Przykładowe wdrożenia demo/PoC: oficjalne systemy pokazowe SolMan 7.2 (ST 720).

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

Mechanizm RFC umożliwia wywoływanie w ABAP funkcji oznaczonych jako Remote‑Enabled. W CVE‑2025‑42887 brak właściwego oczyszczania danych wejściowych przy takim wywołaniu prowadzi do wstrzyknięcia kodu i jego wykonania po stronie serwera SolMan. Ponieważ podatność dotyczy elementu administracyjnego (Solution Manager), kompromitacja może kaskadowo oddziaływać na systemy zarządzane i integracje (zmieniony zakres). W praktyce błąd wpisuje się w łańcuch TTP: eksploatacja usługi (T1190/T1210) → wykonanie/podniesienie uprawnień (T1068/T1059). Krytyczność rośnie, gdy RFC Gateway jest dostępny spoza zaufowanych segmentów lub gdy konta techniczne mają szerokie uprawnienia S_RFC/S_RFCACL.


Artefakty i logi

ŹródłoTyp/IDPole / EID / EventWzorzec / co szukaćUwagi
SAP Security Audit Log (SM19/SM20)AplikacjaKlasy „RFC/CPIC”, logony RFC, wywołania FMNietypowe logony RFC (pory, hosty), skoki liczby wywołań; nieudane/odrzucone autoryzacje S_RFCPodstawowy strumień audytowy ABAP.
SAP RFC Gateway (gw_log / dev_rd, GWMON)AplikacjaZdarzenia bramy (rejestracja, połączenia, wywołania)Niespodziewane źródła, nietypowe programy rejestrowane, błędy autoryzacji/ACLPorty 33xx; obserwuj reg_info/sec_info.
ICM/HTTP (dev_icm, log HTTP)AplikacjaŻądania do endpointów RFC/SOAPNietypowe POST do ścieżek RFC/SOAP z zewnątrzW zależności od konfiguracji.
Firewall/NetFlow/VPC Flow LogsSiećdstPort 3300–3399 (sapgw*)Połączenia z niezalistowanych ASN/VPC; skoki wolumenuDobre do korelacji z SAL.
Windows SysmonEID=1ParentImage = disp+work.exe/gwrd.exe/sapstartsrv.exe → child cmd.exe/powershell.exeEgzekucja powłoki przez procesy SAPW SolMan na Windows.
Linux auditdSYSCALL/EXECVEexe parent disp+work/gwrd/bin/sh, /bin/bashJak wyżej dla Linux
AWS VPC Flow Logs (CloudWatch)dstPort 3300..3399, action=ACCEPTŹródła poza allowlistą, krótkie serie połączeńCloudTrail nie rejestruje ruchu sieciowego.
K8s audit / M365[nie dotyczy]

(Porty RFC Gateway 33xx potwierdza KBA; komponent SolMan 7.2 = ST 720).


Detekcja (praktyczne reguły)

Sigma — nieautoryzowane wejścia na SAP RFC Gateway (sieć)

title: Suspicious Access to SAP RFC Gateway (sapgw 33xx) From Untrusted Source
id: 1c9b8f8b-2c0f-4c2b-a8a2-7b2b7b33f9e1
status: experimental
description: Detect inbound connections to SAP RFC Gateway ports (33xx) from non-approved networks
author: Badacz CVE
date: 2025/11/12
logsource:
  category: network_connection
detection:
  selection:
    destination.port|gte: 3300
    destination.port|lte: 3399
    network.direction: inbound
  filter_allowlist:
    source.ip|cidr:
      - 10.0.0.0/8
      - 172.16.0.0/12
      - 192.168.0.0/16
      # uzupełnij o własne sieci i partnerów
  condition: selection and not filter_allowlist
fields:
  - source.ip
  - destination.ip
  - destination.port
  - network.transport
falsepositives:
  - Zdalne serwisy administracyjne w zaufowanych strefach
level: high
tags:
  - attack.T1190
  - attack.T1210

Sigma — egzekucja powłoki z procesów SAP (Windows Sysmon)

title: Shell Spawned by SAP Work/Gateway Process
id: 9e7f4d95-2a8f-4ff0-9f6a-1d0b6e18bb3e
status: experimental
logsource:
  product: windows
  service: sysmon
  definition: Event ID 1 (Process Create)
detection:
  selection:
    EventID: 1
    ParentImage|endswith:
      - '\disp+work.exe'
      - '\gwrd.exe'
      - '\sapstartsrv.exe'
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
  condition: selection
level: high
tags:
  - attack.T1059
  - attack.T1068

Splunk (SPL) — ruch do sapgw i korelacja z hostami SolMan

| tstats count min(_time) as first_seen max(_time) as last_seen 
  from datamodel=Network_Traffic 
  where All_Traffic.dest_port>=3300 All_Traffic.dest_port<=3399 
  All_Traffic.action=allowed 
  All_Traffic.dest IN ($SOLMAN_HOSTS$)
  by All_Traffic.src, All_Traffic.dest, All_Traffic.dest_port
| `drop_dm_object_name("All_Traffic")`
| eval duration=last_seen-first_seen
| where count>=5 OR duration < 60

KQL (Microsoft Sentinel) — CommonSecurityLog / ASIM

let Allowed = dynamic(["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"]);
imNetworkSession
| where DstPort between (3300 .. 3399)
| where not( ipv4_is_in_any_range(SrcIpAddr, Allowed) )
| summarize cnt=count(), firstSeen=min(TimeGenerated), lastSeen=max(TimeGenerated)
          by SrcIpAddr, DstIpAddr, DstPort, NetworkProtocol
| where cnt >= 5 or datetime_diff("minute", lastSeen, firstSeen) <= 1

AWS CloudWatch Logs Insights — VPC Flow Logs (przykład + AWS CLI)

Zapytanie:

fields @timestamp, srcAddr, dstAddr, dstPort, action, bytes
| filter dstPort >= 3300 and dstPort <= 3399 and action = 'ACCEPT'
| stats count() as flows, sum(bytes) as totalBytes, min(@timestamp) as firstSeen, max(@timestamp) as lastSeen by srcAddr, dstAddr, dstPort
| sort by flows desc

CLI:

aws logs start-query \
  --log-group-name /vpc/flowlogs/production \
  --start-time $(date -d '15 minutes ago' +%s) \
  --end-time $(date +%s) \
  --query-string 'fields @timestamp, srcAddr, dstAddr, dstPort, action | filter dstPort >= 3300 and dstPort <= 3399 and action="ACCEPT" | stats count() by srcAddr, dstAddr, dstPort'

Elastic Security — EQL (sieć) i KQL (host)

EQL (sieć):

network where destination.port >= 3300 and destination.port <= 3399
  and not cidrmatch(source.ip, "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")

KQL (Windows host):

event.code:1 and event.provider:"Microsoft-Windows-Sysmon" and
process.parent.name:( "disp+work.exe" or "gwrd.exe" or "sapstartsrv.exe" ) and
process.name:( "cmd.exe" or "powershell.exe" )

Uzasadnienie doboru portów i usług: SAP RFC Gateway nasłuchuje na 33xx (sapgw<inst>), co potwierdzają oficjalne materiały SAP.


Heurystyki / korelacje (co łączyć)

  • Łańcuch sieć → aplikacja → host: (1) inbound na 33xx z adresów spoza allowlisty → (2) wzrost liczby logonów RFC/odrzuconych autoryzacji S_RFC w SM20 → (3) pojawienie się powłoki/nietykowego procesu potomnego spod disp+work/gwrd.
  • Anomalia kont technicznych: Nagle wzmożone wywołania RFC przez rzadko używany service user lub nowe destynacje SM59.
  • Zmiana zakresu (Scope Changed): aktywność na hostach zarządzanych przez SolMan po zdarzeniu na SolMan (lateral movement).
  • „Public‑facing” vs. „internal”: traktuj SolMan jak krytyczny admin plane – ekspozycja bramy RFC/ICM poza segment IT Ops zwiększa ryzyko T1190/T1210.

False positives / tuning

  • Legitmny monitoring/automaty (np. EEM, integracje, batch) generują stały ruch RFC — whitelistuj znane źródła/VPN/VPC oraz konta S‑user.
  • Działania adminów w oknach serwisowych (SM59 testy, importy) – uwzględnij harmonogramy.
  • W regułach hostowych ogranicz do serwerów roli SolMan ABAP i do procesów rodziców SAP.

Playbook reagowania (kroki + komendy)

Triage

  1. Zweryfikuj podatność: czy Security Note 3668705 jest zaimplementowana (SNOTE), jaka wersja ST 720 SP.
    • Linux: sapcontrol -nr <inst> -function GetVersionInfo | egrep -i "ST *720|SAP BASIS"
    • Windows PowerShell: sapcontrol.exe -nr <inst> -function GetVersionInfo
    • Sprawdź dziennik wdrożeń not SAP.
  2. Zbierz logi: SM20, gw_log/dev_rd, dev_icm; artefakty hostowe (Sysmon/auditd).

Containment

  • Ogranicz ruch: ACL/Firewall – zamknij 33xx spoza allowlisty; jeżeli w chmurze – NSG/SG.
  • Czasowo zablokuj konto użyte w podejrzanych logonach RFC; wymuś rotację haseł/kluczy SNC.

Eradication

  • Natychmiast wdroż poprawkę (Note 3668705).
  • Zweryfikuj i doprecyzuj role S_RFC/S_RFCACL; wymuś SNC/TLS dla RFC.

Recovery + Lessons

  • Testy regresji krytycznych funkcji SolMan; przywróć dostęp etapami; dopisz kontrolę bazową w SIEM.

(Poprawka i opis CVE wg NVD/SAP Patch Day).

Przydatne szybkie komendy (bezpieczne):

# Linux: nasłuchy i procesy SAP
ss -ltnp | egrep ':33[0-9]{2}\s'         # RFC Gateway
ps -ef | egrep 'disp\+work|gwrd|sapstartsrv|icman'

# Windows (PowerShell): połączenia na 33xx
Get-NetTCPConnection -LocalPort 3300..3399 | 
  Select-Object LocalAddress,LocalPort,RemoteAddress,State

Przykłady z kampanii / case studies

  • CVE‑2020‑6207 (SolMan EEM) – publiczny exploit i aktywne skanowanie/exploity w 2021 r.; pełny kompromis agentów SMD. To pokazuje, że CVE w SolMan są szybko wykorzystywane, jeśli nie spatchowane.
  • CVE‑2025‑31324 (NetWeaver Visual Composer) – aktywna eksploatacja RCE w 2025 r.; potwierdzenie, że n‑day SAP bywają na celowniku.

Status CVE‑2025‑42887: na moment 2025‑11‑12 brak publicznych raportów o aktywnej eksploatacji; zalecane działanie jak dla krytycznych RCE (patch + ograniczenie ekspozycji). (Wnioski na podstawie komunikatów prasowych i NVD).


Lab (bezpieczne testy) — przykładowe komendy

Środowisko: izolowane NON‑PROD SolMan 7.2 (ST 720). Testy nie polegają na eksploatacji CVE — służą weryfikacji detekcji.

  1. Wygeneruj zdarzenia RFC (SM59 → „Test connection”) z hosta testowego spoza allowlisty — powinny pojawić się wpisy w SM20 i w logach Gateway.
  2. Symuluj ruch sieciowy
# skan portów sapgw
nmap -Pn -p 3300-3399 <ip_solman>
  1. Sprawdź logi bramy RFC (GWMON → Logs/Traces) i zweryfikuj, że reguły Sigma/SIEM z pkt 7 wyłapują wejścia spoza allowlisty.
  2. Host telemetry (Windows/Linux) – uruchom prosty proces testowy z poziomu SAP (legalne zadanie/rapport), aby potwierdzić, że reguła „shell spawned by SAP” działa — NIE uruchamiaj poleceń wrażliwych.

Mapowania (Mitigations, Powiązane techniki)

Techniki ATT&CK (Enterprise)

  • T1190 – Exploit Public‑Facing Application (jeśli RFC/ICM wystawione publicznie).
  • T1210 – Exploitation of Remote Services (wykorzystanie RFC w sieci wewnętrznej/lateral).
  • T1068 – Exploitation for Privilege Escalation (eskalacja po uzyskaniu wykonania w ABAP/host).
  • T1059 – Command and Scripting Interpreter (ew. wtórne wykonanie poleceń).

Mitigations ATT&CK

  • M1051 – Update Software (wdrożenie SAP Note 3668705/Patch Day).
  • M1030 – Network Segmentation (izolacja SolMan/RFC Gateway; dostęp tylko z sieci admin).
  • M1040 – Behavior Prevention on Endpoint (EDR/ASR na hostach Windows SolMan).

Źródła / dalsza literatura

  • NVD: opis, wektor CVSS, odniesienia do SAP Note 3668705. (NVD)
  • SAP Security Patch Day (listopad 2025): lista not, CVE‑2025‑42887 (CVSS 9.9), produkt/wersja. (SAP Support Portal)
  • BleepingComputer / SecurityWeek: przegląd poprawek SAP, wzmianka o CVE‑2025‑42887. (BleepingComputer)
  • SAP docs — Security Audit Log, RFC Gateway, S_RFC/S_RFCACL, ACL: konfiguracja i logging. (SAP Help Portal)
  • Porty RFC Gateway (33xx): artykuł KBA/Community. (SAP Support Portal)
  • Kontekst kampanii (SolMan/NetWeaver): Onapsis/Tenable/NVD/Darktrace. (Onapsis)

Checklisty dla SOC / CISO

SOC (operacyjne, 24/7):

  • Reguły SIEM na 33xx inbound + korelacja z SM20 i procesami hosta.
  • Watchlist kont S_RFC/S_RFCACL i destynacji SM59.
  • Alarm „shell from disp+work/gwrd”.
  • Dashboard: status wdrożenia Note 3668705 na wszystkich SolMan.

CISO / GRC (strategiczne):

  • Polityka segmentacji – SolMan wyłącznie w strefie admin z dostępem z bastionów.
  • Harmonogram Patch Day SAP + SLA krytycznych poprawek ≤ 7 dni.
  • Przegląd uprawnień RFC (least privilege) + SNC/TLS obowiązkowe.
  • Testy kontrolne: skan ekspozycji (33xx/ICM), przegląd konfiguracji reg_info/sec_info.

Systemy Biometryczne: Architektura, Podatności i Zabezpieczenia

Czym są systemy biometryczne?

Systemy biometryczne wykorzystują cechy fizyczne lub behawioralne do identyfikacji i uwierzytelniania osób. Biometria obejmuje m.in. cechy fizjologiczne (twarz, tęczówka, odcisk palca, geometria dłoni, siatkówka oka) oraz behawioralne (głos, podpis odręczny, chód, sposób pisania na klawiaturze). W odróżnieniu od tradycyjnych metod (hasła, PIN-y, karty dostępu), cech biometrycznych nie da się zgubić ani zapomnieć, a próby oszukania systemu przez wykradzenie cech są trudniejsze – przynajmniej w teorii.

Czytaj dalej „Systemy Biometryczne: Architektura, Podatności i Zabezpieczenia”

CVE-2025-12735 — expr‑eval: RCE przez nieograniczone funkcje w evaluate()

TL;DR

Biblioteka expr‑eval (oraz fork expr‑eval‑fork) pozwala — z powodu niewystarczającej walidacji wejścia — przekazać do evaluate() spreparowany obiekt zmiennych/kontekstu i wywołać dowolne funkcje, co w środowisku Node.js może prowadzić do zdalnego wykonania kodu (RCE). Fork został załatany (v3.0.0); w oryginalnym repo trwa proces patchowania (PR #288, brak wydania). Priorytet: krytyczny dla backendów Node i funkcji serverless korzystających z expr‑eval.


Krótka definicja techniczna

CVE‑2025‑12735 to luka typu CWE‑94 (Improper Control of Generation of Code / Code Injection) w bibliotece expr‑eval, która umożliwia przekazanie własnych funkcji w obiekcie variables/context do evaluate(). Brak restrykcji/allowlisty funkcji pozwala w Node.js dotrzeć do API procesu (np. pośrednio do child_process) i doprowadzić do wykonania komend systemowych.


Gdzie występuje / przykłady platform

  • Aplikacje Node.js (monolity i mikroserwisy) — API, boty, serwery WWW.
  • Serverless: AWS Lambda/Azure Functions/Cloud Run z runtime Node.
  • Kontenery/Kubernetes: obrazy z zależnością expr-eval.
  • Przeglądarka: wpływ ograniczony (brak process/require), nadal możliwe nadużycia logiki/dane.
  • Fork: expr-eval-forkzałatany w 3.0.0.

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

expr-eval parsuje i ocenia wyrażenia matematyczne. Luka polega na tym, że funkcje dostępne w czasie ewaluacji nie były odpowiednio ograniczone i można je było wstrzyknąć poprzez obiekt zmiennych (evaluate(vars)), co narusza założenia „bezpiecznej alternatywy dla eval”. W środowisku Node.js skutkiem jest możliwość eskalacji do prymitywów wykonania (np. wywołania interpretera lub komend systemowych), gdy aplikacja przekazuje niezaufane wyrażenia/zmienne do parsera. CERT/CC odnotował wprowadzenie łat poprzez PR #288 (allowlista funkcji, mechanizm rejestracji), a GitHub Advisory formalnie klasyfikuje słabość jako CWE‑94. expr‑eval‑fork 3.0.0 zawiera poprawkę; w oryginalnym repo brak wydanego release’u w momencie publikacji.

Zakres wersji (według GH Advisories):

  • expr-eval ≤ 2.0.2 — podatne; brak opublikowanej wersji naprawczej.
  • expr-eval-fork ≤ 2.0.2 — podatne; naprawiono w 3.0.0.

Ocena ryzyka: CISA‑ADP ocenia na CVSS 9.8 (sieć, brak uprawnień/UI), GitHub na 8.6 (CVSS v4.0); różnica wynika z przyjętego modelu wektorów i założeń dot. kontekstu wykonania.


Artefakty i logi (co szukać)

WarstwaŹródło / IDNa co patrzećPrzykład / wskazówka
WindowsSecurity EID 4688, Sysmon EID 1Dziecko procesu node.execmd.exe/powershell.exe; nietypowe -c//cParentImage = \node.exe, Image = \cmd.exe, CommandLine zawiera /c
Sysmon EID 3Nowe połączenia sieciowe z procesu aplikacji NodeNietypowe dest. IP/AS, brak w allowliście egress
Sysmon EID 11/13Tworzenie/zmiana plików/kluczy rejestru przez node.exeDrop plików w temp/autoruns
Linuxauditd (EXECVE), journaldnode uruchamia sh/bash/python z parametrem -c/usr/bin/node … → /bin/sh -c …
Container/K8sK8s audit (create na pods/exec, ephemeralcontainers)Próby ucieczki/utrzymania kontroli po RCEUżytkownik SA aplikacji inicjuje pods/exec
Cloud (AWS)CloudTrailNietypowe UpdateFunctionCode, CreateFunction, modyfikacje env/secrets przez role aplikacjiKoreluj z IP/UA i oknem incydentu
M365/Entra (po wtórnej kompromitacji)Unified Audit LogConsent to application”, „Add service principal”, „Add app role assignment to service principalWeryfikuj nieoczekiwane zgody/role w czasie incydentu

Detekcja (praktyczne reguły)

Sigma (Windows / Sysmon — „Node → shell”)

title: Suspicious Shell Spawned by Node.js (possible expr-eval abuse)
id: 7b3fbf8c-2c7a-4d37-9b7a-ef3a6c1b57a8
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  parent_node:
    ParentImage|endswith: '\node.exe'
  child_shell:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
  cli_flags:
    CommandLine|contains:
      - ' /c '
      - ' -c '
  condition: parent_node and child_shell and cli_flags
fields:
  - Image
  - CommandLine
  - ParentImage
falsepositives:
  - Legit. task runners/installer scripts
level: high
tags:
  - attack.t1059.003
  - attack.t1059.001
  - attack.t1203
  - attack.t1190

Splunk (Sysmon EID=1)

index=your_sysmon_index EventCode=1 ParentImage="*\\node.exe"
| search Image="*\\cmd.exe" OR Image="*\\powershell.exe"
| search CommandLine="* /c *" OR CommandLine="* -c *"
| stats count min(_time) max(_time) by Computer, User, ParentImage, Image, CommandLine

KQL (Microsoft Defender for Endpoint)

DeviceProcessEvents
| where InitiatingProcessFileName =~ "node.exe"
| where FileName in~ ("cmd.exe","powershell.exe","bash","sh")
| where ProcessCommandLine has_any (" /c ", " -c ")
| summarize cnt=count(), firstTime=min(Timestamp), lastTime=max(Timestamp)
        by DeviceName, FileName, ProcessCommandLine, InitiatingProcessCommandLine

CloudTrail (CloudWatch Logs Insights)

fields @timestamp, eventSource, eventName, userIdentity.type, userIdentity.arn, sourceIPAddress
| filter eventSource="lambda.amazonaws.com"
  and eventName in ["UpdateFunctionCode","CreateFunction","UpdateFunctionConfiguration"]
| sort @timestamp desc

Cel: wychwycić nieoczekiwane zmiany kodu/konfiguracji funkcji wykonywane przez role/podmioty powiązane z usługą korzystającą z expr-eval.

Elastic EQL

process
  where process.parent.name == "node"
    and process.name in ("cmd.exe","powershell.exe","sh","bash","python")
    and process.args in ("-c","/c","-e")

Heurystyki / korelacje

  • SBOM/SCA ↔ telemetry: stwierdzona zależność expr-eval (<=2.0.2) lub expr-eval-fork (<=2.0.2) + anomalia „Node → shell”.
  • Wzorce ruchu: nagły egress z procesu aplikacji (nowe domeny/ASN) w pobliżu czasu wywołań evaluate().
  • Zmiany w infrastrukturze: CloudTrail UpdateFunctionCode/modyfikacje env/secret po zdarzeniach aplikacji.
  • M365/Entra: niespodziewane „Consent to application” / „Add service principal” po incydencie (możliwa eskalacja OAuth).

False positives / tuning

  • Legit. narzędzia Node uruchamiające powłokę (instalatory, task‑runnery) — obwiedniaj detekcję listą dozwolonych ścieżek/usług, oknem czasowym (CI/CD), użytkownikiem i komendami (blokuj -c poza maintenance).
  • Środowiska dev — wydzielone indeksy/logsource, niższy poziom alertowania.
  • Serwisy, które w ogóle nie powinny odpalać powłoki — alert krytyczny.

Playbook reagowania (IR)

  1. Triaging: korelacja alertu (Node→shell / CloudTrail / M365) + potwierdzenie zależności w SBOM (npm ls expr-eval).
  2. Izolacja: odłącz instancję/poda (K8s: kubectl cordon/drain serwis, tymczasowe NetworkPolicy egress‑deny).
  3. Ograniczanie szkód: rotacja secretów/tokenów używanych przez serwis; w chmurze — blokada roli/aplikacji zaufania.
  4. Forensyka: zachowaj dysk/pamięć, eksportuj dzienniki (Sysmon/auditd/CloudTrail/M365 UAL).
  5. Eradykacja:
    • Migracja do expr-eval-fork 3.0.0 lub wdrożenie łatki po publikacji release oryginału; tymczasowo usuń/wyłącz niestandardowe funkcje i wdroż allowlistę funkcji.
  6. Weryfikacja: testy regresji, monitoring post‑incident (szczególnie „Consent to application” w M365).
  7. Lessons learned: reguły pre‑commit/CI (npm audit, SCA), polityki review zmian zależności.

Przykłady z kampanii / case studies

Na dzień 11 lis 2025 brak potwierdzonej eksploatacji „in the wild”; Tenable klasyfikuje CVE jako „not exploited (being monitored)”. Rekomendowane jest pilne łatanie/migracja.


Lab (bezpieczne testy)

A. Weryfikacja zależności

# sprawdź wersję
npm ls expr-eval expr-eval-fork
# jeżeli obecne i podatne, przygotuj hotfix/migrację (fork 3.0.0)

B. Generowanie sygnałów do reguł (symulacja „Node → shell”)bez użycia luki:

# Linux
node -e "require('child_process').spawn('/bin/sh',['-c','echo ok'],{stdio:'inherit'})"
# Windows (PowerShell)
node -e "require('child_process').spawn('cmd.exe',['/c','echo ok'])"

Następnie zweryfikuj dopasowania: Sysmon EID=1, auditd EXECVE, oraz reguły Sigma/SPL/KQL.

C. K8s/CloudTrail

  • W K8s odpal kubectl auth can-i dla SA serwisu i potwierdź brak uprawnień do pods/exec.
  • W AWS przepuść kontrolowany UpdateFunctionConfiguration (np. dummy tag), aby potwierdzić zadziałanie zapytania CloudWatch Insights.

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1038 Execution Prevention (application allowlisting, blokada interpreterów w usługach).
  • M1054 Software Configuration (wyłącz/ogranicz niestandardowe funkcje, hardening konfigu).
  • M1045 Code Signing (wymuszaj podpisy/CI deklaratywny deployment).
  • M1047 Audit (regularny audyt zależności i uprawnień).

Powiązane techniki: T1190, T1203, T1059(.003/.004/.007)


Źródła / dalsza literatura

  • NVD: opis, CVSS CISA‑ADP 9.8, referencje (w tym PR #288, npm). (NVD)
  • CERT/CC VU#263614: opis wektora, stan łat (PR #288), identyfikatory (GHSA). (CERT Coordination Center)
  • GitHub Advisory (GHSA‑jc85‑fpwf‑qm7x): zakres wersji podatnych i wersje naprawcze (fork 3.0.0), CWE‑94, CVSS v4.0. (GitHub)
  • PR #288 (silentmatt/expr‑eval): propozycja poprawki (allowlista, testy), status Open. (GitHub)
  • BleepingComputer — materiał prasowy o RCE i rekomendacji migracji do forka. (BleepingComputer)
  • Tenable Research — status „not exploited” (monitorowane). (Tenable®)
  • ATT&CK v18 — wersjonowanie i strony technik. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna)

  • Aktywuj/zweryfikuj telemetry: Sysmon (Win), auditd (Linux), K8s Audit, CloudTrail.
  • Wdroż reguły: Sigma/KQL/SPL/EQL z tej noty.
  • Przekrój SBOM/SCA: znajdź expr-eval/expr-eval-fork ≤ 2.0.2.
  • Koreluj „Node → shell” oraz nietypowy egress z procesów aplikacji.
  • Monitoruj M365 UAL pod kątem „Consent to application”/„Add service principal”.

CISO / AppSec (strategiczna)

  • Migracja: expr-eval-fork 3.0.0 lub oczekuj na oficjalny release oryginału (po weryfikacji PR #288).
  • Polityki wejścia: zakaz ewaluacji niezweryfikowanych wyrażeń; allowlista funkcji.
  • CI/CD: blok w PR na dodanie podatnych wersji (SCA), podpisy artefaktów (M1045).
  • Least privilege dla ról chmurowych usług korzystających z expr‑eval; segmentacja egress.
  • Plan IR: playbook z rotacją sekretów i sanityzacją środowiska po incydencie.

Uwaga dot. łat: wg GHSA fork expr‑eval‑fork ma poprawkę w 3.0.0; w oryginalnym expr‑eval trwa proces patchowania (PR #288, w momencie pisania Open). Planiści powinni rozważyć pilną migrację do forka i later ew. powrót po publikacji stabilnego wydania z łatą.

CVE-2025-55177 — WhatsApp (iOS/macOS): niepełna autoryzacja komunikatów synchronizacji urządzeń połączonych

TL;DR

CVE‑2025‑55177 to błąd niepełnej autoryzacji w mechanizmie „Linked devices” WhatsAppa (iOS/macOS), który pozwalał niepowiązanemu napastnikowi wymusić przetwarzanie treści spod dowolnego URL na urządzeniu ofiary. Sam w sobie ma umiarkowane CVSS (5.4), ale w łańcuchu z iOS/macOS ImageIO (CVE‑2025‑43300) mógł prowadzić do zero‑click RCE i instalacji spyware w silnie ukierunkowanych kampaniach. Zalecane: aktualizacja WhatsApp ≥ 2.25.21.73 (iOS) / 2.25.21.78 (Business iOS, Mac), włączenie Lockdown Mode dla użytkowników wysokiego ryzyka, przegląd urządzeń połączonych, telemetria sieciowa dla procesu WhatsApp.


Krótka definicja techniczna

Luka wynika z CWE‑863: Incorrect Authorization – niekompletne sprawdzenia uprawnień dla komunikatów synchronizacji urządzeń połączonych w WhatsApp. Skutkiem było wywołanie przez napastnika przetwarzania zdalnej zawartości (arbitrary URL) na urządzeniu ofiary, co w praktyce umożliwiało „podrzucenie” potencjalnie szkodliwej treści parserom systemowym (np. ImageIO).


Gdzie występuje / przykłady platform

  • iOS/iPadOS: WhatsApp < 2.25.21.73, WhatsApp Business < 2.25.21.78 (iPhone/iPad).
  • macOS: WhatsApp < 2.25.21.78.
  • Inne środowiska (Windows, AD, AWS, Azure, GCP, K8s, ESXi, M365): brak bezpośredniego wpływu; obserwacje i detekcje mogą jednak korzystać z SIEM/XDR w tych domenach (np. Microsoft Defender XDR, Elastic). [brak natywnego telemetry w CloudTrail/K8s/M365 dla tej luki]

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

Mechanizm Linked devices w WhatsApp umożliwia synchronizację danych czatu między urządzeniem głównym a urządzeniami wtórnymi. W CVE‑2025‑55177 brakowało pełnej autoryzacji wiadomości synchronizacyjnych, przez co osoba niepowiązana mogła spowodować, że klient pobrał/przetworzył treść z arbitralnego URL. W połączeniu z CVE‑2025‑43300 (ImageIO) – zero‑day w parserze obrazów Apple – przetworzona treść mogła wyzwolić korupcję pamięci i wykonanie kodu bez interakcji użytkownika (zero‑click), co zaobserwowano w kampanii ukierunkowanej na ograniczoną liczbę ofiar (≤200). Skuteczność wynika z połączenia: (1) braku UI (brak kliknięcia), (2) „legitymizacji” ruchu przez aplikację zaufaną oraz (3) łańcuchowania z podatnością systemową.


Artefakty i logi

Źródło / ArtefaktPlatformaPrzykład pól/EIDCo szukaćŚcieżka/Notatka
Unified Logs (OSLog)macOSprocess, eventMessage, subsystemWejścia procesu WhatsApp tuż przed crash/alertem, wzmianki o ImageIO, nietypowe URLPrzegląd przez Console.app lub log show; crashy szukaj w DiagnosticReports.
Crash ReportsmacOSRaport .crashCrashe procesu WhatsApp z ramkami ImageIO/CFNetwork~/Library/Logs/DiagnosticReports/ oraz /Library/Logs/DiagnosticReports/.
sysdiagnose / logarchiveiOS/macOSlogarchiveChronologia zdarzeń WhatsApp/CFNetwork, domeny zdalneGenerowanie sysdiagnose i analiza system_logs.logarchive.
Microsoft Defender XDRmacOS/iOS (MTD)DeviceNetworkEvents (RemoteUrl, InitiatingProcessFileName)Połączenia WhatsApp do domen spoza allowlisty (np. *.whatsapp.com/.net, *.fbcdn.net, *.facebook.com)Schemat Advanced Hunting.
Elastic / ECSmacOSevent.category: network, process.name, destination.domainNietypowe domeny pochodzące od procesu WhatsAppEQL/Detection rules.
MDM (Jamf/itd.)iOSinwentarz wersji appWersje < 2.25.21.73/78Procedury zbierania sysdiagnose / inwentarz aplikacji.
CloudTrail / K8s audit / M365Nie dotyczy bezpośrednio (aplikacja kliencka na iOS/macOS)[brak danych / poza zakresem]

Detekcja (praktyczne reguły)

Uwaga: reguły są defensywne i mają charakter wzorców do tuningu pod własne źródła logów; nie opisują sposobu nadużycia.

Sigma

title: WhatsApp connects to non-owned domains (macOS)
id: 5e7f6c7a-1b0b-4b1a-a1c3-WhatsApp-NonOwnedDomains
status: experimental
description: Detects WhatsApp initiating network connections to domains outside known Meta/WhatsApp CDNs which may indicate CVE-2025-55177 abuse chain.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2025-55177
  - https://www.whatsapp.com/security/advisories/2025
logsource:
  category: network_connection
  product: macos
detection:
  selection:
    ProcessName|contains:
      - "WhatsApp"
  filter_allowed_domains:
    DestinationDomain|endswith:
      - ".whatsapp.com"
      - ".whatsapp.net"
      - ".fbcdn.net"
      - ".facebook.com"
  condition: selection and not filter_allowed_domains
fields:
  - DestinationIp
  - DestinationPort
  - DestinationDomain
  - ProcessName
level: medium
tags:
  - attack.T1658
  - attack.T1203

Wymagane dopasowanie pól do źródeł w Twoim SIEM; logsource i pola zgodne z konwencją Sigma.

Splunk (SPL)

index=endpoint OR index=network
| eval pname=coalesce(process_name, process, Image, InitiatingProcessFileName)
| search pname="WhatsApp" OR pname="WhatsApp Helper"
| eval domain=coalesce(dest_domain, DestinationHostname, url, RemoteUrl)
| where NOT (like(domain, "%.whatsapp.com") OR like(domain, "%.whatsapp.net")
             OR like(domain, "%.fbcdn.net") OR like(domain, "%.facebook.com"))
| stats values(domain) as domains, dc(domain) as uniq by host, pname, dest_ip, dest_port
| where uniq>0

KQL (Microsoft Defender XDR – Advanced Hunting)

DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("WhatsApp", "WhatsApp Helper")
| where isnotempty(RemoteUrl)
| where not(
    RemoteUrl endswith ".whatsapp.com" or
    RemoteUrl endswith ".whatsapp.net" or
    RemoteUrl endswith ".fbcdn.net" or
    RemoteUrl endswith ".facebook.com")
| summarize count(), make_set(RemoteUrl, 10) by DeviceName, bin(Timestamp, 1h)

Pola i tabela zgodne z dokumentacją DeviceNetworkEvents.

CloudTrail query (AWS CLI/CloudWatch)

Nie dotyczy bezpośrednio. Jeśli jednak Twoja organizacja loguje ruch proxy do CloudWatch (np. ALB/CloudFront), zastosuj CloudWatch Logs Insights dla dzienników HTTP, filtrując UA/hosty procesu WhatsApp — przykład do adaptacji:

fields @timestamp, @message
| filter @message like /WhatsApp/ and not @message like /whatsapp\.com|whatsapp\.net|fbcdn\.net|facebook\.com/
| sort @timestamp desc
| limit 100

Elastic / EQL

network where
  process.name == "WhatsApp" and
  not (destination.domain matches "*.whatsapp.com" or
       destination.domain matches "*.whatsapp.net" or
       destination.domain matches "*.fbcdn.net" or
       destination.domain matches "*.facebook.com")

Składnia i kontekst EQL wg dokumentacji Elastic.


Heurystyki / korelacje

  • Sekwencja czasowa: (a) nietypowe połączenie WhatsApp → obca domena → (b) crash/restart aplikacji lub wpisy ImageIO/CFNetwork → (c) ostrzeżenia MTD/XDR nt. anomalii. Koreluj w oknie ±5 min.
  • Kontekst użytkownika: ofiary o profilu wysokiego ryzyka (dziennikarze, NGO, VIP) – priorytet IR. (zero‑click, wysokie TTP APT/komercyjny spyware).
  • Wersje aplikacji/OS: detekcja urządzeń z wersjami poniżej bezpiecznych buildów WhatsApp i OS‑ów z CVE‑2025‑43300 przed poprawką.

False positives / tuning

  • Legalne media/CDN’y inne niż .whatsapp. / .fbcdn. mogą generować ruch (np. podgląd linków, załączniki) — dostosuj allowlistę do telemetrii.
  • Środowiska z TLS inspection / proxy: domena docelowa może być zastąpiona domeną proxy — filtruj po SNI/http_host w logach L7.
  • Aplikacje towarzyszące (np. komponenty WebKit Network/Helper na macOS) mogą mieć inne nazwy procesu — rozszerz listę InitiatingProcessFileName.
  • Brak crashy nie wyklucza próby — atak może nie trafić w podatny parser lub warunki wyścigu.

Playbook reagowania (IR)

  1. Triage i ograniczenie ryzyka
    • Zidentyfikuj urządzenia z WhatsApp < 2.25.21.73 (iOS) / < 2.25.21.78 (Business iOS, Mac). Wymuś aktualizację.
    • Rozważ Lockdown Mode dla użytkowników wysokiego ryzyka (iPhone/iPad/Mac).
    • W WhatsApp: przegląd i usunięcie nieznanych urządzeń połączonych (Linked devices).
  2. Zachowanie materiału dowodowego
    • Na iOS: wygeneruj sysdiagnose (czas, data) i zabezpiecz logarchive.
    • Na macOS: zarchiwizuj Crash Reports i Unified Logs związane z WhatsApp/ImageIO.
  3. Łowy zagrożeń
    • Uruchom reguły z sekcji 7 w XDR/SIEM; skoreluj z domenami, które nie należą do Meta/WhatsApp.
  4. Eradykacja i odtworzenie
    • Aktualizacje OS ze ścieżki CVE‑2025‑43300 (iOS/iPadOS/macOS), reboot.
    • Zresetuj sesje, odśwież tokeny push, rotuj klucze E2E (wylogowanie i ponowne sparowanie urządzeń) — zgodnie z polityką prywatności/ryzyka.
  5. Komunikacja
    • Poinformuj użytkowników o incydencie i konieczności aktualizacji; rozważ noty do zespołu prawnego/PR przy potencjalnej ingerencji spyware.

Przykłady z kampanii / case studies

  • Eksploatacja łańcuchowa: WhatsApp (CVE‑2025‑55177) → Apple ImageIO (CVE‑2025‑43300) → zero‑click na iOS/macOS; ≤200 celów globalnie, profil wysokiego ryzyka.
  • Potwierdzenie KEV (CISA): luka dodana do Known Exploited Vulnerabilities 2025‑09‑02.
  • Doniesienia branżowe: vendor advisories i analizy potwierdzają użycie luki w wysoko ukierunkowanych atakach z łańcuchowaniem do CVE‑2025‑43300.

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w środowisku testowym / bez symulacji eksploitu. Celem jest weryfikacja widoczności i reguł.

macOS

# Sprawdź wersję aplikacji (App Store build)
mdls -name kMDItemVersion "/Applications/WhatsApp.app"

# Szybki podgląd aktywności procesu w logach z ostatnich 2h
log show --last 2h --predicate 'process == "WhatsApp"' --style syslog | head

# Wykaz bieżących połączeń sieciowych aplikacji
sudo lsof -i -a -c WhatsApp

iOS (bez jailbreak)

  • Wygeneruj sysdiagnose (kombinacja przycisków zg. z instrukcją Apple), zgraj i załaduj system_logs.logarchive do narzędzia analitycznego.

XDR/SIEM

  • Uruchom zapytania z sekcji 7 i zweryfikuj, że połączenia do dozwolonych CDN nie generują alertów (tuning allowlisty).

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK):

  • M1051 — Update Software: aktualizacje WhatsApp i OS (iOS/iPadOS/macOS).
  • M1042 — Disable or Remove Feature or Program: ogranicz lub wyłącz „Linked devices” dla grup wysokiego ryzyka (polityka MDM).
  • M1021 — Restrict Web‑Based Content: filtrowanie URL/SNI, SSL inspection z ostrożnością, polityki DLP dla mediów.

Powiązane techniki (do rozważenia w polu):

  • T1071.001 — Web Protocols (C2/Delivery przez HTTP/HTTPS) dla etapów późniejszych lub alternatywnych ścieżek.

Źródła / dalsza literatura

  • NVD — CVE‑2025‑55177 (opis, CVSS CNA 5.4, CWE‑863, KEV): „Incomplete authorization of linked device synchronization messages…”. (NVD)
  • CVE.org — rekord (Meta CNA). (CVE)
  • WhatsApp Security Advisories 2025 (wersje naprawcze; łańcuch z CVE‑2025‑43300). (whatsapp.com)
  • CISA KEV (dodanie do katalogu 2025‑09‑02). (CISA)
  • Apple / CVE‑2025‑43300 (ImageIO, out‑of‑bounds write; backporty): wsparcie i NVD. (Apple Support)
  • Unit 42 (kontekst łańcuchów zero‑click); The Hacker News, SecurityWeek (streszczenia). (Unit 42)
  • Apple forensics i logi: sysdiagnose / logarchive / Crash Reports (ścieżki). (Apple Podcasts)
  • ATT&CK Mobile/Enterprise (T1658, T1664, T1203; v18). (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC:

  • Wdrożone reguły z sekcji 7 (XDR/SIEM) + allowlista domen Meta/WhatsApp.
  • Raport urządzeń z wersjami WhatsApp < 2.25.21.73/78 i OS bez łatki CVE‑2025‑43300.
  • Procedura zbierania sysdiagnose/logarchive i Crash Reports gotowa na żądanie IR.
  • Korelacje: połączenie WhatsApp → obca domena + wpisy ImageIO/crash w ±5 min.

CISO:

  • Polityka MDM: wymuszona aktualizacja WhatsApp/OS; Lockdown Mode dla wysokiego ryzyka.
  • Przegląd i ograniczenie Linked devices w organizacji (edukacja + kontrola).
  • Potwierdzona zgodność z CISA KEV (SLA na patching).
  • Test stołowy: scenariusz zero‑click na urządzeniach mobilnych (triage + komunikacja).

CVE-2025-21042 — RCE w libimagecodec.quram.so (Samsung Galaxy)

TL;DR

  • Krytyczny błąd out‑of‑bounds write w bibliotece obrazu libimagecodec.quram.so na urządzeniach Samsung umożliwia zdalne wykonanie kodu podczas przetwarzania specjalnie spreparowanego pliku DNG; załatany w SMR Apr‑2025 Release 1.
  • NVD ocenia bazowy CVSS 3.1 = 9.8 (UI:N), podczas gdy ocena producenta wskazuje 8.8 (UI:R) — różnica wynika z interpretacji wymaganej interakcji użytkownika.
  • CISA dodała CVE-2025-21042 do KEV (11‑10‑2025), wymagając szybkiego wdrożenia łatek.
  • W kampanii LANDFALL złośliwe DNG przekazywano m.in. przez komunikatory; po exploicie ładowano komponenty spyware i łączono się z C2.
  • Dla SOC: wykrywaj krótki łańcuch pobranie DNG → crash/SEGSEGV libimagecodec → outbound HTTPS C2, waliduj poziom SMR, izoluj urządzenia przez MDM.

Krótka definicja techniczna

CVE‑2025‑21042 to podatność typu out‑of‑bounds write w libimagecodec.quram.so (komponent parsowania obrazów na Androidzie Samsunga). Przetworzenie specjalnie spreparowanego pliku obrazu może skutkować zdalnym wykonaniem kodu. Problem został zaadresowany w Samsung Mobile Security Maintenance Release (SMR) Apr‑2025 Release 1.


Gdzie występuje / przykłady platform

  • Android (Samsung Galaxy): biblioteka libimagecodec.quram.so; podatność aktywuje się podczas parsowania zawartości (np. DNG). Patch dostępny od SMR Apr‑2025 R1.
  • Komunikatory / aplikacje konsumenckie: kampania LANDFALL wykorzystywała spreparowane pliki DNG (często dostarczane przez komunikator), co prowadziło do RCE i doinstalowania komponentów spyware.
  • Windows / AD / AWS / Azure / GCP / K8s / ESXi / M365: nie dotyczy bezpośrednio (wektor dotyczy urządzeń mobilnych i ich aplikacji). W środowiskach korporacyjnych wpływ występuje pośrednio (MDM/EDR dla Android, serwisy proxy/DLP).

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

Wadliwe sprawdzenie granic bufora w libimagecodec.quram.so pozwala nadpisać pamięć podczas dekodowania obrazu. W obserwowanej kampanii LANDFALL nośnikiem były pliki DNG (TIFF‑like), do których dodano na końcu zarchiwizowane komponenty (ZIP). Po skutecznym RCE łańcuch wyodrębniał i uruchamiał .so loadera, który dalej pobierał moduły spyware i nawiązywał łączność z C2. Samsung usunął błąd w SMR Apr‑2025 R1; CISA klasyfikuje podatność jako aktywnie wykorzystywaną (KEV). Skuteczność wynika z: szerokiej powierzchni ataku (rendering obrazów przez aplikacje), trudności w inspekcji treści binarnej obrazów oraz łańcucha, który minimalizuje artefakty instalacyjne.

Uwaga o ocenach: NVD przypisał CVSS 9.8 (UI:N), a producent 8.8 (UI:R) — w praktyce obserwowano scenariusz z dostarczeniem przez usługę/komunikator; nie wszystkie warianty muszą wymagać interakcji użytkownika.


Artefakty i logi (co i gdzie szukać)

WarstwaŹródło/logCo szukaćPrzykład/wzorzec
Android (urządzenie)logcat (crash, events)Crashe mediaserver/procesu parsującego z odniesieniem do libimagecodec.quram.so; SIGSEGV/signal 11message:*libimagecodec.quram.so* AND (*SIGSEGV* OR *signal 11*)
Android (tombstones)/data/tombstones/Backtrace z ramką w libimagecodec.quram.so; offsety w dekoderze obrazuplik tombstone_*.txt z backtrace ... libimagecodec.quram.so
Aplikacje/IOŚcieżki plików aplikacji (np. media z komunikatora)Świeżo zapisane pliki .dng poprzedzające crash.../Media/.../*.dng (czas modyfikacji ≈ czas crasha)
Sieć/Proxy/NGFWHTTP(S) transakcje z CDN komunikatora; odpowiedzi image/x-adobe-dngNietypowo duże DNG; anomalia UA; po pobraniu — połączenia do rzadkich domen (C2)content_type=image/x-adobe-dng AND bytes_in > N potem dst_category=unknown
MDM/MTD/EDR MobileInwentarz wersji / zgodność patchyPoziom SMR < Apr‑2025 R1raport zgodności MDM: brak łat bezpieczeństwa kwiecień 2025
M365/Defender AHDeviceTvmSoftwareVulnerabilities (jeśli dostępne dla Android)Wzmianki o CVE-2025-21042 na urządzeniach mobilnychCveId == "CVE-2025-21042"
AWS CloudTrailNie dotyczy (wektor mobilny)
K8s auditNie dotyczy
M365 OperationsPośrednio: alerty DLP/Defender na strumienie C2wzmianki o anomaliach HTTP(S) po crashu

Źródła techniczne o wektorze i łatce: NVD/Samsung/Unit42.


Detekcja (praktyczne reguły)

Sigma (Android logcat — crash dekodera obrazu)

title: CVE-2025-21042 — podejrzenie exploitu (crash libimagecodec.quram.so po DNG)
id: 5f2b0a2b-2f9d-4b64-9f3e-c21042dng
status: experimental
description: Wykrywa crash parsowania obrazu z odniesieniem do libimagecodec.quram.so po zapisaniu pliku .dng (np. z komunikatora)
author: Badacz CVE
date: 2025/11/11
logsource:
  product: android
  service: logcat
detection:
  crash:
    message|contains:
      - 'libimagecodec.quram.so'
      - 'SIGSEGV'
  dng_hint:
    message|contains:
      - '.dng'
  condition: crash and dng_hint
falsepositives:
  - Rzadkie awarie libimagecodec podczas obróbki prawidłowych plików
level: high
tags:
  - cve.2025-21042
  - attack.t1658
  - attack.t1664

Splunk (SPL) — korelacja: zapis DNG → crash → wyjście HTTPS

| tstats summariesonly=f allow_old_summaries=t
  count from datamodel=Endpoint.Filesystem
  where Filesystem.file_extension=dng
  by _time, Filesystem.dest, Filesystem.file_name, Filesystem.file_path
| rename Filesystem.dest as device, Filesystem.file_name as fname, Filesystem.file_path as fpath
| join device [ search index=android sourcetype=logcat (libimagecodec.quram.so AND (SIGSEGV OR "signal 11"))
               | stats earliest(_time) as crash_time by host
               | rename host as device ]
| where abs(crash_time - _time) <= 300
| join device [ search index=proxy OR index=fw (dest_category=unknown OR category="newly_seen")
               | stats latest(_time) as c2_time by src_ip, cs_host
               | rename src_ip as device ]
| table device, fname, fpath, _time, crash_time, c2_time, cs_host

KQL (Microsoft 365 Defender — Advanced Hunting)

  1. Widok podatności (TVM), jeśli dostępny dla Androida:
DeviceTvmSoftwareVulnerabilities
| where CveId == "CVE-2025-21042"
| summarize dcount(DeviceId) by SoftwareVendor, SoftwareName
  1. Korelacja crashu i potencjalnej aktywności sieciowej:
let CrashWin = 5m;
let crashes =
DeviceEvents
| where DeviceType == "Android"
| where ActionType in ("ApplicationCrashed","ExploitAttempted","AbnormalProcessTermination")
| where AdditionalFields has "libimagecodec.quram.so";
let dngWrites =
DeviceFileEvents
| where DeviceType == "Android"
| where FileName endswith ".dng";
crashes
| join kind=innerunique (dngWrites) on DeviceId
| where datetime_diff('second', crashes.Timestamp, dngWrites.Timestamp) between (-CrashWin .. CrashWin)

CloudTrail query (AWS CLI/CloudWatch)

  • [nie dotyczy] — brak bezpośrednich zdarzeń AWS dla wektora mobilnego.

Elastic / EQL (ECS)

sequence by host.id with maxspan=5m
  [ file where file.extension == "dng" and process.name in ("com.whatsapp","com.android.mms","com.sec.android.gallery3d") ]
  [ any where event.category == "process" and event.action == "crash" and message like "*libimagecodec.quram.so*" ]
  [ network where network.protocol == "http" and destination.domain in ("unknown","newly_observed") ]

Wzorce oparte na publicznych opisach wektora (DNG → crash → C2). Dostosuj nazwy pól do własnego schematu.


Heurystyki / korelacje

  • Korelacja czasowa: zapis/plansza DNG w mediach komunikatora ±5 min → crash libimagecodec.quram.so → nowy outbound HTTPS do mało‑popularnej domeny.
  • Anomalia rozmiaru: DNG większy niż typowe zdjęcia RAW z telefonu użytkownika (ze względu na doczepione ZIP).
  • Ścieżka pliku i nazewnictwo: wzorce typu WhatsApp Image YYYY-MM-DD ... .jpeg z rozszerzeniem DNG/niepełnym EXIF.
  • Geografia/intel: próbki obserwowane m.in. w Irak, Iran, Turcja, Maroko — wzmocnij monitoring dla tych regionów/oddziałów.

False positives / tuning

  • Pojedyncze crashe dekodera obrazu (wadliwe pliki graficzne, aplikacje foto).
  • Legalne pliki DNG z dużymi zasobnikami (profesjonalne RAW), bez dalszych objawów (brak C2).
  • Tuning: wymagaj sekwencji: DNG → crash → nowy outbound do mało‑popularnej domeny oraz brak patcha SMR Apr‑2025 na urządzeniu.

Playbook reagowania (IR)

  1. Triag/izolacja: odizoluj urządzenie w MDM (blokada sieci, wyłącz backupy).
  2. Weryfikacja łatek: sprawdź SMR Apr‑2025 R1 lub nowszy; brak → wymuś aktualizację.
  3. Zabezpieczenie artefaktów: zbierz logcat -b crash -d, tombstones, listę ostatnio zapisanych .dng i ich SHA‑256 (nie otwieraj na urządzeniu!).
  4. Hunting: wyszukaj w proxy/NGFW rzadkie domeny po crashu; skorelować z innymi urządzeniami.
  5. Eradykacja: usuń podejrzane media, przywróć urządzenie do stanu zgodnego (patch), zresetuj tokeny/aplikacje dotknięte (komunikatory).
  6. Komunikacja: poinformuj użytkownika, przeprowadź świadomość nt. nieotwierania nieoczekiwanych obrazów (do czasu pełnej dystrybucji poprawek).
  7. Lessons Learned: dodaj reguły DLP/NGFW dla nietypowych DNG z CDN komunikatorów; zasil listy C2 z TI.

Przykłady z kampanii / case studies

  • LANDFALL (Unit 42, 2024–2025): Zidentyfikowano spreparowane DNG z dołączonym ZIP; po exploicie łańcuch ładował moduły spyware i łączył z C2. Aktywność obserwowana m.in. w Iraku, Iranie, Turcji i Maroku.
  • Doniesienia prasowe (THN/SecurityWeek) potwierdzają wykorzystanie CVE‑2025‑21042 jako zero‑daya do dostarczenia LANDFALL na Galaxy; patch w kwietniu 2025.
  • KEV: CISA dodała CVE do katalogu znanych exploitów 10 listopada 2025 — priorytet wdrożenia łatek.

Lab (bezpieczne testy) — tylko do walidacji detekcji

Nie generujemy exploitów. Poniższe kroki tworzą nieszkodliwy plik testowy (DNG z doczepionym ZIP), aby sprawdzić łańcuch detekcyjny. Nie otwieraj pliku na podatnych urządzeniach.

  1. Przygotuj próbkę:
# Użyj dowolnego bezpiecznego DNG (np. z aparatu) lub skonwertuj zdjęcie do DNG w narzędziu offline.
echo "hello" > harmless.txt
zip harmless.zip harmless.txt
cat sample.dng harmless.zip > sample_dng_plus_zip.dng
sha256sum sample_dng_plus_zip.dng
  1. Weryfikacja sygnatur:
# Spodziewane 'PK\x03\x04' blisko końca pliku
strings -n 4 sample_dng_plus_zip.dng | tail
  1. Walidacja pipeline: wgraj plik na sandbox/serwer skanujący (nie na urządzenie mobilne), sprawdź czy:
    • reguły proxy/IDS klasyfikują go jako image/x-adobe-dng o większym rozmiarze,
    • reguły SIEM (z sekcji 7) flagują zdarzenie (bez części „crash”).

Mapowania (Mitigations, powiązane techniki)

Mitigations (Mobile/Enterprise):

  • M1051 — Update Software: natychmiastowe wdrożenie SMR Apr‑2025 R1 i nowszych na urządzeniach Samsung.
  • M1013 — Application Developer Guidance: twarda walidacja danych wejściowych w bibliotekach obrazów (wskazanie dla dostawców/SDLC).
  • M1002 — Attestation (Mobile): egzekwuj nienaruszalność/stan urządzeń (wykrywanie modyfikacji/SELinux).

Powiązane techniki ATT&CK:

  • T1658 (Mobile), T1203 (Enterprise)Exploitation for Client Execution (rdzeń problemu).
  • T1664 (Mobile)Exploitation for Initial Access (wejście przez parser obrazu).
  • T1566.003 (Enterprise)Spearphishing via Service (dostarczanie przez komunikator).

Źródła / dalsza lektura

  • NVD/CVE: opis, oceny CVSS (różnica NVD vs. producent), KEV (data dodania). (NVD)
  • CVE.org: rekord CVE. (CVE)
  • Samsung SMR Apr‑2025 R1: wpis SVE‑2024‑1969 → CVE‑2025‑21042 i status łaty. (Samsung Mobile Security)
  • Unit 42 (Palo Alto Networks): analiza kampanii LANDFALL (DNG z doczepionym ZIP, łańcuch spyware, geografia). (Unit 42)
  • The Hacker News / SecurityWeek: doniesienia prasowe o real‑world exploitation i patchu. (The Hacker News)
  • MITRE ATT&CK — wersje i techniki Mobile/Enterprise: techniki T1658/T1664/T1203/T1566.003; wersja v18.0. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna):

  1. Widok urządzeń Samsung + poziom SMR (Apr‑2025 lub nowszy).
  2. Reguły SIEM: sekwencja DNG → crash libimagecodec → nowe C2.
  3. Filtry proxy/NGFW dla image/x‑adobe‑dng z CDN komunikatorów (anomalie rozmiaru).
  4. Blokada/monitoring domen „nowo obserwowanych” po crashu.
  5. Collectors: logcat crash, tombstones z Androida.
  6. Hurtowe wyszukiwanie CVE‑2025‑21042 w TVM/MDM/EDR.
  7. Procedura szybkiej izolacji przez MDM.
  8. Playbook IR z sekcji 10 (w tym komunikacja z użytkownikiem).
  9. Walidacja reguł detekcyjnych na plikach testowych (sekcja 12).
  10. Retrospektywny hunting 2024–2025 pod kątem anomalii DNG.

CISO (strategiczna):

  1. SLA na wdrażanie SMR/aktualizacji (mitigation M1051).
  2. Polityka MDM wymuszająca stan „zgodny” przed dostępem do zasobów.
  3. Zdolność do telemetrii mobilnej (logcat/tombstones) w SIEM.
  4. Threat intel dotyczący KEV i kampanii mobilnych (LANDFALL).
  5. Testy kontrolne: inspekcja nośników medialnych (obrazy/RAW) w gateway’u.
  6. Program świadomości o zagrożeniach w komunikatorach (T1566.003).

Quantum Route Redirect (QRR): nowa platforma PhaaS do przekierowań, która masowo wykrada dane logowania Microsoft 365

Wprowadzenie do problemu / definicja luki

Badacze opisali nową usługę Phishing-as-a-Service (PhaaS) o nazwie Quantum Route Redirect (QRR), która automatyzuje całą kampanię phishingu – od routingu ruchu po profilowanie ofiar – i uderza w użytkowników Microsoft 365 na całym świecie. Platforma jest dostarczana „pod klucz”, wraz z setkami przygotowanych domen i gotowych szablonów wiadomości (m.in. DocuSign, HR/payroll, płatności, „missed voicemail”, a także QR-code phishing / quishing). Kluczowym elementem QRR jest inteligentne przekierowanie: boty i skanery firmowe trafiają na strony „benign”, a ludzie – na właściwe strony zbierające poświadczenia.


W skrócie

  • Skala: ~1000 domen hostujących QRR, kampanie w 90 krajach, z czego 76% ataków wymierzonych w USA.
  • Wzorzec URL: stały path z /quantum.php oraz charakterystyczne nazewnictwo hostów na zaparkowanych lub skompromitowanych domenach.
  • Omijanie zabezpieczeń: rozróżnianie botów vs. ludzi, przekierowania „czyszczące” dla Secure Email Gateway/ICES, WAF i skanerów URL.
  • Cel: kradzież poświadczeń Microsoft 365 (O365/M365) i przejęcia kont.
  • Trend: rosnąca „platformizacja” phishingu – podobnie do VoidProxy, Darcula, Tycoon2FA.

Kontekst / historia / powiązania

2024–2025 to wyraźna profesjonalizacja PhaaS. Przykładowo:

  • Tycoon2FA upowszechnił AiTM/MFA-bypass poprzez reverse proxy i relaying sesji.
  • Darcula rozwinęła globalną sieć dziesiątek tysięcy domen, celując m.in. w kanały RCS/iMessage i usługi pocztowe na całym świecie.
  • VoidProxy celuje w M365 i Google, również integrując anti-bot oraz obsługę SSO/IdP.

W tym samym czasie dostawcy i organy ścigania dezintegrują wielkie usługi PhaaS – np. RaccoonO365 (przejęto setki domen i kont Cloudflare Workers). To pokazuje, że rynek PhaaS jest dynamiczny: nowi gracze (jak QRR) szybko wypełniają lukę po rozbitych ekosystemach.


Analiza techniczna / szczegóły luki

Łańcuch ataku (TTP)

  1. E-mail phishing z tematami wysokiej konwersji (DocuSign, HR/payroll, płatności, „missed voicemail”, quishing).
  2. Kliknięcie/zeskanowanie prowadzi do centralnego routera QRR.
  3. Korelacja i fingerprinting (m.in. nagłówki, User-Agent, IP/ASN, heurystyki VPN/proxy, timing, headless/browser API).
  4. Rozgałęzienie:
    • Boty/skanery/WAF/SEG/ICESstrony bezpieczne/legit (np. portal firmy), by „udowodnić” nieszkodliwość.
    • Użytkownicylanding phishingowy (M365) z formularzem credential harvesting.
  5. Zbieranie metryk i statystyk w panelu QRR (impressions, wizyty „human” vs. „bot”, geolokacja, przeglądarka/OS).

Wzorce infrastruktury

  • Stały path: obserwowany /quantum.php w ścieżce URL.
  • Hosty: często zaparkowane lub skompromitowane domeny, zwykle z co najmniej dwoma poziomami subdomen. Przykładowy wzorzec (simplified): https://<sub1>.<sub2>.<tld>/<...>/quantum.php?<params> (pełny regex z raportu KnowBe4 obejmuje klastry znaków i krótki TLD).

Dlaczego to działa?

  • Wiele rozwiązań bada URL „at delivery time” – QRR wykorzystuje post-delivery weaponization i dynamiczne redirecty, aby „oczyszczać” link dla silników analitycznych, a ofiary kierować na właściwy cel „time-of-click”.

Praktyczne konsekwencje / ryzyko

  • ATO (Account Takeover) w M365 → dostęp do Exchange/SharePoint/OneDrive, eskalacja do BEC, exfiltracja danych, nadużycia OAuth.
  • Trudniejsza detekcja na warstwie bramki e-mail: pozornie „czyste” linki przy dostarczeniu, realnie szkodliwe przy kliknięciu.
  • Ryzyko reputacyjne i prawne: wycieki PII/PHI, RODO, opóźnienia w procesach (np. HR/finanse).
  • Rosnąca „demokratyzacja” ataku – mniej techniczne grupy osiągają enterprise-grade skuteczność dzięki PhaaS.

Rekomendacje operacyjne / co zrobić teraz

1) Prewencja i twarde policy

  • M365/Defender for Office 365
    • Safe Links z time-of-click i blokowaniem przekierowań.
    • Zasady Anti-Phishing (impersonation prot., mailbox intelligence).
    • MFA odporne na phishing (FIDO2/Windows Hello, Passkeys; unikać OTP/SMS).
  • SEG/ICES/WAF/DNS
    • Włącz analizę łańcucha przekierowań i headless browsing w sandboxie.
    • URL detonation także po dostarczeniu (re-crawl).
    • DNS filtering + bloki na zaparkowane/świeże domeny (kryteria wieku/AS, parking-ASN).
  • Awareness
    • Szkolenia z quishing (skanery QR w telefonach służbowych → open in isolated browser).

Szybkie reguły detekcji (przykłady)

Suricata (HTTP) – wykryj charakterystyczną ścieżkę:

alert http any any -> any any (
  msg:"QRR candidate - quantum.php in path";
  http.uri; content:"/quantum.php"; nocase;
  classtype:trojan-activity; sid:24000101; rev:1;
)

Suricata (PCRE: co najmniej 2 subdomeny + quantum.php)

Uwaga: prosty, heurystyczny przykład (ogranicz nadużycia false positive lokalną listą wyjątków).

alert http any any -> any any (
  msg:"QRR candidate - multi-subdomain + quantum.php";
  http.host; pcre:"/^[^.]+\.[^.]+\.[a-z]{2,}$/Ri";
  http.uri; content:"/quantum.php"; nocase;
  classtype:trojan-activity; sid:24000102; rev:1;
)

Exchange Online PowerShell – blokuj wiadomości zawierające quantum.php w linku (Body/Headers):

Connect-ExchangeOnline

New-TransportRule -Name "Block QRR links" `
  -Priority 0 `
  -Mode Enforce `
  -Comments "Heurystyczna blokada QRR" `
  -MessageContainsWords "quantum.php" `
  -SetSCL 9 `
  -RejectMessageReasonText "Blocked: suspected QRR link"

(Rozważ zamianę na Set-Header X-Quarantine:QRR i bezpieczną kwarantannę, jeśli FP są możliwe.)

Microsoft Defender for Endpoint – prosty wskaźnik domeny/path w Custom Indicators:

  • Indicators → URLs/Domains → Add indicator*/quantum.php* → Action: Block → Scope: All devices → Expiry: 30–60 dni (z przeglądem co tydzień).

Zasada proxy/secure web gateway (np. PAC/SWG) – miękka blokada + coaching:

// fragment PAC
if (shExpMatch(url, "*/quantum.php*")) return "PROXY block.example:8080"; // lub direct: return "REJECT";

Threat hunting (KQL, M365/Defender)

Kliknięcia w podejrzane linki:

EmailUrlInfo
| where Url has "/quantum.php"
| summarize clicks=dcount(ClickRecordId), recipients=dcount(RecipientEmailAddress) by Url, bin(Timestamp, 1d)

Nietypowe logowania po kliknięciu:

let suspectUsers = 
    EmailUrlInfo
    | where Url has "/quantum.php"
    | distinct RecipientEmailAddress;
IdentityLogonEvents
| where AccountUpn in (suspectUsers)
| where Application == "Office 365"
| summarize by AccountUpn, IPAddress, AuthenticationRequirement, ResultType, bin(Timestamp, 1h)

IR playbook (skrót)

  1. Containment: reset haseł + zrywanie sesji (Invalidate Refresh Tokens), wymuszenie re-enrollment MFA FIDO/Passkeys.
  2. Scope: sprawdź OAuth consents, skrzynkę (rules/inbox forwarding), Access Review.
  3. Forensics: timeline z Unified Audit Log, exfil (SharePoint/OneDrive access logs).
  4. Notifications: RODO/klienci, TLP:AMBER do partnerów, CERT krajowy.
  5. Hardening: conditional access, step-up auth, geo-fencing, mailbox protections.

Różnice / porównania z innymi przypadkami

  • QRR vs. Tycoon2FA: Tycoon2FA słynie z AiTM/MFA-bypass (kradzież cookies/sesji). QRR koncentruje się na inteligentnym routingu i maskowaniu przed kontrolami bezpieczeństwa; nie wyklucza to jednak integracji z AiTM w kolejnych iteracjach.
  • QRR vs. Darcula: Darcula skaluje się przez ogrom ekosystemu domen i szablonów (także RCS/iMessage). QRR skaluje się przez centralny router + pre-baked domeny i profiling, aby „wybielić” link dla botów.
  • QRR vs. VoidProxy: oba celują w M365; VoidProxy akcentuje wszechstronny target (także Google/SSO) i mechanizmy anti-bot. QRR wyróżnia powtarzalny wzorzec URL i masowe wykorzystanie zaparkowanych/skompromitowanych domen.

Podsumowanie / kluczowe wnioski

  • QRR to kolejny krok w „produktowej” ewolucji PhaaS: łatwość użycia dla przestępców, trudniejsze życie dla bramek i skanerów.
  • Najszybsze wygrane dla Blue Teamu: time-of-click, detonacja redirectów, reguły na /quantum.php, DNS/WAF heurystyki oraz szkolenia z quishingu.
  • Traktuj pojedyncze IOC (np. path) jako heurystykę, nie „srebrną kulę” – utrzymuj ciągły re-crawl i threat intel sync.
  • Zakładaj, że QRR (i kolejne klony) będą aktywnie ewoluować – w tym w kierunku AiTM/MFA-bypass.

Źródła / bibliografia

  • BleepingComputer: Quantum Route Redirect PhaaS targets Microsoft 365 users worldwide (10 listopada 2025). (BleepingComputer)
  • KnowBe4 Threat Lab: Quantum Route Redirect: Anonymous Tool Streamlining Global Phishing Attack (10 listopada 2025). (blog.knowbe4.com)
  • BleepingComputer: New VoidProxy phishing service targets Microsoft 365, Google accounts (14 września 2025). (BleepingComputer)
  • Proofpoint: Tycoon 2FA: Phishing Kit Being Used to Bypass MFA (9 maja 2024). (Proofpoint)
  • Netcraft: ‘Darcula’ Phishing-as-a-Service… (27 marca 2024). (netcraft.com)