Archiwa: Firewall - Strona 16 z 22 - Security Bez Tabu

SAP łata krytyczne luki w SQL Anywhere Monitor i Solution Manager (listopad 2025)


Wprowadzenie do problemu / definicja luki

11 listopada 2025 r. SAP opublikował pakiet poprawek bezpieczeństwa obejmujący 18 nowych i aktualizacje wcześniejszych not bezpieczeństwa. Wśród nich znalazły się co najmniej dwie luki o krytycznej wadze: maksymalnie poważna słabość w SQL Anywhere Monitor (Non-GUI) oraz bardzo poważna podatność w SAP Solution Manager umożliwiająca wstrzyknięcie kodu. Informacje te potwierdzają komunikaty SAP oraz niezależne serwisy branżowe.


W skrócie

  • SQL Anywhere Monitor (Non-GUI): luka z kategorią HotNews (CVSS 10.0), związana z twardo zakodowanymi poświadczeniami i zarządzaniem kluczami/sekretami. Skutkiem może być zdalne wykonanie kodu (RCE) bez uwierzytelnienia.
  • SAP Solution Manager: podatność CVE-2025-42887 (CVSS 9.9). Brak sanityzacji danych wejściowych w zdalnie wywoływanym module funkcji (RFC) pozwala uwierzytelnionemu atakującemu wstrzyknąć kod i przejąć pełną kontrolę nad systemem.
  • SAP zachęca do pilnego wdrożenia not bezpieczeństwa z listopadowego Patch Day.

Kontekst / historia / powiązania

Ekosystem SAP regularnie otrzymuje poprawki w comiesięcznym cyklu „Security Patch Day”. Listopadowe wydanie wpisuje się w trend z 2025 r., w którym kilkukrotnie łatano luki o ocenie 9.8–10.0 w NetWeaver/AS Java i komponentach towarzyszących. Dodatkowe omówienia od partnerów (Onapsis, SecurityBridge) wskazują, że bieżący zestaw obejmuje trzy krytyczne problemy (dwie „dziesiątki” i jedną „9.9”), w tym SQL Anywhere Monitor oraz Solution Manager.


Analiza techniczna / szczegóły luk

1) SQL Anywhere Monitor (Non-GUI) — „hardcoded credentials” / zarządzanie sekretami

  • Opis: w obrazie/usłudze monitora wykryto twardo zakodowane poświadczenia (np. konto serwisowe / klucz), co umożliwia nieautoryzowany dostęp do zasobów monitora, a w konsekwencji zdalne wykonanie kodu na hostach, które monitor obsługuje lub na samym komponencie.
  • Klasyfikacja: HotNews, CVSS 10.0. Noty SAP identyfikują obszar jako BC-SYB-SQA-ADM (SQL Anywhere Monitor).
  • Wektory ataku: zdalne, sieciowe, bez interakcji użytkownika; brak uwierzytelnienia po stronie atakującego (w przypadku wykorzystania ujawnionych stałych sekretów).
  • Skutki: RCE, eskalacja uprawnień, przejęcie monitoringu oraz lateral movement do serwerów baz danych/instancji, które Monitor nadzoruje.

2) SAP Solution Manager — CVE-2025-42887 (code injection przez RFC)

  • Opis: brak sanityzacji danych wejściowych w zdalnie wywoływanym module funkcji (Remote-Enabled Function Module, RFC/FM) umożliwia wstrzyknięcie kodu przez uwierzytelnionego użytkownika (niski poziom uprzywilejowania). NVD klasyfikuje podatność jako CWE-94 (Improper Control of Code Generation), z metryką AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H.
  • Skutki: pełne przejęcie systemu Solution Manager (konf., integralność i dostępność na poziomie „High”). Istotny jest fakt, że SolMan często integruje się z wieloma systemami satelitarnymi (landscape), co multiplikuje ryzyko łańcuchowe.
  • Doniesienia prasowe podkreślają wagę CVE-2025-42887 i wskazują ocenę 9.9.

Praktyczne konsekwencje / ryzyko

  • RCE i przejęcie środowiska: w przypadku SQL Anywhere Monitor atakujący może uzyskać natychmiastowy dostęp systemowy oraz pivotować do baz danych i serwerów aplikacyjnych SAP.
  • Atak wewnątrz-organiczny/„low-priv”: CVE-2025-42887 wymaga autoryzacji, ale w dużych krajobrazach SAP niski poziom uprawnień użytkownika technicznego bywa powszechny. To otwiera drogę do abuse of RFC, z możliwością skryptowania wywołań FM i eskalacji na SolMan.
  • Łańcuch dostaw IT/OT: SolMan jako „central brain” ALM dotyka transportów, jobów, interfejsów — kompromitacja przenosi się na krajobraz produkcyjny.

Rekomendacje operacyjne / co zrobić teraz

1) Natychmiastowe działania (0–24 h)

  1. Zidentyfikuj ekspozycję:
    • Odszukaj instancje SQL Anywhere Monitor (Non-GUI) i sprawdź, czy są osiągalne z sieci korporacyjnej/Internetu. W skanerze/CMDB szukaj nazw usług/procesów zawierających sqlanywhere / dbmon / monitor. (Wiele wdrożeń publikuje porty admin/HTTP monitora.) Źródło o krytyczności i RCE:
    • W Solution Manager przejrzyj listę RFC-destinations (SM59) oraz logi Security Audit Log i dev_rfc* pod kątem anomalii wywołań modułów FM.
  2. Wdróż noty SAP (Patch Day XI-2025):
    • Zastosuj odpowiednie SAP Security Notes z 11.11.2025 r. (SNOTE/transporty/SUM zależnie od komponentu). Informację o wydaniu i priorytetach potwierdza SAP.
    • Dla SQL Anywhere Monitor zastosuj notę HotNews (identyfikowaną przez partnerów jako Note 3666261 dot. CVE-2025-42890). Wdrożenie usuwa podatny komponent/sekrety lub wymusza ich bezpieczne zarządzanie.
  3. Segmentacja i ograniczenie dostępu:
    • Tymczasowo ogranicz do zaufanych zarządców/VPN dostęp sieciowy do monitora i interfejsów SolMan (firewall, NAC, ZTNA).

2) Krótkoterminowo (1–7 dni)

  • Rotacja sekretów/kont serwisowych używanych przez monitor i powiązane bazy/usługi. (Hardcoded credentials -> ryzyko wtórnego użycia).
  • Hardening RFC w SolMan:
    • Przegląd uprawnień technicznych użytkowników RFC (SU01/PFCG).
    • Wymuś whitelisting zdalnych FM: ogranicz do niezbędnych, monitoruj wywołania z SM59 i ST03N. Podstawa: charakter podatności RFC/code-injection.
  • Detekcje w SIEM/IDS (przykładowe reguły):
    • Wzorce nietypowych wywołań RFC z nowymi parametrami/ładunkami (korelacja z logami SAProuter/Gateway).
    • Alerty na niespodziewane połączenia wychodzące z hosta monitora (pivot).
  • Testy regresyjne po patchowaniu: monitorowanie stabilności krajobrazu ALM.

3) Średnioterminowo (do 30 dni)

  • Przegląd ekspozycji SAP do Internetu (AS Java, NetWeaver, SolMan, monitory, integracje).
  • SBOM & secret management: wdrożenie skanów sekretów i cyklu rotacji (np. HashiCorp Vault/Azure Key Vault), weryfikacja kontenerów/obrazów pod kątem wstrzykniętych kluczy.
  • Ćwiczenia IR specyficzne dla SAP: scenariusz „kompromitacja SolMan/monitoring”.

Przykładowe komendy/akcje operacyjne (dla zespołów)

  • Zgromadzenie listy RFC-destinations (raport w SAP GUI):
    • Transakcja SM59Utilities → Display/Compare → Eksport do CSV → korelacja w SIEM.
  • Szybki skan z zewnątrz (na własnej infrastrukturze): # przykładowy Nmap na znanych portach admin/HTTP monitora (dostosuj do swojej sieci!) nmap -sV -p 80,443,8080,8090,50013,50014 <zakres_IP> --open -oA sap-sqlanywhere-monitor
  • Poszukiwanie artefaktów w logach RFC (host aplikacyjny): # przykładowo na serwerze z plikami trace SAP (ścieżki dostosuj) grep -iE "CALL_FUNCTION|RFC|REMOTE.*FUNCTION" /usr/sap/<SID>/DVEBMGS*/work/dev_rfc*

Różnice / porównania z innymi przypadkami

  • Insecure deserialization (AS Java, CVE-2025-42944, CVSS 10.0) z października/listopada 2025 dotyczył kanału RMI-P4 w AS Java (zdalne RCE) — inny komponent i inna klasa błędu niż omawiane tu hardcoded credentials oraz RFC code injection. Wciąż jednak wpisuje się w szerszy wzorzec krytycznych błędów SAP w 2025 r., wymagających szybkiego patchowania.
  • Wcześniejsze „n-daye” w 2025 pokazały, że opóźnienia w aktualizacjach prowadzą do realnych kompromitacji (kampanie nadużywające luk NetWeaver). Wniosek: nawet „tylko” SolMan/RFC czy monitor mogą stać się wektorem pierwotnym. (Kontekst trendu i ostrzeżenia branżowe).

Podsumowanie / kluczowe wnioski

  • Patch now: SQL Anywhere Monitor (Non-GUI) – HotNews (CVSS 10.0) oraz CVE-2025-42887 w Solution Manager (CVSS 9.9) to luki wysokiego ryzyka. Wdrożenie not SAP z 11.11.2025 r. powinno być priorytetem.
  • Zabezpiecz sekrety i RFC: usuń stałe poświadczenia, rotuj konta serwisowe; w SolMan ogranicz i monitoruj wywołania RFC.
  • Monitoruj oznaki RCE/pivotu: nietypowe połączenia z hostów monitorujących, anomalia w logach RFC/Gateway.
  • Ucz się z 2025: krytyczne luki SAP pojawiają się regularnie — potrzebny jest stały cykl: asset inventory → szybkie patchowanie → detekcje nadużyć → ćwiczenia IR.

Źródła / bibliografia

  1. SAP Support Portal – Security Patch Day (listopad 2025): liczba not, zalecenia wdrożenia. (SAP Support Portal)
  2. SecurityWeek – omówienie luk (hardcoded credentials/RCE w SQL Anywhere Monitor; krytyczność pakietu). (SecurityWeek)
  3. NVD – karta CVE-2025-42887 (Solution Manager, code injection przez RFC; metryka CVSS/CWE). (NVD)
  4. Onapsis – przegląd listopadowych not SAP, kontekst i akcent na SQL Anywhere Monitor + SolMan. (Onapsis)
  5. SecurityBridge – zestawienie not z numerami (m.in. Note 3666261 / CVE-2025-42890, SQL Anywhere Monitor – HotNews 10.0). (SecurityBridge)

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.

Cl0p publikuje listę ~30 ofiar kampanii na Oracle E-Business Suite. Co wiemy o atakach i jak się bronić

Wprowadzenie do problemu / definicja luki

Grupa powiązana z Cl0p opublikowała na swoim portalu około 30 rzekomych ofiar kampanii wymierzonej w klientów Oracle E-Business Suite (EBS) — popularnego systemu ERP. Na liście wymieniono m.in. Logitech, The Washington Post, Cox Enterprises, Pan American Silver, LKQ Corporation i Copeland. Część podmiotów (np. The Washington Post) potwierdziła naruszenie, większość jednak milczy lub prowadzi dochodzenia wewnętrzne. Źródła branżowe łączą tę falę incydentów z krytyczną podatnością CVE-2025-61882 (CVSS 9.8) w komponencie BI Publisher Integration pakietu EBS, która umożliwia zdalne, nieautoryzowane ataki przez HTTP. Oracle załatał błąd w trybie alarmowym na początku października 2025 r.


W skrócie

  • Atakujący: klaster przestępczy kojarzony z FIN11 i marką Cl0p (ekstorsja + wycieki).
  • Wektor: wykorzystanie luk w Oracle EBS; najbardziej prawdopodobna — CVE-2025-61882 (RCE bez uwierzytelniania) w zakresach wersji 12.2.3–12.2.14.
  • Skala: dziesiątki organizacji; ok. 29 pozycji na stronie Cl0p, wycieki danych u co najmniej 18 z nich (częściowo wieluset-GB/TB).
  • Linia czasu: masowe maile z szantażem od 29 września; łatki Oracle — 4–5 października 2025 r.; kolejne potwierdzenia ofiar w październiku-listopadzie.
  • Status: część firm potwierdziła incydent (np. The Washington Post), inne nie komentują publicznie.

Kontekst / historia / powiązania

Specjaliści Google Threat Intelligence i Mandiant opisali na początku października zmasowaną kampanię ekstorsyjną: do menedżerów spływały e-maile z twierdzeniami o kradzieży danych z ich środowisk EBS. Równolegle Reuters i inne media informowały o kolejnych ofiarach (np. Envoy Air/AA, Harvard), a Oracle potwierdził problem i wydał Security Alert z łatą. SecurityWeek zebrał listę ~30 nazw wskazanych przez Cl0p, podkreślając, że część danych rzeczywiście wygląda na pochodzące z instancji Oracle. Tę kampanię osadzono w modus operandi znanym z wcześniejszych akcji Cl0p (MOVEit, Fortra, Cleo) — presja medialna + publikacja wykradzionych pakietów.


Analiza techniczna / szczegóły luki

CVE-2025-61882 (Oracle E-Business Suite – Concurrent Processing / BI Publisher Integration)

  • Zakres wersji: 12.2.3–12.2.14.
  • Skutki: zdalne przejęcie komponentu (CIA: C/I/A=H, CVSS 9.8), bez uwierzytelniania przez HTTP.
  • Charakter: „easily exploitable”; sprzyja RCE i dostępowi do wrażliwych danych przetwarzanych w EBS.
  • Eksploatacja: raporty wskazują na aktywny exploit przed publikacją poprawki (zero-day).

Uwaga: w doniesieniach pojawia się także druga luka z tej samej „rodziny”, jednak na dziś to CVE-2025-61882 jest jednoznacznie potwierdzone przez Oracle/NVD jako krytyczny wektor RCE.

Prawdopodobny łańcuch ataku (uogólniony)

  1. Skany internetowo dostępnych instancji EBS (typowe ścieżki /OA_HTML/…).
  2. Wykorzystanie CVE-2025-61882 do wykonania kodu w komponentach związanych z BI Publisher/Concurrent Processing.
  3. Utrwalenie (np. web-shell, konto aplikacyjne) i zbieranie danych (eksporty, raporty, zrzuty tabel).
  4. Ekstorsja: kontakt do kadry zarządzającej z żądaniem okupu + groźbą publikacji plików.
  5. Publikacja paczek na stronie Cl0p w razie braku płatności.

Praktyczne konsekwencje / ryzyko

  • Kompromitacja danych ERP: finanse, łańcuch dostaw, HR, logistyka — wysokie ryzyko wtórnych oszustw i fraudów.
  • Zakłócenia operacji: ryzyko zatrzymania procesów (AP/AR, zamówienia, produkcja).
  • Ryzyko prawno-regulacyjne: RODO/PCI/sox — kary administracyjne, obowiązki notyfikacyjne.
  • Efekt łańcuchowy: EBS z reguły integruje się z innymi systemami (ESB, hurtownie danych) — możliwość lateral movement.
  • Ryzyko reputacyjne: Cl0p publikuje duże wolumeny danych (setki GB do TB), co zwiększa presję na zapłatę.

Rekomendacje operacyjne / co zrobić teraz

1) Patching i konfiguracja

  • Natychmiast zastosuj Security Alert dla CVE-2025-61882 (EBS 12.2.3–12.2.14). Zweryfikuj, że poprawka została wdrożona na wszystkich węzłach (apps tier/db tier).
  • Ogranicz ekspozycję EBS do internetu: jeśli to możliwe, dostęp wyłącznie przez VPN/ZTNA; przeglądarkowy interfejs użytkownika (OA_HTML) nie powinien być publiczny.
  • WAF/Reverse proxy: tymczasowe reguły blokujące nietypowe żądania do endpointów raportowania/BI, rozmiary odpowiedzi i długotrwałe transfery.

2) Detekcja i monitoring (przykładowe reguły)

  • Netflow/Proxy/Firewall – wykrywanie dużych POST/GET do zewnętrznych adresów z hostów EBS:
    • Splunk (prosty szkic): index=proxy OR index=nginx sourcetype=http (uri_path="/OA_HTML/*" OR cs_uri_stem="/OA_HTML/*") | stats sum(bytes_out) as out, values(cs_uri_query) as q by src_ip, uri_path, http_method | where out > 500000000 /* >500MB dziennie */
  • System – nietypowe procesy JVM/Java z parametrami uruchamianymi przez użytkowników aplikacyjnych:
    • Linux (ad-hoc): ps -ef | egrep 'java|weblogic' | egrep -i 'curl|wget|nc|bash -i|sh -i'
  • Pliki aplikacyjne – poszukiwanie web-shelli w katalogach serwisujących EBS: find $INST_TOP/ora/10.1.3/j2ee -type f -mtime -30 -size +50k \ -iname "*.jsp" -exec grep -H -E "(Runtime|getRuntime|ProcessBuilder)" {} \;
  • Logi HTTP – anomalie w BI Publisher/Concurrent Processing (duże odpowiedzi, 5xx po dużych POST, nagły skok 2xx): awk '{print $7, $9, $10}' access_log | grep -E "BIPublisher|Concurrent|OA_HTML" | sort | uniq -c | sort -nr | head

(Powyższe to wzorce poszukiwań – dostosuj do swojej topologii i ścieżek w danym wydaniu EBS.)

3) Łagodzenie skutków i IR

  • Załóż kompromitację dla instancji nienaprawionych przed 4–5 października 2025 r.; przeprowadź triage pamięci (Volatility/AVML) i przegląd harmonogramów (Concurrent Requests), kont oraz pakietów raportowych.
  • Rotacja haseł/kd. integracyjnych i przegląd SSO jeśli EBS zintegrowany jest z IdP.
  • Segmentacja: izoluj serwery apps/db do czasu zakończenia dochodzenia, wstrzymaj zadania eksportów masowych.
  • Zgłoszenia regulacyjne: oceń zakres danych wg jurysdykcji (np. RODO) i czasów detekcji.

4) Twardnienie (hardening) „na jutro”

  • Minimalizacja powierzchni: odłącz zbędne moduły/servlety, wymuś TLS 1.2+, nagłówki bezpieczeństwa.
  • Kontrola egress: EBS zwykle nie potrzebuje otwartego ruchu wychodzącego do internetu — egres pod ścisłą allowlistą.
  • Kopia zapasowa planu odtworzeniowego: test odtworzenia offline; backupy szyfrowane i odseparowane (immutability).

Różnice / porównania z innymi przypadkami

  • MOVEit/Fortra/Cleo vs Oracle EBS: podobny model ekstorsji (nacisk medialny, tablica wstydu, hurtowe wycieki). Różnica: zamiast podatności w menedżerach transferu plików, celem jest system ERP — więc jakość i kontekst danych (finanse, logistyka) mają zwykle wyższą wartość operacyjną dla przestępców i większy impakt biznesowy. SecurityWeek wskazuje, że wcześniejsze skojarzenia Cl0p-FIN11 tłumaczą użycie brandu Cl0p jako „frontu” kampanii.

Podsumowanie / kluczowe wnioski

  • CVE-2025-61882 w Oracle EBS to krytyczna luka RCE, realnie wykorzystywana w kampanii ekstorsyjnej. Łatka od Oracle jest dostępna — patchuj natychmiast.
  • Lista Cl0p obejmuje ~29 organizacji, a część z nich potwierdziła incydenty (np. The Washington Post). Nie zakładaj, że „to tylko straszak”.
  • Traktuj EBS jak system krytyczny: zamknięcie ekspozycji internetowej, kontrola egresu, ciągły monitoring i „assume breach” dla okien bez łatek z końca września/początku października 2025 r.

Źródła / bibliografia

  1. SecurityWeek – lista ~30 ofiar i kontekst kampanii Cl0p (10 listopada 2025). (SecurityWeek)
  2. Reuters – The Washington Post potwierdza naruszenie związane z Oracle EBS (6 listopada 2025). (Reuters)
  3. Oracle Security Alert – CVE-2025-61882 (EBS) – opis i łatki. (Oracle)
  4. NVD – karta podatności CVE-2025-61882 (CVSS 9.8, RCE bez uwierzytelniania). (NVD)
  5. Google Threat Intelligence – wpis o zero-day w Oracle EBS i kampanii ekstorsyjnej (9 października 2025). (Google Cloud)

CVE-2014-4114 — Windows OLE RCE „Sandworm”

TL;DR

CVE‑2014‑4114 to podatność w Windows OLE wykorzystywana m.in. przez Sandworm do zdalnego uruchamiania kodu po otwarciu spreparowanego pliku Office (najczęściej PPSX/PowerPoint). Sztuczka polega na pobraniu zdalnego .INF i wykonaniu go przez rundll32 -> setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSection, co inicjuje uruchomienie docelowego droppera. Detekcja: łańcuch POWERPNT.EXE → rundll32.exe z argumentami InstallHinfSection/LaunchINFSection, pobrania po SMB/WebDAV, ślady w setupapi.app.log. Łatanie: MS14‑060 (KB3000869); tymczasowe obejścia: wyłączenie WebClient, blokada TCP 139/445, usunięcie „Install” verb dla .INF.


Krótka definicja techniczna

CVE‑2014‑4114 to błąd w obsłudze obiektów OLE w Windows pozwalający na zdalne wykonanie kodu po otwarciu pliku Office zawierającego specjalnie przygotowany obiekt OLE odwołujący się do zasobu INF/EXE w nieufnej lokalizacji (UNC/WebDAV). Otwarcie dokumentu inicjuje pobranie i wykonanie instrukcji z INF bez dodatkowych promptów, prowadząc do uruchomienia droppera w kontekście bieżącego użytkownika.


Gdzie występuje / przykłady platform

  • Windows: Vista SP2, 7 SP1, 8/8.1; Server 2008/2008 R2/2012/2012 R2; także RT (wg MS14‑060/NVD).
  • Active Directory: stacje członkowskie domeny (otwieranie załączników w środowisku korporacyjnym).
  • M365: poczta (spearphishing attachment), logi Defender for Office/Endpoint.
  • Chmury (AWS/Azure/GCP): dotyczy Windows VM/VDI/WorkSpaces – podatna jest gościnna warstwa OS, nie IaaS; telemetria może trafiać do CloudWatch/Log Analytics/SIEM.
  • Kubernetes/ESXi: brak bezpośredniego wpływu na control plane; dotyczy gości Windows w VM.

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

Kampanie z 2014 r. wykorzystywały PPSX z dwoma osadzonymi obiektami OLE o ścieżkach zdalnych: np. slide1.gif (faktycznie EXE) i slides.inf. PowerPoint pobierał oba pliki z udziału UNC/WebDAV bez ostrzeżeń; .INF zmieniał nazwę pliku na .exe i go uruchamiał (dropper BlackEnergy). Mechanizm aktywacji bazował na wywołaniu rundll32.exe z setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSection. Skuteczność: wysoki poziom soc‑eng (pliki show), minimalna interakcja, obejście promptów UAC dla .PPSX odnotowane przez Microsoft.


Artefakty i logi (co zbierać)

ŹródłoID / poleWskaźnik / wzorzecUwagi
Windows Security4688 (Process Creation)ParentImage=*\POWERPNT.EXEImage=*\\rundll32.exe z CommandLine zawierającą setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSectionKluczowy łańcuch egzekucji.
Sysmon1/ProcCreate, 3/NetConnect, 11/FileCreate, 22/DNSPołączenia do \\host\share\... / WebDAV (Microsoft-WebDAV-MiniRedir), tworzenie *.inf/*.gif.exe w %TEMP%Wzorce WebDAV/SMB.
SetupAPI log%windir%\inf\setupapi.app.logWpisy z instalacji aplikacyjnej/INF (po włączeniu logowania)Domyślnie wyłączone; można włączyć przez LogLevel.
M365 Defender (AH)EmailEvents / EmailAttachmentInfoZałącznik PPS/PPSX od nadawcy zewn., motyw soc‑engDla fazy dostarczenia.
MDE/Defender AVWykrycie: Exploit:Win32/CVE-2014-4114Alerty/exclusionsHistoryczne sygnatury.
Firewall/ProxyHTTP/WebDAV, SMB (139/445)Pobranie slides.inf / *.gif z zewnętrznych hostówBlokady portów ograniczają wektor.

Detekcja (praktyczne reguły)

Sigma (Windows / process_creation)

title: Office -> Rundll32 INF Execution (CVE-2014-4114 Sandworm)
id: 7c9f9d4a-b0c6-4f7f-9e5b-b2c3d1e0c414
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  parent_office:
    ParentImage|endswith:
      - \POWERPNT.EXE
      - \WINWORD.EXE
      - \EXCEL.EXE
  child_rundll:
    Image|endswith: \rundll32.exe
  cli_inf:
    CommandLine|contains:
      - 'setupapi.dll,InstallHinfSection'
      - 'advpack.dll,LaunchINFSection'
  condition: parent_office and child_rundll and cli_inf
fields:
  - UtcTime
  - User
  - ParentImage
  - Image
  - CommandLine
falsepositives:
  - Rzadkie instalacje driverów/INF wywołane z Office (bardzo mało prawdopodobne)
level: high
tags:
  - attack.T1203
  - attack.T1204.002
  - attack.T1566.001
  - cve.2014-4114

Splunk (Security 4688 / Sysmon 1)

(index=win* (sourcetype="WinEventLog:Security" EventCode=4688) OR (sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1))
| eval parent=coalesce(ParentProcessName, ParentImage), img=coalesce(NewProcessName, Image)
| search parent="*\\POWERPNT.EXE" OR parent="*\\WINWORD.EXE" OR parent="*\\EXCEL.EXE"
| search img="*\\rundll32.exe"
| search CommandLine="*setupapi.dll,InstallHinfSection*" OR CommandLine="*advpack.dll,LaunchINFSection*"
| table _time host user parent img CommandLine
| sort - _time

KQL (Microsoft 365 Defender – Advanced Hunting)

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("POWERPNT.EXE","WINWORD.EXE","EXCEL.EXE")
| where FileName =~ "rundll32.exe"
| where ProcessCommandLine has_any ("setupapi.dll,InstallHinfSection","advpack.dll,LaunchINFSection")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessVersionInfoCompanyName
| order by Timestamp desc

AWS CloudWatch Logs Insights (Windows Event Forwarding do CWL)

fields @timestamp, Computer, EventID, @message
| filter EventID=4688
| filter like(@message, /rundll32\.exe/) 
  and (like(@message, /setupapi\.dll,InstallHinfSection/) or like(@message, /advpack\.dll,LaunchINFSection/))
| sort @timestamp desc

Elastic (EQL)

sequence by host.id with maxspan=2m
  [process where process.name : ("POWERPNT.EXE","WINWORD.EXE","EXCEL.EXE")]
  [process where process.name : "rundll32.exe" and
           process.command_line : ("*setupapi.dll,InstallHinfSection*","*advpack.dll,LaunchINFSection*")]

Heurystyki / korelacje

  • Łańcuch procesu: Office (POWERPNT/WINWORD) → rundll32.exe → (ew. dalsze) cmd.exe/msiexec.exe/regsvr32.exe.
  • Sieć: pobrania z UNC/WebDAV (user‑agent Microsoft-WebDAV-MiniRedir) w bliskim czasie od otwarcia dokumentu.
  • Pliki tymczasowe: *.inf / pseudo‑obraz *.gif → późniejszy *.exe w %TEMP%.
  • Logi SetupAPI: ślady w setupapi.app.log (po włączeniu).
  • Poczta: korelacja EmailEvents z kliknięciem/otwarciem załącznika i telemetrią endpoint.

False positives / tuning

  • Instalacje sterowników/oprogramowania wyzwalające InstallHinfSection/LaunchINFSection, ale zwykle nie z rodzicem Office.
  • Drivery producentów (podpisane, ścieżki C:\Windows\INF\*): wykluczyć po wydawcy, ścieżce, hashu.
  • Tuning: wymagaj rodzica Office, zdalnej ścieżki (UNC/WebDAV), nietypowych INF w %TEMP%, braku podpisu lub nietypowych domen.

Playbook reagowania (IR)

  1. Triaging & Containment: izoluj host; zablokuj domenę/UNC/WebDAV wskazany w artefaktach (FW/DNS/Proxy).
  2. Hunting szeroki (24–72 h): zapytania z sekcji 7 (AH/SIEM). Zidentyfikuj wszystkie hosty z łańcuchem Office→rundll32/INF.
  3. Forensics szybkie:
    • Zabezpiecz pliki z %TEMP% i %WINDIR%\INF\setupapi.app.log.
    • Zrzut listy procesów/połączeń (tasklist /v, netstat -ano), timeline plików.
  4. Eradykacja: usuń droppery, zabroń WebDAV/SMB egress do Internetu; wdroż KB3000869 jeśli dotyczy dziedzictwa.
  5. Recovery: weryfikacja integralności, rotacja poświadczeń, obserwacja anomalii.
  6. Lessons Learned: reguły detekcyjne do stałego monitoringu; wymuś blokady z pkt 11 (workarounds).

Przykłady z kampanii / case studies

  • BlackEnergy/Sandworm (2014): PPSX zawierał dwa obiekty OLE (zdalne): slide1.gif (dropper, faktycznie EXE) i slides.inf. INF zmieniał nazwę i uruchamiał droppera — bez dodatkowych promptów PowerPoint.
  • Sandworm Team (G0034): wykorzystywał CVE‑2014‑4114 w PowerPoint (OLE) oraz CVE‑2013‑3906 (TIFF/Word). Cele: NATO, UE, sektor energii/telekom.

Lab (bezpieczne testy)

Celem jest generacja artefaktów/detekcji, nie eksploatacja.

A. Symulacja INF (ADVPACK) – bezpieczne uruchomienie Notepad

  1. Zapisz plik test.inf (np. C:\Temp\test.inf):
[Version]
Signature="$Windows NT$"

[DefaultInstall]
RunPreSetupCommands=DoRun

[DoRun]
%11%\\notepad.exe
  1. Uruchom:
rundll32.exe advpack.dll,LaunchINFSection C:\Temp\test.inf,DefaultInstall

Powinno wygenerować proces rundll32.exe z LaunchINFSection (detekcje z sekcji 7).

B. Artefakty SetupAPI
Włącz logowanie SetupAPI (na czas testu), następnie uruchom test z pkt A i sprawdź %windir%\inf\setupapi.app.log.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software: zastosuj MS14‑060/KB3000869 na hostach dziedzicznych.
  • M1037 – Filter Network Traffic / M1035 – Limit Access to Resource Over Network: blokuj SMB 139/445 egress, ogranicz WebDAV (usługa WebClient).
  • M1042 – Disable or Remove Feature or Program: usuń „Install” verb dla .INF (tymczasowe obejście).
  • M1017 – User Training: phishing awareness (załączniki PPSX).

Powiązane techniki ATT&CK:

  • T1566.001 – Spearphishing Attachment (wektor wejścia)
  • T1204.002 – User Execution: Malicious File (akcja użytkownika)
  • T1105 – Ingress Tool Transfer (transfer droppera)
  • T1027 – Obfuscated/Compressed Files (kamuflaż plików, np. „gif.exe”)

Źródła / dalsza literatura

  • Microsoft: MS14‑060 – Vulnerability in Windows OLE (KB3000869), obejścia (WebClient/SMB/INF) i lista systemów. (Microsoft Learn)
  • ESET (WeLiveSecurity): szczegóły kampanii PPSX + slides.inf + slide1.gif (BlackEnergy). (We Live Security)
  • MITRE ATT&CK: T1203 – Exploitation for Client Execution, w tym odniesienie do CVE‑2014‑4114/Sandworm. (MITRE ATT&CK)
  • MITRE ATT&CK – Sandworm Team (G0034). (MITRE ATT&CK)
  • NVD: wpis CVE‑2014‑4114 (zakres i opis). (NVD)
  • Microsoft Docs: InstallHinfSection (SetupAPI) i log setupapi.app.log. (Microsoft Learn)
  • IE/ADVPACK: LaunchINFSection (przykłady użycia). (Microsoft Learn)
  • Palo Alto Unit42: kontekst OLE/PowerPoint i ryzyko zdalnych zasobów. (Unit 42)

Uwaga dot. łat: tuż po MS14‑060 zgłaszano obejścia prowadzące do kolejnych CVE; w środowiskach legacy sprawdź też późniejsze uaktualnienia.


Checklisty dla SOC / CISO

SOC (operacyjne):

  • Włącz/zweryfikuj reguły: Office→rundll32 InstallHinfSection/LaunchINFSection.
  • Monitoruj WebDAV/SMB egress oraz setupapi.app.log.
  • Koreluj EmailEvents ↔ DeviceProcessEvents (M365).
  • Hunt retro (90 dni) za łańcuchem POWERPNT/WINWORD → rundll32.
  • Utrzymuj allow‑list INF/sterowników; alertuj INF z %TEMP%.

CISO (strategiczne):

  • Polityka: blokady SMB i WebDAV na brzegu/na hostach.
  • Wymuszenie łat (M1051) na hostach z Windows 7/8/8.1/2008/2012.
  • Program szkoleniowy phishing + polityki załączników (PPSX).
  • Testy tabletop IR dla scenariusza „złośliwy INF/Office”.

Wykrywanie Honeypotów – Metody, Narzędzia, Obrona

Honeypoty też mają odciski palców

Honeypoty (komputerowe wabiki) są potężnym narzędziem obrony – przyciągają atakujących niczym cyber-pułapki, dając wgląd w ich techniki. Nic dziwnego, że agresorzy starają się je wykrywać i omijać. W tym artykule przyjrzymy się technikom honeypot detection, czyli metodom rozpoznawania czy dany system to prawdziwy cel, czy sprytnie zastawiona pułapka. Omówimy fingerprinting aktywny i pasywny, zdradliwe sygnały (banery, błędy protokołów, cechy stosu TCP/IP, certyfikaty TLS), narzędzia wykorzystywane zarówno przez red team (atakujących) jak i blue team (obrońców) oraz metody obrony honeypotów przed dekonspiracją. Przygotujcie się na techniczne szczegóły, przykłady z narzędzi w stylu curl/nmap oraz konkretne porady gotowe do wdrożenia w labie i produkcji.

Czytaj dalej „Wykrywanie Honeypotów – Metody, Narzędzia, Obrona”

Mechanizmy Blokady Konta Po Błędnych Logowaniach

Czy Twoja aplikacja blokuje konto po serii błędnych logowań?

Mechanizmy blokady konta chronią przed atakami brute force i credential stuffing – czyli przed masowym zgadywaniem haseł lub testowaniem przejętych poświadczeń. W tym artykule omówimy różne rodzaje blokad (tymczasowe, stałe, z opóźnieniem), przytoczymy zalecenia standardów bezpieczeństwa (OWASP, NIST), a także pokażemy przykłady implementacji przy użyciu popularnych narzędzi (m.in. Keycloak, Spring Security, Redis, NGINX). Całość uzupełnimy o najczęstsze błędy, OWASP ASVS, kontekst API Security oraz techniczną checklistę i CTA dla inżynierów, abyś mógł od razu zastosować zdobytą wiedzę w praktyce. Bez zbędnej teorii – skupiamy się na konkretach, tak jak na SecurityBezTabu.pl przystało.

Czytaj dalej „Mechanizmy Blokady Konta Po Błędnych Logowaniach”

Luka w Keras: ujawnienie danych i SSRF przy ładowaniu modeli (.keras) — CVE-2025-12058

Wprowadzenie do problemu / definicja luki

W Keras (biblioteka DL) odkryto lukę CVE-2025-12058 umożliwiającą arBITRALNE ODCZYTY PLIKÓW (LFI) z systemu hosta podczas ładowania zserializowanych modeli .keras oraz SSRF (wykonywanie żądań sieciowych po stronie serwera). Problem dotyczy warstwy preprocessingowej StringLookup/IntegerLookup, która dopuszczała podanie ścieżki do pliku lub URL jako źródła słownika („vocabulary”). Podczas deserializacji modelu Keras odczytywał tę ścieżkę, nawet przy aktywnym safe_mode=True. Luka została naprawiona w Keras 3.11.4.


W skrócie

  • Identyfikator: CVE-2025-12058, CVSS 4.0: 5.9 (Medium) wg CNA (Google).
  • Wektory ataku: LFI przez odczyt lokalnych plików (np. klucze SSH), SSRF przez zdalne handlery tf.io.gfile (HTTP(S), GCS/HDFS).
  • Warunek: ofiara ładuje zewnętrzny, złośliwy model .keras (supply chain / model zoo / współdzielone repo).
  • Dotknięte wersje: Keras ≤ 3.11.3; naprawa w 3.11.4.
  • Naprawa: włączenie osadzania słownika w archiwum .keras oraz zablokowanie ładowania zewnętrznych słowników przy safe_mode=True.

Kontekst / historia / powiązania

Keras 3.x wprowadził ujednolicony interfejs (JAX/TensorFlow/PyTorch), a wraz z nim nowy format .keras do zapisu modeli. Od początku zakładano mechanizmy „bezpiecznego ładowania” (safe_mode), jednak w tym przypadku ochrona nie obejmowała konstrukcji warstw *Lookup z parametrem vocabulary wskazującym ścieżkę/URL. Problem zgłosił zespół Zscaler (ThreatLabz) — opisując realne scenariusze nadużyć oraz oś czasu ujawnienia. Poprawki trafiły do głównej gałęzi w październiku 2025 r., a wydanie naprawcze opublikowano jako 3.11.4.


Analiza techniczna / szczegóły luki

Gdzie leży błąd?

  • StringLookup i IntegerLookup pozwalały na vocabulary=<ścieżka lub URL>.
  • Gdy model był wczytywany z .keras, deserializacja rekonstruowała warstwę i odczytywała wskazaną ścieżkę/URL, włączając zawartość do stanu warstwy (np. dostępna przez get_vocabulary()), nie respektując w pełni safe_mode=True.

Skutki techniczne

  • LFI (Local File Inclusion/Read): atakujący może ukryć w modelu ścieżki typu /home/user/.ssh/id_rsa; podczas ładowania Keras wczyta treść pliku do słownika warstwy.
  • SSRF: Keras używa tf.io.gfile, które obsługuje zdalne systemy plików i protokoły (HTTP/HTTPS). Specjalnie przygotowany URL może spowodować żądania sieciowe (np. do IMDS 169.254.169.254 w chmurze).

Co zmieniła poprawka?

PR #21751 sprawił, że:

  1. Słowniki są osadzane bezpośrednio w archiwum .keras, dzięki czemu ładowanie nie sięga po zewnętrzne ścieżki.
  2. Przy safe_mode=True zabroniono ładowania zewnętrznych plików słownika — dopuszczalne źródło to wyłącznie zawartość archiwum. Zmiana jest częściowo „breaking”. Zmergowano 17 października 2025 r. i wydano jako Keras 3.11.4.

Praktyczne konsekwencje / ryzyko

  • Eksfiltracja sekretów dewelopera/serwera: klucze SSH, tokeny w plikach konfiguracyjnych, .env, ~/.aws/credentials mogą zostać „wciągnięte” do modelu i odczytane przez napastnika po jego ponownym pobraniu lub przez kontrolowany przez niego pipeline.
  • SSRF do usług wewnętrznych: dostęp do IMDS (IAM w chmurze), wewnętrznych API, brokerów metadanych — w konsekwencji przejęcie zasobów chmurowych lub CI/CD.
  • Łańcuch dostaw modeli: ryzyko dotyczy repozytoriów modeli, notebooków, benchmarków, konkursów, gdzie użytkownicy chętnie ładują cudze artefakty.

Rekomendacje operacyjne / co zrobić teraz

1) Natychmiastowa aktualizacja

  • Uaktualnij do Keras ≥ 3.11.4 w środowiskach, które w jakikolwiek sposób ładują cudze .keras. # sprawdź wersję python - <<'PY' import keras, sys print("Keras:", keras.__version__) PY # aktualizacja (przykład dla pip) python -m pip install --upgrade "keras>=3.11.4"

2) Wymuś bezpieczne ładowanie i walidację konfiguracji

  • Przed load_model() otwórz archiwum .keras i przejrzyj konfigurację warstw; odrzuć modele, w których StringLookup/IntegerLookup mają vocabulary jako ścieżkę/URL. import json, zipfile, re, sys from urllib.parse import urlparse def is_path_or_url(v): if not isinstance(v, str): return False if re.match(r'^[a-zA-Z]:[\\/]|^/|^\./|\.\./', v): # Windows/Unix path return True try: u = urlparse(v) return u.scheme in {"http","https","gs","hdfs"} except: return False def keras_archive_has_external_vocab(keras_path): with zipfile.ZipFile(keras_path) as z: with z.open("config.json") as f: cfg = json.load(f) bad = [] def walk(d): if isinstance(d, dict): if d.get("class_name") in {"StringLookup","IntegerLookup"}: vocab = d.get("config",{}).get("vocabulary", None) if is_path_or_url(vocab): bad.append((d["class_name"], vocab)) for v in d.values(): walk(v) elif isinstance(d, list): for v in d: walk(v) walk(cfg) return bad path = sys.argv[1] offenders = keras_archive_has_external_vocab(path) if offenders: print("BLOCK:", offenders); sys.exit(1) else: print("OK") (Skrypt defensywny — nie ładuje modelu, wyłącznie statycznie analizuje archiwum.)
  • Ładuj modele zawsze z safe_mode=True (po aktualizacji ma znaczenie): import keras model = keras.saving.load_model("model.keras", safe_mode=True)

3) Odseparuj IO modelu

  • Uruchamiaj proces ładujący w sandboxie bez dostępu do sekretów (AppArmor/SELinux, no-new-privileges, fs.protected_hardlinks, profile Seccomp).
  • Read-only root, odmontowane /home, brak dostępu do ~/.ssh, brak zmiennych środowiskowych z sekretami.

4) Zablokuj SSRF u źródła

  • Egress deny z jobów ładujących modele (Kubernetes NetworkPolicy, eBPF Cilium, VPC egress firewall).
  • Blokada IMDS:
    • AWS: metadane v2 tylko z hop-limit=1, lub --http-endpoint disabled na EC2; w EKS — AwsNode.kubeProxyEnabled=false + iptables/CNI do odcięcia 169.254.169.254.
    • GCP/Azure analogicznie — polityki blokujące dostęp z podów.
      (Ogranicza efekt SSRF opisany w analizie.)

5) Detekcja w pipeline’ach

  • Skanuj artefakty .keras tymczasowo przed dopuszczeniem do trenowania/inferencji (skrypt powyżej).
  • Alertuj na outbound z jobów ładowania modeli (np. reguły w eBPF/XDP, IDS w podsieci).
  • DLP/Git scanning: reguły wykrywające ciągi typu StringLookup + vocabulary z wartością zaczynającą się od / lub http.

6) Zarządzanie zaufaniem do modeli (MLSBOM)

  • Wprowadzaj Model SBOM (pochodzenie, hash, autor, podpis).
  • Wymagaj podpisu kryptograficznego artefaktów modelu (Cosign/Sigstore) i weryfikuj go w CI przed load_model().

Różnice / porównania z innymi przypadkami

  • Deserializacja nieufnych danych (CWE-502) bywa znana z pickle/joblib. Tu wektorem jest format .keras i specyficzna opcja vocabulary w warstwach *Lookup. Mechanizm safe_mode miał ograniczyć ryzyko, ale nie obejmował ścieżek słowników — stąd podatność.
  • W odróżnieniu od klasycznych RCE przez deserializację, tutaj mamy LFI/SSRF, co i tak może prowadzić do pełnej kompromitacji (np. przejęcie IAM i lateral movement).

Podsumowanie / kluczowe wnioski

  1. Aktualizacja do Keras 3.11.4 jest najważniejsza.
  2. Nie ładuj niezweryfikowanych modeli .keras — traktuj je jak binaria z internetu.
  3. Waliduj konfigurację warstw *Lookup przed deserializacją; blokuj egress i IMDS w jobach ML.
  4. Segmentacja i sandbox procesu ładującego + telemetria wyjść sieciowych minimalizują skutki ewentualnego SSRF.
  5. Wdrażaj łańcuch zaufania do modeli (podpisy, SBOM), jak w klasycznych łańcuchach dostaw.

Źródła / bibliografia

  • SecurityWeek: ogłoszenie luki i informacja o wersji naprawczej 3.11.4. (SecurityWeek)
  • Zscaler (ThreatLabz): analiza techniczna, scenariusze eksploatacji (LFI/SSRF), dotknięte wersje ≤3.11.3. (Zscaler)
  • NVD: karta CVE-2025-12058, opis wektora (LFI/SSRF), CVSS 4.0 5.9 (CNA), powiązane CWE-502. (NVD)
  • GitHub (keras-team), PR #21751: szczegóły implementacji poprawki (osadzanie słownika, restrykcja safe_mode). (GitHub)
  • Dokumentacja Keras: kontekst działania StringLookup. (keras.io)