Archiwa: SIEM - Strona 47 z 61 - Security Bez Tabu

Chmura otwiera furtkę do przejęcia IoT przez zapory? Nowy model ataku bez klasycznych podatności

Wprowadzenie do problemu / definicja luki

Badacze pokazali model ataku pozwalający przejąć urządzenia IoT poprzez chmurowe kanały zarządzania zaporami i routerami, bez wykorzystywania klasycznych podatności oprogramowania i bez bezpośredniego adresu IP ofiary. Kluczowe jest podszycie się pod urządzenie w relacji zaufania między nim a platformą chmurową producenta. O odkryciu informuje Dark Reading (18 listopada 2025), zapowiadając prezentację na Black Hat Europe 2025 autorstwa Jinchenga Wanga (Nanjing University) i niezależnego badacza Nik Xe.


W skrócie

  • Wiele urządzeń IoT uwierzytelnia się w chmurze na bazie statycznych identyfikatorów (np. SN/MAC) oraz deterministycznie wyliczanych poświadczeń. To umożliwia ich impersonację.
  • Napastnik, korzystając z firmware’u (reverse engineering) i znając schemat generowania tokenu, może utworzyć równoległy kanał zarządzania w chmurze i wysyłać komendy administracyjne do realnego urządzenia – nawet za firewallem lub w intranecie.
  • Problem wpisuje się w szerszą klasę błędów uwierzytelniania i kontroli dostępu w interfejsach „device–cloud”, wcześniej analizowanych w literaturze naukowej (DSN 2024: FIRMRES).
  • Zalecane środki obrony: kredencjały oparte na certyfikatach X.509/kluczach, detekcja anomalii kanału chmurowego, ograniczenia operacji out-of-band, Zero Trust dla urządzeń.

Kontekst / historia / powiązania

Słabości uwierzytelniania w ekosystemach IoT pojawiały się już wcześniej – zarówno w badaniach akademickich, jak i w analizach zespołów przemysłowych (np. Claroty Team82 opisało przejęcia przez chmurowe zarządzanie w ekosystemie OvrC). Nowością jest uogólniony model ataku: przejęcie „masowe”, bez konieczności istnienia konkretnej CVE w firmware i bez ekspozycji IP.


Analiza techniczna / szczegóły luki

  1. Założenia producenta: urządzenie identyfikuje się w chmurze numerem seryjnym (SN) lub adresem MAC, z których po stronie firmware’u i/lub backendu deterministycznie wyprowadzane są poświadczenia (np. hashe/HMAC). Jeśli algorytm i „sekrety” są odtwarzalne, wystarcza znać SN/MAC + schemat by wygenerować ważny token.
  2. Pozyskanie identyfikatorów:
    • odczyt z lokalnych portów usługowych podczas „wiązania” urządzenia w sieci LAN/Wi-Fi,
    • zdalne ujawnienia przez publicznie dostępne interfejsy producenta,
    • brute force po numeracji seryjnej (przewidywalne prefiksy) i OUI dla MAC.
  3. Impersonacja kanału: napastnik nawiązuje konkurencyjny kanał cloud-management, po czym celowo zrywa oryginalny, aby „wypchnąć” legalną sesję i przejąć kontrolę. Następnie przesyła komendy administracyjne, które chmura przekazuje do realnego urządzenia – także jeśli to pracuje wyłącznie w sieci wewnętrznej.
  4. Klasyfikacja słabości: problem dotyka Improper/Weak Authentication i Improper Access Control w warstwie „device–cloud API”. (Por. rodziny CWE-287/306/284 jako rama pojęciowa, choć konkretne mapowanie zależy od implementacji).
  5. Paralele badawcze: prace „FIRMRES” (DSN 2024) wykazały, że certyfikaty urządzeń i mechanizmy dostępu w relacjach cloud-device bywają łamalne/wycieklne, gdy opierają się na słabych identyfikatorach lub błędach w logice autoryzacji.

Praktyczne konsekwencje / ryzyko

  • Zasięg ataku: potencjalnie wiele modeli routerów, zapór i innych IoT zarządzanych przez chmurowe platformy producentów – również niewystawionych do Internetu (intranet, NAT).
  • Skutki biznesowe: zdalna zmiana konfiguracji sieci, pivot do segmentów OT/ICS, wyłączenia usług, implanty persistencji w urządzeniach brzegowych, reputacyjne i regulacyjne ryzyka dla dostawców.
  • Trudność detekcji: ruch wygląda jak legalny kanał zarządzania; logi po stronie producenta/tenanta mogą nie wskazywać anomalii bez dedykowanych korelacji.

Rekomendacje operacyjne / co zrobić teraz

Dla producentów IoT i operatorów platform chmurowych:

  1. Porzuć SN/MAC jako tożsamość. Zastąp je unikalnymi, nieodwracalnymi kredencjałami (np. wbudowane klucze, certyfikaty X.509 per urządzenie, TPM/ATECC). Wymuś mutual TLS i rotację kluczy.
  2. Weryfikacja kontekstowa kanału: reaguj na zmianę IP/agenta/odcisku TLS urządzenia – wymagaj re-uwierzytelnienia wieloskładnikowego po stronie operatora (step-up auth) i/lub blokuj podwójne sesje. (Wskazane przez badaczy jako kierunek mitygacji).
  3. Ogranicz zakres operacji cloud-to-device: model „przywilejów minimalnych” dla komend OOB; jawne uprawnienia granularne i zatwierdzanie wysokiego ryzyka. (Zero Trust – filar „devices”).

Dla zespołów bezpieczeństwa w organizacjach:

  1. Inwentaryzacja i kontrola ścieżek zarządzania: zidentyfikuj wszystkie urządzenia z zdalnym zarządzaniem przez chmurę i oceń, jakie operacje są dopuszczone; jeśli to możliwe – wyłącz funkcje zdalne lub wymuś model „approve-to-apply”. (Przykłady ryzyk w realnych platformach opisało Claroty).
  2. Monitoring „kanału producenta”: koreluj logi z chmury dostawcy (API audit) z SIEM/SOAR, buduj reguły na równoległe sesje, nagłe zmiany IP, nietypowe komendy i nietypowe okna czasowe.
  3. Segmentacja i kontrola egress: nawet jeśli komendy przychodzą „od chmury”, filtruj ruch cloud-management do precyzyjnych FQDN/JA3/SNI; rozważ proxy/mediatora z inspekcją protokołu (jeśli zgodne z licencją).
  4. Wymagaj silnego uwierzytelniania urządzeń w zakupach: w RFP/SBOM zawrzyj wymagania ws. per-device certów, rotacji kluczy, szyfrowania w HSM, audytu API i transparentnych logów. (Zob. wytyczne CISA dot. IoT/akwizycji).

Różnice / porównania z innymi przypadkami

  • Klasyczne przejęcia IoT: exploit CVE w firmware + ekspozycja IP/portu → wejście „od strony urządzenia”.
  • Ten model: bez podatności w firmware i bez publicznego IP; wejście „od strony chmury”, nadużycie zaufanego kanału zarządzania i impersonacji urządzenia. W literaturze akademickiej wykazywano podobne wzorce w specyficznych ekosystemach, ale tutaj akcent pada na uogólnienie i prostotę pozyskania identyfikatorów.

Podsumowanie / kluczowe wnioski

  • Zaufane kanały chmurowego zarządzania stają się wektorem o wysokiej dźwigni – zwłaszcza tam, gdzie tożsamość urządzenia opiera się na SN/MAC i przewidywalnej logice tokenu.
  • Organizacje powinny traktować ruch cloud-to-device jak ruch uprzywilejowany i objąć go tymi samymi rygorami co zdalną administrację serwerów.
  • Najskuteczniejsze mitygacje obejmują uwierzytelnianie oparte na kluczach/certyfikatach, segmentację, monitoring anomalii sesji chmurowych oraz ograniczenia uprawnień komend.

Źródła / bibliografia

  1. Dark Reading: „Cloud Break: IoT Devices Open to Silent Takeover Via Firewalls”, 18 listopada 2025. (Dark Reading)
  2. Black Hat Europe 2025 – Briefings/Speakers (zapowiedź wystąpienia Jincheng Wang & Nik Xe). (blackhat.com)
  3. Claroty Team82: „The Problem with IoT Cloud-Connectivity and How it Exposed All OvrC Devices to Hijacking”, 12 listopada 2024. (Claroty)
  4. DSN 2024: „FIRMRES: Exposing Broken Device-Cloud Access Control in IoT Devices”. (dsn2024uq.github.io)
  5. AWS Public Sector Blog: „4 common IoT protocols and their security considerations” (uwierzytelnianie urządzeń m.in. via X.509), 22 października 2024. (Amazon Web Services, Inc.)

Eurofiber France: kradzież danych po włamaniu do platformy ticketowej i portalu ATE

Wprowadzenie do problemu / definicja luki

Eurofiber France (część Eurofiber Group) potwierdził incydent bezpieczeństwa wykryty 13 listopada 2025 r.. Atakujący wykorzystał podatność w oprogramowaniu obsługującym platformę zarządzania zgłoszeniami (ticketing/ITSM) oraz portal klienta ATE i wyprowadził dane przechowywane w tych systemach. Firma wskazuje, że zdarzenie ogranicza się do działalności we Francji (w tym marek: Eurafibre, FullSave, Netiwan, Avelia), a usługi pozostawały operacyjne. Jednocześnie Eurofiber zgłosił sprawę do CNIL i ANSSI oraz złożył zawiadomienie o próbie wymuszenia (extortion).

W skrócie

  • Kiedy: wykrycie 13.11.2025 r.; ujawnienie publiczne 16–18.11.2025 r.
  • Gdzie: system ticketowy używany przez Eurofiber France i marki regionalne + portal ATE (chmura Eurofiber Cloud Infra France).
  • Co wyciekło: Eurofiber nie podaje szczegółowej listy typów danych; zewnętrzne analizy i ogłoszenia sprawcy wskazują na dane z zgłoszeń, konfiguracje VPN, klucze/API, hashe haseł, backupy SQL, zrzuty ekranów i dokumenty.
  • Skala: dotyczy klientów francuskich; spółka podkreśla, że dane bankowe i „krytyczne” z innych systemów nie zostały naruszone.
  • Aktor: do włamania przyznaje się ByteToBreach; pojawiają się tezy o wykorzystaniu SQL injection w interfejsie GLPI/ITSM.

Kontekst / historia / powiązania

Według SecurityWeek i The Register, Eurofiber poza powiadomieniem klientów złożył zawiadomienie o próbie wymuszenia i formalnie zgłosił incydent regulatorom. To wpisuje się w rosnący trend kradzieży danych i szantażu bez szyfrowania (tzw. „pure extortion”).

Z kolei BleepingComputer i raport wywiadowczy SOCRadar łączą incydent z eksfiltracją zasobów z centralnego systemu ITSM, co potencjalnie przekłada się na ryzyko łańcucha dostaw (dostęp do konfiguracji środowisk klientów).

Analiza techniczna / szczegóły luki

  • Wejście: oficjalny komunikat Eurofiber mówi o „podatności oprogramowania” w platformie zgłoszeniowej/portalu ATE.
  • Wektor / TTP (z analizy zewnętrznej): SOCRadar oraz cytowany przez SecurityWeek opis sprawcy wskazują na SQL injection w GLPI (system ITSM), długotrwałą ekstrakcję ~10 tys. hashy haseł i użycie kluczy API/sekretów do pobrania dalszych zasobów (pliki konfiguracyjne, backupy, bilety, zrzuty).
  • Zakres zasobów: możliwe konfiguracje VPN, klucze SSH, tokeny API/chmurowe, backupy SQL, źródła i skrypty, załączniki do ticketów. To dane o wysokiej wartości operacyjnej.
  • Uwagi dot. GLPI: CERT-FR od lat publikuje ostrzeżenia o podatnościach GLPI (m.in. 2025-AVI-0162 – XSS, naruszenie poufności, obejście polityk), co podkreśla konieczność twardego hardeningu i regularnego patchowania narzędzi ITSM nawet jeśli są „wewnętrzne”, lecz mają interfejs www. (Uwaga: nie ma potwierdzenia, że użyta była akurat ta CVE/wersja).

Praktyczne konsekwencje / ryzyko

  1. Lateral movement & pivoting: wyciek kluczy/konfiguracji może umożliwić uwierzytelnianie do systemów produkcyjnych klientów (VPN/SSH), w tym z wykorzystaniem zaufanych łączy operatora.
  2. Impersonacja dostawcy: treści z ticketów i wewnętrzne procedury zwiększają skuteczność spear-phishingu oraz socjotechniki „na serwisanta”.
  3. Ryzyko supply chain: dane operacyjne jednego integratora/operatora mogą ułatwić ataki na setki–tysiące środowisk klientów.
  4. Szantaż i reputacja: formalne zgłoszenie extortion wskazuje na potencjalne publikacje/aukcje paczek danych.

Rekomendacje operacyjne / co zrobić teraz

Dla klientów Eurofiber France oraz podmiotów z łańcucha dostaw:

  1. Rotacja wszystkich sekretów powiązanych z Eurofiber/ATE/GLPI:
    • klucze SSH, certyfikaty i profile VPN, hasła/hashe (wymuś reset), API keys, tokeny chmurowe, dane integracyjne (w tym webhooki).
  2. Segmentacja i ograniczenie zaufania dla dostępów dostawcy: natychmiast przejrzyj reguły na zaporach, listy dozwolonych adresów i just-in-time access dla kont serwisowych.
  3. Hunting i telemetria: korelacja logów VPN/SSH/IDP/SIEM od 13.11.2025; szukaj nietypowych geo-lokacji, wzorców logowania serwisowego, długich sesji i tuneli.
  4. Ticket hygiene: przeszukaj systemy zgłoszeniowe pod kątem tajemnic w treści ticketów (hasła, linki do paneli, klucze w załącznikach). Wdróż DLP / sekret-scanning i szablony ticketów bez danych uwierzytelniających.
  5. Patching GLPI/ITSM & hardening: aktualizacja do ostatnich wersji (GLPI ≥10.0.18 jako próg z wytycznych CERT-FR) + WAF/IPS na interfejsach www ITSM (z regułami SQLi), wymuszony MFA i mTLS dla portali serwisowych.
  6. Plan publikacyjny i prawny: sprawdź, czy wymagane są notyfikacje RODO oraz komunikacja do interesariuszy (w oparciu o fakty i artefakty logów).
  7. Kontrole dostępu w chmurze: rotuj klucze w AWS/Azure/GCP, przegląd ról i trust policies; włącz key compromise playbooks.

Różnice / porównania z innymi przypadkami

  • Bouygues Telecom (08.2025) i Orange France (07.2025) również raportowały incydenty, ale charakter wycieków i potwierdzenie kradzieży danych różniły się między operatorami. Sprawa Eurofiber wyróżnia się uderzeniem w ITSM/GLPI i możliwą eskalacją supply chain przez konfiguracje i klucze znajdujące się w zgłoszeniach.

Podsumowanie / kluczowe wnioski

  • ITSM to „korona-klejnotów” operacyjnych. Jeżeli system ticketowy zawiera sekrety/konfiguracje, jego kompromitacja staje się infrastrukturą ataku dla przeciwnika.
  • Szybka reakcja nie zastąpi sanacji sekretów. Nawet jeśli luka została załatana, rotacja kluczy i przegląd dostępów są krytyczne.
  • Łańcuch dostaw: wyciek jednego operatora może mieć szerokie, pośrednie skutki. Zaimplementuj kontrole zaufania do dostawców i minimalizuj dane w ticketach.
  • Transparentność i zgodność: zgłoszenie do CNIL/ANSSI i ścieżka „extortion” potwierdzają tryb data theft + szantaż, dlatego przygotuj scenariusze reakcji na publikacje danych.

Źródła / bibliografia

  1. Oficjalny komunikat Eurofiber France, 16–18 listopada 2025 (FR/EN). (eurofiber)
  2. SecurityWeek: „Data Stolen in Eurofiber France Hack”, 18 listopada 2025. (SecurityWeek)
  3. BleepingComputer: „Eurofiber France warns of breach after hacker tries to sell customer data”, 17 listopada 2025 (aktual. 18.11). (BleepingComputer)
  4. The Register: „Eurofiber admits crooks swiped data from French unit…”, 17 listopada 2025. (The Register)
  5. SOCRadar: „Eurofiber breach…”, 17 listopada 2025 (analiza TTP i typów danych). (SOCRadar® Cyber Intelligence Inc.)

Fortinet FortiWeb: CISA daje tydzień na załatanie krytycznej luki CVE-2025-64446 (aktywnie wykorzystywanej)

Wprowadzenie do problemu / definicja luki

CISA dodała do katalogu KEV krytyczną podatność w Fortinet FortiWeb (WAF) — CVE-2025-64446 — i wyznaczyła agencjom federalnym USA 7 dni na wdrożenie poprawek lub zastosowanie mitigacji. Luka to relative path traversal / path confusion umożliwiająca niezalogowanemu atakującemu wykonanie poleceń administracyjnych poprzez odpowiednio spreparowane zapytania HTTP/HTTPS. Fortinet i CISA potwierdzają aktywną eksploatację tej podatności.

W skrócie

  • Id CVE: CVE-2025-64446
  • Wpływ: zdalne wykonanie poleceń jako admin / przejęcie urządzenia (pre-auth, bez uwierzytelnienia)
  • Ocena ryzyka: CVSS 9.8 (Fortinet CNA)
  • Produkty: FortiWeb w gałęziach 7.0, 7.2, 7.4, 7.6, 8.0 (konkretne wersje niżej)
  • Eksploatacja: od października 2025 r.; dodawanie kont administratora obserwowane in-the-wild
  • Termin CISA (FCEB): do 21 listopada 2025 r.
  • Szybka mitigacja: czasowe wyłączenie HTTP/HTTPS na interfejsach wystawionych do Internetu, następnie aktualizacja do wydań naprawczych.

Kontekst / historia / powiązania

O luce zaczęto głośno mówić na początku października (wzmianki od społeczności i watchTowr), a 14 listopada 2025 r. Fortinet opublikował oficjalne PSIRT i nadano CVE-2025-64446. Tego samego dnia CISA dodała podatność do Known Exploited Vulnerabilities i wydała rzadko spotykane skrócenie terminu łatania do 7 dni (zwykle są to 3 tygodnie). Media branżowe wskazują, że atakujący masowo tworzą nowe konta admina na niezabezpieczonych urządzeniach FortiWeb.

Analiza techniczna / szczegóły luki

  • Klasa: CWE-23 (Relative Path Traversal / path confusion w GUI FortiWeb).
  • Warunek: Brak uwierzytelnienia – podatność działa przed logowaniem.
  • Efekt: możliwość wykonania poleceń administracyjnych przez manipulację ścieżką/trasowaniem żądań, co skutkuje pełną kontrolą nad urządzeniem.
  • Wersje podatne (wg NVD/Fortinet):
    • 8.0.0–8.0.1, 7.6.0–7.6.4, 7.4.0–7.4.9, 7.2.0–7.2.11, 7.0.0–7.0.11.
  • Wersje naprawcze (implikowane przez zakresy): 8.0.2, 7.6.5, 7.4.10, 7.2.12, 7.0.12 lub nowsze.
  • CVSS (CNA Fortinet): 9.8 / AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Praktyczne konsekwencje / ryzyko

Przejęcie FortiWeb (WAF) daje atakującemu możliwość:

  • utworzenia trwałych kont admina i wyłączenia logowania/monitoringu,
  • modyfikacji reguł WAF (ukrycie dalszych ataków na aplikacje webowe),
  • kradzieży poświadczeń/konfiguracji oraz pivotu do sieci wewnętrznej,
  • przygotowania pod ransomware lub wyciek danych.
    Doniesienia o aktywnej eksploatacji i masowym tworzeniu kont potwierdzają pilność działań.

Rekomendacje operacyjne / co zrobić teraz

  1. Natychmiastowy patch – zaktualizuj FortiWeb do 8.0.2 / 7.6.5 / 7.4.10 / 7.2.12 / 7.0.12 (lub nowszych). Zweryfikuj wynik patchowania.
  2. Mitigacja tymczasowa (jeśli patch niezwłocznie niemożliwy): wyłącz HTTP/HTTPS na interfejsach wystawionych do Internetu; ogranicz dostęp administracyjny do zaufanych segmentów/VPN.
  3. Hunting i IR:
    • sprawdź nietypowe konta admina dodane ostatnio; przejrzyj logi systemowe FortiWeb, integracje SIEM;
    • poszukaj nietypowych żądań HTTP/HTTPS wywołujących akcje administracyjne;
    • porównaj konfiguracje WAF/reguły pod kątem nieautoryzowanych zmian. (watchTowr udostępnił artefakty/detektory pomocne w identyfikacji).
  4. Twardnienie ekspozycji:
    • ogranicz panel admina wyłącznie do sieci zarządzających (ACL/VPN),
    • włącz MFA dla dostępu administracyjnego,
    • segmentuj FortiWeb, monitoruj integracje z SIEM/EDR.
  5. Zgodność z CISA KEV: jeśli podlegasz BOD 22-01, dotrzymaj terminu 21.11.2025; inaczej przyjmij ten termin jako wewnętrzny SLA.

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

W 2023–2024 widzieliśmy serię poważnych błędów w urządzeniach perimeterowych (Fortinet, Ivanti, Citrix), ale skrócenie terminu przez CISA do 7 dni jest wyjątkowe i podkreśla skalę nadużyć. W przeciwieństwie do wielu poprzednich RCE wymagających uwierzytelnienia lub dostępu lokalnego, CVE-2025-64446 działa pre-auth i celuje w WAF, czyli element ochronny krytyczny dla aplikacji webowych.

Podsumowanie / kluczowe wnioski

  • To krytyczna, aktywnie wykorzystywana luka w FortiWeb.
  • Patch teraz; jeśli nie możesz — odłącz HTTP/HTTPS na interfejsach publicznych i zawęź dostęp administracyjny.
  • Sprawdź konta admina i konfigurację WAF pod kątem zmian.
  • Traktuj 21 listopada 2025 r. jako twardy termin na remediację.

Źródła / bibliografia

  1. NVD – wpis CVE-2025-64446: opis, zakres wersji podatnych, metryka CVSS, data/due date w KEV. (NVD)
  2. Fortinet PSIRT (FG-IR-25-910) – oficjalny advisory i klasyfikacja (path traversal/path confusion). (FortiGuard)
  3. CISA – Known Exploited Vulnerabilities Catalog (pozycja dla CVE-2025-64446). (CISA)
  4. Rapid7 – analiza i kontekst eksploatacji od października 2025 r. (Rapid7)
  5. The Record – informacja o 7-dniowym terminie CISA, wskazówki i obserwacje dot. tworzenia kont admina. (The Record from Recorded Future)

GitLab.com – najnowsze zmiany i poprawki (17 listopada 2025)

Wprowadzenie do problemu / definicja zmian

GitLab w modelu SaaS (GitLab.com) publikuje funkcje w trybie ciągłym, a raz w miesiącu dostarcza paczki dla Self-Managed. Najświeższy pakiet nowości (data publikacji: 17 listopada 2025) przynosi istotne usprawnienia dla wyszukiwania kodu, CI/CD, polityk zatwierdzania i integracji IDE z GitLab Duo. Równolegle w październiku–listopadzie ukazały się łatki bezpieczeństwa linii 18.5/18.4/18.3, adresujące m.in. ujawnienia informacji przez GraphQL oraz scenariusze DoS. Wiosną GitLab ogłosił również nowe limity szybkości (rate-limits) dla kluczowych endpointów API, co ma konsekwencje dla automatyzacji i integracji.


W skrócie

  • Duo Chat w IDE: wybór modelu (Claude, GPT i inne) bezpośrednio w VS Code/JetBrains – kontrolowane przez adminów.
  • Dokładne wyszukiwanie kodu (Exact code search) – domyślnie włączone na GitLab.com; oparte o Zoekt; obsługuje tryb regex i exact-match; dla Self-Managed wymaga instalacji Zoekt i włączenia funkcji.
  • CI/CD Components mogą odwoływać się do własnych metadanych przez spec:component – koniec z twardym kodowaniem wersji.
  • Dynamiczne zależności w needs:parallel:matrix dzięki wyrażeniom $[[matrix.VARIABLE]] (Beta) – prostsze, skalowalne matryce buildów.
  • Code Owners akceptuje dziedziczone członkostwo grup jako właścicieli – mniej administracji, ten sam poziom kontroli.
  • Webhooki odróżniają teraz systemowe resetowanie aprobat (np. po pushu) – bardziej precyzyjna automatyzacja.
  • Bypass polityk zatwierdzania z pełnym audytem i podaniem powodu – kontrolowany „tryb awaryjny”.
  • Zaostrzone limity API (projekty, grupy, użytkownicy; wybrane endpointy 60–2000 RPS/min) – konieczny backoff i obsługa 429.
  • Łatki bezpieczeństwa (X-X/2025): m.in. DoS w JSON validation, DoS przy uploadzie, ujawnienie przez GraphQL subscriptions. Aktualizacje 18.5.2/18.4.4/18.3.6 i 18.5.1/18.4.3/18.3.5.

Kontekst / historia / powiązania

W ostatnich kwartałach GitLab intensywnie rozwija komponenty AI (Duo) i wyszukiwarkę kodu, jednocześnie wzmacniając governance (Code Owners, approval policies) oraz stabilność platformy (rate-limiting). Na tle wcześniejszych wydań 17.x/18.x obecny pakiet zmian kontynuuje kierunek „bezpieczne skalowanie” – lepsze narzędzia dla dużych organizacji (audyt, limity, precyzyjne webhooki) oraz poprawa ergonomii dla developerów (IDE, wyszukiwanie, CI/CD matrix). Również cykl patch releases pozostaje intensywny, co jest reakcją na stale raportowane CVE. Poza ogłoszeniami GitLab, część biuletynów CERT potwierdza zagregowane ryzyka.


Analiza techniczna / szczegóły

1) Duo Chat: wybór modelu w IDE

  • Integracja VS Code/JetBrains pozwala użytkownikowi wybrać model (np. Claude, GPT) z listy w panelu Duo. Dostępność modeli kontroluje administrator (policy-based access). W organizacjach o restrykcjach compliance to ułatwia standaryzację stosu AI.

2) Exact code search (Zoekt)

  • Na GitLab.com funkcja jest włączona domyślnie. Dla Self-Managed wymagana jest instalacja Zoekt i aktywacja.
  • Wspiera dokładne dopasowanie i wyrażenia regularne, działa na poziomie instancji / grupy / projektu.
  • Implementacja opiera się o odrębny indeksujący silnik (Zoekt), co wpływa na wymogi zasobów w Self-Managed (CPU/RAM/dysk na indeksy).

3) CI/CD Components i spec:component

  • Komponent może odczytać własny kontekst (np. wersję, commit SHA) i wykorzystać go do tagowania artefaktów (obrazy Docker, paczki), co eliminuje rozjazdy wersji.
  • Ułatwia semantykę „build once, run many” oraz atomiczne wydania komponentów.

Przykład – publikacja obrazu Dockera z wersją komponentu:

# .gitlab-ci.yml (fragment w komponencie)
stages: [build, release]

variables:
  IMAGE_REGISTRY: "$CI_REGISTRY_IMAGE"

build:
  stage: build
  image: docker:25
  services: [docker:25-dind]
  script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
    # tag wykorzystuje metadane komponentu
    - docker build -t "$IMAGE_REGISTRY/app:${spec:component.version}" .
    - docker push "$IMAGE_REGISTRY/app:${spec:component.version}"

4) Dynamiczne zależności w needs:parallel:matrix (Beta)

  • Nowe wyrażenie $[[matrix.VARIABLE]] pozwala tworzyć 1-do-1 zależności między równoległymi jobami.
  • Upraszcza skomplikowane matryce (np. multi-platform buildy, Terraform w wielu środowiskach).

Przykład – matryca z dynamicznymi zależnościami:

stages: [build, test]

build:
  stage: build
  parallel:
    matrix:
      - OS: ["linux", "windows"]
        ARCH: ["amd64", "arm64"]
  script:
    - make build OS=$OS ARCH=$ARCH
  artifacts:
    paths: ["dist/${OS}-${ARCH}/app"]

test:
  stage: test
  needs:
    - job: build
      parallel:
        matrix:
          - OS: ["$[[matrix.OS]]"]
            ARCH: ["$[[matrix.ARCH]]"]
  script:
    - make test OS=$OS ARCH=$ARCH

5) Code Owners: dziedziczone członkostwo grup

  • Grupy z dostępem odziedziczonym (np. z grupy nadrzędnej) są uznawane za właścicieli kodu przy włączonych akceptacjach Code Owners – bez zapraszania ich do każdego projektu. Mniej ręcznej administracji, ten sam poziom bezpieczeństwa.

6) Webhooki a systemowe resety aprobat

  • Payload zawiera teraz system: true i system_action (np. approvals_reset_on_push), co pozwala integracjom rozróżnić akcje użytkownika od automatyki GitLab i budować precyzyjne playbooki (np. powiadomienia tylko dla „manual”).

Przykład – filtr w odbiorniku webhooków (Node.js/Express):

app.post('/gitlab/mr-webhook', (req, res) => {
  const evt = req.body;
  if (evt.object_kind === 'approval' && evt.system === true &&
      evt.system_action === 'approvals_reset_on_push') {
    // zignoruj systemowe resetowanie aprobat
    return res.status(200).end();
  }
  // ...przetwarzaj normalnie
  res.status(200).end();
});

7) Bypass approval policies z audytem

  • Wyznaczeni użytkownicy/role mogą awaryjnie ominąć polityki (merge/push) z obowiązkowym uzasadnieniem; każdy przypadek trafia do dzienników audytu. To bezpieczniejsza alternatywa dla globalnego wyłączania zasad podczas incydentów.

Praktyczne konsekwencje / ryzyko

  • Bezpieczeństwo i zgodność: tryb awaryjny z audit-trail ułatwia kontrolowane hotfixy. Jednocześnie nowe webhooki redukują „fałszywe alarmy” w SIEM/SOAR, bo rozróżniają akcje systemowe.
  • Skalowalność CI/CD: dynamiczne zależności i komponentowe metadane upraszczają rozbudowane potoki (wielowariantowe buildy, multi-env Terraform), zmniejszając złożoność plików .gitlab-ci.yml.
  • Produktywność devów: exact search na Zoekt realnie skraca czas wyszukiwania wzorców i referencji w dużych monorepo.
  • Stabilność platformy: nowe rate-limits API wymagają backoffu, paginacji i cache po stronie klientów; inaczej integracje będą trafiały w 429 (Too Many Requests).
  • Zarządzanie podatnościami: wydania 18.5.1–18.5.2 i wcześniejsze patch-releases naprawiają m.in. DoS i ujawnienia informacji (GraphQL, upload). Opóźnienie aktualizacji zwiększa powierzchnię ataku (również dla Self-Managed).

Rekomendacje operacyjne / co zrobić teraz

1) Aktualizacje i hardening

  • SaaS: zweryfikuj dostępność funkcji w Twojej grupie/planie; dla zgodności rozważ ograniczenie modeli AI do zatwierdzonych przez dział ryzyka.
  • Self-Managed: zaplanuj aktualizację do najnowszych łat (18.5.2 / 18.4.4 / 18.3.6). Priorytet dla instancji z otwartym dostępem i integracjami GraphQL/REST.

2) Exact code search (Self-Managed)

  • Zainstaluj Zoekt i włącz funkcję; oceń rozmiar indeksów (I/O, miejsce na dysku). Zaktualizuj monitoring (prometheus) o metryki opóźnień i obciążenia indeksowania.

3) CI/CD i matryce

  • Refaktor matryc do $[[matrix.*]] w złożonych pipeline’ach (platformy/architektury).
  • W komponentach używaj spec:component do tagów artefaktów i numeracji.

4) Code Owners i governance

  • Przejrzyj pliki CODEOWNERS; zastąp lokalne zaproszenia grup dziedziczonymi – mniejszy nakład administracyjny, ten sam poziom kontroli.

5) Webhooki i automatyzacja

  • Zaktualizuj odbiorniki, by ignorowały systemowe resety aprobat (system: true, system_action). Zmniejszy to szum w alertach.

6) Rate-limits: dostosuj klientów

  • Dodaj exponential backoff + jitter, obsługę HTTP 429 i Retry-After; włącz paginację i cache rezultatów rzadko zmienianych (np. listy członków). Poniżej wzorzec:
# Przykładowy retry z backoffem (bash + curl + jq)
retry_with_backoff() {
  local url="$1" token="$2" attempt=0 max=6 delay=1
  while :; do
    http_code=$(curl -sS -H "PRIVATE-TOKEN: $token" -w "%{http_code}" -o resp.json "$url")
    if [ "$http_code" -eq 200 ]; then cat resp.json; return 0; fi
    if [ "$http_code" -eq 429 ] && [ $attempt -lt $max ]; then
      retry_after=$(jq -r '."Retry-After" // empty' <(jq -n))
      sleep_time=$((retry_after>0?retry_after:delay))
      sleep "$sleep_time"
      delay=$((delay*2)) # exponential
      attempt=$((attempt+1))
    else
      echo "HTTP $http_code"; return 1
    fi
  done
}
# użycie:
# retry_with_backoff "https://gitlab.com/api/v4/projects/:id/members/all" "$TOKEN"

7) Monitorowanie i detekcja (SOC/SIEM)

  • Koreluj eventy auditowe bypassu polityk z incydentami; ustaw alert, gdy liczba bypassów > bazowej linii trendu.
  • Reaguj na gwałtowny wzrost 429 z endpointów członków projektów/grup – to może wskazywać na źle działający integrator lub nadużycie.

8) Patch management (Self-Managed)

  • Zweryfikuj, czy instancje są na 18.5.2/18.4.4/18.3.6 (GraphQL subscriptions info disclosure itp.) i 18.5.1/18.4.3/18.3.5 (DoS JSON/upload). Ustal SLO: ≤7 dni od ogłoszenia łatki.

Różnice / porównania z innymi przypadkami

  • Względem 17.x: nacisk przeszedł z „doganiania” funkcji w AI/search do dojrzałego governence (bypass z audytem, precyzyjne webhooki) i stabilności (rate-limits), co jest krytyczne w enterprise. Patch-releases 18.x adresują nowsze wektory (GraphQL, JSON validation), mniej obecne w 17.x.
  • Względem poprzednich miesięcy 2025: kumulacja poprawek DoS i disclosure, co sugeruje wzrost testów fuzzing/abuse scenariuszy w interfejsach API – dobra wiadomość dla obrony, wymaga jednak dyscypliny aktualizacji.

Podsumowanie / kluczowe wnioski

  • GitLab.com dostarczył zestaw funkcji, które jednocześnie poprawiają ergonomię (IDE, search) i twardnieją governance (bypass z audytem, webhooki).
  • Zmiany w rate-limits to obowiązkowa rewizja integracji – bez backoffu i cache pojawią się 429 i degradacja.
  • Patch-releases z X–XI 2025 zamykają kilka istotnych wektorów (GraphQL info disclosure, DoS) – aktualizuj natychmiast Self-Managed; na SaaS funkcje bezpieczeństwa i łatki są wdrożone po stronie dostawcy.

Źródła / bibliografia

  1. GitLab – Available now on GitLab (SaaS, 17 listopada 2025) – oficjalne ogłoszenie funkcji (Duo Chat w IDE, exact search (Zoekt), CI/CD Components, matrix needs, Code Owners dziedziczenie, webhooki, bypass). (about.gitlab.com)
  2. Patch Release 18.5.2 / 18.4.4 / 18.3.6 (12 listopada 2025) – m.in. GraphQL subscriptions info disclosure i inne CVE. (about.gitlab.com)
  3. Patch Release 18.5.1 / 18.4.3 / 18.3.5 (22 października 2025) – DoS w JSON validation i upload. (about.gitlab.com)
  4. Rate limitations announced for Projects, Groups, and Users APIs (30 kwietnia 2025) – oficjalny wpis o limitach z tabelą endpointów. (about.gitlab.com)
  5. HKCERT – GitLab Multiple Vulnerabilities (13 listopada 2025) – niezależny biuletyn agregujący podatności. (HKCERT)

Finger.exe & ClickFix: jak stary protokół Finger (TCP/79) wraca w nowoczesnych atakach

Wprowadzenie do problemu / definicja luki

W najnowszym wpisie SANS ISC zwrócono uwagę, że w kampaniach ClickFix napastnicy znów nadużywają starego, zapomnianego protokołu Finger oraz wbudowanego w Windows klienta finger.exe do pobierania skryptów i komend z Internetu. Finger działa po TCP/79, a klient systemowy nie obsługuje proxy, co bywa kluczowe dla obejścia polityk egress w firmach polegających na explicit proxy. Rezultat: polecenia kopiowane ręką użytkownika (esencja ClickFix) mogą ściągać i uruchamiać payloady z pominięciem części kontroli sieciowych.

W skrócie

  • ClickFix = socjotechnika „zrób to sam”: strona-lurka prowadzi ofiarę do ręcznego uruchomienia polecenia (np. w cmd/PowerShell), które pobiera i uruchamia złośliwy kod. Microsoft opisał wzorzec ataku i jego obejścia zabezpieczeń.
  • W najnowszej odsłonie atakujący używają finger.exe (Windows) do pobrania skryptu przez Finger/TCP 79 – często z serwerów kontrolowanych przez napastnika lub z serwisów skompromitowanych. Temat nagłośnił również BleepingComputer.
  • Finger to stary protokół zdefiniowany w RFC 1288; port nie jest konfigurowalny (zawsze 79/TCP).
  • finger.exe to LOLBIN: narzędzie wbudowane, znane społeczności obronnej i opisane w projekcie LOLBAS – dostępne ścieżki, przypadki nadużyć i reguły Sigma.
  • Dla SOC: patrz sekcja „Rekomendacje” – gotowe KQL/Sigma/Splunk, przykładowe reguły Suricata (TCP/79), blokady AppLocker/WDAC, kontrola egress oraz TTPs do huntów.

Kontekst / historia / powiązania

Technika ClickFix była szeroko opisywana w 2024–2025 jako sposób „ominięcia” części automatów antymalware poprzez włączenie człowieka do łańcucha ataku: ofiara sama kopiuje komendę, która robi „resztę”. To redukuje sygnał detekcyjny (mniej klasycznego „drop & exec”). Microsoft szczegółowo rozebrał ten łańcuch, wskazując m.in. malvertising, fałszywe strony „naprawy błędu” i presję czasu na ofierze. W 2025 r. media branżowe odnotowały odświeżoną falę ataków, m.in. z użyciem Finger.

Analiza techniczna / szczegóły luki

Finger: właściwości protokołu

  • Transport: TCP
  • Port: stały 79/tcp (klient łączy się na 79)
  • Model zapytań: jedna linia zapytania → odpowiedź serwera (RUIP)
  • Brak TLS/uwierzytelniania, mechanizm archaiczny, projektowany do informacji o użytkownikach/hostach.
    Te cechy pochodzą z definicji protokołu w RFC 1288.

finger.exe w Windows jako LOLBIN

  • Lokalizacje: C:\Windows\System32\finger.exe, C:\Windows\SysWOW64\finger.exe.
  • Kluczowa obserwacja obrońców: nie powinien wykonywać się na typowych stacjach końcowych; jego aktywność sieciowa do Internetu to anomalia.
  • W projekcie LOLBAS znajdziesz reguły Sigma i znane nadużycia (np. pobieranie treści jako „komunikatu” finger i pipowanie do interpretera).

Łańcuch ClickFix z użyciem Finger (przykład)

  1. Wejście: phishing/malvertising → landing z instrukcjami „naprawy” (np. „skopiuj to polecenie i wklej do Run/PowerShell”).
  2. Pobranie: finger.exe łączy się do attacker[.]domain:79, pobiera „odpowiedź” zawierającą komendy/payload (np. Base64 PowerShell). SANS ISC zwraca uwagę, że finger.exe nie jest proxy-aware (łatwiej ominąć explicit proxy) i portu 79 nie da się zmienić.
  3. Wykonanie: odpowiedź Finger bywa przekierowana do shella/interpretera (np. | powershell -), co finalnie uruchamia loader/infostealer. O samej fali nadużyć Finger w kampaniach ClickFix informował BleepingComputer.

Uwaga: Finger widziano też jako kanał eksfiltracji/transferu (LOLBIN living-off-the-land) — warto to uwzględnić w hypothesach podczas huntów. (Dobry przegląd ryzyka dają materiały analityczne i praktyka DFIR).

Praktyczne konsekwencje / ryzyko

  • Omijanie egress przez proxy: jeśli organizacja bazuje na explicit proxy i blokuje „direct to Internet”, to brak proxy-awareness w finger.exe powoduje po prostu brak wyjścia — to akurat dobra wiadomość. Jednak w sieciach z transparent proxy lub źle egzekwowanym egress (np. brak deny-all + allow-list) ruch TCP/79 może przejść.
  • Niska widoczność: wiele IDS/NGFW nie obserwuje dziś intensywnie portu 79, bo usługa jest historyczna; to czyni z Finger atrakcyjny kanał niszowy.
  • Living-off-the-land: użycie narzędzia wbudowanego (finger.exe) utrudnia polityki „block-by-default” oparte wyłącznie na hashach/znanych loaderach; trzeba sięgnąć po AppLocker/WDAC, EDR i kontrole kontekstowe.

Rekomendacje operacyjne / co zrobić teraz

1) Szybkie twardnienie (hardening)

Sieć (egress):

  • Jeśli polityka organizacji nie wymaga Finger – zablokuj TCP/79 na brzegu i w segmentach użytkowników (deny-all → allow-list).
  • W transparent proxy/NGFW dodaj reguły blokujące tcp/79 outbound.
  • (Opcjonalnie) NLA: monitoruj jakiekolwiek połączenia do zewnętrznych IP:79 w NetFlow/Zeek.

Endpoint:

  • AppLocker (EXE Rule):
    • Deny dla %WINDIR%\System32\finger.exe i %WINDIR%\SysWOW64\finger.exe w „Unrestricted → Deny unless needed”.
  • WDAC: umieść finger.exe w polityce „Deny-List” (FileNameRule albo podpis/hashe).
  • SRP: „Disallowed” dla ścieżek finger w regułach Additional Rules.

Windows Firewall (host-based) – przykład (cmd jako admin):

netsh advfirewall firewall add rule name="Block Outbound TCP 79 (Finger)" dir=out action=block protocol=TCP localport=any remoteport=79

2) Detekcja — gotowe reguły i zapytania

Sigma (proc creation – finger.exe):

title: Suspicious Use of finger.exe
id: 3d2f2f5a-isc-clickfix-finger
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  sel:
    Image|endswith:
      - '\finger.exe'
  condition: sel
fields:
  - Image
  - CommandLine
  - ParentImage
  - User
  - ComputerName
level: high
tags:
  - attack.command_and_control
  - attack.t1105

(W projekcie LOLBAS znajdziesz też oficjalną regułę Sigma dla finger.exe — zaadaptuj do swojej telemetrii.)

Defender for Endpoint / KQL (wykrycie użycia + ruchu na 79/tcp):

// Procesy finger.exe
DeviceProcessEvents
| where Timestamp > ago(14d)
| where FileName =~ "finger.exe"
| project Timestamp, DeviceName, InitiatingProcessAccountName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessParentFileName

// Połączenia sieciowe inicjowane przez finger.exe do publicznych IP (port 79)
DeviceNetworkEvents
| where Timestamp > ago(14d)
| where InitiatingProcessFileName =~ "finger.exe"
| where RemotePort == 79 and RemoteIPType == "Public"
| summarize dcount(RemoteIP) by DeviceName

Splunk (Sysmon EventID=1 + net connection EventID=3):

index=win* (EventCode=1 OR EventCode=3) 
| eval is_finger=if(like(Image,"%\\finger.exe"),1,0)
| search is_finger=1 OR (EventCode=3 dest_port=79 process_name="finger.exe")
| table _time host user Image CommandLine parent_process_name dest_ip dest_port

Suricata (prosty port-based; w praktyce lepiej TLS/JA3/treść, jeśli możliwe):

alert tcp $HOME_NET any -> $EXTERNAL_NET 79 (msg:"Egress Finger protocol (TCP/79)"; flow:to_server,established; classtype:policy-violation; sid:790001; rev:1;)

Zeek (conn.log szybki hunt):

# filter: outbound connections to port 79
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto service | awk '$3==79 && $4=="tcp"'

3) Reagowanie (IR)

  • Izoluj host i zbierz artefakty procesu rodzica finger.exe (kto zainicjował? cmd.exe, powershell.exe, przeglądarka?) oraz stronę/lurkę (artefakty przeglądarki, DNS Cache, Prefetch).
  • Artefakty łańcucha ClickFix: zrzuty schowka, historia RunMRU, TypedPaths, PowerShell Operational (Event ID 4104/4103), Shell-Core (ShellExecute).
  • Blokuj i burnuj: domeny/IP na 79/tcp, usuń reguły wyjątków w proksy/NGFW, zaktualizuj listy blokad w EDR.
  • User awareness: szybki komunikat do użytkowników o NIEKOPIOWANIU poleceń z pop-upów/stron „naprawczych”.

4) Testy kontrolne (Purple Team)

  • W bezpiecznym labie sprawdź, czy finger.exe w ogóle „wyjdzie” na Internet w Twojej sieci (explicit vs transparent proxy).
  • Wygeneruj kontrolowany ruch do hosta testowego na TCP/79 i upewnij się, że alertują: EDR (proc creation), NDR/IDS (port 79), SIEM (korelacja).
  • Przejrzyj atakowy playbook ClickFix z bloga Microsoft — od symulacji malvertising po ręczne wykonanie komendy — i dopasuj własne kontrolki.

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

  • Wcześniej ClickFix częściej polegał na powershell/bitsadmin/certutil czy „curl w PowerShell” — dziś widzimy „egzotyczne” kanały jak Finger. To obniża skuteczność sygnatur i allowlist tworzonych „pod modne TTP”.
  • W przeciwieństwie do bitsadmin lub curl, finger.exe jest rzadko używany w środowiskach korporacyjnych, więc jego anomalia jest bardziej oczywista, ale jednocześnie bywa nieprzefiltrowany w egress.
  • Jako LOLBIN finger.exe pozostaje w tym samym koszyku co inne narzędzia „żyjące na systemie”, ale ma sztywny port 79 i brak proxy-awareness, co daje zarówno wektor obejścia, jak i łatwy wskaźnik do blokady.

Podsumowanie / kluczowe wnioski

  • ClickFix nadal rośnie — powrót do Finger/TCP 79 to sprytne wykorzystanie niszy. Zablokuj 79/tcp, zabroń finger.exe, dołóż telemetrię i hunting na anomalie LOLBIN.
  • Wprowadź kontrolki procesowe (AppLocker/WDAC), korelację proces→sieć, oraz edukację użytkowników przeciwko „kopiuj–wklej”.
  • Od dziś: deny 79/tcp, alert na finger.exe, review egress i proxy, zapytania w SIEM — gotowce masz wyżej.

Źródła / bibliografia

  • SANS ISC Diary — Finger.exe & ClickFix (port 79, brak proxy-awareness, użycie w ClickFix). (SANS Internet Storm Center)
  • Microsoft Security Blog — ClickFix: łańcuch ataku, socjotechnika i obejście zabezpieczeń. (Microsoft)
  • BleepingComputer — nadużycie Finger w kampaniach ClickFix (2025-11). (BleepingComputer)
  • RFC 1288 — specyfikacja protokołu Finger (TCP/79). (IETF Datatracker)
  • LOLBAS — strona Finger.exe (LOLBIN, lokalizacje, detekcje). (lolbas-project.github.io)

Google oznaczy w Play Store aplikacje nadmiernie zużywające baterię. Co to znaczy dla deweloperów i użytkowników?

Wprowadzenie do problemu / definicja luki

Google ogłosiło, że wprowadzi do Sklepu Play ostrzeżenia dla aplikacji, które nadmiernie drenują baterię poprzez długotrwałe utrzymywanie partial wake locks (blokad uniemożliwiających uśpienie CPU przy wyłączonym ekranie). Nowa polityka opiera się na metryce “excessive partial wake locks” w Android Vitals i będzie wpływała zarówno na widoczność aplikacji, jak i komunikaty ostrzegawcze widoczne dla użytkowników na kartach aplikacji. Zmiany zaczną obowiązywać od 1 marca 2026 r..


W skrócie

  • Nowa metryka Android Vitals: „excessive partial wake locks” mierzy sesje użytkownika, w których czas skumulowanych, nie-wyłączonych (non-exempt) wake locków > 2h w ciągu 24h. Jeżeli ≥5% sesji z ostatnich 28 dni spełnia ten warunek, aplikacja przekracza próg „złego zachowania”.
  • Skutki: aplikacja może zostać wyłączona z kluczowych powierzchni rekomendacyjnych Sklepu Play i/lub otrzyma czerwony komunikat ostrzegawczy na stronie listingu: że „może zużywać więcej baterii niż oczekiwano z powodu wysokiej aktywności w tle”. Wejście w życie: 1.03.2026.
  • Kto to wymyślił: metryka była w becie od kwietnia, a algorytm Google rozwijało wspólnie z Samsungiem; teraz jest GA.

Kontekst / historia / powiązania

Android od lat walczy z aplikacjami, które „przytrzymują” urządzenie w stanie aktywnym bez korzyści dla użytkownika. Wcześniej Google promowało praktyki ograniczania pracy w tle (JobScheduler/WorkManager) oraz monitorowania energii (Batterystats/Battery Historian). Nowa metryka włącza te zasady do twardego progu jakości technicznej Android Vitals — obok crash rate czy ANR rate — i wiąże je z algorytmiczną widocznością w Play. To zmienia rekomendacje w wymogi: zignorowanie problemu będzie miało realny wpływ na wzrost/instale.


Analiza techniczna / szczegóły metryki

Czym jest partial wake lock?
To mechanizm utrzymujący CPU w stanie aktywnym przy zgaszonym ekranie, aby aplikacja mogła wykonywać pracę w tle (np. synchronizację). Nadużywany — potrafi wyssać baterię w nocy.

Definicje Google dla metryki:

  • Sesja użytkownika jest „excessive”, gdy >2h skumulowanych nie-wyłączonych partial wake locków w okresie 24h. Wyłączenia (exemptions) obejmują m.in. odtwarzanie audio czy transfer zainicjowany przez użytkownika.
  • Próg złego zachowania: jeśli ≥5% sesji z 28 dni jest „excessive”.
  • Konsekwencje w Play: ograniczenie ekspozycji w discovery i możliwe publiczne ostrzeżenie na listingu aplikacji. Start egzekwowania: 1 marca 2026 r..

Jak Google wykrywa problem?
Zespół połączył dane platformy z „real-world insights” od Samsunga i feedbackiem deweloperów z bety (od kwietnia), kalibrując algorytm pod rzeczywiste wzorce drenażu.


Praktyczne konsekwencje / ryzyko

Dla deweloperów:

  • Ryzyko spadku instalacji (mniejsza widoczność) i zaufania (ostrzeżenie na stronie aplikacji). Wzrośnie presja na audyt wake locków, SDK i bibliotek sieciowych.
  • Potrzeba telemetrii i testów energetycznych na etapie CI/CD, a nie tylko QA manualnego. (Patrz sekcja „Co zrobić teraz”.)

Dla użytkowników:

  • Lepsza przejrzystość — łatwiej rozpoznać „pożeracze baterii” przed instalacją.

Dla bezpieczeństwa (defensywnie):

  • Choć Google podkreśla, że to nie jest detektor spyware/adware, metryka pośrednio utrudni trwałe utrzymywanie kanałów exfiltracji w tle bez wiedzy użytkownika (ciągłe podtrzymywanie CPU stanie się kosztowne reputacyjnie). To wzmocni higienę energetyczną ekosystemu, powiązaną z dostępnością (CWE-920). (Wniosek + kontekst teoretyczny).

Rekomendacje operacyjne / co zrobić teraz

Dla zespołów developerskich

  1. Skan wake locków po nazwach (tagach)
    • Wejdź w Play Console → Android Vitals → Excessive partial wake locks i przejrzyj nową tabelę wake lock names (P90/P99). Skup się na tagach z P90/P99 > 60 min.
  2. Usuń ręczne wake locki, zastąp pracą planowaną
    • Preferuj WorkManager/JobScheduler z warunkami (ładowanie, Wi-Fi) zamiast własnych wake locków.
    Kotlin (przykład): class SyncWorker(ctx: Context, params: WorkerParameters) : CoroutineWorker(ctx, params) { override suspend fun doWork(): Result { // ...realna praca sieciowa... return Result.success() } } val constraints = Constraints.Builder() .setRequiredNetworkType(NetworkType.UNMETERED) .setRequiresCharging(true) .build() val req = OneTimeWorkRequestBuilder<SyncWorker>() .setConstraints(constraints) .build() WorkManager.getInstance(context).enqueue(req)
  3. Jeśli musisz użyć WakeLock — trzymaj go krótko i bezpiecznieval pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager val wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "app:shortTask") try { wl.acquire(30_000L) // maks. 30s – twardy limit! doShortTask() } finally { if (wl.isHeld) wl.release() }
    • Nigdy nie trzymaj wake locka „na wszelki wypadek”; zawsze czasowo ograniczaj i zwalniaj w finally.
  4. Ogranicz czujniki i sieć
    • Używaj FusedLocationProvider (batching, caching), grupuj transfery danych, stosuj backoff/retries przez WorkManager.
  5. Włącz testy energetyczne w CI
    • Profilowanie za pomocą Batterystats + Battery Historian: # reset licznika adb shell dumpsys batterystats --reset # uruchom scenariusz testowy ... # zrzut do pliku adb shell dumpsys batterystats > /sdcard/bstats.txt adb pull /sdcard/bstats.txt .
      • W pipeline uruchamiaj scenariusze (np. 30–60 min w tle), parsuj metryki wake locków po tagach.
    • Bugreport → Historian (HTML): adb bugreport bug.zip # otwórz w Battery Historian i sprawdź wakelocki/alarms/sync
  6. Audyt bibliotek/SDK
    • Przeglądaj wake lock tags powiązane z bibliotekami reklamowymi, analitycznymi, VoIP, I/O. Wymagaj wersji z batchingiem/limitami.
  7. Definiuj SLO energetyczne
    • Ustalcie SLO: „<1% sesji excessive w 28d” + alert w monitoringu, gate w CI (blokada releasu, jeżeli trend rośnie).

Dla zespołów bezpieczeństwa (SecOps/Blue)

  • Anomalie energii jako sygnał: Nadzwyczajny wzrost wake locków może korelować z niedozwolonym monitoringiem lub nadużyciem SDK. Integruj sygnały z Vitals do SIEM/UBA.
  • Polityki MDM/EMM: W środowiskach korporacyjnych — blokuj aplikacje, które dostają ostrzeżenie Sklepu Play; wymuś allow-listy.
  • Testy red team: W scenariuszach DLP/Exfil — sprawdź, czy agent nie generuje excessive wake locks (weryfikowalne w Vitals).

Różnice / porównania z innymi przypadkami

  • Wear OS – ostrzeżenia dla tarcz zegarków: Google wcześniej dodało w Play ostrzeżenia o drenażu w watch faces (osobna metryka dla zegarków). Nowa inicjatywa rozszerza podejście na aplikacje telefoniczne z naciskiem na partial wake locks. (Kontekst techniczny; praktyki oszczędzania energii są spójne).
  • Tradycyjne wskaźniki jakości (crash/ANR) vs. energia: Do tej pory brakowało „twardego” progu dla energii. Teraz „excessive partial wake locks” dołącza do „technical quality bars” i ma bezpośredni wpływ na ranking w Play.

Podsumowanie / kluczowe wnioski

  • Od 1 marca 2026 r. aplikacje przekraczające próg excessive partial wake locks mogą stracić ekspozycję i dostać czerwone ostrzeżenie na karcie w Play.
  • Metryka: >2h non-exempt wake locków/24h w ≥5% sesji (28 dni).
  • Deweloperzy powinni usunąć ręczne wake locki, przejść na WorkManager/JobScheduler, zintegrować Batterystats/Historian i monitorować tagi w Android Vitals.
  • Z perspektywy bezpieczeństwa poprawi się higiena energetyczna, co utrudni nadużycia tła, choć metryka nie jest skanerem malware.

Źródła / bibliografia

  1. Android Developers Blog – „Raising the bar on battery performance: excessive partial wake locks metric is now out of beta” (szczegóły progu, wpływ na widoczność, data 1.03.2026). (Android Developers Blog)
  2. BleepingComputer – „Google to flag Android apps with excessive battery use on the Play Store” (podsumowanie, beta od kwietnia, współpraca z Samsungiem). (BleepingComputer)
  3. 9to5Google – „Google Play will soon warn about apps that cause excessive battery drain” (cytaty definicji, ostrzeżenie na listingu). (9to5Google)
  4. The Verge – „Google Play will label apps that use ‘excessive’ battery in the background” (termin egzekwowania, ograniczenie rekomendacji). (The Verge)
  5. Android Developers – „Battery consumption for billions” (best practices: FusedLocation, batching, WorkManager, Batterystats/Historian). (Android Developers)

CVE-2025-64446: krytyczna podatność 0-day w Fortinet FortiWeb (path traversal) aktywnie wykorzystywana

W skrócie

  • Co: Path traversal prowadzący do zdalnego wykonania poleceń z uprawnieniami administracyjnymi na FortiWeb.
  • Kto: Atakujący bez uwierzytelnienia (z Internetu).
  • Status: 0-day – wykorzystywany zanim opublikowano advisory; obecnie dostępne poprawki. Wpis w CISA KEV.
  • Wpływ: Pełne przejęcie WAF-a, tworzenie kont admina, modyfikacja polityk, pivot w głąb sieci.
  • Co robić teraz: Natychmiastowy upgrade do wersji naprawionych, ograniczenie ekspozycji HTTP/HTTPS, monitoring logów, polowanie na ślady nadużyć.

Kontekst / historia / powiązania

Pierwsze sygnały o nieznanym exploicie na urządzenia Fortinet pojawiły się na początku października. 13–14 listopada niezależni badacze (m.in. watchTowr) zreprodukowali błąd i opublikowali wstępne ustalenia, po czym Fortinet wydał PSIRT FG-IR-25-910 oraz przypisał CVE-2025-64446. W tym samym czasie liczne firmy (Tenable, Rapid7, Arctic Wolf) ostrzegły o aktywnej eksploatacji; CISA dodała lukę do KEV.


Analiza techniczna / szczegóły luki

Wektor ataku. Błąd to relative path traversal w interfejsie HTTP/HTTPS FortiWeb, który umożliwia napastnikowi odwołanie się do niezamierzonych ścieżek i zasobów aplikacji/OS. Skutkiem jest ominięcie kontroli i możliwość wykonywania komend administracyjnych lub wywoływania wrażliwych funkcji. W praktyce to RCE/privilege abuse osiągalne bez logowania.

Wersje podatne / naprawione (Fortinet PSIRT):

  • Podatne: 7.0.0–7.0.11, 7.2.0–7.2.11, 7.4.0–7.4.9, 7.6.0–7.6.4, 8.0.0–8.0.1
  • Naprawione: 7.0.12+, 7.2.12+, 7.4.10+, 7.6.5+, 8.0.2+
    Fortinet zaleca także ograniczenie dostępu do interfejsu zarządzania HTTP/HTTPS wyłącznie do sieci wewnętrznej (nie wystawiać publicznie).

Starsze gałęzie (ustalenia badaczy). WatchTowr wskazuje, że 6.4 ≤ 6.4.3 oraz 6.3 ≤ 6.3.23 również wykazują podatność w podobnym łańcuchu błędów – co jest ważne dla środowisk, gdzie utrzymuje się EoL-owe wydania. (Traktuj jako dane badawcze; weryfikuj z PSIRT).

Ocena ryzyka (CVSS). NVD klasyfikuje lukę jako krytyczną: niski nakład atakującego, brak interakcji użytkownika, pełne naruszenie C/I/A.


Praktyczne konsekwencje / ryzyko

  1. Przejęcie FortiWeb – tworzenie/zmiana kont admina, zmiana polityk WAF (np. wyłączenie ochrony dla krytycznych aplikacji).
  2. Lateral movement – FortiWeb często „widzi” ruch do aplikacji biznesowych; kompromitacja może dać dane uwierzytelniające i ścieżki pivotu.
  3. Sabotaż bezpieczeństwa aplikacji – atakujący może tolerować własny ruch (np. wstrzyknięcia SQL, SSRF) przez manipulację regułami WAF.
  4. Utrata poufności i integralności logów – możliwość wyciszenia alertów/telemetrii.
  5. Ataki łańcuchowe – po FortiWeb możliwe ataki na CI/CD, ERP, bankowość internetową itp., które WAF chroni.

Rekomendacje operacyjne / co zrobić teraz

1) Patching – priorytet awaryjny

  • Zaktualizuj FortiWeb co najmniej do: 8.0.2 / 7.6.5 / 7.4.10 / 7.2.12 / 7.0.12. Zaplanuj restart/okno serwisowe i weryfikuj wersję po aktualizacji.
    CLI (na FortiWeb): # sprawdzenie wersji execute version get system status # (jeśli używasz HA) sprawdź stan klastra diagnose system ha status

2) Ograniczenie ekspozycji zarządzania

  • Nie wystawiaj HTTP/HTTPS management na Internet. Ogranicz do mgmt-VLAN/VPN (ACL/Firewall policy). Jeżeli musisz, użyj source IP allowlist i MFA w bastionie.

3) Szybka kontrola narażenia (bezpieczna)

  • Z zewnątrz: zweryfikuj, czy porty mgmt nie są dostępne: nmap -p 80,443,8443 <adres_FortiWeb> --script http-enum,http-title
  • Z urządzenia: upewnij się, że admin-scp, telnet, http są wyłączone na interfejsach publicznych.

4) Detekcja i polowanie na oznaki nadużyć

Logi FortiWeb (przykładowe wzorce):

  • Nietypowe żądania z „../” w ścieżce lub parametrach (path traversal).
  • Niespodziewane logowania admin z rzadkich AS/GeoIP.
  • Zmiany polityk/konfiguracji poza oknami serwisowymi.

Splunk (HTTP logs z FortiWeb/syslog):

index=network OR index=forti sourcetype=fortiweb:http
| rex field=uri_path "(?<dotdots>\.\.\/)"
| stats count by src_ip, http_method, uri_path, user, _time
| where dotdots!=""

Sigma (pseudoreg. do konwersji):

title: FortiWeb Suspicious Path Traversal
logsource:
  product: fortinet
  service: fortiweb
detection:
  selection:
    c-uri|contains: "../"
  condition: selection
level: high

Wskazówka: sprawdź tworzenie nowych kont admin w krótkim okresie po nieudanych/niestandardowych żądaniach HTTP. (Kilka raportów wskazuje, że atakujący potrafią tworzyć konta administracyjne po udanym nadużyciu.)

5) Twardnienie (hardening)

  • Wymuś TLS-only na mgmt i certificate pinning po stronie operatorów gdzie to możliwe.
  • Ogranicz dostęp do /api/ i endpointów administracyjnych wyłącznie z sieci zaufanych.
  • Włącz alerting na zdarzenia systemowe: tworzenie kont, zmiana polityk, restart usług, import konfiguracji.
  • W SIEM dodaj rule chain: „żądania z ../” → „event admin create/modify” → „policy change”.

6) Testy bezpieczeństwa (bez PoC exploita)

  • Skany zależności/wersji i porównanie z matrycą podatnych/nienarażonych.
  • Wykorzystaj skanery, które już dodały detekcję (np. wtyczki Tenable; sprawdzaj aktualizacje feedów).

Uwaga operacyjna: Z uwagi na aktywne kampanie i publiczne exploity, tempo skanów i prób nadużyć prawdopodobnie wzrośnie. Wprowadź czasowe reguły rate-limit/geo-block na IP spoza twojej strefy działalności.


Różnice / porównania z innymi przypadkami Fortinet

  • W porównaniu z wcześniejszymi głośnymi błędami (np. CVE-2024-21762 w SSL-VPN czy CVE-2022-40684 bypass autoryzacji) – tutaj wektor to GUI/API FortiWeb, a nie VPN. Jednak skutek jest równie krytyczny: niezalogowany napastnik może osiągnąć admin RCE.
  • Podobnie jak w poprzednich incydentach, luka trafiła do CISA KEV, co jest silnym sygnałem wymogu szybkiej remediacji w sektorze publicznym i komercyjnym.

Podsumowanie / kluczowe wnioski

  1. Krytyczna 0-day (CVSS 9.1) w FortiWeb, aktywnie nadużywana – działaj natychmiast.
  2. Zaktualizuj do 8.0.2 / 7.6.5 / 7.4.10 / 7.2.12 / 7.0.12; nie wystawiaj GUI na Internet.
  3. Monitoruj logi pod kątem path traversal i nieoczekiwanych zmian administracyjnych; rozważ polowanie na artefakty po 13–14 listopada.
  4. Zweryfikuj starsze gałęzie (6.3/6.4) – w części środowisk mogą być podatne wg badań; zaplanuj upgrade ścieżki życia.

Źródła / bibliografia

  • Fortinet PSIRT FG-IR-25-910 – „Path confusion vulnerability in GUI” (listy wersji naprawionych, zalecenia dot. ekspozycji HTTP/HTTPS). (fortiguard.fortinet.com)
  • NVD: karta CVE-2025-64446 (opis, wektor CVSS, wpływ). (NVD)
  • watchTowr Labs: techniczne wnioski i zakres wersji w starszych gałęziach; łańcuch prowadzący do nadużyć admin. (watchTowr Labs)
  • Tenable: przegląd incydentu, ostrzeżenie o aktywnej eksploatacji, odniesienia do wtyczek skanujących. (Tenable®)
  • CISA KEV: potwierdzenie statusu „known exploited”. (CISA)