
Wprowadzenie do problemu / definicja
Atak na łańcuch dostaw to rodzaj incydentu, w którym cyberprzestępcy kompromitują dostawcę usług, oprogramowania lub komponent wykorzystywany przez wiele organizacji. Zamiast atakować każdą ofiarę oddzielnie, napastnicy wykorzystują zaufany element wspólny, aby uzyskać szeroki zasięg i pośrednio dotrzeć do środowisk klientów.
W przypadku Brevo skutkiem była dystrybucja złośliwego kodu do witryn korzystających z osadzanych skryptów i widżetów tej platformy. To pokazuje, jak duże ryzyko wiąże się z zewnętrznymi zależnościami JavaScript w nowoczesnych serwisach internetowych.
W skrócie
Brevo padło ofiarą ataku, w którym wykorzystano skompromitowany klucz API Cloudflare do wdrożenia workera wstrzykującego złośliwe skrypty do zasobów dostarczanych klientom. W efekcie malware było serwowane przez kilka godzin do dużej liczby stron internetowych korzystających z komponentów tej platformy.
Złośliwy kod miał prowadzić do wyświetlania fałszywej strony weryfikacyjnej typu ClickFix. W środowiskach WordPress osadzających widżet Brevo skrypt próbował dodatkowo zainstalować i uruchomić wtyczkę, jeśli odwiedzający był zalogowany jako administrator. Szacunki wskazują, że incydent mógł objąć ponad 100 tysięcy witryn.
Kontekst / historia
Incydent rozpoczął się 10 września 2026 r., kiedy atakujący wykorzystali podatność związaną z obsługą SAML SSO w Brevo, uzyskując dostęp do 138 kont. Z przejętych kont część została wykorzystana do wysyłki wiadomości phishingowych, a w innych przypadkach doszło do eksportu kontaktów.
Po zablokowaniu nieautoryzowanego dostępu atakujący wrócili 14 września 2026 r. i wykorzystali długowieczny klucz API Cloudflare do wdrożenia złośliwego workera. Ten etap znacząco zwiększył skalę zagrożenia, ponieważ napastnicy przeszli od kompromitacji tożsamości do manipulacji centralnym kanałem dystrybucji treści wykorzystywanym przez klientów Brevo.
To szczególnie niebezpieczny scenariusz, ponieważ pojedyncza kompromitacja po stronie dostawcy może przełożyć się na masowe oddziaływanie na strony klientów oraz ich użytkowników końcowych.
Analiza techniczna
Kluczowym elementem ataku było nadużycie skompromitowanego klucza API Cloudflare. Dzięki niemu napastnicy wdrożyli workera ingerującego w treści serwowane z domen i zasobów powiązanych z Brevo. Złośliwy kod został wstrzyknięty do stron oraz do trzech plików JavaScript osadzanych przez klientów we własnych serwisach.
Atak składał się z dwóch głównych komponentów. Pierwszy opierał się na inżynierii społecznej: wybranym użytkownikom prezentowano fałszywą stronę „Cloudflare, verify you are human”, która nakłaniała do skopiowania i uruchomienia polecenia w systemie. Jest to wariant techniki ClickFix, w której ofiara sama inicjuje wykonanie złośliwych działań, częściowo omijając klasyczne mechanizmy ochronne przeglądarki.
Drugi komponent był ukierunkowany na środowiska WordPress. Jeżeli odwiedzający stronę z osadzonym widżetem był równocześnie zalogowany jako administrator, skrypt próbował wdrożyć i uruchomić wtyczkę. Taki mechanizm mógł umożliwić uzyskanie trwałości po stronie aplikacji, a w konsekwencji doprowadzić do pełniejszej kompromitacji witryny.
Złośliwy worker był aktywny przez około pięć i pół godziny, zanim został usunięty, a powiązany klucz API oraz poświadczenia unieważniono. Według ustaleń sam klucz miał być nadużywany już pod koniec sierpnia 2026 r., ale wcześniejszego wstrzykiwania złośliwej treści do stron klientów przed 14 września nie potwierdzono.
Konsekwencje / ryzyko
Najpoważniejszym aspektem incydentu był jego masowy charakter. Organizacje korzystające z komponentów Brevo mogły nieświadomie stać się pośrednikiem w dystrybucji złośliwego kodu do własnych użytkowników, co z perspektywy bezpieczeństwa i reputacji stanowi bardzo poważne ryzyko.
- Użytkownicy końcowi mogli paść ofiarą oszustwa ClickFix i samodzielnie uruchomić szkodliwe polecenia.
- Administratorzy WordPressa mogli zostać wykorzystani jako punkt wejścia do trwałej kompromitacji serwisu.
- Właściciele stron narażali się na utratę reputacji, koszty reakcji incydentowej i możliwe skutki operacyjne.
- Kompromitacja mogła wykraczać poza warstwę frontendową i prowadzić do ustanowienia backdoora po stronie aplikacji.
Incydent podkreśla też szerszy problem bezpieczeństwa zewnętrznych skryptów JavaScript. Każdy taki komponent działa w kontekście zaufanej strony i może wpływać na treść, interakcje z DOM, sesje użytkowników, a niekiedy również na funkcje administracyjne aplikacji.
Rekomendacje
Organizacje korzystające z Brevo powinny przeprowadzić szczegółowy przegląd incydentowy swoich witryn, logów oraz zmian w środowiskach WordPress z okresu aktywności złośliwego skryptu. Należy zwrócić uwagę przede wszystkim na nieautoryzowane instalacje wtyczek, nowe konta administracyjne, zmiany w plikach motywów oraz oznaki trwałości.
- Przeanalizować logi serwera WWW, WordPress i WAF pod kątem nietypowych żądań związanych z zasobami Brevo.
- Sprawdzić integralność katalogów wtyczek i motywów oraz porównać je z ostatnimi znanymi dobrymi kopiami.
- Przeskanować środowisko pod kątem backdoorów PHP, webshelli i ukrytych zadań cron.
- Unieważnić sesje administratorów i wymusić reset haseł dla kont uprzywilejowanych.
- Przejrzeć konfigurację CDN, klucze API i sekrety integracyjne pod kątem nadmiernych uprawnień oraz zbyt długiej ważności.
- Zweryfikować, czy systemy EDR, XDR i antymalware nie odnotowały prób wykonania nietypowych poleceń przez użytkowników końcowych.
Z perspektywy strategicznej warto ograniczać zaufanie do skryptów stron trzecich poprzez rotację sekretów, skracanie żywotności kluczy API, monitorowanie zmian w zasobach frontendowych oraz wdrażanie mechanizmów takich jak Content Security Policy i kontrola integralności tam, gdzie jest to operacyjnie możliwe.
Podsumowanie
Incydent Brevo to poważny przykład ataku na łańcuch dostaw, w którym kompromitacja dostawcy usług webowych przełożyła się na ekspozycję dziesiątek tysięcy stron internetowych. Atak połączył przejęcie tożsamości, nadużycie klucza API, manipulację warstwą dystrybucji JavaScript oraz elementy inżynierii społecznej i potencjalnej trwałej kompromitacji WordPressa.
Dla zespołów bezpieczeństwa to kolejny sygnał, że ryzyko nie kończy się na własnym kodzie i infrastrukturze. Obejmuje ono również cały ekosystem dostawców, integracji i zewnętrznych komponentów, które mogą wykonywać kod w przeglądarce użytkownika lub wpływać na działanie paneli administracyjnych.
Źródła
- SecurityWeek — Brevo Supply Chain Attack Injects Malware Into 100,000 Websites — https://www.securityweek.com/brevo-supply-chain-attack-injects-malware-into-100000-websites/
- Brevo Incident Notice — https://status.brevo.com/
- Brevo Post-Mortem — https://status.brevo.com/
- Sansec — Security research and incident analysis — https://sansec.io/