Skip to content

Odstranitev zlonamerne kode s spletne strani: vodnik za podjetja

17 min read

Odstranitev zlonamerne kode s spletne strani: vodnik za podjetja - Moxy Web

Odstranitev zlonamerne kode s spletne strani: vodnik za podjetja

Administrator preverja sumljive preusmeritve na spletni strani

Če vaša spletna stran nenadoma preusmerja obiskovalce na sumljive strani, brskalnik prikazuje opozorilo ali gostitelj sporoča, da je na strežniku zaznal zlonamerno kodo, imate opravka z okužbo, ki jo je treba odstraniti premišljeno in v pravem vrstnem redu. Odstranitev malware s strani ni le brisanje ene sumljive datoteke: gre za postopek, v katerem najprej omejite škodo, zavarujete dokaze, odstranite vse vstopne točke napadalca, zamenjate dostope, odpravite ranljivost in šele nato stran vrnete v splet. V tem vodniku vam korak za korakom pokažemo, kako se lotiti sanacije, kdaj je obnova iz varnostne kopije pravi izbor in kako preprečite, da bi se okužba čez teden dni vrnila.

Moxy-web
Okrepite varnost svoje spletne strani
Moxy-web razvija prilagojene spletne rešitve ter nudi gostovanje, tehnično podporo in vzdrževanje za podjetja.
Oglejte si storitve Moxy-web

TL;DR

  • Ne brišite takoj vsega: najprej izolirajte stran ali strežnik in izvozite dnevnike, sicer izgubite sledi o tem, kako je napadalec prišel noter.
  • Vidna zlonamerna datoteka je pogosto le simptom; za njo lahko ostanejo web shell, dodatni skrbniški računi in ukradena gesla.
  • Zamenjajte vsa gesla (skrbnik, baza, gostovanje, FTP/SSH), odpravite izkoriščeno ranljivost in šele nato obnovite stran iz preverjeno čiste kopije.
  • Po čiščenju stran spremljajte, v Googlu zahtevajte ponovni pregled in razmislite o prostovoljni prijavi incidenta SI-CERT-u.
  • Ponovno okužbo najbolj zanesljivo preprečijo redne posodobitve, dvofaktorska prijava, centralizirani dnevniki in redne, preverjene varnostne kopije.

Kazalo

1. Kako prepoznate, da je vaša stran okužena

Okužba spletne strani se le redko pokaže z dramatičnim sporočilom na naslovnici. Veliko pogosteje opazite drobne, a zgovorne znake: obiskovalci z mobilnih naprav so preusmerjeni na strani z igrami na srečo ali lažnimi nagradnimi igrami, v iskalniku se pod vašo domeno pojavijo strani v tujem jeziku, ki jih nikoli niste objavili, obrazci pošiljajo nenavadna sporočila, gostitelj pa vas obvesti o povečani porabi virov ali zaznani sumljivi datoteki. Včasih stranka pokliče in pove, da ji je protivirusni program blokiral obisk vaše strani.

Pomemben signal je tudi Google. Ko zazna kompromitirano stran, lahko v rezultatih iskanja prikaže opozorilo, da je na spletnem mestu morda prišlo do vdora, lastnik pa v orodju Search Console vidi primere prizadetih URL-jev. Če imate stran povezano s Search Console, je to eden prvih krajev, kamor pogledate. Google prek storitve Safe Browsing obiskovalce opozarja na nevarna spletna mesta, lastnikom pa pomaga težavo prepoznati in odpraviti, zato tako opozorilo neposredno vpliva na promet in zaupanje.

Razumeti je treba tudi, zakaj je okužba poslovni problem in ne le tehnična nevšečnost. Ameriška agencija CISA v pregledu varnosti spletnih strani med posledicami kompromitacije navaja razobličenje strani, nedosegljivost, krajo občutljivih podatkov in zlorabo strani za napade na obiskovalce. Vaša spletna stran je torej del poslovne infrastrukture, podobno kot poslovni prostor: če nekdo vlomi v trgovino, ne zamenjate le razbitega stekla, temveč preverite, kaj je bilo odneseno, in zamenjate ključavnice.

1. Kako prepoznate, da je vaša stran okužena — overview diagram

2. Prvi koraki: omejite škodo, preden začnete čistiti

Prvi refleks večine lastnikov je, da takoj izbrišejo sumljive datoteke ali prepišejo celotno stran s staro kopijo. Razumljivo je, a prav to je najpogostejša napaka. Smernice OWASP za gostovanje in spletno prisotnost opozarjajo, da s prehitrim prepisovanjem izgubite podatke o začetni točki vdora, obsegu kompromitacije in morebitni kraji podatkov. Brez teh podatkov lahko stran očistite, napadalec pa se vrne skozi ista vrata.

Zato najprej omejite škodo. Stran začasno prestavite v vzdrževalni način ali jo pri gostitelju umaknite iz javnega dostopa, da obiskovalci ne prejemajo zlonamerne kode. Če gre za lasten strežnik ali virtualni strežnik, ga v dogovoru z gostiteljem izolirajte od drugih sistemov, s katerimi je povezan. Nato zavarujte dokaze: izvozite strežniške in spletne dnevnike, dnevnike požarnega zidu, spletnega požarnega zidu (WAF) in omrežja za dostavo vsebin (CDN), naredite kopijo baze podatkov in celotne mape s stranjo v trenutnem, okuženem stanju. CISA pri sumu na vdor v strežnik izrecno priporoča izolacijo in ohranitev dnevnikov pred odstranjevanjem.

Koraki za omejitev škode in ohranitev dokazov

Slovenski nacionalni odzivni center SI-CERT pri prijavi incidenta sprejema prav takšne podatke: dnevnike, vzorce škodljive kode, izvirna sporočila in URL-naslove. Posnetki zaslona preusmeritev ali opozoril prav tako pridejo prav. Če sumite, da so bili ukradeni osebni podatki strank ali da gre za ciljni napad, se pred kakršnimi koli destruktivnimi ukrepi posvetujte s strokovnjakom za odziv na incidente in s pravnikom oziroma pooblaščeno osebo za varstvo podatkov, saj lahko nepremišljeno čiščenje uniči sledi, ki jih boste kasneje potrebovali.

3. Zakaj izbris vidne datoteke ni dovolj

Ko odprete mapo strani in najdete datoteko z nenavadnim imenom ali kodo, ki je očitno ne bi smelo biti tam, se zdi rešitev preprosta. V praksi pa je vidna okužba pogosto le zadnji člen verige. Napadalci običajno za seboj pustijo več vrat: web shell, dodatne skrbniške uporabnike, spremenjene sistemske datoteke, načrtovana opravila, ki okužbo obnavljajo, in ukradena gesla.

Web shell je zlonamerna koda, zapisana na ranljiv spletni strežnik, ki napadalcu omogoča izvajanje ukazov, krajo podatkov in nalaganje dodatnih datotek. Z njim napadalec ohrani dostop tudi po tem, ko ste zaprli prvotno luknjo. Zato je odločitev med hitrim brisanjem in nadzorovano, forenzično podprto sanacijo odvisna od tveganja: preprosta stran z vizitko brez obrazcev in uporabniških računov zahteva drugačen pristop kot spletna trgovina s plačili in bazo strank.

Podobno velja za samodejne preglede. Skenerji pri gostitelju ali varnostni vtičniki so koristni za prvo oceno, a sami po sebi ne zagotavljajo popolne odstranitve. SI-CERT tudi za okužene računalnike opozarja, da protivirusni pregled ne odstrani nujno vse škodljive programske opreme. Pri spletni strani je logika enaka: skener najde znane vzorce, spretno skrite ali nove spremembe pa lahko spregleda.

4. Postopek čiščenja korak za korakom

Ko je škoda omejena in so dokazi zavarovani, se lotite samega čiščenja. Spodnji vrstni red je povzet po priporočilih CISA za odstranjevanje znane zlonamerne kode in web shellov ter prilagojen tipični poslovni spletni strani.

  1. Popis obsega. Primerjajte trenutne datoteke z znano čisto različico (izvorno kodo iz repozitorija ali uradno različico sistema za upravljanje vsebin). Poiščite datoteke, ki so bile spremenjene v obdobju pred zaznavo, in preglejte bazo podatkov za vstavljene skripte ter neznane uporabnike.
  2. Ugotovitev vstopne točke. V dnevnikih poiščite prve sumljive zahteve. Pogosti vzroki so zastarela razširitev, šibko ali ukradeno geslo, ranljiv obrazec za nalaganje datotek ali kompromitiran račun pri gostitelju.
  3. Odstranitev vseh elementov okužbe. Izbrišite web shelle, zlonamerne datoteke, vstavljeno kodo v bazi, neznane skrbniške račune in načrtovana opravila, ki jih niste ustvarili vi.
  4. Zamenjava jedra. Sistemske datoteke in knjižnice ne čistite ročno vrstico za vrstico, temveč jih zamenjajte s svežimi, preverjenimi kopijami iz uradnega vira.
  5. Odprava ranljivosti. Posodobite aplikacijo, strežniško programsko opremo in vse odvisnosti ter zaprite luknjo, skozi katero je napadalec prišel.
  6. Menjava vseh poverilnic. O tem več v šestem poglavju, saj je ta korak tako pomemben, da si zasluži lastno obravnavo.
  7. Potrditev in spremljanje. Ponovno preiščite sistem za indikatorje kompromitacije in stran nekaj tednov pozorno spremljajte, saj se okužba, ki ni bila v celoti odstranjena, pogosto vrne v nekaj dneh.

Zadnji korak se pogosto izpusti, ker je stran na videz spet v redu. CISA pa poudarja, da je treba uspešnost odstranitve potrditi in sistem po obnovi spremljati, sicer napadalec, ki je ohranil dostop, preprosto nadaljuje tam, kjer je ostal.

5. Obnova iz varnostne kopije: kdaj je prava izbira

Varnostna kopija je lahko najhitrejša pot do čiste strani, a le pod dvema pogojema: nastala je pred kompromitacijo in je preverjeno čista. Če ne veste, kdaj je napadalec prvič vstopil, lahko obnovite kopijo, v kateri je web shell že prisoten, in okužbo vrnete na strežnik z lastno roko. CISA zato priporoča obnovo iz neokrnjene slike ali zamenjavo kompromitiranih datotek ter preverjanje celovitosti pred ponovnim zagonom.

Situacija Priporočen pristop
Okužba je sveža, imate kopijo izpred vdora in znan vzrok Obnova iz preverjene kopije, menjava gesel, odprava ranljivosti
Datum vdora ni znan, kopije so morda okužene Čiščenje na podlagi primerjave s čisto izvorno kodo, kopije le za vsebine
Sum kraje podatkov strank ali plačilnih podatkov Vključitev strokovnjaka za odziv na incidente pred kakršnim koli brisanjem
Okužba se po čiščenju vrača Popoln pregled strežnika, gostovanja in povezanih računov, po potrebi selitev na čisto okolje
Stran je zastarela in brez varnostnih posodobitev Razmislek o prenovi namesto večkratnega krpanja

Obnovo iz kopije vedno izvedite šele po odpravi ranljivosti in menjavi gesel, nikoli pred tem. Pri tem vam pomaga tudi dobro zastavljena strategija hrambe: v našem vodniku spletnih varnostnih kopij za podjetja razlagamo, koliko različic hraniti in kje, v prispevku o preverjanju RTO, RPO in obnovljivosti strani pa, kako vnaprej preverite, ali bi obnova v resnici delovala.

6. Gesla, dostopi in povezani sistemi

Menjava gesel je korak, ki ga podjetja najpogosteje opravijo le delno: zamenjajo geslo skrbnika strani, druge dostope pa pustijo nespremenjene. Če je napadalec dostopal do datotek, je zelo verjetno prebral tudi konfiguracijske datoteke z geslom baze podatkov in morda ključe za zunanje storitve. CISA pri odstranjevanju web shellov navaja menjavo gesel skrbnika, baze, gostovanja in FTP/SSH dostopov kot sestavni del sanacije.

V praksi to pomeni, da zamenjate gesla vseh uporabnikov sistema za upravljanje vsebin, gesla baze podatkov, nadzorne plošče gostovanja, FTP, SFTP in SSH dostope, ključe API za plačilne, poštne in analitične storitve ter dostop do registrarja domene. Slednje se pogosto spregleda, čeprav OWASP opisuje napade, pri katerih napadalec s prevzemom računa pri gostitelju ali registrarju spremeni, kaj vaša domena prikazuje. Ob tem povsod, kjer je mogoče, vklopite dvofaktorsko prijavo.

Preverite tudi povezane sisteme. Če je spletna stran povezana s CRM-jem, skladiščnim sistemom ali poštnim strežnikom, preglejte, ali so prek integracij potekale nenavadne zahteve. Pri spletni trgovini preverite, ali je bila v strani za zaključek nakupa vstavljena koda, ki bi lahko prestrezala podatke kupcev. Če so bili osebni podatki ogroženi, se o obveznostih posvetujte s pooblaščeno osebo za varstvo podatkov ali pravnikom, saj so roki za ukrepanje kratki.

7. Google, obiskovalci in SI-CERT

Ko je stran čista, je treba povrniti zaupanje iskalnika in obiskovalcev. Če je Google stran označil kot kompromitirano, v Search Console preglejte poročilo o varnostnih težavah in vzorčne URL-je ter po odpravi zahtevajte ponovni pregled. Google v svoji pomoči za Iskanje poudarja, da morate odpraviti varnostno težavo, ki je okužbo omogočila, sicer lahko do okužbe znova pride. Zahteve za pregled torej ne pošljite, dokler niste prepričani, da je vzrok odpravljen.

Razmislite tudi o obveščanju strank. Kratko, iskreno sporočilo, da ste težavo zaznali, odpravili in okrepili zaščito, običajno ohrani več zaupanja kot molk, še posebej, če so bile stranke preusmerjene na sumljive strani.

Okužbe spletnih strani lahko prostovoljno prijavite SI-CERT-u, ki svetuje, da se okužbo identificira, odstrani in odpravi njene posledice. Zavezanci po zakonu o informacijski varnosti (ZInfV-1) lahko po pojasnilih SI-CERT priglasijo tudi incidente, ki ne dosegajo praga za obvezno poročanje, saj podatki koristijo širši skupnosti. Za manjša in srednje velika podjetja brez lastne varnostne ekipe je to dragocena podpora. SI-CERT na strani informacij za zaščito sistemov objavlja tudi preverjene sezname phishing URL-jev, ki jih lahko vaša IT služba vključi v poštne filtre in druge varnostne sisteme.

8. Kako preprečite ponovno okužbo

Očiščena stran brez sprememb v načinu vzdrževanja je stran, ki čaka na naslednji vdor. CISA za varnost spletnih strani priporoča kombinacijo ukrepov: redne varnostne kopije, centralizirane dnevnike, dvofaktorsko prijavo, politiko varnosti vsebin (CSP), spletni požarni zid, CDN ter statične in dinamične varnostne preglede kode.

Za poslovno spletno stran to v praksi pomeni redne posodobitve aplikacije, strežnika in vseh odvisnosti, čim manj razširitev tretjih oseb, dostope, omejene na tiste, ki jih res potrebujejo, in jasno določeno odgovornost: nekdo mora vedeti, kdo posodablja, kdo pregleduje dnevnike in kdo ukrepa ob opozorilu. Velik del zaščite je tudi v gostovanju; kako ga urediti, pojasnjujemo v vodniku o varnem gostovanju spletne strani, širši okvir pa v prispevku Spletna varnost za podjetja brez nepotrebnih tveganj.

Če se stran okuži večkrat zapored ali temelji na zastareli tehnologiji, ki ne prejema več varnostnih popravkov, je krpanje pogosto dražje od prenove. Kdaj je ta korak smiseln, razlagamo v članku Kdaj je smiselna prenova spletne strani?.

Naš pogled: varnost se začne pri arhitekturi

Pri Moxy-webu spletne strani, trgovine in aplikacije razvijamo po meri in kodo pišemo sami, namesto da bi rešitve sestavljali iz predpripravljenih platform in množice razširitev. Iz izkušenj vemo, da vsaka dodatna komponenta tretje osebe pomeni še ena vrata, ki jih je treba redno zaklepati, zato verjamemo, da je najboljša odstranitev malware tista, ki je ni treba izvesti. Ko je koda pregledna, so integracije z zunanjimi sistemi premišljene in je vsebina urejena prek preprostega uporabniškega vmesnika, ima napadalec manj prostora, vi pa več nadzora.

Hkrati smo realni: nobena stran ni neranljiva. Zato se nam zdi enako pomembno kot varen razvoj tudi to, kar sledi po objavi, torej redno vzdrževanje, posodobitve, nadzor dostopov in varnostne kopije, ki jih občasno tudi zares obnovimo in preverimo. Podjetjem svetujemo, naj o varnosti razmišljajo kot o stalnem procesu in ne kot o enkratnem gašenju požara. Če ob okužbi ugotovite, da vaša stran temelji na zastareli osnovi, je to lahko priložnost za rešitev, ki bo varnejša, hitrejša in preprostejša za upravljanje.

— Ziga

Varna stran z jasnim vzdrževanjem

Če želite, da za varnost vaše spletne strani skrbi ekipa, ki stran pozna do zadnje vrstice kode, vam pri Moxy-webu ponujamo izdelavo spletnih strani, trgovin in aplikacij po meri, gostovanje in registracijo domen ter podporo in vzdrževanje. Z individualnim pristopom ocenimo vaše trenutno stanje in predlagamo rešitev, ki ustreza vašemu poslu. Oglejte si naše storitve ali preberite več o naši ekipi in nam pišite.

Pogosta vprašanja

Ali lahko zlonamerno kodo odstranim sam?

Pri preprosti predstavitveni strani, kjer imate čisto kopijo izpred vdora in poznate vzrok, je to mogoče, če dosledno sledite vrstnemu redu: izolacija, zavarovanje dnevnikov, čiščenje, menjava gesel, odprava ranljivosti in spremljanje. Pri spletni trgovini, strani z uporabniškimi računi ali sumu kraje podatkov pa je varneje vključiti strokovnjaka, saj napaka pri čiščenju lahko uniči dokaze ali pusti napadalcu dostop.

Koliko časa traja odstranitev okužbe?

Trajanje je odvisno od obsega okužbe, kakovosti varnostnih kopij in tega, kako hitro ugotovite vstopno točko. Preprost primer s čisto kopijo je lahko rešen hitro, zapleten vdor z več web shelli in kompromitiranimi računi pa zahteva temeljitejšo analizo. Ne pozabite, da se po čiščenju začne še obdobje spremljanja, ki traja nekaj tednov.

Ali je dovolj, da stran obnovim iz varnostne kopije?

Ne vedno. Kopija je uporabna le, če je nastala pred vdorom in je preverjeno čista, obnovo pa izvedete šele po menjavi gesel in odpravi ranljivosti. Sicer napadalec znova vstopi skozi ista vrata ali pa z okuženo kopijo obnovite tudi web shell.

Ali moram okužbo prijaviti SI-CERT-u?

Za večino podjetij je prijava okužene spletne strani prostovoljna, a koristna, saj SI-CERT podatke uporablja za prepoznavo okuženih sistemov in opozarjanje drugih. Zavezanci po ZInfV-1 imajo posebne obveznosti poročanja, zato naj preverijo pojasnila SI-CERT. Če so bili ogroženi osebni podatki, se o dodatnih obveznostih posvetujte s pooblaščeno osebo za varstvo podatkov.

Kako dolgo bo Google prikazoval opozorilo po čiščenju?

Opozorilo običajno izgine, ko Google po vaši zahtevi za pregled v Search Console potrdi, da je stran čista. Zahtevo pošljite šele, ko ste odpravili vzrok okužbe, sicer bo pregled neuspešen in postopek se podaljša.

Viri

Priporočeno

Read next

Got a project, or just a question?

Write us a few sentences about your business and what you would like to change. It doesn't have to be precise or fully thought through.