Archiwa: VPN - Strona 63 z 81 - Security Bez Tabu

APT31 (Violet Typhoon/Zirconium) prowadzi ciche cyberataki na rosyjski sektor IT. Cloud C2, CloudyLoader i nowe backdoory na celowniku

Wprowadzenie do problemu / definicja kampanii

Chińsko-powiązana grupa APT31 (znana także jako Violet Typhoon/Zirconium/Judgement Panda) została powiązana z długofalową kampanią cyberszpiegowską przeciw rosyjskiemu sektorowi IT. Ataki miały trwać co najmniej w latach 2024–2025, a w jednym przypadku utrzymanie dostępu sięgało końcówki 2022 r. Kluczową cechą operacji jest wykorzystanie popularnych usług chmurowych (w tym Yandex Cloud oraz Microsoft OneDrive) jako kanałów C2 i exfiltracji, co utrudniało detekcję w ruchu „legitnym” dla ofiar.

W skrócie

  • Cele: rosyjskie firmy IT – integratorzy i kontraktorzy dla administracji publicznej.
  • Taktyki: C2 i staging w usługach chmurowych i… w profilach serwisów społecznościowych; operacje intensyfikowane w weekendy i święta.
  • Wejście: phishing z archiwami RAR/ZIP zawierającymi LNK oraz „DLL side-loading” do uruchomienia CloudyLoader (loader Cobalt Strike).
  • Nowe narzędzia w arsenale: OneDriveDoor, VtChatter (C2 via VirusTotal comments), COFFProxy (Golang), AufTime (Linux, wolfSSL), YaLeak (exfil do Yandex Cloud), a także LocalPlugX do ruchu bocznego.
  • Utrzymanie: harmonogram zadań podszywający się pod legalne aplikacje (np. YandexDisk/Chrome), tunelowanie przez Tailscale i Microsoft Dev Tunnels.

Kontekst / historia / powiązania

APT31 działa co najmniej od 2010 r., a na jej koncie są operacje przeciw instytucjom rządowym, finansom, obronności i high-tech na wielu kontynentach. W 2025 r. grupa była łączona m.in. z incydentami wobec czeskiego MSZ oraz z wcześniejszymi operacjami w Europie. Zestaw aliasów obejmuje m.in. Violet Typhoon (Microsoft), Zirconium, Judgement Panda.

Analiza techniczna / szczegóły kampanii

Wejście (Initial Access).
Udokumentowano spear-phishing z archiwami zawierającymi skróty .LNK. Po uruchomieniu następował łańcuch DLL side-loading bazujący na legalnym pliku BsSndRpt64.exe, który ładował bibliotekę BugSplatRc64.dll z wbudowanym CloudyLoaderem (loader Cobalt Strike). Warianty socjotechniki obejmowały „zapytania zakupowe” oraz przynęty stylizowane na dokumenty ministerstw (np. Peru).

Dowodzenie i kontrola (C2).
Komendy i payloady były „stage’owane” w profilach mediów społecznościowych (lokalnych i zagranicznych), a w komunikacji wykorzystywano powszechne usługi chmurowe (Yandex, Microsoft OneDrive), co maskowało ruch. Wybrane narzędzia:

  • OneDriveDoor – backdoor używający OneDrive jako C2;
  • VtChatter – narzędzie komunikujące się co 2 godz. przez zakodowane komentarze do pliku na VirusTotal;
  • YaLeak – .NET do wysyłki danych do Yandex Cloud.

Ruch boczny i utrzymanie.
Zaobserwowano LocalPlugX (odmiana PlugX do poruszania się wewnątrz sieci), COFFProxy (Golang: tunelowanie/komendy/zarządzanie plikami), AufTime (Linux backdoor z wolfSSL), Tailscale VPN i Microsoft Dev Tunnels do szyfrowanego P2P, a także liczne zadania w Harmonogramie Zadań Windows, których nazwy imitują legalne procesy (np. YandexDisk_Servers, GoogleUpdater). Wykryto też technikę tworzenia ukrytych zadań przez manipulację TaskCache\Tree\ i plikami XML.

Techniki ukrywania (Defense Evasion) i „timing”.
Operacje „pod święta/weekendy” oraz generowanie ruchu do legalnych serwisów utrudniało korelację i triage. Dodatkowo opisywano nietypowe wykorzystanie oobe\Setup.exe /ui do odpalenia łańcucha z własnym ErrorHandler.cmd.

Powiązane obserwacje branżowe.
Niezależne badania Kaspersky z lipca 2025 roku dokumentowały kampanie z Cobalt Strike i hostingiem komend/payloadów na platformach społecznościowych/GitHub, co spójnie wpisuje się w TTPs widoczne u APT31.

Praktyczne konsekwencje / ryzyko

  • Detekcja utrudniona: ruch C2/outbound do chmur i popularnych serwisów jest zwykle dozwolony, co obniża skuteczność klasycznych list kontroli, proxy i filtrów reputacyjnych.
  • Długotrwałe utrzymanie: potwierdzono przypadki „zagnieżdżenia” od końca 2022 r. i eskalacji aktywności podczas długich przerw świątecznych.
  • Różnorodny arsenał: miks living-off-the-land, narzędzi publicznych (SharpChrome, SharpDir) oraz custom backdoorów utrudnia budowę jednego wzorca IOC.

Rekomendacje operacyjne / co zrobić teraz

  1. Egress i kontrola chmury
    • Stwórz granularne zasady dla wyjściowego ruchu HTTP(S) do usług: OneDrive, Yandex Cloud, Paste/VT i wybranych social-media. Wymuś tenant allow-list dla Microsoft 365/OneDrive i monitoruj nietypowe identyfikatory aplikacji oraz User-Agent. Loguj i alertuj o transferach nietypowych dla profilu użytkownika/systemu.
  2. Hunting na zadania i „DLL side-loading”
    • Cycliczny hunting Scheduled Tasks: nazwy podobne do YandexDisk, GoogleUpdater, Crashpad_Server; sprawdzaj brakujące wpisy SecurityDescriptor w HKLM\...TaskCache\Tree\ vs. fizyczne pliki XML.
    • Szukaj BsSndRpt64.exe uruchamianego spoza domyślnych ścieżek oraz towarzyszących bibliotek BugSplatRc64.dll.
  3. Zasady czasu pracy (blue-team ops)
    • Podnieś wrażliwość alertów w weekendy i święta; wprowadź „holiday surge playbooks” (IR on-call, szybsza triage exfilu, czasowe zaostrzenie egressu).
  4. EDR/Proxy detections & telemetry
    • Reguły na nietypowe użycie Tailscale, Dev Tunnels, tunelowanie z hostów serwerowych; detekcje na narzędzia SharpADUserIP/SharpChrome/StickyNotesExtract. W proxy: wywołania do znanych end-pointów graph.microsoft.com, api.onedrive.com, storage.yandexcloud.net z hostów, które normalnie tego nie robią.
  5. Hardening poczty i stacji roboczych
    • Blokada uruchamiania .LNK z archiwów, polityki „mark of the web”, ASR dla „Office/shortcut LNK child processes”, ograniczenie DLL search order (WDAC/Applocker) dla znanych binariów podatnych na side-loading.
  6. Łańcuchy wskaźników i TTP-mapa
    • Zmapuj kontrole do MITRE ATT&CK dla APT31 (T1566.002 Spearphishing Link; T1053.005 Scheduled Task/Job; T1105 Exfil via C2; T1572 Protocol Tunneling itp.) i wdrażaj detekcje oparte na zachowaniu (behavioural).

Różnice / porównania z innymi przypadkami

  • Nietypowy wektor geopolityczny: raporty o chińskich operacjach przeciw rosyjskim podmiotom pojawiają się rzadko – ten przypadek potwierdzają niezależnie źródła branżowe.
  • C2 na platformach społecznościowych: trend widoczny w szerszym krajobrazie (Kaspersky) – ale u APT31 jest szczególnie przemyślany i łączony z chmurą lokalną (Yandex).

Podsumowanie / kluczowe wnioski

APT31 kontynuuje ewolucję: łączy „stare” techniki (phishing + Cobalt Strike) z nowymi backdoorami i C2 ukrytym w chmurze/publicznych serwisach. Dla obrońców oznacza to przejście z detekcji opartej na domenach/IP na kontrolę kontekstową i behawioralną (tenant enforcement, model ryzyka dla egressu, hunting na zadania i side-loading). Kampania pokazuje również, że „okna operacyjne” (weekendy/święta) pozostają skutecznym narzędziem aktorów APT – i wymagają dedykowanych playbooków IR.

Źródła / bibliografia

  1. The Hacker News: „China-Linked APT31 Launches Stealthy Cyberattacks on Russian IT Using Cloud Services” (22 listopada 2025). (The Hacker News)
  2. Positive Technologies, „Атаки разящей панды: APT31 сегодня” (20 listopada 2025) – raport techniczny. (ptsecurity.com)
  3. Kaspersky Securelist, „Cobalt Strike Beacon z dostawą przez GitHub i social media” (30 lipca 2025). (securelist.ru)
  4. The Record (Recorded Future News), „China’s APT31 linked to hacks on Russian tech firms” (21 listopada 2025). (The Record from Recorded Future)
  5. MITRE ATT&CK: „ZIRCONIUM (APT31) – G0128” (profil grupy i technik). (MITRE ATT&CK)

Qilin ransomware na warsztacie: jak śledczy odtworzyli atak z jednego końcowego hosta

Wprowadzenie do problemu / definicja luki

Qilin (znany również jako Agenda) to operacja Ransomware-as-a-Service (RaaS) aktywna od 2022 r., zasilana afiliantami i ukierunkowana na organizacje z wielu sektorów – od ochrony zdrowia po przemysł. Grupa stosuje podwójny wymus (szyfrowanie + wyciek danych) oraz elastyczne techniki dostępu początkowego (phishing, nadużycia RMM, wykorzystywanie narzędzi „living off the land”).

W skrócie

  • Zespół Huntress pokazał, jak z jednego zainfekowanego endpointu odtworzyć cały łańcuch ataku Qilin: od nieautoryzowanego dostępu przez ScreenConnect po próbę wdrożenia ransomware. Analiza opierała się na szczątkowych logach i artefaktach systemowych.
  • Qilin ewoluuje: afilianci tej operacji obserwowani są również przy uruchamianiu linuksowych szyfratorów w Windows za pomocą WSL, co utrudnia detekcję przez klasyczne narzędzia EDR.
  • Kontekst ryzyka potwierdzają realne skutki – m.in. głośny atak na laboratoria NHS/Synnovis w 2024 r., powiązany z Qilin.

Kontekst / historia / powiązania

Qilin wyłonił się jako RaaS w połowie 2022 r., z czasem rozbudowując ekosystem afiliantów i technikę operacyjną. Profil zagrożenia publikowany przez FortiGuard oraz noty sektorowe (HHS) opisują warianty w Go i Rust, podkreślają nadużycia narzędzi zdalnego zarządzania (RMM) i typowy schemat double-extortion. W 2024–2025 r. raporty i doniesienia prasowe przypisywały Qilin incydenty o znacznym wpływie – szczególnie w ochronie zdrowia.

Analiza techniczna / szczegóły luki

Wejście do środowiska (Initial Access):

  • Phishing i kradzież poświadczeń, a także nadużycia platform RMM (np. ScreenConnect) jako kanał „legitymizacji” ruchu i eksekucji. W analizowanym incydencie śledczym wykryto nieautoryzowany dostęp ScreenConnect jako punkt zwrotny.

Wykorzystanie WSL / obniżanie widoczności:

  • Część afiliantów Qilin uruchamia szyfratory ELF w środowisku Windows Subsystem for Linux, co omija niektóre heurystyki i telemetrykę narzędzi skupionych na binariach PE. To wymusza korelację telemetrii między Windows i komponentami WSL.

Eskalacja i przygotowanie środowiska:

  • Wyłączanie usług AV/EDR, czyszczenie logów zdarzeń, zatrzymywanie usług i procesów utrudniających szyfrowanie. Nowsze warianty (np. Qilin.B) dodają techniki antyforensyczne, włącznie z autodelecją plików wykonywalnych.

Szyfrowanie i exfiltracja:

  • Qilin stosuje model „szyfruj + wykradnij”, aby spotęgować presję na ofiarę. Exfiltracja odbywa się przed uruchomieniem szyfratora; następnie następuje notatka okupu i komunikacja na kanałach kontrolowanych przez grupę.

Artefakty i telemetria z jednego hosta (case study):

  • Huntress zrekonstruował oś czasu na podstawie lokalnych logów, śladów RMM, rejestru i plików tymczasowych, wykazując, że nawet limitowana widoczność pozwala zidentyfikować taktyki i pivoty atakujących. Dla SOC to praktyczny dowód, że „host-centric DFIR” może skutecznie odtworzyć łańcuch zdarzeń.

Praktyczne konsekwencje / ryzyko

  • Sektory wrażliwe (szczególnie ochrona zdrowia) narażone są na przerwy w świadczeniu usług, opóźnienia procedur medycznych oraz ryzyko ujawnienia danych pacjentów – co pokazał incydent NHS/Synnovis.
  • Nadużycia RMM zwiększają „szum tła” i utrudniają rozróżnienie legalnej administracji od działań wroga.
  • WSL-based encryptors wymagają rozszerzenia monitoringu poza tradycyjne PE/Windows API.

Rekomendacje operacyjne / co zrobić teraz

Prewencja i hardening

  1. Zabezpiecz RMM (ScreenConnect itp.): SSO, MFA bez wyjątków, allowlisting z IP/VPN, least privilege, segmentacja sesji, rejestrowanie i alerty na nietypowe działania operatorów.
  2. WSL pod lupą: wyłącz WSL, jeśli niepotrzebny; w przeciwnym razie loguj instalację/aktywację, monitoruj procesy wsl.exe, mounty, tworzenie plików ELF w profilach użytkowników.
  3. Polityki EDR/AV: blokowanie masowego otwierania/zamykania usług, czyszczenia logów, zatrzymywania serwisów bezpieczeństwa; ochrona przed autodelecją artefaktów.
  4. DLP + egress filtering: ogranicz exfiltrację przed szyfrowaniem (monitoring dużych transferów, blokady kanałów chmurowych/domen DGA).

Detekcja i telemetria

  • Koreluj dane Windows + WSL (Sysmon dla Windows i zdarzenia WSL), zdarzenia RMM, logi Security/System, rejestr usług oraz ślady tworzenia zadań. Buduj reguły na: uruchomienia wsl.exe poza oknami serwisowymi, instalację dystrybucji WSL, nietypowe sesje ScreenConnect, użycie narzędzi do wyłączania EDR, masowe WriteFile/Rename.

IR i odporność

  • Backupy 3-2-1 (air-gap/immutability), testy odtwarzania, runbooki IR dla RaaS; szybkie odłączenie RMM, credential hygiene, rotacja sekretów po incydencie.
  • W sektorze zdrowia – zgodność z wytycznymi branżowymi i procedurami ciągłości działania.

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

W porównaniu z wieloma rodzinami RaaS (np. LockBit, ALPHV), Qilin wyróżnia rosnąca adopcja taktyk ukrywania się w legalnych narzędziach (RMM) oraz przenikanie między platformami (ELF przez WSL na Windows). To zmniejsza skuteczność klasycznych, sygnaturowych detekcji i wymaga telemetrii obejmującej zarówno warstwę zarządczą, jak i subsystemy zgodności (WSL).

Podsumowanie / kluczowe wnioski

  • Qilin/Agenda pozostaje aktywnym i elastycznym RaaS, który łączy nadużycia RMM z technikami antyforensycznymi i – u części afiliantów – szyfratorami ELF uruchamianymi przez WSL.
  • Nawet ograniczona widoczność z jednego hosta pozwala zrekonstruować incydent i zidentyfikować punkty kontrolne – co pokazała analiza Huntress.
  • Organizacje, szczególnie z ochrony zdrowia, powinny traktować Qilin jako wysokie ryzyko operacyjne i wdrożyć specyficzne kontrole dla RMM i WSL.

Źródła / bibliografia

  1. BleepingComputer – „Piecing Together the Puzzle: A Qilin Ransomware Investigation” (studium przypadku Huntress). (BleepingComputer)
  2. FortiGuard – Threat Actor: Qilin Ransomware (profil grupy, RaaS, aktywność od 2022 r.). (fortiguard.com)
  3. U.S. HHS – Qilin Threat Profile (TLP:CLEAR) (wektory wejścia, podwójny wymus, Go/Rust). (HHS)
  4. TechRadar (na podstawie badań Trend Micro) – WSL wykorzystywany do uruchamiania szyfratorów ELF w Windows. (TechRadar)
  5. ComputerWeekly / The Guardian – incydent NHS/Synnovis 2024 przypisywany Qilin, skutki operacyjne i wyciek danych. (Computer Weekly)

CVE-2025-0111 — PAN‑OS: Authenticated File Read w interfejsie zarządzania (web)

TL;DR

Luka CVE‑2025‑0111 pozwala uwierzytelnionemu napastnikowi z dostępem sieciowym do interfejsu zarządzania PAN‑OS odczytywać pliki systemowe czytelne przez użytkownika nobody. Ryzyko rośnie przy wystawieniu interfejsu na Internet (np. port 4443 na interfejsie dataplane z profilem management). Producent udostępnił wydania naprawcze oraz sygnatury Threat ID 510000/510001 (pakiet Apps&Threats ≥ 8943). W praktyce: załataj, ogranicz źródła IP do zaufanych, sprawdź, czy nie doszło do łańcuchowej eksploatacji z CVE‑2025‑0108/CVE‑2024‑9474, i zrotuj sekrety, jeśli masz podejrzenie naruszenia.


Krótka definicja techniczna

Authenticated File Read w portalu zarządzania PAN‑OS: błąd kontroli ścieżki (CWE‑73), który umożliwia po zalogowaniu oraz z dostępem sieciowym do UI odczyt plików z systemu plików urządzenia, o ile są one czytelne przez konto systemowe nobody. To naruszenie poufności bez bezpośredniego wpływu na integralność/ dostępność.


Gdzie występuje / przykłady platform

  • Fizyczne NGFW (PA‑Series) oraz VM‑Series (on‑prem/ESXi, AWS/Azure/GCP) — jeśli interfejs zarządzania dostępny z niezaufanej sieci.
  • CN‑Series (Kubernetes) — gdy profil management nadany interfejsowi dataplane/Service LB i port mgmt (typ. 4443) dostępny publicznie.
  • Nie dotyczy: Cloud NGFW i Prisma Access.

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

Wadliwa walidacja/normalizacja ścieżek w webowym interfejsie zarządzania PAN‑OS pozwala po pomyślnym uwierzytelnieniu wykonywać zapytania skutkujące odczytem plików (zakres: pliki czytelne przez nobody). Skuteczność ataku rośnie, gdy:

  1. Interfejs mgmt jest osiągalny z Internetu (bez filtrów źródeł); 2) napastnik dysponuje ważnymi poświadczeniami (np. uzyskanymi inną techniką); 3) podatność jest łączona w łańcuch z innymi błędami (np. CVE‑2025‑0108 i CVE‑2024‑9474), co obserwowano w praktyce. Ujawnione pliki mogą zawierać metadane/konfiguracje ułatwiające eskalację i dalsze działania (rekonesans, wyciek).

Status i ocena producenta: CVSS‑BT 7.1 (HIGH), Exploitation: ATTACKED. Producent wydał poprawki dla gałęzi 10.1, 10.2, 11.1, 11.2 oraz wskazał, że starsze EoL (9.x/10.0/11.0) uznaje się za podatne i nie będą łatane.


Artefakty i logi

Źródło/warstwaTyp/plik/logWskaźniki/kluczeUwagi
PAN‑OS Threat logSygnatury Threat ID 510000/510001threatid, action, src, dst, app, ruleWydane w Apps&Threats ≥ 8943 — blokada/alert prób eksploatacji.
PAN‑OS System logZdarzenia logowania/administracjianomalne logowania do UI, zmiany w profilu mgmtDo korelacji z dostępem z zewnętrznych ASN.
PAN‑OS web‑server access (mp‑log)Dostępy do /php/* / UINietypowe źródła, wzorce żądańW praktyce forwardowane przez syslog lub inspekcja na urządzeniu.
PAN‑OS Traffic logRuch do portów 443/4443 na IP zarządzaniadst_port in (443,4443), action=allow, źródła spoza RFC1918Służy do wykrywania ekspozycji/nieautoryzowanych źródeł.
AWS CloudTrailAuthorizeSecurityGroupIngress, CreateLoadBalancerListenersOtworzenie 443/4443 na 0.0.0.0/0Wczesny sygnał błędnej ekspozycji UI w chmurze.
K8s auditcreate/patch Service/IngressService typu LoadBalancer/NodePort eksponujący 4443Dot. CN‑Series/środowisk PoC.
M365/Entra[brak danych]Nie dotyczy tej luki.
Windows (EID)[brak danych]Nie dotyczy — luka po stronie urządzenia PAN‑OS.

Detekcja (praktyczne reguły)

Sigma — wykrycie sygnatur producenta (Threat log)

title: PAN-OS CVE-2025-0111 — Threat ID detection
id: 0d6b9c2a-5d0e-4e77-98a7-24d0a1c9a111
status: experimental
logsource:
  product: pan-os
  service: threat
detection:
  sel_ids:
    threatid|endswith:
      - '510000'
      - '510001'
  sel_text:
    threatname|contains: 'CVE-2025-0111'
  condition: sel_ids or sel_text
fields:
  - src
  - dst
  - app
  - rule
  - action
  - threatid
level: high
tags:
  - cve.CVE-2025-0111
  - attack.T1190

Sigma — dostęp do UI zarządzania z Internetu (Traffic log)

title: PAN-OS Management UI from External IPs (443/4443)
id: 3b1aaf9e-1f76-4e4d-9b86-b3c59a4d4443
status: experimental
logsource:
  product: pan-os
  service: traffic
detection:
  sel:
    action: 'allow'
    dst_port|in:
      - 443
      - 4443
  not_internal_src:
    src_ip|cidr:
      - '10.0.0.0/8'
      - '172.16.0.0/12'
      - '192.168.0.0/16'
  condition: sel and not not_internal_src
fields:
  - src_ip
  - dst_ip
  - rule
  - app
  - vsys
level: medium
tags:
  - hardening.exposure

Splunk (SPL)

Wykrycie Threat ID / prób eksploatacji:

(index=pan* sourcetype=pan:threat)
| eval threatid_str=tostring(threatid)
| where threatid_str IN ("510000","510001") OR like(threat_name, "%CVE-2025-0111%")
| stats count min(_time) as first_seen max(_time) as last_seen by src dst app rule action threatid threat_name vsys

Dostęp do UI mgmt z Internetu:

(index=pan* sourcetype=pan:traffic action=allowed)
  (dest_port IN (443,4443))
  NOT (cidrmatch("10.0.0.0/8", src_ip) OR cidrmatch("172.16.0.0/12", src_ip) OR cidrmatch("192.168.0.0/16", src_ip))
| lookup firewall_mgmt_ips ip as dest_ip OUTPUTNEW device role
| search role="mgmt"
| stats dc(src_ip) as uniq_sources values(src_ip) as sources count by dest_ip rule app vsys

KQL (Microsoft Sentinel / AMA + CEF)

// Threat IDs 510000/510001 (CEF -> DeviceEventClassID)
CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks"
| where DeviceEventClassID in ("510000","510001") or AdditionalExtensions contains "CVE-2025-0111"
| summarize count(), min(TimeGenerated), max(TimeGenerated) by SourceIP, DestinationIP, DeviceEventClassID, Activity, DeviceAction
// Ruch do UI mgmt z Internetu (443/4443) -> wymaga listy IP mgmt w watchliście
let MgmtIPs = dynamic(["198.51.100.10","203.0.113.5"]); // przykład
CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks" and Activity has_cs "TRAFFIC"
| where DestinationPort in ("443","4443") and DestinationIP in (MgmtIPs)
| where ipv4_is_private(SourceIP) == false
| summarize by TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction

AWS CloudTrail Lake (SQL) — ekspozycja mgmt przez SG/ELB

-- Zmiany otwierające 443/4443 na 0.0.0.0/0
SELECT eventTime, eventSource, eventName,
       userIdentity.sessionContext.sessionIssuer.arn AS actor,
       requestParameters
FROM aws_cloudtrail_events
WHERE eventName IN ('AuthorizeSecurityGroupIngress','CreateSecurityGroup','CreateLoadBalancerListeners','ModifyLoadBalancerAttributes')
  AND (requestParameters LIKE '%0.0.0.0/0%')
  AND (requestParameters LIKE '%443%' OR requestParameters LIKE '%4443%')
ORDER BY eventTime DESC;

Elastic / EQL

any where event.dataset == "panw.threat" and
         (panw.threat.id in ("510000","510001") or message =~ "CVE-2025-0111")

Heurystyki / korelacje

  • Dostęp do UI z zewnętrznych ASNlogowanie adminaodczyt/zmiany konfiguracji (System log).
  • Wyzwolenie Threat ID 510000/510001ciągłe próby z jednego źródłabrak wcześniejszej aktywności tego IP.
  • Nagłe upublicznienie portu 4443/443 (CloudTrail/K8s audit) ⟺ nowe alerty Threatzmiany haseł/kluczy w krótkim oknie czasu.

False positives / tuning

  • Ruch z monitoringu/NAC/VPN podszywający się pod „zewnętrzny” (np. testy dostępności).
  • Maintenance (serwis dostawcy) — jednorazowy dostęp spoza korp.
  • Dla sygnatur — testowe skanery i pentesty w labie.
    Tuning: listy zaufanych źródeł, mapowanie IP mgmt w SIEM, korelacja z oknami serwisowymi.

Playbook reagowania (IR)

  1. Triage/izolacja ekspozycji
    • Zidentyfikuj, czy UI mgmt jest publicznie dostępny; jeśli tak, zablokuj/ogranicz źródła (ACL, SG, WAF) do zaufanych IP.
  2. Patching
    • Zaktualizuj do wersji naprawczej: 10.1.14‑h9+, 10.2.x‑h21/h24/h14/h12/h6/… (wg tabeli), 11.1.6‑h1+/11.1.4‑h13+/11.1.2‑h18+, 11.2.4‑h4+ lub 11.2.5+. Starsze EoL — migracja/wymiana.
  3. Zabezpieczenia prewencyjne
    • Włącz/zweryfikuj subskrypcję Threat Prevention i sygnatury Threat ID 510000/510001 (Apps&Threats ≥ 8943).
  4. Hunting
    • Przejrzyj logi Threat/System/Traffic pod kątem prób/udanych dostępów.
    • Oceń korelację z CVE‑2025‑0108/CVE‑2024‑9474 (możliwe łańcuchy).
  5. Remediacja sekrety (gdy podejrzenie nadużycia):
    • Zmień master key (AES‑256‑GCM), hasła/PSK/secrety, unieważnij i wydaj ponownie certyfikaty z kluczami prywatnymi na urządzeniu.
  6. Edukacja i kontrola zmian
    • Wymuś politykę „jump‑box only” do UI mgmt; przegląd SG/ACL/Ingress.

Przykłady z kampanii / case studies

  • Eksploatacja łańcuchowa: producent i niezależne raporty wskazały próby łączenia CVE‑2025‑0108 + CVE‑2024‑9474 + CVE‑2025‑0111 na niezałatanych i źle zabezpieczonych interfejsach mgmt.
  • Advisory/monitoring: Armis i HKCERT klasyfikują ryzyko jako wysokie; zalecają priorytetowy patching i ograniczenie ekspozycji.
  • Bazy podatności: NVD/CVE.org/Tenable/Rapid7 dokumentują charakter luki, wektor i brak wpływu na Cloud NGFW/Prisma Access.

Lab (bezpieczne testy) — przykładowe kroki/komendy

Tylko w odizolowanym labie. Nie wykonuj testów wobec cudzych systemów. Scenariusz ma zweryfikować detekcje i hardening, nie eksploatować luki.

  1. Weryfikacja wersji i contentu (CLI PAN‑OS):
    • show system info → sprawdź sw-version.
    • request content upgrade check / request content upgrade download latest / request content upgrade install version <>=8943 (upewnij się, że Threat ID 510000/510001 są obecne).
  2. Tymczasowe logowanie dostępu do UI
    • Skonfiguruj forwarding System/Threat/Traffic do SIEM.
    • Z dozwolonego hosta wewnętrznego wygeneruj benign ruch do UI: curl -k https://<fw-mgmt>:4443/ (sprawdź, czy powstają zapisy w Traffic/System).
  3. Testy detekcji w SIEM
    • Uruchom podane zapytania Splunk/KQL/Elastic; w razie braku rzeczywistych zdarzeń skorzystaj z generatorów logów testowych (np. sample CEF) z symbolicznym threatid=510000 (bez faktycznej próby eksploatacji).
  4. Hardening
    • Zaimplementuj listę zaufanych źródeł (ACL/SG) i regułę „jump‑box only”; potwierdź, że ruch spoza listy nie dociera do UI.

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK)

  • M1051 — Update Software (aktualizacje PAN‑OS do wersji naprawczych).
  • M1037 — Filter Network Traffic (restrykcja źródeł do UI, tylko zaufane IP).
  • M1030 — Network Segmentation (dostęp przez jump‑host/VPN).
  • M1042 — Disable or Remove Feature or Program (wyłączenie profilu mgmt na interfejsach dataplane, jeśli zbędny).
  • M1027 — Password Policies / M1026 — Privileged Account Management (rotacja sekretów/mk, least privilege).

Techniki (ATT&CK)

T1190 — Exploit Public‑Facing Application

Dotyczy nadużycia błędu w aplikacji web wystawionej publicznie (UI mgmt). Tu: wymaga PR:L (zalogowanego aktora), ale wektor nadal AV:N i kanał webowy.

T1078 — Valid Accounts

Warunek konieczny: ważne konto z dostępem do UI mgmt (np. po phishingu/wycieku). Korelować logowania z nietypowych ASN.

T1005 — Data from Local System

Odczyt plików z systemu plików urządzenia w celu pozyskania informacji pomocnych do dalszych faz ataku.


Źródła / dalsza lektura

  • Palo Alto Networks — Advisory (CVE‑2025‑0111): opis, wersje naprawcze, Threat ID 510000/510001, zalecenia dot. master key/rotacji sekretów. (Palo Alto Networks Security)
  • NVD (nist.gov) — karta CVE. (NVD)
  • CVE.org — rekord producenta. (CVE)
  • Tenable / Rapid7 — podsumowania ryzyka i przypomnienie o ograniczeniu dostępu do UI. (Tenable®)
  • FortiGuard / H‑ISAC / HKCERT / Armis — doniesienia o łańcuchach eksploatacyjnych i „in‑the‑wild”. (FortiGuard)
  • MITRE ATT&CK — Version history (v18.1). (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjne):

  • Czy posiadamy watchlistę IP mgmt i aktywne reguły dla portów 443/4443?
  • Czy SIEM odbiera Threat/System/Traffic z NGFW i wzbogaca o ASN/CIDR?
  • Czy alertujemy na Threat ID 510000/510001 (wysoki priorytet)?
  • Czy działają korelacje: zdalny dostęp do UIlogowanie adminazmiana config?
  • Czy przeprowadzono hunt pod kątem prób łańcuchowych (CVE‑2025‑0108/2024‑9474/2025‑0111)?

CISO / właściciel ryzyka:

  • Czy interfejs mgmt nie jest dostępny z Internetu (architektura „jump‑box only”)?
  • Czy wszystkie instancje mają wersje naprawcze (wg tabeli producenta)?
  • Czy mamy proces rotacji sekretów/master key/certyfikatów po incydencie?
  • Czy SLA na Apps&Threats content gwarantuje ≥ 8943 i autoupdate?
  • Czy polityki least privilege dotyczą również kont administracyjnych NGFW?

CVE-2025-0108 — PAN‑OS Authentication Bypass

TL;DR

  • Błąd w WebUI PAN‑OS pozwala bez uwierzytelnienia wywołać określone skrypty PHP, jeśli atakujący ma sieciowy dostęp do portu zarządzania (typowo 443/4443). Nie daje sam w sobie RCE, ale narusza poufność/integralność i bywa łańcuszkowany z innymi lukami (np. CVE‑2024‑9474, CVE‑2025‑0111) do pełnego przejęcia.
  • Największe ryzyko: publicznie dostępny interfejs zarządzania lub profil zarządzania na interfejsie dataplane. GlobalProtect portale/bramy nie są podatne (chyba że ma profil zarządzania).
  • Naprawa: aktualizacje do wersji hotfix wymienionych niżej + ograniczenie dostępu IP/segmentacja. Dodatkowo abonenci Threat Prevention mogą blokować próby sygnaturami Threat ID 510000/510001.
  • ATT&CK: T1190 (Exploitation of public‑facing admin UI). Priorytet: krytyczny, jeśli WebUI jest osiągalne z Internetu.

Krótka definicja techniczna

CVE‑2025‑0108 to obejście uwierzytelniania w WebUI PAN‑OS, umożliwiające niezalogowanemu napastnikowi z dostępem sieciowym do WebUI wywołanie wybranych skryptów PHP. Samo wywołanie nie daje RCE, ale może ujawniać/zmieniać informacje, a w praktycznych łańcuchach z CVE‑2024‑9474 (PE/CI) i CVE‑2025‑0111 (file read) prowadzi do eskalacji.


Gdzie występuje / platformy

  • Palo Alto Networks: PA‑Series, VM‑Series, CN‑Series, Panorama — wersje PAN‑OS wymienione jako podatne; Cloud NGFW i Prisma Accessniepodatne.
  • Środowiska uruchomieniowe: sprzęt on‑prem, ESXi/KVM/Hyper‑V (VM‑Series), chmury AWS/Azure/GCP (VM‑Series).
  • Usługi powiązane: GlobalProtect portale/gateways nie są podatne, ale profil zarządzania na takim interfejsie naraża urządzenie (często port 4443).

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

Atakujący wysyła specjalnie ułożone żądania HTTP/S do publicznie osiągalnego WebUI PAN‑OS. Błąd w ścieżce uwierzytelniania pozwala ominąć kontrolę logowania i wołać część skryptów PHP zaplecza WebUI. Choć producent podkreśla, że samo to nie daje RCE, realnie umożliwia pozyskanie wrażliwych informacji lub zmianę stanu (konf./sesje), co w połączeniu z innymi błędami (np. CVE‑2024‑9474, CVE‑2025‑0111) bywa wykorzystywane do pełnego przejęcia administracyjnego. Lukę uznano za atakowaną (observed exploit attempts) i wpisano do CISA KEV. Skuteczność wynika z: (1) powszechności błędnych ekspozycji WebUI, (2) niska złożoność i brak wymagań uprawnień/UI, (3) możliwość łańcuchowania.

Wersje/fixy (skrót):

  • 10.1: podatne < 10.1.14‑h9; naprawa ≥ 10.1.14‑h9
  • 10.2: podatne niższe niż 10.2.7‑h24 / 10.2.8‑h21 / 10.2.9‑h21 / 10.2.10‑h14 / 10.2.11‑h12 / 10.2.12‑h6 / 10.2.13‑h3; naprawy ≥ tych wersji
  • 11.1: podatne < 11.1.2‑h18 / < 11.1.4‑h13 / < 11.1.6‑h1; naprawy ≥ tych wersji
  • 11.2: podatne < 11.2.4‑h4 / < 11.2.5; naprawy ≥ 11.2.4‑h4 / 11.2.5
  • EoL (11.0/10.0/9.x): domyślnie uważane za podatne, bez planu poprawek.

Artefakty i logi

ŹródłoTyp/ZdarzenieNajważniejsze polaWskazówki / przykład
PAN‑OS Threat logsBlokady sygnatur Threat ID 510000/510001threat_id/threatid, threat_name, action, src, dst, urlDetekcja prób CVE‑2025‑0108 (wymaga subskrypcji Threat Prevention).
PAN‑OS Traffic logsPołączenia do WebUI (443/4443)dst_port, app (ssl/web-browsing), rule, src, dstRuch z niezaufanych ASN/IP do IP zarządzania; brak reguły NAT/SNAT dla mgmt.
PAN‑OS System/Config logsNieoczekiwane zmiany/akcje w WebUItype=SYSTEM/CONFIG, admin, client, cmd, resultZmiany konfiguracyjne z nietypowych adresów źródłowych po ruchu na 4443.
Cortex Data Lake / CEFZnormalizowane pola CEF (CommonSecurityLog)DeviceVendor="Palo Alto Networks", DeviceProduct="PAN-OS", DeviceEventClassIDW Sentinel KQL filtrujemy DeviceProduct has 'PAN-OS'.
CloudTrail (meta‑kontrola)Zmiany SG/VPC odsłaniające 443/4443AuthorizeSecurityGroupIngress, RevokeSecurityGroupIngressWykrywanie ekspozycji WebUI dla VM‑Series w AWS.
K8s audit / M365 / Windows EIDNie dotyczy tej luki (brak lokalnych EID/M365/K8s).

Detekcja (praktyczne reguły)

Sigma — próby CVE‑2025‑0108 (Threat Prevention lub ślady WebUI)

title: PAN-OS WebUI Auth Bypass Attempt (CVE-2025-0108)
id: 0a0d2c8b-3c7a-4d0e-9a7e-0d9b5b7f0108
status: experimental
description: Wykrywa próby obejścia uwierzytelniania WebUI PAN-OS (CVE-2025-0108) na podstawie sygnatur TP lub nietypowych wywołań WebUI.
references:
  - https://security.paloaltonetworks.com/CVE-2025-0108
logsource:
  category: firewall
  product: paloalto
detection:
  tp_ids:
    threat_id|contains:
      - '510000'
      - '510001'
    action|contains:
      - 'block'
      - 'reset'
  webui_suspicious:
    dst_port|in: [443, 4443]
    app|contains:
      - 'ssl'
      - 'web-browsing'
    url|endswith: '.php'
    user|isempty: true
  condition: tp_ids OR webui_suspicious
falsepositives:
  - Skanery podatności/monitoring pochodzące z dozwolonych adresów
level: high
tags:
  - attack.t1190
  - cve.2025-0108

Uwaga: dopasuj nazwy pól do Twojego parsera (np. threatid/threat_id, url, dstport). Sygnatury 510000/510001 wg advisora producenta.

Splunk (SPL)

A) Trafienia sygnatur 510000/510001 (pan:threat)

index=pan_logs sourcetype=pan:threat
| search threatid IN (510000, 510001)
| stats count min(_time) as firstSeen max(_time) as lastSeen values(src_ip) values(dst_ip) by threatid, threat, action

(„threatid”/„threat” mogą się różnić w zależności od Add‑on; sprawdź normalizację pól).

B) Dostępy do WebUI z Internetu (pan:traffic)

index=pan_logs sourcetype=pan:traffic (dest_port=443 OR dest_port=4443)
| eval isPublic=if(cidrmatch("0.0.0.0/0", src_ip) AND NOT
    (cidrmatch("10.0.0.0/8", src_ip) OR cidrmatch("172.16.0.0/12", src_ip) OR cidrmatch("192.168.0.0/16", src_ip)), 1, 0)
| where isPublic=1
| stats dc(src_ip) as uniqIPs values(app) values(rule) by dest_ip, dest_port

C) Korelacja: po ruchu na WebUI następuje Config change

(index=pan_logs sourcetype=pan:traffic (dest_port=443 OR dest_port=4443) src_ip!=10.0.0.0/8)
| bin _time span=5m
| stats values(src_ip) as srcs values(dest_ip) as mgmtIPs by _time
| join _time [ search index=pan_logs sourcetype=pan:config result="Succeeded"
              | stats values(admin) as admins values(client) as clients by _time ]
| table _time mgmtIPs srcs admins clients

Microsoft Sentinel / KQL (CommonSecurityLog)

A) Sygnatury TP (CEF)

CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks" and DeviceProduct has "PAN-OS"
| where DeviceEventClassID =~ "threat"
| extend kv = parse_kv(AdditionalExtensions, ";", "=")
| where tostring(kv.threatid) in ("510000","510001") or tostring(kv.ThreatID) in ("510000","510001")
| summarize count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated) by SourceIP, DestinationIP, tostring(kv.threat_name)

B) Dostęp do WebUI z niezaufanych adresów

CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks" and DeviceProduct has "PAN-OS"
| where DestinationPort in ("443","4443") and ApplicationProtocol in ("ssl","http","https")
| where not(ipv4_is_private(SourceIP))
| summarize dcount(SourceIP), make_set(SourceIP, 5) by DestinationIP, DestinationPort

AWS (CloudTrail/CLI/Flow Logs)

A) Zmiany SG otwierające WebUI na świat (CloudTrail)

AWSCloudTrail
| where EventName in ("AuthorizeSecurityGroupIngress","ModifyNetworkInterfaceAttribute")
| extend open443 = tostring(parse_json(RequestParameters).ipPermissions) has "fromPort\":443"
| extend open4443 = tostring(parse_json(RequestParameters).ipPermissions) has "fromPort\":4443"
| where open443 or open4443
| where tostring(parse_json(RequestParameters).ipPermissions) has "0.0.0.0/0"

B) Szybki audyt CLI (EC2 SG)

aws ec2 describe-security-groups \
  --query "SecurityGroups[?IpPermissions[?((FromPort==443||FromPort==4443)&&contains(IpRanges[].CidrIp, '0.0.0.0/0'))]].{GroupId:GroupId,Name:GroupName}" \
  --output table

C) VPC Flow Logs (CloudWatch Logs Insights) – ruch do 4443

fields @timestamp, srcAddr, dstAddr, dstPort, action
| filter dstPort in [443,4443] and action="ACCEPT"
| sort @timestamp desc
| limit 100

Elastic (EQL / KQL)

EQL – ruch do WebUI z Internetu + ślady PHP w URL

any where observer.vendor == "Palo Alto Networks" and
          event.dataset in ("panw.traffic","panw.threat") and
          destination.port in (443, 4443) and
          (url.path regex ".*\\.php(\\?|$)") and
          not cidrmatch(source.ip, "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")

Heurystyki / korelacje

  • Łańcuch czasowy (T1190 → konfiguracja): (1) wzrost 4xx/5xx/nieudanych prób na WebUI → (2) trafienia sygnatur 510000/510001 → (3) Config/System z nietypowych IP → (4) nowe sesje admina/zmiany polityk.
  • Ekspozycja → atak: zdarzenia CloudTrail/SG otwierające 443/4443 dla 0.0.0.0/0 w VPC z VM‑Series + ruch do WebUI + zmiany w PAN‑OS.
  • Łańcuch z innymi CVE: obserwuj następujące wzorce po nieudanym logowaniu: wywołania prowadzące do PE/CI (CVE‑2024‑9474) i file read (CVE‑2025‑0111).

False positives / tuning

  • Skanery podatności / monitoring (np. z adresów skanerów wewnętrznych).
  • Automaty / API do kopii konfiguracji działające z uprzywilejowanych podsieci.
  • CDN/Proxy: pole XFF może maskować źródło — uwzględnij parsowanie XFF.
    Tuning: biała lista skanerów; zawężenie do dest_ip = znane IP zarządzania; korelacja z action != allow lub z sygnaturami TP.

Playbook reagowania (IR)

  1. Izoluj ekspozycję: natychmiast zablokuj dostęp do WebUI z Internetu (ACL/SG/WAF), ogranicz do jump‑boxa/VPN i adresów zaufanych.
  2. Zastosuj poprawki: podnieś PAN‑OS do wersji:
    • 10.1 ≥ 10.1.14‑h9; 10.2 : 10.2.7‑h24 / 10.2.8‑h21 / 10.2.9‑h21 / 10.2.10‑h14 / 10.2.11‑h12 / 10.2.12‑h6 / 10.2.13‑h3; 11.1 : 11.1.2‑h18 / 11.1.4‑h13 / 11.1.6‑h1; 11.2 ≥ 11.2.4‑h4/11.2.5.
  3. Włącz sygnatury: Threat Prevention 510000/510001 (Apps & Threats ≥ 8943). Zweryfikuj trafienia.
  4. Przegląd logów:
    • Threat/Traffic: próby na 443/4443, hosty źródłowe, geolokacja.
    • System/Config: nietypowe admin / client, zmiany reguł, importy konfiguracji.
  5. Hunting łańcucha: wyszukaj wskaźniki wykorzystania CVE‑2024‑9474/CVE‑2025‑0111 po czasie prób CVE‑2025‑0108.
  6. Twarde utwardzanie: odseparuj zarządzanie (VLAN/VRF/DMZ), wymuś MFA dla adminów, wyłącz HTTP, zostaw tylko HTTPS z certyfikatem i restrykcjami IP.
  7. Rotacja poświadczeń / przegląd kont: zmień hasła lokalnych adminów, sprawdź nieznane konta.
  8. Lessons learned: dodaj kontrolę CI/CD zmian SG, testy ekspozycji mgmt (IaC policy), dashboardy SOC.

Wybrane komendy PAN‑OS (CLI) – diagnostyka/bezpieczne

Uruchamiaj w oknie serwisowym, po kopii configu.

show system info
show admins
show config running | match management
show session all filter dst port 4443
show log system direction equal backward query '( subtype eq general )'
show log config direction equal backward

Przykłady z kampanii / case studies

  • Producent: „Palo Alto Networks zaobserwował próby łańcuchowania CVE‑2025‑0108 z CVE‑2024‑9474 i CVE‑2025‑0111 na niezałatanych i źle zabezpieczonych WebUI.”
  • KEV: wpis CISA KEV z datą dodania 2025‑02‑18 potwierdza eksploatację w praktyce.
  • Niezależne analizy: raporty Armis/FortiGuard omawiają aktywne wykorzystanie i łańcuszkowanie.

Lab (bezpieczne testy)

Cel: zweryfikować detekcję i twarde zasady bez ujawniania szczegółów exploitu. Wykonuj w odseparowanym labie.

  1. Topologia: VM‑Series (lab), jump‑host (allowlist), maszyna „Internet” (deny).
  2. Ekspozycja kontrolowana: tymczasowo otwórz 4443 tylko dla jump‑host; potwierdź, że „Internet” jest blokowany.
  3. Generacja ruchu: z „Internet” wyślij neutralne żądania HTTPS do WebUI (np. curl -k https://FW:4443/) i obserwuj logi Traffic/Threat.
  4. Sygnatury: zaktualizuj Applications and Threats do wersji ≥ 8943 i zweryfikuj, że blokady 510000/510001 pojawiają się przy próbach wzorcowych (narzędzie skanujące w labie).
  5. Kwerendy: uruchom reguły SPL/KQL/EQL z pkt 7 i sprawdź alarmy.

(Nie wykonujemy czynności ukierunkowanych na obejście zabezpieczeń ani odtwarzania łańcucha exploitu.)


Mapowania (Mitigations, powiązane techniki)

  • ATT&CK Technika: T1190 Exploit Public‑Facing Application (Initial Access).
  • Mitigations (ATT&CK):
    • M1030 Network Segmentation – izoluj płaszczyznę zarządzania; dostęp tylko z jump‑boxa.
    • M1031 Network Intrusion Prevention – stosuj IPS/WAF do ruchu do WebUI; sygnatury TP 510000/510001.
    • M1050 Exploit Protection – „virtual patching”, blokady behawioralne; polityki hardeningu.
  • Powiązane CVE/techniki do korelacji: CVE‑2024‑9474 (eskalacja/CI), CVE‑2025‑0111 (file read) — korelować jako etap po T1190.

Źródła / dalsza literatura

  • Palo Alto Networks — oficjalny advisory CVE‑2025‑0108 (wersje, sygnatury, status exploitation, mitigation). (Palo Alto Networks Security)
  • NVD CVE‑2025‑0108 — CVSS v3.1=9.1, wpis KEV (data/due date). (NVD)
  • MITRE ATT&CK T1190 (wersja 2.8; modyfikacja 2025‑10‑24). (MITRE ATT&CK)
  • ATT&CK Version History — aktualna wersja v18.1 (od 2025‑10‑28). (MITRE ATT&CK)
  • Armis — łańcuch wykorzystania 0108+9474+0111. (Armis)
  • FortiGuard Labs — aktywna eksploatacja. (FortiGuard)
  • Microsoft — CommonSecurityLog / KQL dla Palo Alto (CEF). (Microsoft Learn)
  • PAN‑OS log fields (Traffic/Threat/System) — dokumentacja. (docs.paloaltonetworks.com)

Checklisty dla SOC / CISO

SOC – dziś

  • Czy żaden WebUI PAN‑OS nie jest dostępny z Internetu? (skan + SG/ACL)
  • Czy mamy aktualizację do naprawionych wersji (patrz lista)?
  • Czy Threat Prevention włączony + sygnatury 510000/510001 działają?
  • Czy działają alerty T1190: ruch na 443/4443 do IP zarządzania, zdarzenia Threat/Config?
  • Korelacja z CVE‑2024‑9474 / CVE‑2025‑0111 po czasie prób.

CISO – w tym kwartale

  • Segmentacja płaszczyzny zarządzania (M1030) i MFA dla adminów.
  • Policy as Code: bloker IaC zmian SG/VPC otwierających 443/4443.
  • Przegląd EoL PAN‑OS (9.x/10.0/11.0) i plan migracji.
  • Testy scenariuszy T1190 w purple‑team (bez exploitu produkcyjnego).

CVE-2023-27997 – Krytyczna podatność typu heap‑based buffer overflow w FortiOS/FortiProxy (SSL‑VPN, FortiGate)

TL;DR

  • Co: Pre‑auth RCE w FortiOS/FortiProxy SSL‑VPN (FortiGate) — CVE‑2023‑27997 („XORtigate”).
  • Jak: nadpisanie bufora (heap) poprzez parametr enc w endpointzie /remote/hostcheck_validate, co umożliwia wykonanie kodu bez logowania.
  • Ryzyko: krytyczne, aktywnie wykorzystywane, w KEV (CISA).
  • Naprawa: aktualizacja co najmniej do FortiOS 6.0.17 / 6.2.15 / 6.4.13 / 7.0.12 / 7.2.5 oraz odpowiednie wersje FortiProxy; w razie potrzeby tymczasowo wyłączyć SSL‑VPN.
  • ATT&CK: T1190 (Initial Access). Wskazane korelacje z T1133 (External Remote Services) oraz T1210 (Exploitation of Remote Services) dla ruchu/powykorzystaniowych zachowań.

Krótka definicja techniczna

CVE‑2023‑27997 to błąd heap‑based buffer overflow (CWE‑122/CWE‑787) w komponencie SSL‑VPN FortiOS/FortiProxy umożliwiający zdalne wykonanie kodu na urządzeniu bez uwierzytelnienia poprzez „specjalnie spreparowane” żądania HTTP/HTTPS do publicznego interfejsu VPN.


Gdzie występuje / przykłady platform

  • Network Devices (FortiGate/FortiProxy) — urządzenia brzegowe z włączonym SSL‑VPN. (Matryca ATT&CK obejmuje „Network Devices”).
  • Chmura/edge: gdy FortiGate stoi za ALB/WAF (AWS/Azure/GCP), ślady ataków w logach ALB/WAF/Load Balancer. [Mimo że sama podatność dotyczy urządzenia, telemetria może być w logach chmurowych.]
  • Windows/AD/Azure/M365/K8s/ESXi: pośrednio — jako dalsze cele po początkowym włamaniu (lateral movement), nie jako wektor podatności.

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

Atakujący składa pre‑auth żądania HTTP(S) do portalu SSL‑VPN FortiGate. Kluczową rolę odgrywa endpoint /remote/hostcheck_validate i parametr enc, którego długość i dekodowanie są błędnie weryfikowane. Błąd pozwala na nadpisanie pamięci sterty i w konsekwencji wykonanie kodu. Badanie LEXFO opisuje też zależności od /remote/info (do pobrania „salt”) oraz charakter „XOR‑overflow” wykorzystywany do manipulacji pamięcią. W praktyce umożliwia to początkowy dostęp (Initial Access) i często ominięcie MFA, ponieważ atak następuje przed uwierzytelnieniem.

Fortinet potwierdził krytyczność problemu (FG‑IR‑23‑097), publikując łatki i zalecając niezwłoczną aktualizację; CISA dodała CVE do KEV (Known Exploited Vulnerabilities).


6) Artefakty i logi (tabela)

Źródło/warstwaKluczowe pola / wzorcePrzykładowe wartości / IOCUwagi
FortiGate system/sslvpn logstype=event, subtype=vpn/daemon, msg, service=sslvpn, logid, eventtimeBłędy invalid enc data length, restarty/„sslvpnd daemon crash/watchdog timeoutCrashe/timeouty sslvpnd są sygnałem ostrzegawczym.
FortiGate HTTP/HTTPS accessurl, http_method, status, user="" (pre‑auth), srcipŻądania do /remote/hostcheck_validate z parametrem enc=; skoki 4xx/5xxNajlepiej zbierać jako syslog/CEF do SIEM.
FortiGate Event (log IDs)logid, action, userZalew SSL‑VPN login fail (np. ...user-ssl-login-fail...) lub niestandardowe wzorcePrzydatne do korelacji szumu skanowania z exploitami.
Crashlogdiag debug crashlog readWpisy o sslvpnd, sygnały, restartyMateriał dowodowy na awarie procesu.
ALB/WAF/Reverse Proxyrequest_uri, user_agent, status, bytes/remote/hostcheck_validate, enc=; piki z pojedynczych IPGdy urządzenie stoi za LB/WAF.
Windows EID[nie dotyczy]Bezpośrednio brak artefaktów Windows.
AWS CloudTrail[nie dotyczy]CloudTrail nie rejestruje treści HTTP; szukaj w ALB/WAF (CloudWatch Logs).
K8s audit[nie dotyczy]
M365 audit[nie dotyczy]

Detekcja (praktyczne reguły)

Sigma (FortiGate / proxy logs)

title: FortiGate SSL-VPN hostcheck_validate enc Anomaly (CVE-2023-27997)
id: 4d6f70b0-6b8a-4a3a-9be1-enc-hostcheck
status: experimental
description: Wykrywa żądania do /remote/hostcheck_validate z parametrem enc= (pre-auth) – możliwe wykorzystanie CVE-2023-27997.
references:
  - https://nvd.nist.gov/vuln/detail/cve-2023-27997
  - https://blog.lexfo.fr/xortigate-cve-2023-27997.html
  - https://www.cisa.gov/news-events/alerts/2023/06/13/cisa-adds-one-known-exploited-vulnerability-catalog
tags:
  - attack.t1190
  - cve.2023-27997
logsource:
  category: firewall
  product: fortinet
detection:
  sel_path:
    url|contains: "/remote/hostcheck_validate"
  sel_param:
    url|contains: "enc="
  # alternatywne pola spotykane w CEF/LEEF
  sel_alt1:
    cs-uri-stem|contains: "/remote/hostcheck_validate"
  sel_alt2:
    cs-uri-query|contains: "enc="
  condition: (sel_path and sel_param) or (sel_alt1 and sel_alt2)
fields:
  - src_ip
  - dst_ip
  - url
  - http_method
  - http_status
falsepositives:
  - Starsze klienty FortiClient wykonujące host-check (rzadkie)
level: high

Splunk (SPL)

Wyszukaj podejrzane żądania i skoki błędów:

index=network (sourcetype=fortigate* OR sourcetype=proxy*)
("|/remote/hostcheck_validate" OR cs_uri_stem="/remote/hostcheck_validate")
("enc=" OR cs_uri_query="*enc=*")
| bin _time span=5m
| stats count count(eval(http_status>=400 AND http_status<600)) AS errs
        values(http_method) AS methods
        values(http_status) AS statuses
        by _time, src_ip, dest_ip, uri, user
| where count>=5 OR errs>=3

Crashes sslvpnd (system events):

index=network sourcetype=fortigate:syslog ("sslvpnd" OR "SSL VPN Watchdog" OR "daemon crash")
| stats count latest(msg) AS any_message by _time, host

KQL (Microsoft Sentinel — CommonSecurityLog lub CEF z FortiGate)

let t = 5m;
CommonSecurityLog
| where DeviceVendor =~ "Fortinet"
| where RequestURL has "/remote/hostcheck_validate" and RequestURL has "enc="
| summarize cnt = count(), statuses = make_set(FlexString1) by bin(TimeGenerated, t), SourceIP, DestinationIP, RequestURL
| where cnt >= 5

AWS — CloudWatch Logs Insights (ALB/WAF access logs; nie CloudTrail)

fields @timestamp, @message, httpRequest.clientIp as src
| filter requestURI like /\/remote\/hostcheck_validate/ and @message like /enc=/
| stats count() as hits, countif(elb_status_code like /5\d\d|4\d\d/) as errs by bin(5m), src, requestURI
| filter hits >= 5 or errs >= 3

Elastic (Kibana KQL + EQL)

KQL (HTTP/Proxy index):

url.path : "/remote/hostcheck_validate" and url.query : "*enc=*"

EQL (jeśli parsowane do pól http/url):

sequence by source.ip with maxspan=5m
  [ network where url.path == "/remote/hostcheck_validate" and url.query : "*enc=*" ]
  [ any where process.name == "sslvpnd" and event.action in ("crash","restart") ]

Heurystyki / korelacje

  • Wzorzec żądań: burst żądań do /remote/hostcheck_validate z enc= z pojedynczego IP + wysoki udział 4xx/5xx → koreluj z restartem/crashem sslvpnd w ±5 min.
  • Pre‑auth charakter: brak user w logu, brak sesji, nietypowy User‑Agent (skanery/custom).
  • Post‑exploitation: nagłe utworzenie/zmiana konta admina (np. fortigate-tech-support) lub odczyt konfiguracji — sygnał znany z incydentów wokół CVE‑2023‑27997.
  • Trwałość na urządzeniu: modyfikacje w przestrzeni plików SSL‑VPN (np. katalog językowy) i techniki „symlink” opisywane przez Fortinet jako metoda ukrywania artefaktów po wcześniejszych exploitach — warto hunting.

False positives / tuning

  • Prawdziwe host‑checki starych klientów FortiClient mogą dotykać hostcheck_validate, jednak wolumen jest niewielki i statusy HTTP są zazwyczaj 200/302.
  • Skanery bezpieczeństwa/VAS mogą generować pojedyncze hity.
  • Tuning: whitelisty źródeł administracyjnych, progi wolumetryczne (np. ≥5 w 5 min), statusy ≥400, brak user, nietypowe geolokalizacje/GEO‑ASN.

Playbook reagowania (IR)

  1. Identyfikacja ekspozycji
    • Zbierz listę FortiGate/FortiProxy z włączonym SSL‑VPN i sprawdź wersje (get system status).
    • Jeżeli urządzenie podatne i dostępne z Internetu — podnieś priorytet.
  2. Doraźne ograniczenie ryzyka (jeśli patch niedostępny)
    • Wyłącz SSL‑VPN do czasu aktualizacji (Fortinet wskazuje to jako obejście).
  3. Patch & Verify
    • Zaktualizuj co najmniej do FortiOS 6.0.17 / 6.2.15 / 6.4.13 / 7.0.12 / 7.2.5; FortiProxy do odpowiednich wersji (≥7.2.4 lub ≥7.0.10).
  4. Hunting (±30 dni)
    • Przeszukaj SIEM pod kątem /remote/hostcheck_validate + enc=; wysoki wolumen/4xx/5xx.
    • Sprawdź crashlog/system events (sslvpnd crash/watchdog).
    • Zweryfikuj kontrolę administracyjną: nieautoryzowane konta admin (np. fortigate-tech-support), anomalie w konfiguracji.
  5. Forensyka na urządzeniu
    • Sprawdź katalogi językowe SSL‑VPN pod kątem podejrzanych plików/symlinków (wątek post‑exploitation opisany przez Fortinet).
  6. Remediacja haseł/kluczy
    • Po kompromitacji: rotacja poświadczeń, kluczy VPN, certyfikatów; sprawdź integracje LDAP/Radius.
  7. Hardening
    • Ogranicz ekspozycję panelu/portu VPN do zaufanych adresów; włącz WAF/geo‑IP rate‑limit/DoS‑policy.
  8. Zgłoszenie i lessons learned
    • Odnotuj w rejestrze incydentów; zaktualizuj reguły, dashboardy, runbooki.

Przykłady z kampanii / case studies

  • CISA KEV: CVE‑2023‑27997 dodane 13 czerwca 2023 do katalogu KEV — wymóg szybkiej remediacji.
  • Fortinet PSIRT (06.2023): ograniczone przypadki wykorzystania „in the wild”; zalecenie natychmiastowego upgrade, brak powiązania z Volt Typhoon w dacie publikacji.
  • Raporty branżowe (2024–2025): CVE pojawia się w zestawieniach „routinely exploited”; organy rządowe ostrzegały przed utrzymaną obecnością na FortiOS po patchach (konieczny threat hunting).

Lab (bezpieczne testy)

Tylko w kontrolowanym labie (izolowane FortiGate/FortiProxy). Celem jest detekcja, nie eksploatacja.

  1. Przygotowanie:
    • Urządzenie testowe FortiGate z włączonym SSL‑VPN, wersja podatna (offline, bez Internetu).
    • SIEM (np. Splunk/Elastic/Sentinel) z odbiorem syslog/CEF.
  2. Generowanie normalnego ruchu:
    • Z klienta FortiClient zestaw połączenie → powstaną logi tunnel-up / tunnel-down (do porównania).
  3. Generowanie podejrzanych wzorców (bez exploitów):
    • Wyślij wielokrotne żądania GET do /remote/hostcheck_validate?enc=AA z różnych IP źródłowych (np. z testowych kontenerów) — celem jest wygenerowanie charakterystycznego wzorca URI i 4xx w logach (nie dostarczać Keystream/PoC).
    • Zweryfikuj, czy reguły z pkt 7 aktywują alerty, a dashboardy pokazują piki 4xx/5xx.
  4. Symulacja awarii procesu:
    • (Opcjonalnie) ręcznie zrestartuj usługę SSL‑VPN, aby przetestować korelację z logami „daemon restart/crash” bez wymuszania błędu w pamięci.
  5. Walidacja:
    • Przejrzyj korelacje: burst /remote/hostcheck_validate + restart sslvpnd + brak user + 4xx.

Mapowania (Mitigations, powiązane techniki)

Technika główna: T1190 – Exploit Public‑Facing Application (Initial Access).

Techniki powiązane:

  • T1133 – External Remote Services (VPN jako brama zdalna; logika detekcji dostępowej).
  • T1210 – Exploitation of Remote Services (ew. późniejsze ruchy boczne).

Mitigations (ATT&CK):

  • M1030 — Network Segmentation (DMZ dla usług publicznych).
  • M1035 — Limit Access to Resource Over Network (allow‑list do portalu VPN).
  • M1042 — Disable or Remove Feature or Program (wyłącz SSL‑VPN, jeśli nieużywany).
  • M1050 — Exploit Protection (ochrony przed exploitami, w tym IPS/WAF).
  • M1016 — Vulnerability Scanning (ciągła walidacja wersji).

Źródła / dalsza literatura

  • NVD: opis, wersje dotknięte, CVSS 9.8. (NVD)
  • CISA KEV: dodanie CVE‑2023‑27997 do katalogu (2023‑06‑13). (CISA)
  • Fortinet PSIRT (blog, 12.06.2023): kontekst, zalecenia, brak bezpośredniego powiązania z Volt Typhoon w dacie publikacji. (Fortinet)
  • FortiGuard CVRF FG‑IR‑23‑097: opis, workaround „disable SSL‑VPN”. (FortiGuard)
  • LEXFO (XORtigate): szczegóły techniczne błędu (/remote/hostcheck_validate, enc). (blog.lexfo.fr)
  • Rapid7: wersje naprawcze (6.0.17/6.2.15/6.4.13/7.0.12/7.2.5), IOCs (np. fortigate-tech-support). (Rapid7)
  • Fortinet (04.10.2025): technika symlink post‑exploitation na FortiOS. (Fortinet)
  • Fortinet community: watchdog/crash sslvpnd — jak rozpoznać w logach. (Fortinet Community)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Alert na /remote/hostcheck_validate + enc= (pre‑auth) z progami wolumetrycznymi.
  • Korelacja z sslvpnd crash/restart i pikami 4xx/5xx.
  • Hunting kont admina (np. fortigate-tech-support) i zmian konfiguracji.
  • Dashboard narażonych wersji (parsing get system status).
  • Logi z ALB/WAF, jeśli FortiGate za load balancerem.

CISO (strategiczna):

  • Patch policy: SLA dla urządzeń brzegowych (≤7 dni dla CVE krytycznych, w KEV).
  • Segmentacja/DMZ dla serwisów publicznych (M1030).
  • Dostęp warunkowy do paneli VPN (M1035/M1042) + geofencing.
  • Testy kontrolne: cykliczne skany podatności (M1016) i symulacje IR.

VPN Hardening Cookbook

Dlaczego to ma znaczenie?

VPN jest bramą do firmowej sieci – ułatwia pracę zdalną, ale dla atakujących stanowi atrakcyjny cel. Wystarczy jedno przejęte konto lub luka w VPN, by intruz zyskał dostęp do zasobów wewnętrznych. Przykładowo, głośny atak na Colonial Pipeline w 2021 rozpoczął się od wykradzionych danych dostępowych VPN bez wymuszonego MFA, co sparaliżowało krytyczną infrastrukturę. To pokazuje, że kompromitacja VPN niesie poważne konsekwencje – od wycieku danych po zatrzymanie działalności firmy.

Czytaj dalej „VPN Hardening Cookbook”

Grafana: luka „admin spoofing” o maksymalnej wadze (CVE-2025-41115) — co musisz zrobić teraz

Wprowadzenie do problemu / definicja luki

Grafana Labs poinformowała o krytycznej luce CVE-2025-41115 (CVSS 10.0), która w Grafana Enterprise 12.0.0–12.2.1tylko przy włączonym i skonfigurowanym SCIM (System for Cross-domain Identity Management) — pozwala atakującemu podszyć się pod dowolnego użytkownika, w tym konta administratorów, albo podnieść uprawnienia. Grafana OSS nie jest podatna. Dostępne są aktualizacje bezpieczeństwa: 12.3.0, 12.2.1, 12.1.3, 12.0.6. Usługi zarządzane (Grafana Cloud, Amazon Managed Grafana, Azure Managed Grafana) zostały już załatane.

W skrócie

  • Identyfikator: CVE-2025-41115, CVSS 10.0 (krytyczna).
  • Zakres: Grafana Enterprise 12.0.0–12.2.1 z włączonym SCIM (enableSCIM=true oraz [auth.scim] user_sync_enabled=true). OSS nie jest dotknięta.
  • Skutek: podszycie (impersonation) lub eskalacja uprawnień do poziomu admina.
  • Łatki: z 19 listopada 2025 r. — wydania 12.3.0 / 12.2.1 / 12.1.3 / 12.0.6.
  • Mitigacje doraźne: wyłączyć SCIM, ograniczyć/odciąć klientów SCIM, wymusić rotację ich sekretów, przegląd logów provisioningowych.

Kontekst / historia / powiązania

SCIM wdrożono w Grafana Enterprise i Grafana Cloud w kwietniu 2025 r. w celu automatyzacji cyklu życia tożsamości (provisioning/deprovisioning). Podczas wewnętrznego przeglądu w listopadzie zespół Grafany wykrył błąd mapowania identyfikatorów, przygotował prywatne łatki (5 listopada) i 19 listopada ogłosił publicznie aktualizacje.

Równolegle media branżowe (BleepingComputer, The Hacker News) zwracają uwagę na maksymalną wagę problemu i możliwość pełnego przejęcia instancji przy błędnej konfiguracji SCIM.

Analiza techniczna / szczegóły luki

Sednem podatności jest nieprawidłowe przypisywanie uprawnień w logice SCIM. W określonej konfiguracji Grafana mapowała pole SCIM externalId bezpośrednio do wewnętrznego identyfikatora użytkownika (user.uid). Jeżeli złośliwy (lub skompromitowany) klient SCIM dostarczył wartość numeryczną (np. „1”), mogło to nadpisać wewnętrzne ID i sprawić, że nowo założone konto było traktowane jak istniejące, np. wbudowany administrator. Warunki konieczne do eksploatacji: włączone enableSCIM i [auth.scim] user_sync_enabled.

Wektory CVSS podane przez Grafana wskazują na zdalny (AV:N), bez interakcji użytkownika (UI:N) i bez wymogu uprawnień (PR:N) atak, co tłumaczy bazową ocenę 10.0.

Praktyczne konsekwencje / ryzyko

  • Przejęcie panelu administracyjnego i modyfikacja ról/organizacji.
  • Dostęp do źródeł danych (np. tajne URI, tokeny), możliwość modyfikacji dashboardów i alertów.
  • Lateral movement w środowisku przez poświadczenia i integracje zapisane w Grafanie.
  • Ryzyko zgodności (ekspozycja danych monitoringu/zdrowia systemów).
    Powyższe scenariusze są konsekwencją potwierdzonej możliwości impersonacji użytkowników w tym adminów.

Rekomendacje operacyjne / co zrobić teraz

  1. Zaktualizuj natychmiast wszystkie wrażliwe instancje Grafana Enterprise do wersji z poprawką: 12.3.0 / 12.2.1 / 12.1.3 / 12.0.6. Zweryfikuj, że środowiska Amazon Managed Grafana / Azure Managed Grafana oraz Grafana Cloud są już bezpieczne (dostarczone poprawki).
  2. Jeżeli nie możesz patchować „od ręki” — wyłącz SCIM: ustaw enableSCIM=false lub w sekcji [auth.scim] user_sync_enabled=false. Zablokuj ruch do endpointów SCIM z wyjątkiem zaufanego IdP.
  3. Rotuj sekrety klientów SCIM oraz odwołaj nieużywane integracje; przejrzyj uprawnienia tokenów.
  4. Przeanalizuj logi provisioningowe i audytowe w okresie od kwietnia 2025 r. do wdrożenia poprawek pod kątem:
    • tworzenia kont ze skrótowymi/numericznymi externalId (np. „1”, „2”, itp.),
    • niespodziewanych zmian ról/organizacji,
    • prób logowania z nowych adresów.
  5. Wymuś ponowną weryfikację członkostw i ról użytkowników „krytycznych” (admin, org admin, właściciele).
  6. Twarde reguły sieciowe: ogranicz dostęp do interfejsów administracyjnych Grafany do sieci zaufanych/VPN; egzekwuj SSO/MFA. (Dobra praktyka niezależnie od tej luki).
  7. Zaktualizuj playbooki IR o scenariusz „SCIM impersonation”, w tym szybkie wyłączenie SCIM i czasową blokadę klientów SCIM.

Różnice / porównania z innymi przypadkami

  • Nie mylić z wcześniejszymi lukami (np. XSS/redirect CVE-2025-4123 z maja 2025 r. lub starszymi problemami z pluginami). Tutaj mówimy o SCIM i mapowaniu tożsamości, co umożliwia bezużytkownikową eskalację zdalną (PR:N, UI:N), stąd CVSS 10.0.
  • W przeciwieństwie do dawnych błędów dot. ścieżek/pluginów, CVE-2025-41115 zależy od konkretnej funkcji (SCIM) i jej konfiguracji — instancje bez SCIM nie są podatne.

Podsumowanie / kluczowe wnioski

  • Jeśli używasz Grafana Enterprise 12.0.0–12.2.1 i masz SCIM włączony — traktuj to jak incydent krytyczny.
  • Patch lub wyłączenie SCIM to dwie najszybsze ścieżki ograniczenia ryzyka.
  • Audyt tożsamości i logów SCIM jest konieczny, by wykryć ewentualną impersonację.
  • Usługi Grafana Cloud i zarządzane przez dostawców chmurowych otrzymały poprawki; Grafana OSS nie jest dotknięta.

Źródła / bibliografia

  1. Grafana Labs — Security update & szczegóły CVE-2025-41115 (19 listopada 2025): patch levels, warunki eksploatacji, timeline. (Grafana Labs)
  2. Grafana Labs — Oficjalny advisory CVE-2025-41115: CVSS 10.0, wektory, wersje naprawione. (Grafana Labs)
  3. BleepingComputer — „Grafana warns of max severity admin spoofing vulnerability” (21 listopada 2025): opis skutków i wymagań konfiguracyjnych. (BleepingComputer)
  4. The Hacker News — „Grafana Patches CVSS 10.0 SCIM Flaw…” (21 listopada 2025): wpływ i kontekst SCIM. (The Hacker News)
  5. runZero — Wykrywanie podatnych instancji (przegląd dla zespołów asset discovery). (RunZero)