Na kratko: Ali gre za DDoS ali vdor, se pokaže po sledeh. DDoS ustvari zelo veliko zahtev in spletno stran upočasni ali naredi nedosegljivo, a ničesar ne spremeni. Exploit pogosto potrebuje le malo zahtev in pusti nove datoteke, račune, procese ali povezave. Pravilna ocena odloča, ali morate zavračati obremenitev ali zajeziti incident.
Razlika v preprostih besedah
Napad DDoS (Distributed Denial of Service) je kot množica ljudi, ki zapira vhod v trgovino. Nihče ne pride noter, a v trgovini se nič ne ukrade. Cilj je preobremeniti vašo spletno stran ali strežnik, da prave stranke ne pridejo več skozi.
Exploit je nasprotno vlom skozi odprta vrata. Napadalec izkoristi ranljivost, na primer v PHP, v CMS-ju ali v razširitvi, da na vašem strežniku izvede kodo. To se lahko zgodi tiho, ne da bi se spletna stran upočasnila. Posledice segajo od strani s spamom prek kraje podatkov do prevzema strežnika.
Za vodstvo je razlika odločilna: DDoS je težava z razpoložljivostjo, ki se konča z napadom. Uspešen exploit je varnostni incident, ki ostane, dokler ni najden, očiščen in dokumentiran.
DDoS ali vdor: znaki v primerjavi
Naslednja tabela pomaga pri prvi oceni. Analize ne nadomesti, pokaže pa, kam najprej pogledati.
| Značilnost | Prej DDoS | Prej exploit ali vdor |
|---|---|---|
| Dosegljivost | počasna ali izpadla | pogosto običajna |
| Zahteve v dnevniku | zelo veliko, pogosto enakomernih | malo ciljnih zahtev |
| Datoteke | nespremenjene | nove ali spremenjene datoteke PHP |
| Računi | nespremenjeni | novi skrbniki, spremenjena gesla |
| Procesi | spletni strežnik in PHP pod polno obremenitvijo | neznani procesi, rudarjenje, pošiljanje spama |
| Omrežje | veliko dohodnega prometa | nenavadne odhodne povezave |
| Po koncu | vse kot prej | sledi ostanejo |
Pozor pri prekrivanjih: množično skeniranje po ranljivosti je lahko videti kot majhen DDoS. Prav to je bilo okoli PHP2Shell pričakovati, ko so napadalci iskali ranljive strežnike. Visoka obremenitev torej lahko pomeni tudi, da nekdo ravno zdaj poskuša vdreti.
Prva preverjanja na strežniku
Naslednji ukazi nič ne spremenijo v sistemu in dajo hiter pregled. Pri sumu na vdor pred večjimi posegi zavarujte dnevnike.
# Obremenitev in čas delovanja
uptime
# Povzetek povezav in najpogostejše nasprotne strani
ss -s
ss -tn state established | awk 'NR>1 {print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn | head
# Najpogostejši naslovi odjemalcev v dnevniku dostopov (pot prilagodite)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
# Datoteke PHP, spremenjene v zadnjih 7 dneh
find /var/www -type f -name '*.php' -mtime -7 -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort
# Procesi z najvišjo obremenitvijo CPE
ps aux --sort=-%cpu | head -15
Pri pregledu povezav četrti stolpec prikazuje nasprotno stran. Veliko povezav z maloštevilnih naslovov ali porast na večkratnik običajne vrednosti kaže na preobremenitev. Nove datoteke PHP v mapah za nalaganje ali predpomnilnik, procesi uporabnika spletnega strežnika s tujimi imeni ali odhodne povezave na neznane cilje prej kažejo na vdor. Obsežen seznam najdete na strani Znaki kompromitacije po PHP2Shell.
Zakaj je lahko visoka obremenitev tudi odvračanje pozornosti
Zgodi se, da napadalci povzročijo preobremenitev, medtem ko hkrati ciljno vdirajo. Ekipa je tedaj zaposlena z dosegljivostjo, prave sledi pa utonejo v šumu v dnevnikih. Zato velja: tudi če je DDoS očiten, po njegovem koncu preverite datoteke, račune in odhodne povezave.
Pri PHP2Shell se dodaja, da po navedbah php.net in varnostnih podjetij ni objavljenih, potrjenih Indicators of Compromise. Odkrivanje temelji na analizi vedenja. Strežnik, ki je bil v obdobju skeniranja od sredine oktobra nepopravljen, je zato treba preveriti ne glede na opaženo obremenitev.
Naslednja različica so izsiljevalska e-sporočila, v katerih se grozi z napadom DDoS, če ne plačate. Takšna sporočila shranite, ne plačujte brez usklajevanja s strokovnjaki in preverite prijavo pri osrednji kontaktni točki za kibernetsko kriminaliteto (ZAC, Zentrale Ansprechstelle Cybercrime nemške policije). Vzporedno obvestite svojega ponudnika gostovanja, da se lahko pripravijo zaščitni ukrepi. Kako za to ovrednotite dnevnike, piše v vodniku Analiza dnevnikov spletnega strežnika po napadu.
Kaj storiti v prvih urah
Pri sumu na DDoS:
- Obvestite ponudnika gostovanja ali računalniški center; tam pogosto obstajajo filtri pred strežnikom.
- Aktivirajte ali zaostrite predhodno zaščitno storitev ali WAF z virtualnim popravljanjem.
- Nastavite omejitve hitrosti (rate limit) v spletnem strežniku in posebej zaščitite drage strani, kot sta iskanje ali košarica.
- Hranite dnevnike, da je napad pozneje mogoče slediti.
Pri sumu na vdor:
- Ničesar ne brišite in strežnika ne postavljajte znova, dokler dnevniki in prizadete datoteke niso zavarovani.
- PHP posodobite na odpravljeno različico in znova zaženite vse workerje, če to še ni storjeno.
- Če posodobitev ni takoj mogoča, spletno stran začasno odklopite z omrežja, kot priporoča BSI (nemški zvezni urad za informacijsko varnost).
- Dostopne podatke obnovite z čiste naprave, ne s strežnika, ki je morda prizadet.
- Dajte preveriti, ali bi lahko bili prizadeti osebni podatki; tedaj lahko tečejo roki za prijavo.
V obeh primerih pomaga kratka, stvarna beležka za ponudnika gostovanja in izvajalce storitev: od kdaj težava obstaja, katere spletne strani so prizadete, kaj ste opazili in kaj je bilo že spremenjeno. Zabeležite tudi, kdo je katero odločitev sprejel. Ta časovnica prihrani čas pri analizi in je pozneje dragocena za zavarovalnico, varstvo podatkov in interno obravnavo. Če ni jasno, ali napad sploh obstaja, stanje previdnostno obravnavajte kot incident, dokler ni dokazano nasprotno.
Kako PHP SOS pomaga konkretno?
- Stanje na daljavo ocenimo na podlagi obremenitve, dnevnikov, datotek in povezav ter vam povemo, s čim imate verjetno opravka.
- Pri preobremenitvi nastavimo filtre, omejitve hitrosti in predhodna zaščitna pravila, dokler napad ne ponehuje.
- Ob sumu na vdor prevzamemo strukturirani odziv na incident: zavarovati, zajeziti, najti vzrok, očistiti.
- Na koncu dokumentiramo, kaj se je zgodilo in kateri ukrepi so bili izvedeni, dokler incident ni zaključen.
Pogosta vprašanja
Ali lahko napad DDoS ukrade podatke?
Čisti napad DDoS cilja na dosegljivost, ne na podatke. Ne spreminja datotek in ne bere podatkovnih zbirk. Lahko pa se pojavi hkrati s poskusom vdora, zato se kljub temu splača pogledati datoteke in račune.
Po čem prepoznam, da je bila moja spletna stran vdrta?
Tipični namigi so nove ali spremenjene datoteke PHP, neznani skrbniški računi, preusmeritve na tuje strani, nepričakovane odhodne povezave in procesi, ki ne ustrezajo vaši aplikaciji. Posamezen znak ni dokaz, več skupaj pa je resen signal.
Ali CDN ali WAF pomaga proti obema vrstama napada?
Proti napadom na osnovi obsega predhodna storitev praviloma dobro pomaga. Proti exploitom pravila delujejo samo, če prepoznajo vzorec. Pri PHP2Shell Cloudflare sam opozarja, da pravila samo na podlagi podatkov zahteve ne zadoščajo.
Ali moram napad DDoS prijaviti?
To je odvisno od posameznega primera in vaše panoge. Brez dostopa do osebnih podatkov obveznost prijave po GDPR praviloma ne velja, lahko pa obstajajo panožne obveznosti. Razjasnite to s pooblaščencem za varstvo podatkov ali odvetnikom.