Ukratko: Radi li se o DDoS-u ili hakerskom napadu, pokazuju tragovi. DDoS stvara jako mnogo zahtjeva i web-stranicu čini sporom ili nedostupnom, ali ništa ne mijenja. Exploit često treba tek nekoliko zahtjeva i ostavlja nove datoteke, račune, procese ili veze. Ispravno razvrstavanje odlučuje trebate li odbiti opterećenje ili obuzdati incident.
Razlika jednostavnim riječima
DDoS napad (Distributed Denial of Service) je poput gomile ljudi koja blokira ulaz u trgovinu. Nitko ne može ući, ali se u trgovini ništa ne krade. Cilj je preopteretiti Vašu web-stranicu ili poslužitelj kako pravi klijenti više ne bi mogli proći.
Exploit je, nasuprot tome, provala kroz otvorena vrata. Napadač koristi slabost, primjerice u PHP-u, u CMS-u ili u ekstenziji, kako bi izvršio kod na Vašem poslužitelju. To se može dogoditi tiho, a da web-stranica ne postane sporija. Posljedice idu od spam stranica preko krađe podataka do preuzimanja poslužitelja.
Za upravu je razlika odlučujuća: DDoS je problem dostupnosti koji završava s napadom. Uspješan exploit je sigurnosni incident koji ostaje dok ga se ne pronađe, očisti i dokumentira.
DDoS ili hakerski napad: usporedba znakova
Sljedeća tablica pomaže pri prvom razvrstavanju. Ne zamjenjuje analizu, ali pokazuje kamo najprije gledati.
| Obilježje | Prije DDoS | Prije exploit ili provala |
|---|---|---|
| Dostupnost | spora ili nedostupna | često normalna |
| Zahtjevi u logu | jako mnogo, često ujednačeni | malo, ciljanih zahtjeva |
| Datoteke | nepromijenjene | nove ili izmijenjene PHP datoteke |
| Računi | nepromijenjeni | novi admini, promijenjene lozinke |
| Procesi | web-poslužitelj i PHP pod punim opterećenjem | nepoznati procesi, rudarenje, slanje spama |
| Mreža | mnogo dolaznog prometa | neuobičajene odlazne veze |
| Nakon završetka | sve kao prije | tragovi ostaju |
Pozor kod preklapanja: masovno skeniranje u potrazi za ranjivošću može izgledati kao mali DDoS. Upravo se to moglo očekivati oko PHP2Shella kad su napadači tražili ranjive poslužitelje. Veliko opterećenje stoga može značiti i da netko upravo pokušava provaliti.
Prve provjere na poslužitelju
Sljedeće naredbe ništa ne mijenjaju u sustavu i daju brz pregled. Kod sumnje na provalu osigurajte logove prije većih zahvata.
# Opterećenje i vrijeme rada
uptime
# Sažete veze i najčešće druge strane
ss -s
ss -tn state established | awk 'NR>1 {print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn | head
# Najčešće adrese klijenata u access logu (prilagodite putanju)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
# PHP datoteke izmijenjene u zadnjih 7 dana
find /var/www -type f -name '*.php' -mtime -7 -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort
# Procesi s najvećim opterećenjem procesora
ps aux --sort=-%cpu | head -15
U pregledu veza četvrti stupac prikazuje drugu stranu. Mnogo veza s malo adresa ili porast na višestruku normalnu vrijednost upućuju na preopterećenje. Nove PHP datoteke u direktorijima za upload ili cache, procesi pod korisnikom web-poslužitelja sa stranim imenima ili odlazne veze prema nepoznatim odredištima prije upućuju na provalu. Opsežan popis nalazi se na stranici Znakovi kompromitacije nakon PHP2Shella.
Zašto veliko opterećenje može biti i odvraćanje pažnje
Događa se da napadači izazovu preopterećenje dok istodobno ciljano provaljuju. Tim je tada zaokupljen dostupnošću, a pravi tragovi tonu u šumu logova. Zato vrijedi: čak i ako je DDoS očit, nakon njegova završetka provjerite datoteke, račune i odlazne veze.
Kod PHP2Shella dodatno vrijedi da prema php.netu i sigurnosnim tvrtkama nema objavljenih, potvrđenih Indicators of Compromise. Otkrivanje se temelji na analizi ponašanja. Poslužitelj koji je u razdoblju skeniranja od sredine listopada bio nezakrpan stoga treba provjeriti neovisno o opaženom opterećenju.
Daljnja varijanta su ucjenjivačke poruke u kojima se prijeti DDoS napadom ako se ne plati. Sačuvajte takve poruke, ne plaćajte bez dogovora sa stručnjacima i razmotrite prijavu Središnjoj kontaktnoj točki za kibernetički kriminal (Zentrale Ansprechstelle Cybercrime, ZAC). Usporedno obavijestite svog pružatelja hostinga kako bi se mogle pripremiti zaštitne mjere. Kako za to analizirati logove, nalazi se u vodiču Analiza logova web-poslužitelja nakon napada.
Što učiniti u prvim satima
Kod sumnje na DDoS:
- Obavijestite pružatelja hostinga ili podatkovni centar; tamo često postoje filtri ispred poslužitelja.
- Aktivirajte ili pooštrite zaštitnu uslugu postavljenu ispred ili WAF s virtualnim zakrpanjem.
- Postavite rate limite u web-poslužitelju i osobito zaštitite skupe stranice poput pretrage ili košarice.
- Čuvajte logove kako bi se napad kasnije mogao pratiti.
Kod sumnje na provalu:
- Ništa ne brišite i poslužitelj ne postavljajte iznova prije nego se osiguraju logovi i pogođene datoteke.
- Ažurirajte PHP na ispravljenu verziju i ponovno pokrenite sve workere, ako to još nije učinjeno.
- Ako ažuriranje nije odmah moguće, web-stranicu privremeno isključite s mreže, kako preporučuje BSI (njemački Savezni ured za sigurnost informacijske tehnologije).
- Pristupne podatke obnovite s čistog uređaja, a ne s poslužitelja koji je možda pogođen.
- Dajte provjeriti mogu li biti pogođeni osobni podaci; tada mogu teći rokovi za prijavu.
U oba slučaja pomaže kratka, stvarna bilješka za pružatelja hostinga i pružatelje usluga: od kada problem postoji, koje su web-stranice pogođene, što ste opazili i što je već promijenjeno. Zabilježite i tko je koju odluku donio. Taj vremenski slijed štedi vrijeme u analizi, a kasnije je vrijedan za osiguranje, zaštitu podataka i interni naknadni pregled. Ako je nejasno postoji li uopće napad, stanje preventivno tretirajte kao incident dok se ne dokaže suprotno.
Kako PHP SOS konkretno pomaže?
- Stanje razvrstavamo na daljinu na temelju opterećenja, logova, datoteka i veza te Vam kažemo s čime se vjerojatno radi.
- Kod preopterećenja postavljamo filtre, rate limite i zaštitna pravila ispred poslužitelja dok napad ne oslabi.
- Kod sumnje na provalu preuzimamo strukturirani odgovor na incident: osigurati, obuzdati, pronaći uzrok, očistiti.
- Na kraju dokumentiramo što se dogodilo i koje su mjere provedene, dok incident nije zaključen.
Česta pitanja
Može li DDoS napad ukrasti podatke?
Čisti DDoS napad cilja dostupnost, a ne podatke. Ne mijenja datoteke i ne čita baze podataka. Može se, međutim, pojaviti istodobno s pokušajem provale, pa se ipak isplati pogledati datoteke i račune.
Po čemu prepoznajem da je moja web-stranica hakirana?
Tipične naznake su nove ili izmijenjene PHP datoteke, nepoznati admin računi, preusmjeravanja na strane stranice, neočekivane odlazne veze i procesi koji ne odgovaraju Vašoj aplikaciji. Pojedinačni znak nije dokaz, više njih zajedno ozbiljan je signal.
Pomaže li CDN ili WAF protiv obje vrste napada?
Protiv napada temeljenih na volumenu uslugu postavljenu ispred obično dobro pomaže. Protiv exploita pravila djeluju samo ako prepoznaju obrazac. Kod PHP2Shella sam Cloudflare upozorava da pravila samo na temelju podataka zahtjeva nisu dovoljna.
Moram li prijaviti DDoS napad?
To ovisi o pojedinačnom slučaju i Vašoj branši. Bez pristupa osobnim podacima obveza prijave prema GDPR-u u pravilu ne vrijedi, ali mogu postojati obveze specifične za branšu. Razjasnite to sa službenikom za zaštitu podataka ili odvjetnikom.