Modul 7 · 7.5
Vdor v spletno mesto: prepoznavanje, odprava in preprečevanje
Modul 7: Varnost · Čas branja: 10 minut
Učni cilj: Po tej lekciji boste znali prepoznati vdor, ga v pravilnem vrstnem redu odpraviti in preprečiti, da bi se ponovil.
Ključni pojmi: znaki vdora, dokumentiranje, izolacija, zamenjava vseh gesel in salts, iskanje vstopne točke, dnevniki, čista varnostna kopija, čista ponovna namestitev, kontrolne vsote, neznani skrbniki, PHP v uploads, mu-plugins, Search Console, prijava kršitve varstva podatkov
Kaj pomeni vdor
Spletno mesto je vdrto, če je nekdo brez dovoljenja pridobil nadzor nad (delom) Vašega spletnega mesta: lahko spreminja datoteke ali podatkovno bazo, ali zažene kodo. Pogosto ostane znotraj prek stranskih vrat (backdoor): skrite datoteke ali koščka kode, s katerim se lahko kasneje vrne, tudi če zaprete prvotno luknjo.
To zadnje je bistvo te lekcije: samo odstranjevanje vidne škode ni dovolj. Dokler so stranska vrata prisotna, ali je luknja, skozi katero je vstopil, odprta, se bo zgodilo znova. Pogosto v nekaj dneh.
Prepoznavanje
Znaki (nekatere opazite sami, druge morate poiskati):
- Google pri Vašem spletnem mestu sporoči »To spletno mesto je morda vdrto«, ali Search Console javi varnostno težavo.
- V rezultatih iskanja (
site:example.com) se pojavijo strani, ki jih ne poznate, pogosto v drugem jeziku ali o zdravilih, igrah na srečo ali lažnih trgovinah. - Obiskovalci so preusmerjeni, pogosto le če prihajajo prek Googla ali na telefonu. Vi tega ne vidite, ker ste prijavljeni ali prihajate prek zaznamka. Preizkusite v zasebnem oknu prek rezultata iskanja.
- Pri Uporabnikih je naveden skrbnik, ki ga ne poznate.
- V mapi
wp-content/uploadsso datoteke PHP, ali datoteke s čudnimi imeni v glavni mapi ali vwp-content/mu-plugins. - Vaš ponudnik gostovanja ali optični pregledovalnik za zlonamerno programsko opremo javi okužene datoteke; Vaša e-pošta je zavrnjena ali Vaš paket pošilja neželeno pošto.
- Spletno mesto je nenadoma počasno ali se Vaš prostor za shranjevanje polni.
Načrt korakov
1. Ostanite mirni in dokumentirajte
Ne zavrzite vsega takoj. Zapišite, kaj opažate in od kdaj, naredite posnetke zaslona in naredite kopijo trenutnega stanja (datoteke in podatkovna baza, ali dodatna varnostna kopija prek Vašega ponudnika gostovanja). To kopijo boste potrebovali za iskanje vstopne točke in kot dokaz. Ne shranjujte je v spletni mapi.
2. Ustavite škodo za obiskovalce
Začasno izklopite spletno mesto ali ga skrijte za stran za vzdrževanje, zlasti če so obiskovalci preusmerjeni na zlonamerno programsko opremo ali lažno predstavljanje (phishing). Pri DirectAdmin lahko domeno začasno ustavite; drugje lahko uporabite geslo za celotno spletno mesto ali začasno datoteko index.html z obvestilom.
3. Zamenjajte vsa gesla in ključe
Izhajajte iz tega, da vlomilec pozna vsako geslo, ki je bilo dostopno na spletnem mestu ali prek njega. Zamenjajte, po možnosti z drugega (čistega) računalnika:
- geslo Vaše nadzorne plošče za gostovanje in vseh računov FTP in SFTP (odstranite račune, ki jih ne uporabljate);
- geslo uporabnika podatkovne baze, in ga prilagodite v wp-config.php;
- gesla vseh skrbnikov WordPressa, in odstranite račune, ki jih ne poznate;
- ključe in salts v wp-config.php (lekcija 1.3). S tem prenehajo veljati vsi prijavni piškotki, tudi tisti vlomilca;
- gesla aplikacij (lekcija 3.3) in API-ključe povezav;
- gesla za e-pošto, če je neželena pošta šla prek poštnega predala.
Nato povsod vklopite dvostopenjsko preverjanje (2FA) (lekcija 7.3).
4. Poiščite vstopno točko
Brez poznavanja vstopne točke ne morete biti prepričani, da je zaprta. Najpogostejši vzroki (lekcija 7.1) in kje jih iščete:
- Zastarel vtičnik ali tema: kateri deli so zaostajali? Preverite imena v zbirki podatkov o ranljivostih (lekcija 5.3).
- Uhajano geslo: preverite zgodovino prijav v nadzorni plošči za gostovanje in pri FTP.
- Dnevniki spletnega strežnika: okoli trenutka, ko so se pojavile prve čudne datoteke, iščite zahteve POST na neznane datoteke ali na datoteke vtičnikov, pogosto z istega IP-naslova.
- Datoteke po datumu: razvrstite v Upravitelju datotek ali prek SFTP po datumu spremembe. Datoteke, ki so bile spremenjene istočasno, zlasti izven posodobitve, si zaslužijo pozornost.
5. Čiščenje
Dve poti, in pogosto kombinacija obeh:
A. Obnovitev čiste varnostne kopije izpred vdora (lekcija 8.2). Izberite varnostno kopijo zagotovo izpred prvih znakov, saj vlomilci včasih čakajo tedne. Obnovite v celoti, da izginejo tudi dodane datoteke. Nato takoj vse posodobite (sicer bo luknja spet tam). Slabost: vse po varnostni kopiji (prispevki, naročila) je izgubljeno.
B. Čista ponovna izgradnja z obstoječo vsebino:
- Zamenjajte sam WordPress s svežo kopijo iz wordpress.org (wp-admin, wp-includes in posamezne datoteke; ne wp-content in wp-config.php). Z WP-CLI lahko najprej preverite, kaj se je spremenilo:
wp core verify-checksums
wp plugin verify-checksums --allTi ukaza primerjata Vaše datoteke z uradnimi različicami in javita vsako spremenjeno ali dodatno datoteko (drugi ukaz le za vtičnike iz mape vtičnikov wordpress.org).
- Odstranite vse vtičnike in teme ter jih znova namestite iz vira, v najnovejši različici. Kar ne potrebujete, se ne vrne.
- Preverite
wp-content/uploadsglede datotek PHP in drugih datotek, ki niso mediji, inwp-content/mu-plugins. - Preverite
.htaccessglede čudnih pravil preusmeritve, in wp-config.php glede vrstic, ki jih ne poznate. - Preverite podatkovno bazo: neznane skrbnike, nastavitve
siteurl,homeinactive_pluginsvwp_options, ter v prispevkih poiščite vstavljene skripte (<scripts čudnimi naslovi). - Preglejte načrtovane naloge: opravila cron v nadzorni plošči za gostovanje in WP-Cron (z vtičnikom ali
wp cron event list).
Optični pregledovalnik za zlonamerno programsko opremo (Vašega ponudnika gostovanja ali vtičnik) pomaga pri iskanju, vendar se nanj ne zanašajte slepo: kar ne najde, je lahko še vedno prisotno.
6. Zaprite in preverite
- Vse posodobite, utrdite (lekcija 7.4) in ponovno vklopite spletno mesto.
- Je Vaše spletno mesto pri Googlu označeno kot nevarno? V Search Console pod Varnostne težave zahtevajte novo oceno, šele ko je vse čisto.
- Naslednje tedne spremljajte: nove datoteke, nove skrbnike, obvestila Vašega optičnega pregledovalnika. Če se ponovi, vstopna točka ali stranska vrata še niso bila najdena.
Osebni podatki: prijava kršitve varstva podatkov
Če so vlomilci lahko dostopali do osebnih podatkov (podatkov strank spletne trgovine, odgovorov na obrazce, seznamov članov, uporabnikov Vašega spletnega mesta), gre za kršitev varstva podatkov v smislu GDPR. To morate v 72 urah po odkritju prijaviti Informacijskemu pooblaščencu, razen če ni verjetno, da pomeni tveganje za osebe, na katere se nanaša (člen 33 GDPR). Če je tveganje visoko, morate te osebe tudi sami obvestiti (člen 34). Vsekakor dokumentirajte, kaj se je zgodilo in kaj ste storili, tudi če ne prijavite. Če ste v dvomih, si oglejte spletno stran organa za varstvo podatkov v Vaši državi (v Sloveniji: Informacijski pooblaščenec) (lekcija 9.3).
Prošnja za pomoč
Čiščenje po vdoru zahteva čas in izkušnje. Če niste prepričani, ali ste odpravili vse, poiščite pomoč: Vašega izdelovalca spletnih strani, specializirano podjetje, ali Vašega ponudnika gostovanja (nekateri ponudniki, tudi WebOké, to ponujajo, večinoma proti plačilu). Dajte jim kopijo iz 1. koraka, kaj ste opazili in kdaj, ter kaj ste že storili.
Povzetek
- Vdor pogosto pusti stranska vrata; samo odstranjevanje vidne škode ni dovolj.
- Vrstni red: dokumentiranje, zaščita obiskovalcev, zamenjava vseh gesel in salts, iskanje vstopne točke, čiščenje, zapiranje in preverjanje.
- Čiščenje je mogoče s čisto varnostno kopijo precej izpred vdora, ali s svežo namestitvijo WordPressa, vtičnikov in tem ter pregledom uploads, mu-plugins, .htaccess in podatkovne baze.
wp core verify-checksumsprikaže, katere datoteke WordPressa so bile spremenjene.- Če je šlo za osebne podatke, prijavite kršitev varstva podatkov v 72 urah Informacijskemu pooblaščencu, razen če tveganje ni verjetno.
Kviz
Naloga
Naloga D7.5: Vaš načrt ukrepanja ob vdoru. Izpolnite načrt ukrepanja za Vaše lastno spletno mesto, da Vam ga ne bo treba izmišljati, ko bo prišlo do tega: kje so Vaše varnostne kopije in kako daleč nazaj segajo, kdo ima katera gesla in kako jih vsa zamenjate (seznam), kje najdete dnevnike Vašega gostovanja, koga pokličete za pomoč, in kateri osebni podatki so na Vašem spletnem mestu (za vprašanje, ali morate prijaviti kršitev varstva podatkov). Nato naredite vajo: katerih pet korakov naredite v prvi uri, ko prejmete obvestilo »To spletno mesto je morda vdrto«, v kakšnem vrstnem redu in zakaj ravno v tem vrstnem redu?
Naloga D7.5: Vaš načrt ukrepanja ob vdoru
To nalogo opravite sami; nihče je ne pregleda. Odkljukajte, kar ste naredili, in nalogo označite kot opravljeno.
Najprej zabeležite stanje (zajemi zaslona, shranjeni dnevniki), preden kaj izbrišete; zaščitite obiskovalce (spletno mesto izklopite ali prikažite stran za vzdrževanje); zamenjajte vsa gesla in salts; poiščite vstopno točko; šele nato opravite čisto obnovitev. Zgolj obnovitev brez odprave vstopne točke pusti vrata odprta.
Vaše kljukice in zapiski ostanejo samo v tem brskalniku, nikamor jih ne pošiljamo. Če ste prijavljeni, v Moji tečaji shranimo samo podatek, da ste nalogo opravili.
Dodatno branje
Ti članki opisujejo korake v nadzornih ploščah WebOké; pri drugih ponudnikih delujejo podobno.
- Priročnik DirectAdmin 18.2: Moje spletno mesto je vdrto: načrt korakov
- Pomoč! Moja spletna stran je bila vdrta. Kako to rešim oziroma preprečim?
- Priročnik DirectAdmin 15.11: Imunify360: skeniranje Vaše spletne strani za zlonamerno programsko opremo
- Priročnik DirectAdmin 17.2: Povzetek in dnevniki spletnega mesta: dnevnik napak in dnevnik dostopa
- Priročnik DirectAdmin 3.4: Zgodovina prijave: kdo in kdaj se je prijavil?
- Kršitve varstva podatkov (nizozemski organ za varstvo podatkov, Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- Pogosta vprašanja: moje spletno mesto je bilo vdrto (wordpress.org, angleško): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
