Wyobraź sobie: monitoring wykrywa połączenia do *.trycloudflare.com. Sprawdzasz — Cloudflare Tunnels, legalny serwis. Inżynier z DevOps tłumaczy, że używają go do testów lokalnych. Ticket zamknięty jako false positive.
Tymczasem w tle rosyjski APT eksfiltruje dane przez tę samą infrastrukturę.
To nie jest scenariusz hipotetyczny. To dokładnie to, co robi BlueAlpha — rosyjska grupa APT działająca na zlecenie FSB — odkąd w grudniu 2024 Insikt Group (Recorded Future) opublikował raport o ich nowej taktyce.
Dlaczego to problem? Bo BlueAlpha nie używa zero-days ani drogiego malware. Używa darmowego narzędzia od Cloudflare, które każdy może uruchomić w 30 sekund — bez rejestracji.
Kim jest BlueAlpha
Nazwy i atrybucja
BlueAlpha to nazwa zbiorcza dla grupy powszechnie śledzonej pod wieloma aliasami:
- Gamaredon — oryginalny tracking name
- Armageddon APT
- Shuckworm (Symantec)
- Hive0051 (Microsoft)
- UAC-0010 (CERT-UA)
- UNC530 (Mandiant)
Atrybucja: FSB, konkretnie Centre 18.
Historia aktywności
2014 Pierwsza publiczna dokumentacja aktywności
2014-2021 Kampanie przeciwko ukraińskiemu rządowi i wojsku
2022- Intensyfikacja po rozpoczęciu pełnoskalowej inwazji
2023 Wprowadzenie GammaLoad.PS1 (custom VBScript/PowerShell loader)
2024 GammaDrop + nadużycie Cloudflare Tunnels
Cele:
- ukraińskie agencje rządowe i wojsko
- infrastruktura krytyczna
- NGO działające w Ukrainie
- defense contractors, sektor mediów
Motywacja: zbieranie wywiadu, persistentny dostęp, pre-positioning.
Dlaczego BlueAlpha jest wyjątkowy
Wolumen zamiast sofistykacji
BlueAlpha wysyła tysiące spearphishingów miesięcznie i akceptuje niski success rate (1-2%). Skala kompensuje jakość — to model przemysłowy, nie chirurgiczny.
Persistencja
Ponad 10 lat ciągłych działań. Nie znikają po exposure. Adaptują techniki bez zmiany fundamentów operacyjnych.
Nadużywanie legalnych serwisów
Aktualnie Cloudflare Tunnels. Wcześniej: Discord, Telegram, legalne file-sharing. Cel zawsze ten sam: wmieszać ruch C2 w normalny ruch sieciowy.
Cloudflare Tunnels: jak działa i dlaczego jest idealny dla APT
Oficjalny cel narzędzia
Cloudflare Tunnel pozwala bezpiecznie wystawić lokalny serwis do internetu — bez otwierania firewalla i bez ekspozycji publicznego IP.
Legalny use case (developer):
1. Developer ma lokalną aplikację na localhost:3000
2. Chce pokazać klientowi bez wdrożenia na serwer
3. Uruchamia: cloudflared tunnel --url localhost:3000
4. Dostaje: https://random-name-abc123.trycloudflare.com
Co oferuje TryCloudflare (free tier):
- Ochrona DDoS po stronie Cloudflare
- Brak ekspozycji IP serwera źródłowego
- Zero rejestracji — działa natychmiast
- Losowa subdomena
*.trycloudflare.com - TLS obsługiwany automatycznie przez Cloudflare
Dlaczego to idealny kanał C2 dla APT
Z perspektywy defendera:
- Ruch idzie do Cloudflare -> często whitelisted
- DevOps używa tego do testów -> alert łatwy do zdyskredytowania
- IP origin: niewidoczny (ukryty za Cloudflare edge)
- TLS: poprawny certyfikat, nic podejrzanego
- Subdomena rotuje -> szybko stają się nieaktualne IOC
Atrybucja IP praktycznie nie działa:
Ofiara łączy się z random-abc.trycloudflare.com -> DNS wskazuje IP Cloudflare -> origin IP atakującego: nieznany. Klasyczne narzędzia blokowania na podstawie IP są bezużyteczne.
Attack chain: techniczny breakdown
Faza 1: Initial access — spearphishing
Wektor: załączniki email.
Typy załączników używanych przez BlueAlpha:
.html - HTML smuggling (najczęstszy)
.zip - archiwum zawierające .html
.lnk - Windows shortcuts
.docx - z external references (rzadziej)
Faza 2: HTML smuggling — delivery payloadu
HTML smuggling to technika przemycenia binarnego payloadu w pliku HTML. Plik wygląda jak dokument — ale po otwarciu w przeglądarce JavaScript rekonstruuje i automatycznie pobiera plik wykonywalny.
<html>
<body>
<script>
// Payload zakodowany jako base64 wewnątrz pliku HTML
var payload = "TVqQAAMAAAAEAAAA//8AALgAAAAA...";
var binary = atob(payload);
var array = new Uint8Array(binary.length);
for (var i = 0; i < binary.length; i++) {
array[i] = binary.charCodeAt(i);
}
var blob = new Blob([array], {type: 'application/octet-stream'});
var link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'document.exe';
link.click();
</script>
</body>
</html>
Dlaczego to przechodzi przez email gateway: plik HTML nie zawiera executable — zawiera tekst (base64). Wiele filtrów nie dekoduje i nie analizuje zawartości skryptów.
Faza 3: GammaDrop (stage 1)
Podstawowy loader odpowiedzialny za:
- proste anti-analysis (sprawdzenie środowiska)
- ustanowienie persistencji (startup folder, Run keys, scheduled task)
- pobranie stage 2 przez tunel Cloudflare
Faza 4: GammaLoad (stage 2)
Właściwy implant:
- beaconing do C2 przez Cloudflare Tunnel
- odbieranie komend
- eksfiltracja danych
Faza 5: Persistencja i lateral movement
Metody persistencji:
- Startup folder
- HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- Scheduled Tasks
- WMI (w wybranych kampaniach)
Detection — co szukać w SOC
Network
- Monitoruj połączenia do
*.trycloudflare.comze wszystkich hostów - Zrób baseline legalnych użyć: które hosty, które zespoły, jakie porty
- Szukaj regularnego beaconingu (stały interwał, małe pakiety) do tej domeny
- Anomalia: host z działu finansów lub HR nawiązujący połączenia do
trycloudflare.com
DNS
- Monitoruj nietypowe zapytania TXT (używane w dynamicznym C2 do przekazywania komend)
- Szukaj wysokiej częstotliwości zapytań do randomowych subdomen
trycloudflare.com
Endpoint
Wskaźniki HTML smuggling w logach przeglądarki i EDR:
JavaScript: atob(), Blob(), createObjectURL(), URL.createObjectURL()
Zdarzenia: automatyczne pobieranie z blob: URI
Lokalizacja: pliki wykonywalne tworzone w %TEMP%, %APPDATA%
Wskaźniki wykonania loaderów:
PowerShell: -EncodedCommand, Invoke-WebRequest, IEX (Invoke-Expression)
Procesy: wscript.exe, mshta.exe, cscript.exe spawning child processes
Lokalizacja: procesy startujące z user-writable directories
Mitigation i hardening
Jeśli nie masz legalnego użycia Cloudflare Tunnels w organizacji
- DNS filtering: zablokuj
trycloudflare.com(i ewentualnie*.trycloudflare.com) - Monitoruj próby ominięcia przez DoH (DNS over HTTPS)
- Zakomunikuj policy do DevOps — żeby nie było zaskoczenia
Jeśli DevOps legalnie używa Cloudflare Tunnels
- Zinwentaryzuj hosty i zespoły z legalnym użyciem
- Stwórz allowlist znanych hostów/użytkowników
- Alert na każde inne połączenie do tej domeny
- Wymagaj ticketu/zgłoszenia przed użyciem tunelu w środowisku firmy
Endpoint hardening
- AppLocker lub WDAC — ogranicz wykonywanie z user-writable dirs
- Attack Surface Reduction rules (ASR) — blokada Office spawning shells
- Ogranicz
mshta.exe,wscript.exe,cscript.exejeśli nie są potrzebne operacyjnie
Email gateway
- Sandbox dla załączników HTML — nie traktuj ich jako "bezpiecznych dokumentów"
- Reguły wykrywające wskaźniki HTML smuggling:
atob,Blob,createObjectURLw treści HTML
Wnioski
BlueAlpha pokazuje kierunek, który będzie dominował w najbliższych latach: nadużywanie legalnych serwisów jako infrastruktury C2.
Cloudflare Tunnels to dzisiaj. Jutro będzie kolejny powszechnie używany serwis.
Pięć wniosków praktycznych:
- Detection ponad prevention — gdy prevention generuje collateral damage (blokujesz legalny serwis używany przez DevOps)
- Behavioral analytics ponad sygnatury — IOC rotują zbyt szybko, żeby były skuteczne
- Baseline normalnego ruchu — bez niego nie znajdziesz anomalii
- Zero Trust — nie dlatego że buzzword, ale dlatego że lateral movement z przejętego hosta jest realnym ryzykiem
- Sharing TTPs jest ważniejszy niż sharing IOCs — techniki zmieniają się wolniej niż adresy IP
Źródła i zasoby
- Recorded Future — BlueAlpha Cloudflare Tunnels Analysis (2024)
- MITRE ATT&CK — techniki BlueAlpha:
- SOC Prime — BlueAlpha Detection Stack (Sigma Rules)
Masz SOC lub zespół security i chcesz sprawdzić czy Twoje środowisko jest przygotowane na tego typu techniki? Sprawdź nasz audyt bezpieczeństwa — działamy end-to-end, od analizy do wdrożenia.