Kako zaštititi web sajt (blog)?

Ovaj članak je nastao kao posledica nepostojanja svesti u Srbiji o zaštiti informacija na internetu, što običnih korisnika interneta, što web master-a. Jednostavno, ljudi u Srbiji imaju nedovoljnu informatičku pismenost kada je u pitanju zaštita svojih sajtova, blogova. Još jedna posledica svega toga je deface-ovanje web sajtova raznih srpskih firmi, blogera, kao i državnih institucija.

 

 

Obuhvatiću veliki spektar tehnologija izrade web sajtova, počev od onih jednostavnih (html, css, … ) do CMS-a kao što su: WordPress, Joomla (php, mysql, … ). Nećemo ulaziti u priču oko žaštite web servera na kome ste host-ovani, jer o njemu treba da brine hosting kompanija. Pa da krenemo:

 

0. Šifre

 

Na nultom mestu su šifre koje koristite za pristup i uređenje vašeg web sajta. Sigurno ste to već čuli mnogo puta, ali jeste važno da koristite što duže šifre koje su sačinjene od velikih i malih slova, brojeva i specijalnih karaktera. Takođe, treba izbegavati korišćenje istih šifri za sve web sajtove, ili web servise koje koristite. Ako vam je teško da pamtite sve te šifre, instalirajte program koji će to uraditi za vas, a vi onda pamtite samo jednu šifru. Cela ova priča važi za sve, bez obzira na kojoj web tehnologiji počiva vaš sajt.

 

 

 

1. Zaštita računara sa kojeg uređujete sajt (blog) od malware-a

 

Mislim da ne treba da puno da detaljišem koliko je ovo važno, nekoliko korisnih saveta na ovu temu možete da nađete ovde. Takođe važi za sve.

 

 

2. Permisions iliti dozvole

 

Većina vas koristi deljeni  (shared) hosting, prvenstveno zato što je dosta jeftiniji. Šta to znaci? Na jednom serveru imate više sajtova, cifra može da ide i to 400. Šta su te dozvole i šta znače ti neki brojevi? Za svaki dokument ili folder se u linux sistemu definišu dozvole šta i ko sme da radi sa njim. Za svaki dokument ili folder se uvode pojmovi vlasnika (owner), grupe kojoj pripada vlasnik (group) i ostatak korisnika koji ne ispunjavaju prva dva uslova (niti su vlasnici, niti pripadaju istoj grupi kao i vlasnik). Same dozvole  dele se na: čitanje, upis i pokretanje fajlova ili sadržaja foldera.

 

Ako te dozvole koje su predstavljene binarnim sistemom prevedemo u dekadni imamo da je:

samo čitanje = 4

čitanje + upis = 6

čitanje + upis + pokretanje = 7

čitanje + pokretanje = 5

Ovo je samo ono što nama sada treba, detaljnije možete pročitati ovde.

Kako treba nemestiti dozvole na fajlovima i folderima? Svi fajlovi trebaju da imaju dozvole nameštene na 644 . Šta to znači? Vi, tj. vaš nalog koji je vlasnik, moći će da čita i upisuje podatke, korisnici koji pripadaju istog grupi kao i vi moćiće, kao i svi ostali, samo da čitaju vaše fajlove. Izuzetak predstavljaju samo neke posebne skripte (.php, .pl) ako ih koristite, koje mogu da se izvršavaju backup itd.

 

 

Kad su folderi u pitanju dozvole koje trebaju da oni imaju su 755, vlasnik može sve, grupa i ostali samo čitanje i pokretanje sadržaja. Može se desiti na neka web aplikacija od vas traži 777 dozvole na nekom folderu, takve stvari su naznačene tokom instalacije.

Čemu sve ovo? Delite server sa još nekoliko korisnika. Svako od njih može da bude pretnja i po vas. Analogija je zgrada (server) sa nekoliko stanova (web sajtovi). Ako neko uspe da preko stana koji nije bio osiguran uđe u zgradu, jednino što ga deli od ulaska u vaš stan jesu zaključana vrata, odnosto dobro postavljene dozvole. Takođe, ovo važi za sve.

 

 

3. Izbegavanje korišćenja neproverenih otvorenih WiFi mreža

 

Besplatan internet je kul, ali samim tim što svako može da se „nakači“ na mrežu, svako može da vidi i saobraćaj koji se odvija putem te mreže. Čak ioako koristite SSL, odnosno pristupate sajtovima preko HTTPS-a, „napadač“ može da presretne vaš login zahtev i da dobije vašu šifru. Situacija je još gora ako ne koristite SSL, tada može doći i do session hijacking-a. Primer možete videti na slikama ispod, koji se desio za vreme ms sinergije ove godine u Beogradu (napad je izveden sa mob. telefona) :

 

   

   

 

Na slikama se vide korisnici facebook-a i yahoo mail-a, međutim vrsta servisa se mnogo proširuje ako se uključi Generički mod. Softver koji je korišćen je DroidSheep. Sve ovo isto važi  za sve vlasnike web sajta.

 

 

4. Promena default prefiksa tabela baza

 

Ovo važi samo za web sajtove koji koriste bazu podataka. Ovo možete najlakše uraditi u toku instalacije vašeg CMS-a, u suprotnom treba da nađete config fajl vašeg CMS-a, u njemu promenite default table prefix vrednost i onda svuda u bazi za svaku tabelu ponaosob. Za neke CMS-ove poput WordPress-a postoje plug-inovi koji će ovo uraditi za vas. Default vrednost je poželjna da se promeni zbog težeg mogućeg SQL Injection napada na vaš CMS.

 

 

5. Promenite default ime administratora – admin

 

Svi napadi (brute force, SQL injection, … ) koji zahtevaju username, inicijalno će krenuti od ovog korisnika. Zato ga treba promeniti.

 

 

6. Promena default login adrese (URL-a)

 

Ako neko na bilo koji način dođe do vaših login podataka, a ako pritom ne može da nađe url za logovanje, neće moći da ih iskoristi. Upravo iz tih razloga je bitno da ovo sakrijete. Naravno, podrazumeva se da nikako ne stavljate link sa login adresom nigde na naslovnoj strani. Postoje plugin-ovi koji će vam pomoći u realizaciji skrivanja login URL-a.

 

 

 

7.Dodavanje zaštite login formi (capctha, lockdown)

 

Obična captcha ili jednostavan plugin koji beleži koliko puta je sa neke IP adrese došao neuspeli login i banuje istu, sačuvaće vas sajt od brute force napada.

 

 

 

 

8. Dodatna zaštita admin foldera CMS-a još jednim login-om

 

Ako imate cPanel ovo neće predstavljati nikakav problem, a sprečiće nekog ko je došao do vaših login podataka, našao admin login URL, da dođe do vašeg kontrolnog panela CMS-a koji koristite. Postupak je jednostavan, posle logovanja u cPanel izaberete opciju Password Protected Directories, obeležite folder, date mu ime, napravite login podatke korisnika i to je to. Ceo postupak možete naći ovde.

 

 

 

9. Ažuriranje dodataka i samog CMS-a

 

Nove verzije donose bolju funkcionalnost, ali i popravku sigurnostnih propusta koji su otkriveni u starijim verzijama. Sa aspekta sigurnosti to je glavni razlog korišćenja najnovije verzije CMS-a i njegovih plug-inova.

 

 

10. Dodavanje samo proverenih plugin-ova

 

Pokušajte da svedete broj plug-inova na što manji, instalirajte samo ono što vam zaista treba. CMS je sam po sebi dosta siguran, plug-inove pišu ljudi koji ponekad ne obraćaju dovoljno pažnje na sigurnost, a tu nastaje problem, jer jedan ranjiv plugin je dovoljan da naruši bezbednost celog CMS-a. Pre nego što instalirate neki plugin, potražite na sledećim sajtovima da li postoje neki, do sada, zabeležen propusti u njemu:

 

www.exploit-db.com

www.packetstormsecurity.org

www.1337day.com

www.osvdb.org

www.securityfocus.com

 

Takođe postoje Web application security scanner-i za WordPress – WPScan i za Joomla-u – JoomScan koji prikažuju rezultate skeniranja vašeg sajta i njegovih plugin-ova, sa detaljim podacima o mogućim sigurnosnim propustima. Video klipove možete naći ovde i ovde.

 

 

11. Instalacija Firewall plugin-a za CMS 

 

Ako koristite neki od poznatijih CMS platformi neće vam biti teško da nađete plugin koji ima funkciju Firewall-a. Jednostavno suzbiće neke napade analiziranjem GET i POST zahteva i proslediće vam mail kada bude nešto detektovao.

 

 

12. Praćenje 404 grešaka

 

404 greške vam mogu reći mnogo o tome da li je neko slučajno došao sa pogrešne strane ili pokušava da uradi nešto zlonamerno. Ovo u kombinaciji sa logovima može da bude korisno ako na osnovu 404 grešaka dođete do toga da morate da onemugućite nekom pristup vašem sajtu. Postoje 404 error log plugin-ovi za korišćenije platforme CMS-a.

 

 

 

13. CloudFlare

CloudFlare je nešto što morate da implementirate. Postoji mogućnost preko cPanel-a (ako vam je hosting provajder to omogućio) ili preko plugin-a. SPAM na mom sajtu se smanjio za 90% , a uptime povećao za 0.07% posle implementacije CloudFlare-a. Jednostavno treba da probate. A šta je CloudFlare najbolje će vam reći sledeći video:

 

 

 

14. BackUp, BackUp, BackUp i opet BackUp

 

I opet BackUp. Sve ovo su samo načini da nekom učinite teže da dođe do kontrole vašeg sajta, ali je ključno da se pripremite i za slučaj da niste dovoljno to otežali. Tu na scenu stupa BackUp. Kad praviti BackUp? Pa treba ga praviti u zavisnosti od toga koliko menjate sadržaj na vašem sajtu, blogu. Što to češće radite, to treba da češće uradite BackUp. Ovde možete naći članak o tome kako da automatski radite BackUp pomoću php-a i cPanel-a.

 

The end. :-)

 

 

 

15 CommentsLeave a comment

Ostavite odgovor

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *