Sigurnost web stranice često se pogrešno poistovjećuje sa sigurnošću samog hosting poslužitelja.
To, međutim, nisu iste stvari.
Hosting pružatelj može štititi infrastrukturu, mrežu, operativni sustav i same hosting servise, ali web stranica je zasebna aplikacija sastavljena od CMS-a, dodataka, tema, ekstenzija, korisničkih računa i vlastitog koda. Svaka od tih komponenti može sadržavati ranjivost neovisno o sigurnosti samog poslužitelja.
WordPress, Joomla i drugi popularni CMS sustavi svakodnevno su meta automatiziranih napada upravo zato što su široko rasprostranjeni i njihov je kod javno dostupan.
Zbog toga sigurnost web stranice nije jednokratna radnja nego proces koji uključuje ažuriranje, nadzor, sigurnosne kopije, kontrolu pristupa i reakciju ako se pojavi kompromitacija.
Važna razlika: hosting nije isto što i održavanje web stranice
Zakup web hostinga podrazumijeva prostor i infrastrukturu potrebnu za rad web stranice.
Sam zakup hostinga ne znači automatski da 8Core preuzima administraciju, održavanje i sigurnosni nadzor aplikacije koju je korisnik smjestio na hosting račun.
Primjerice, ako korisnik instalira WordPress, Joomla CMS, dodatak ili temu koja sadrži sigurnosnu ranjivost, sama činjenica da se stranica nalazi na 8Core hostingu ne znači da je održavanje te aplikacije uključeno u osnovnu cijenu hostinga.
Isto vrijedi za:
- redovno ažuriranje CMS-a;
- ažuriranje dodataka, tema i ekstenzija;
- uklanjanje napuštenih ili ranjivih komponenti;
- provjeru administratorskih računa;
- sigurnosni nadzor same aplikacije;
- analizu kompromitacije;
- ručno uklanjanje malwarea;
- sanaciju posljedica hakerskog napada.
Takve usluge mogu biti dio posebno ugovorenog održavanja, dodatne sigurnosne usluge ili managed hosting paketa.
Detaljna prava i obveze korisnika i 8Corea definirani su našim Uvjetima korištenja.
Uvjeti korištenja posebno navode obvezu korisnika da redovito ažurira open-source CMS, dodatke i ekstenzije te da vodi računa o zaštiti vlastite web aplikacije. Također je definirano da problemi aplikacija trećih strana koji nisu uzrokovani kvarom hosting infrastrukture nisu dio standardne besplatne tehničke podrške.
Drugim riječima: brinemo o sigurnosti infrastrukture koju pružamo, ali ne možemo po definiciji preuzeti odgovornost za svaki plugin, temu, CMS ili kod koji korisnik instalira na svoj hosting račun.
Kada korisnik želi da i taj dio bude naša briga, za to postoje usluge dodatne zaštite i upravljanog hostinga.
Kako web stranice najčešće budu kompromitirane
Suprotno čestoj pretpostavci, većina kompromitiranih web stranica nije rezultat uspješnog napada na cijeli hosting poslužitelj.
Napadači daleko češće pronalaze slabost unutar same web aplikacije.
Najčešći uzroci su sljedeći.
Zastarjeli CMS, dodatak ili tema
WordPress, Joomla i drugi CMS sustavi redovito dobivaju sigurnosne nadogradnje.
Isto vrijedi za dodatke, teme i ekstenzije.
Ako se otkrije ranjivost, detalji vrlo brzo postanu javno poznati, nakon čega automatizirani botovi počinju pretraživati internet i tražiti instalacije koje još nisu nadograđene.
Takvom napadu često nije prethodilo nikakvo ciljano praćenje određene web stranice. Bot jednostavno pronađe ranjivu verziju i pokuša iskoristiti poznati sigurnosni propust.
Kompromitirani pristupni podaci
Napadač ne mora uvijek pronaći programsku ranjivost.
Ponekad je dovoljno da dođe do:
- administratorske lozinke CMS-a;
- FTP ili SFTP pristupa;
- SSH pristupa;
- pristupa hosting računu;
- pristupa bazi podataka;
- administratorske e-mail adrese.
Do krađe pristupnih podataka može doći phishingom, malwareom na lokalnom računalu, ponovnim korištenjem iste lozinke na više servisa ili kompromitacijom nekog drugog sustava.
Piratski i „nulled“ dodaci i teme
Posebnu kategoriju predstavljaju ilegalne ili izmijenjene verzije komercijalnih dodataka i tema.
Takav dodatak može naizgled normalno raditi, dok se istovremeno u njegovom kodu nalazi skriveni backdoor, uploader ili drugi zlonamjerni kod.
U tom slučaju korisnik praktično sam instalira napadaču pristup u web stranicu.
Zbog toga kod sigurnosnih intervencija ne preporučujemo zadržavanje kompromitiranih ili nepouzdanih dodataka čak ni nakon ručnog uklanjanja dijela sumnjivog koda.
Kako prepoznati da nešto nije u redu
Kompromitirana web stranica ne mora prestati raditi.
Dobar malware upravo suprotno pokušava ostati što manje primjetan.
Ponekad prvi znak nije velika greška nego sitna promjena u ponašanju stranice.
Na vašoj domeni prikazuje se nešto što ne pripada vašoj stranici
Ako se pojavi potpuno druga stranica, izmijenjena naslovnica ili sadržaj koji nitko nije objavio, moguće je da su promijenjene datoteke, baza podataka ili konfiguracija web aplikacije.
Posjetitelji se preusmjeravaju na druge stranice
Zlonamjerna preusmjeravanja vrlo su česta.
Posebno ih je teško otkriti kada se aktiviraju samo pod određenim uvjetima.
Primjerice, administrator koji izravno otvara svoju stranicu može vidjeti potpuno normalan sadržaj, dok posjetitelj koji dolazi s Googlea završi na sasvim drugoj domeni.
Pojavio se nepoznat sadržaj
Nepoznati tekstovi, linkovi, reklame, popup prozori ili izmijenjene stranice mogu biti znak da je napadač dobio mogućnost uređivanja sadržaja.
Ponekad je promjena očita, a ponekad je skrivena duboko u stranici kako bi služila samo za SEO spam ili preusmjeravanje prometa.
Google ili preglednik upozorava na opasnu stranicu
Ako Google ili web preglednik stranicu označe kao nesigurnu, vrlo je moguće da je pronađen malware, phishing sadržaj ili druga opasna aktivnost.
Takva oznaka može ozbiljno utjecati na promet, povjerenje korisnika i rezultate pretraživanja.
Pojavili su se nepoznati administratori, datoteke ili dodaci
Napadači vrlo često pokušavaju osigurati više načina povratka.
Jedan backdoor može biti uklonjen, ali drugi ostane skriven.
Zato kod kompromitacije možemo pronaći:
- nove administratorske račune;
- izmijenjene postojeće korisnike;
- lažne ili skrivene dodatke;
- PHP datoteke na mjestima gdje im nije mjesto;
- izmijenjene sistemske datoteke;
- skrivene uploadere ili command shelle.
Stranica odjednom troši puno resursa
Naglo povećanje CPU-a, memorije ili broja procesa može biti posljedica zlonamjernog koda.
Kompromitirani račun može se koristiti za:
- slanje neželjene pošte;
- napade na druge sustave;
- generiranje lažnog prometa;
- izvršavanje automatiziranih skripti;
- rudarenje kriptovaluta;
- skrivanje drugih zlonamjernih aktivnosti.
Što učiniti ako sumnjate na kompromitaciju
Najvažnije je sačuvati što više informacija.
Nemojte nasumično brisati sve što izgleda nepoznato.
Ako sumnjate na kompromitaciju, zabilježite:
- kada ste prvi put primijetili problem;
- URL na kojem se pojavljuje;
- eventualna preusmjeravanja;
- poruke o greškama;
- snimke zaslona;
- nedavno instalirane ili ažurirane dodatke;
- druge neuobičajene promjene.
Takve informacije mogu značajno skratiti vrijeme potrebno za pronalazak izvora problema.
Nemojte odmah obrisati cijelu instalaciju
Zaražene datoteke često predstavljaju vrijedan trag.
Mjesto datoteke, vrijeme njezine izmjene, sadržaj i veze s drugim datotekama mogu pomoći u otkrivanju načina na koji je napadač ušao u sustav.
Ako se kompromitirana instalacija odmah potpuno obriše, može nestati velik dio tragova potrebnih za razumijevanje napada.
Još važnije, samo brisanje posljedica ne uklanja nužno ranjivost.
Ako je ranjivi dodatak ponovno instaliran bez ažuriranja, kompromitacija se može vrlo brzo ponoviti.
Ako je potrebno zaštititi posjetitelje tijekom analize, stranicu je sigurnije privremeno staviti u maintenance način rada ili ograničiti pristup.
Kako izgleda sigurnosni pregled
Kod sigurnosne intervencije prvo pokušavamo utvrditi opseg kompromitacije.
Postupak može uključivati:
- dubinsko skeniranje datoteka;
- pregled novostvorenih i nedavno izmijenjenih datoteka;
- traženje poznatih obrazaca zlonamjernog koda;
- provjeru sistemskih datoteka CMS-a;
- provjeru dodataka, tema i ekstenzija;
- kontrolu administratorskih računa;
- pregled važnih konfiguracijskih datoteka;
- usporedbu trenutačnog stanja s ranije poznatim ispravnim stanjem;
- provjeru načina na koji bi napadač mogao zadržati pristup.
Kod WordPress instalacije kompromitirane sistemske datoteke mogu se zamijeniti čistom kopijom WordPress jezgre.
Kod drugih CMS sustava primjenjuje se isti princip gdje god je to tehnički moguće.
Zašto nije dovoljno pronaći samo jednu zaraženu datoteku
Malware vrlo rijetko mora ostati ograničen na jednu datoteku.
Jedna kompromitirana skripta može:
- napraviti dodatni backdoor;
- izmijeniti druge PHP datoteke;
- stvoriti administratorskog korisnika;
- upisati zlonamjerni sadržaj u bazu;
- ponovno kreirati prethodno obrisani malware.
Zbog toga se ozbiljno čišćenje ne završava porukom:
„Pronašli smo virus i obrisali ga.“
Potrebno je ponovno pregledati cijelu instalaciju i utvrditi postoji li mogućnost povratka.
Kod složenijih slučajeva postupak zato izgleda ovako:
skeniranje → analiza → karantena ili čišćenje → ponovno skeniranje → provjera integriteta → nadzor.
Karantena umjesto trenutnog brisanja
Kada je to moguće, sumnjivu datoteku bolje je prvo izdvojiti nego odmah trajno izbrisati.
Datoteka smještena u karantenu više nije dostupna web aplikaciji i ne može se normalno izvršavati.
Istovremeno ostaje dostupna za kasniju analizu.
To je posebno važno u slučajevima kada automatizirani sustav pronađe nešto što izgleda sumnjivo, ali se tek dodatnom analizom može potvrditi je li riječ o malwareu ili legitimnom kodu.
Karantena omogućuje dvije stvari:
- trenutačno neutraliziranje potencijalne prijetnje;
- mogućnost naknadnog povratka datoteke ako se pokaže da nije zlonamjerna.
Uklanjanje zaraženih dodataka i tema
Ako se utvrdi da je dodatak, tema ili ekstenzija kompromitirana, najsigurnije rješenje je ukloniti kompromitiranu kopiju i instalirati novu verziju iz pouzdanog izvora.
Ne preporučujemo pristup u kojem se iz zaraženog dodatka ručno ukloni nekoliko sumnjivih linija koda i ostatak nastavi koristiti.
Ne možemo sa sigurnošću znati je li zlonamjerni kod izmijenio još neku datoteku koju pri prvom pregledu nismo uočili.
Kod komercijalnih dodataka i tema korisnik mora imati odgovarajuću licencu odnosno pristup originalnoj instalacijskoj verziji.
Što se radi nakon čišćenja
Nakon uklanjanja pronađenog malwarea posao nije nužno završen.
Ovisno o vrsti incidenta može biti potrebno:
- ponovno instalirati čiste sistemske datoteke CMS-a;
- ažurirati CMS;
- ažurirati sve dodatke, teme i ekstenzije;
- ukloniti nepotrebne komponente;
- promijeniti administratorske lozinke;
- promijeniti FTP/SFTP ili druge pristupne podatke;
- pregledati sve administratorske korisnike;
- ukloniti nepoznate račune;
- ponovno skenirati cijelu instalaciju;
- pratiti stvaraju li se ponovno uklonjene datoteke.
Najvažnije je ukloniti ne samo posljedicu nego i razlog zbog kojeg je kompromitacija bila moguća.
Kada je sigurnosna kopija bolja od popravka
Kod izrazito oštećenih instalacija ručno popravljanje svake pojedine datoteke ponekad više nema smisla.
Ako postoji provjerena sigurnosna kopija nastala prije kompromitacije, vraćanje takve kopije može biti sigurniji i brži postupak.
Nakon povratka sigurnosne kopije potrebno je odmah ukloniti ranjivost zbog koje je do kompromitacije došlo.
Inače će se ista stvar jednostavno ponoviti.
Više web stranica na istom hostingu
Činjenica da je jedna stranica kompromitirana ne znači automatski da su kompromitirane sve druge stranice na poslužitelju.
Bitno je kako su hosting računi i aplikacije međusobno izolirani.
Međutim, ako više stranica dijeli isti korisnički račun, pristupne podatke ili zajedničke direktorije, postoji veći razlog za dodatnu provjeru.
Zato se opseg pregleda određuje prema stvarnim tragovima kompromitacije, a ne samo prema činjenici da se više stranica nalazi na istom fizičkom poslužitelju.
Kompromitirana stranica prilikom migracije
Sigurnosni problem ponekad se otkrije upravo tijekom preseljenja stranice s drugog hostinga.
Takvu stranicu nije dobro jednostavno preseliti zajedno s malwareom i pustiti u produkciju.
Ako se tijekom migracije pronađe ozbiljno sumnjiv sadržaj, postupak se može zaustaviti dok se ne utvrdi što je potrebno napraviti.
Ovisno o situaciji moguće je:
- očistiti instalaciju prije dovršetka migracije;
- izdvojiti kompromitirane datoteke u karantenu;
- vratiti čistu sigurnosnu kopiju;
- prvo sanirati stranicu na starom hostingu.
Cilj je da na novu infrastrukturu ne preselimo i problem zbog kojeg je stranica prethodno kompromitirana.
Gdje završava standardni hosting, a počinje sigurnosno održavanje
8Core na svojim hosting sustavima primjenjuje sigurnosne mehanizme namijenjene zaštiti infrastrukture i smanjenju rizika od napada.
Međutim, nijedan hosting pružatelj ne može automatski održavati svaki WordPress, Joomla CMS, plugin, temu ili aplikaciju koju korisnici samostalno instaliraju.
Zato razlikujemo:
hosting infrastrukturu – poslužitelj, mrežu, servise i mehanizme zaštite koje održava 8Core;
i
web aplikaciju korisnika – CMS, dodatke, teme, korisničke račune i sadržaj za čije je održavanje odgovoran korisnik, osim ako nije ugovorena posebna usluga održavanja ili managed hostinga.
To nije samo tehnička razlika nego i dio odnosa definiranog Uvjetima korištenja 8Core usluga.
Korisnicima koji žele da se uz hosting vodi računa i o sigurnosnom stanju njihove web aplikacije mogu se ponuditi dodatne usluge nadzora, sigurnosnog skeniranja, održavanja i čišćenja kompromitiranih instalacija.
Naš pristup kompromitiranoj web stranici
Kod sigurnosnog incidenta ne zanima nas samo gdje se nalazi jedna zaražena datoteka.
Pokušavamo odgovoriti na tri važnija pitanja:
Što je kompromitirano?
Kako je napadač došao do pristupa?
Postoji li način da se ponovno vrati?
Tek kada odgovorimo na sva tri pitanja i nakon čišćenja ponovno provjerimo instalaciju, možemo govoriti o ozbiljno provedenoj sanaciji kompromitirane web stranice.