Modul 7 · 7.5
Hakirano: prepoznavanje, oporavak i prevencija
Modul 7: Sigurnost · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete prepoznati hakiranje, oporaviti se pravilnim redoslijedom i spriječiti da se ponovno dogodi.
Ključni pojmovi: znakovi hakiranja, dokumentiranje, izolacija, zamjena svih lozinki i saltova, pronalaženje ulaza, zapisnici (logovi), čista sigurnosna kopija, čista ponovna instalacija, kontrolne sume, nepoznati administratori, PHP u uploads mapi, mu-plugins, Search Console, prijava povrede osobnih podataka
Što je hakiranje
Web-stranica je hakirana kada netko bez dopuštenja preuzme kontrolu nad (dijelom) Vaše web-stranice: može mijenjati datoteke ili bazu podataka, ili pokretati kod. Često ostaje unutar sustava kroz stražnja vrata: skrivenu datoteku ili dio koda putem kojeg se kasnije može vratiti, čak i ako zatvorite izvorni propust.
To je srž ove lekcije: samo uklanjanje vidljive štete nije dovoljno. Dok god stražnja vrata postoje, ili je propust kroz koji je ušao i dalje otvoren, to će se ponoviti. Često u roku od nekoliko dana.
Prepoznavanje
Znakovi (neke ćete vidjeti, neke morate potražiti):
- Google kod Vaše web-stranice prijavljuje "Ova stranica je možda hakirana", ili Search Console prijavljuje sigurnosni problem.
- U rezultatima pretraživanja (
site:example.com) pojavljuju se stranice koje ne prepoznajete, često na drugom jeziku ili o lijekovima, kockanju ili lažnim trgovinama. - Posjetitelji se preusmjeravaju, često samo ako dolaze preko Googlea ili s mobitela. Vi to ne vidite jer ste prijavljeni ili dolazite putem oznake (bookmark). Testirajte u privatnom prozoru putem rezultata pretraživanja.
- Kod Korisnika se nalazi administrator kojeg ne prepoznajete.
- U mapi
wp-content/uploadsnalaze se PHP datoteke, ili datoteke sa čudnim imenima u glavnoj mapi ili uwp-content/mu-plugins. - Vaš hosting ili skener zloćudnog softvera prijavljuje zaražene datoteke; Vaša e-pošta se odbija ili Vaš paket šalje neželjenu poštu (spam).
- Web-stranica je odjednom spora ili Vam se prostor za pohranu puni.
Plan koraka
1. Ostanite mirni i dokumentirajte
Nemojte odmah sve odbaciti. Zabilježite što vidite i od kada, napravite snimke zaslona, i napravite kopiju trenutnog stanja (datoteke i baza podataka, ili dodatnu sigurnosnu kopiju putem Vašeg hostinga). Ta kopija Vam je potrebna za pronalaženje ulaza, i kao dokaz. Nemojte je spremati u web mapu.
2. Zaustavite štetu za posjetitelje
Privremeno isključite web-stranicu ili je stavite iza stranice za održavanje, posebno ako se posjetitelji preusmjeravaju na zloćudni softver ili phishing. Kod DirectAdmina možete suspendirati domenu; drugdje može pomoći lozinka za cijelu web-stranicu ili privremena datoteka index.html s porukom.
3. Zamijenite sve lozinke i ključeve
Pretpostavite da uljez zna svaku lozinku koja se mogla pronaći na web-stranici ili putem nje. Zamijenite, po mogućnosti s drugog (čistog) računala:
- lozinku Vaše hosting kontrolne ploče i svih FTP i SFTP računa (uklonite račune koje ne koristite);
- lozinku korisnika baze podataka, i prilagodite je u wp-config.php;
- lozinke svih WordPress administratora, i uklonite račune koje ne prepoznajete;
- ključeve i saltove u wp-config.php (lekcija 1.3). Time se poništavaju svi kolačići za prijavu, uključujući i one uljeza;
- lozinke aplikacija (lekcija 3.3) i API ključeve povezivanja;
- lozinke e-pošte, ako je neželjena pošta slana putem poštanskog sandučića.
Nakon toga uključite dvofaktorsku autentifikaciju (2FA) na svemu (lekcija 7.3).
4. Pronađite ulaz
Bez poznavanja ulaza, ne možete biti sigurni da je zatvoren. Najčešći uzroci (lekcija 7.1), i gdje tražiti:
- Zastarjeli dodatak (plugin) ili tema: koji su dijelovi zaostajali? Potražite imena u bazi ranjivosti (lekcija 5.3).
- Procurjela lozinka: pogledajte povijest prijava Vaše hosting kontrolne ploče i FTP-a.
- Zapisnici (logovi) web poslužitelja: potražite oko trenutka kad su se pojavile prve čudne datoteke, POST zahtjeve prema nepoznatim datotekama ili datotekama dodataka (plugina), često s iste IP adrese.
- Datoteke prema datumu: sortirajte u File Manageru ili putem SFTP-a po datumu izmjene. Datoteke koje su izmijenjene istodobno, posebno izvan ažuriranja, zaslužuju pažnju.
5. Čišćenje
Dva puta, i često kombinacija:
A. Vraćanje čiste sigurnosne kopije od prije hakiranja (lekcija 8.2). Odaberite sigurnosnu kopiju sigurno od prije prvih znakova, jer uljezi ponekad čekaju tjednima. Vratite potpuno, tako da nestanu i dodane datoteke. Nakon toga odmah sve ažurirajte (inače će propust ponovno biti tamo). Nedostatak: sve nakon sigurnosne kopije (objave, narudžbe) je izgubljeno.
B. Čista ponovna izgradnja s postojećim sadržajem:
- Zamijenite sâm WordPress svježom kopijom s wordpress.org (wp-admin, wp-includes i pojedinačne datoteke; ne wp-content i wp-config.php). S WP-CLI prvo možete provjeriti što je izmijenjeno:
wp core verify-checksums
wp plugin verify-checksums --allOvo uspoređuje Vaše datoteke sa službenim verzijama i prijavljuje svaku izmijenjenu ili dodatnu datoteku (drugi naredba samo za dodatke (pluginove) iz mape dodataka na wordpress.org).
- Uklonite sve dodatke (pluginove) i teme i ponovno ih instalirajte iz izvora, u najnovijoj verziji. Ono što ne trebate, neće se vratiti.
- Provjerite
wp-content/uploadsna PHP datoteke i druge datoteke koje nisu mediji, iwp-content/mu-plugins. - Provjerite
.htaccessna čudna pravila preusmjeravanja, i wp-config.php na pravila koja ne prepoznajete. - Provjerite bazu podataka: nepoznate administratore, opcije
siteurl,homeiactive_pluginsuwp_options, i potražite u objavama ubačene skripte (<scripts čudnim adresama). - Pogledajte zakazane zadatke: cronjobove u Vašoj hosting kontrolnoj ploči i WP-Cron (s dodatkom (pluginom) ili
wp cron event list).
Sigurnosni skener zloćudnog softvera (od Vašeg hostinga ili dodatka) pomaže u pronalaženju, ali mu nemojte slijepo vjerovati: ono što ne pronađe, može i dalje postojati.
6. Zatvorite i provjerite
- Ažurirajte sve, pojačajte sigurnost (lekcija 7.4) i ponovno uključite web-stranicu.
- Je li Vaša web-stranica kod Googlea označena kao nesigurna? Zatražite u Search Console pod Sigurnosnim problemima novu provjeru, tek kad sve bude čisto.
- Pratite narednih tjedana: nove datoteke, nove administratore, obavijesti Vašeg skenera. Ako se ponovi, znači da ulaz ili stražnja vrata još nisu pronađeni.
Osobni podaci: prijava povrede osobnih podataka
Ako su uljezi mogli pristupiti osobnim podacima (podaci o kupcima internetske trgovine, prijave putem obrazaca, popisi članova, korisnici Vaše web-stranice), tada se radi o povredi osobnih podataka u smislu GDPR-a (OUZP). Tada ste dužni u roku od 72 sata nakon otkrivanja prijaviti to AZOP-u (Agencija za zaštitu osobnih podataka), osim ako nije vjerojatno da predstavlja rizik za osobe na koje se odnosi (članak 33 GDPR-a). Ako je rizik visok, morate obavijestiti i te osobe (članak 34). U svakom slučaju zabilježite što se dogodilo i što ste poduzeli, čak i ako ne prijavljujete. Ako ste u nedoumici, pogledajte stranicu tijela za zaštitu podataka u Vašoj zemlji (u Hrvatskoj: AZOP) (lekcija 9.3).
Zatražite pomoć
Čišćenje nakon hakiranja zahtijeva vrijeme i iskustvo. Ako niste sigurni da ste sve riješili, zatražite pomoć: Vašeg izrađivača web-stranice, specijaliziranu tvrtku, ili Vaš hosting (neki hostinzi, uključujući WebOké, nude to, obično uz naplatu). Dajte im kopiju iz koraka 1, što ste primijetili i kada, i što ste već poduzeli.
Sažetak
- Hakiranje često ostavlja stražnja vrata; samo uklanjanje vidljive štete nije dovoljno.
- Redoslijed: dokumentiranje, zaštita posjetitelja, zamjena svih lozinki i saltova, pronalaženje ulaza, čišćenje, zatvaranje i provjera.
- Čišćenje se može napraviti čistom sigurnosnom kopijom od davno prije hakiranja, ili svježom instalacijom WordPressa, dodataka (pluginova) i tema te provjerom uploads mape, mu-plugins, .htaccess i baze podataka.
wp core verify-checksumspokazuje koje su datoteke WordPressa izmijenjene.- Ako je riječ o osobnim podacima, prijavite povredu osobnih podataka u roku od 72 sata AZOP-u, osim ako rizik nije vjerojatan.
Kviz
Zadatak
Zadatak D7.5: Vaš plan za slučaj hakiranja. Ispunite plan za hitne slučajeve za Vašu web-stranicu, kako ga ne biste morali smišljati kad dođe trenutak: gdje se nalaze Vaše sigurnosne kopije i koliko daleko unatrag sežu, tko ima koje lozinke i kako ćete ih sve zamijeniti (popis), gdje se nalaze zapisnici (logovi) Vašeg hostinga, koga zvati za pomoć, i koji se osobni podaci nalaze na Vašoj web-stranici (za pitanje treba li prijaviti povredu osobnih podataka). Zatim napravite vježbu: kojih pet koraka poduzimate u prvom satu kad dobijete poruku "Ova stranica je možda hakirana", kojim redoslijedom, i zašto taj redoslijed?
Zadatak D7.5: Vaš plan za slučaj hakiranja
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Prvo zabilježite (snimke zaslona, čuvajte zapise) prije nego nešto obrišete; zaštitite posjetitelje (web-stranica izvan pogona ili stranica za održavanje); zamijenite sve lozinke i salts; pronađite put kojim je napadač ušao; tek nakon toga čisto vratite sigurnosnu kopiju. Samo vraćanje sigurnosne kopije bez zatvaranja ulaza ostavlja vrata otvorena.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno čitanje
Ovi članci opisuju korake u kontrolnim pločama WebOké; u drugim kontrolnim pločama rade na sličan način.
- DirectAdmin priručnik 18.2: Moja web stranica je hakirana: plan koraka
- Upomoć! Moja web stranica je hakirana. Kako to riješiti ili spriječiti?
- DirectAdmin priručnik 15.11: Imunify360: skeniranje Vaše web stranice na malware
- DirectAdmin priručnik 17.2: Site summary & logs: log pogrešaka i log pristupa
- DirectAdmin priručnik 3.4: Login History: tko se i kada prijavio?
- Povrede osobnih podataka (nizozemsko tijelo za zaštitu podataka, Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- Česta pitanja: moja web-stranica je hakirana (wordpress.org, engleski): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
