Kako da znatno povećate bezbednost WordPress sajta

 

Ovaj tekst za igortomic.net napisao je Danić Filip. Filip je student Računarskog fakulteta u Beogradu i radi kao frontend developer i dizajner. Pratite Filipa na Twitteru, sprijateljite se sa Filipom preko LinkedIna, a svakako pogledajte i portfolio njegovih radova koji se nalaze na adresi www.danicfilip.com

 
 
 
U prošlosti WordPress (instaliran na vašem hostingu) je često dobijao kritike na račun bezbednosti i veoma ozbiljnih ranjivosti koje su bile prisutne u fabričkim podešavanjima. Ovi problemi su u poslednje dve godine adresirani i situacija je znatno bolja, ali svakako ne idealna. Budite sigurni da je WordPress daleko od jednog bezbednog sistema upravo zato što je tako otvoren i fleksibilan. U ovom članku probaću da Vam objasnim na koje načine hakeri mogu napasti Vaš sajt i na koji način se možete odbraniti od većine njihovih tehnika.

 

Pod ovim, međutim, podrazumevamo 90% hakera koji koriste tuđe tehnike, alatke i skripte jer će Vas malo koji plugin sačuvati od pravog hakerskog napada. Isto tako veoma su male šanse da ćete ikada i biti na meti jednog takvog napada i zato su hakeri nižeg ranga (script kiddies) jedina pretnja na koju treba da se fokusirate.
 
osigurajte svoj wordpress sajt od hakera
 
PS: Međutim, moram naglasiti da ponekad ne postoji ništa što ste mogli da učinite da sprečite neki napad i iz ovog razloga morate uvek imati spreman jedan back-up Vašeg sajta. U narednom članku (*biće postavljen u toku februara) objasniću kako da zakažete redovne back-ups i videti koja sve rešenja postoje na ovom polju. Takođe, izvinjavam se unapred ukoliko nekome moji geeky i anglicizovani termini smetaju!

 
 

Lista očiglednih ranjivosti Vašeg WordPress sajta

 

Ukoliko nalazite sebe na ovom spisku:

  • Moj sajt ima nalog sa imenom Admin/Administrator ili nešto slično tome
  • Na moj sajt se logujem preko linka mojsajt.com/wp-admin
  • Moj sajt koristi piratizovane teme/plugins
  • Svoj sajt držim kod hosting firme koja ima loš support i nikakvu reputaciju
  • Moj sajt nema automatizovan back-up
  • Moj password sadrži ime mojeg ljubimca, deteta, voljene osobe, najboljeg druga itd. i nije duži od 10 karaktera
  • Ne koristim nijedan pouzdani plugin za bezbednost (eng: security plugin)
  • Ne znam šta je (D)DOS, deface i/ili bruteforce niti ko su ti “script kiddies”

…onda nastavite da čitate jer svakako imate dosta toga na čemu morate da poradite ukoliko Vam je stalo do bezbednosti Vašeg sajta. Naravno, nema potrebe za preranom panikom ili paranojom, niti treba da se brinete da ove stvari nećete razumeti. Koncepti opisani u nastavku teksta su prilično jednostavni i laki za primeniti

 
 

Pregled osnovnih “hakerskih“ napada i metodi

 

Deface

 

Nije svaki “hacker” osoba koja želi da Vam napakosti i obori sajt. Veliki broj ovih osvetnika i boraca za pravdu nazivaju sebe “whitehat“ hakerima i njihov cilj je da ukažu drugima na bezbednosne probleme njihovog sajta. Njihov omiljeni metod je tehnika poznata kao deface sajta jer na ovaj način neće naneti veliku štetu Vašem sistemu. U pitanju je metoda pomoću koje hakeri iz vašeg direktorijuma uklanjaju index.php fajl i zamenjuju ga svojim index.html fajlom.

 
wordpress deface metod napada na sajt
Slika: Primer jednog deface napada. Napadači često i navedu kako su hakovali sajt

 
Usled ovoga kad god neko uđe na Vašu početnu stranicu oni će videti poruku poput “Ovaj sajt je hakovala grupa X iz Bangladeša, obezbedite svoj sajt bolje”. Za njih je ovo odlična prilika da vežbaju i uče, ali i da urade dobro delo. Naravno, dosta ljudi radi deface iz zlonamernih razloga, ali ovo je problem najmanjeg prioriteta i obično ga je veoma lako sprečiti.

 

Bruetforce

 

Sledeći metod koji često koriste script kiddie hakeri je metod bruteforce i ona podrazumeva skeniranje sajta za slabosti i ranjivosti kao i isprobavanje svih mogućih kombinacija i kriptografskih ključeva. U teoriji, na ovakav način bi se moglo pristupiti svakom sistemu koji ima neku ranjivost, ali na svu sreću ovo je daleko od svakodnevne prakse, ali se svakako treba shvatiti ozbiljno. Ukoliko ne apdejtujete WordPress i svoje dodatke (plugins) redovno možete biti u velikoj opasnosti.

 

Ubacivanje Virusa

 

Sledeći metod je prilično jedinstven za WordPress, a to je injekcija virusa i zlonamernog softvera kroz besplatne i piratizovane teme i plugins. Ponekad je sasvim dovoljno rukoviditi se poštenim, zdravim razumom ukoliko želite da izbegnete ovakav napad. Zlonamerni virusi i softver će pokušati da okače spam na Vaš sajt ili da ukradu poverljive podatke od Vaših korisnika. Ukoliko je Vaš sajt zaražen onda će vrlo brzo biti kažnjen od strane pretrživača kao i antivirus programa koje Vaši korisnici koriste.

 
wordpress sajt zaražen virusom
Slika: Jasan znak da je Vaš sajt zaražen

 

DDOS/ DOS

 

Spomenuo bih još DDOS i DOS što je skraćeno od (distributed) denial-of-service jer je ovo veoma čest tip napada. U principu ideja je veoma jednostavna, a evo i jednog lakog načina da je zamislite: recimo da imate mali hosting paket i da odjednom dobijete 100,000 posetilaca umesto uobičajnih 100, šta će se desiti? Usled nedostatka serverskih resursa Vaš sajt će biti nedostupan na neodređeno vreme, ali makar ste dobili toliko posete, zar ne? To zvuči fer, ali problem nastaje onda kada neko namerno iskoristi mašine da bi opteretio i obrio Vaš sajt. Ovaj problem doduše uglavnom imaju veći sajtovi i servisi.

 

Napad Na Hosting Server

 

Takođe, ponekad se neki napadi direktno ciljani na server na kojem je Vaš sajt hostovan ili na Vašeg virtuelnog komšiju sa kojim delite resurse servera. U ovom slučaju ne postoji ništa što možete da učinite osim da obezbedite back-up svog sajta i kontaktirate korisničku podršku (support) svog provajdera. Višegodišnji korisnici shared hosting paketa verovatno dobro znaju o čemu pričam.
 
 

Rezime – koraci do bolje bezbednosti

 

Dakle, sada kada razumete malo bolje ove napade, možemo da rezimiramo neke stvari koje nam odmah padaju na pamet kada je bezbednost WordPress sajta u pitanju:

  • 1. Potreban nam je jak, (relativno) dugačak password koji ne sadrži ništa od naših ličnih podataka
  • 2. Potrebno nam je da osiguramo glavni direktorijum
  • 3. Moramo da osiguramo osetljive lokacije kao što je login ekran za Admin Dashboard
  • 4. Moramo da sprečimo robote koji prebrzo otvaraju nove stranice (skeniraju sajt), ali da to uradimo pažljivo kako na bi banovali Google bot-a ili nešto slično
  • 5. Preporučeno je da nađemo hosting kompaniju od poverenja sa dobrom korisničkom podrškom (ovim se neću baviti jer nije tema ovog članka)
  • 6. Moramo da proverimo da li imamo temu i plugin kojem se može verovati (premium tema i plugins sa dobrim ocenama su obično najsigurnije rešenje)
  • 7. Moramo uvek imati aktuelnu verziju našeg softvera kroz redovne apdejte
  • 8. Moramo imati redovan back-up za ne-daj-bože situacije

Okej, to je dosta teorije i dosadnog uvoda, mislim da je sada vreme da krenemo na praksu i da pogledamo koji alati nam mogu olakšati posao.

 
 

Better WP Security

 
better wordpress security plugin
 

Prvi plugin koji treba da skinete je Better WP Security, ali nemojte se previše vezivati za njega jer ćemo ga brzo zameniti nečim drugim. Ovaj plugin preporučujem jer je on najednostavnije rešenje da ispravite svoje početnike greške. Pomoću ovog plugin-a uradite sledeće:

  • 1. Ukoliko se glavni administrator zove admin/administrator ili nešto slično, preimenujte ga u nešto drugo. Nemojte koristiti ovaj nalog da ostavljate komentare ili članke – morate da ga potpuno sakrijete.
  • 2. Promenite korisnički ID ovog usera (koji je prvobitno 1) na neki drugi broj.
  • 3. Izmenite direktorijum Vašeg login ekrana (/wp-admin) u nešto poput /login-korisnici

 
Razlog usled kojeg krijemo ime i ID našeg admin naloga je jednostavan – nema potrebe da olakšavate hakerima posao. Ukoliko kačite sve članke sa naloga koji se zove admin (a taj nalog je stvarno admin) onda vi doslovno dajte pozivnicu ovim ljudima da napadnu Vaš sajt.
 
Ovaj plugin nudi još dosta dobrih opcija, ali ove tri su jedine koje izdvajam pod obavezno jer ovaj potez samo po sebi Vaš štiti od gomile script kiddies koji samo koriste neke gotove alate.
 
 

WordFence Security

 
wordfence wordpress sigurnost
 

Sada kada smo završili sa Better WP Secutiy, možete slobodno taj plugin da deaktivirate jer nam on ne pruža opcije za live praćenje naših korisnika. Na većini svojih WordPress sajtova uvek instaliram WordFence Security plugin gotovo odmah. Ono što je SEO by Yoast sa početnike u „umetnosti” search engine optimizacije, to je upravo i WordFence za amatersku bezbednost. U pitanju je veoma moćan plugin koji donosi ogroman broj opcija i alata za obezbeđivanje Vašeg WordPress sajta.
 
Neke od opcija koje ovaj plugin pruža su:

  • Skeniranje Vašeg sajta za viruse i zlonameran softver
  • Praćenje aktivnosti korisnika u realnom vremenu
  • Opcija za privremeno banovanje robota ili korisnika koji prebrzo otvaraju stranice, pogotov ako otvaraju 404 stranice (traže neku ranjivost)
  • Mogućnost banovanja IP adresi (botovi, spameri i slično)
  • Mogućnost boljeg osiguravanja login ekrana – privremena blokada ukoliko neko pogreši password previše puta
  • Tu je takođe i mogućnost za e-mail obaveštenja (alerts) ukoliko nešto nije kako treba

 
 

Block Bad Queries kao privremeno rešenje

 
blokiranje napada wordpress
 

Problem sa WordFence Securty je ponekad upravo u tome što stalno koristi određenu količinu resursa kako bi pratio dešavanja na sajtu, blokirao zlonamerne botove i slao obaveštenja u slučaju da se desi nešto sumnjivo. U zavisnosti od Vašeg hosting paketa možda će ovaj plugin biti prosto previše za Vas i samim tim kao privremeno rešenje mogu da predložim Block Bad Queries. Ovo je plugin koji blokira neobične upite (zahteve) koji su jasan znak da se radi o nekoj vrsti skeniranja ili napada.
 
Ukoliko već imate WordFence onda vam BBQ nije potreban, ali ako već imate dosta resursa onda možete dodati i ovaj plugin kao mali dodatak svojoj odbrani. Sam po sebi on nije rešenje za sve vrste potencijalnih napada, ali će pružiti dodatnu zaštitu Vašem sajtu.
 
 

Par saveta za jaku šifru i Vaš WordPress nalog

 
Pre nekoliko godina razni web servisi su počeli da insistiraju na tome da imate šifru koja ima minimalno 8 karaktera. Danas je ovaj preporučeni broj znatno veći i stručnjaci savetuju da bi šifre manjeg značaja i opšte namene trebale da imaju minimalno 12 karaktera, dok bi nešto poput šifre za Vaš WordPress nalog trebalo da ima 15 karaktera minimalno.
 
Možete koristiti razne servise na Internetu koji stvaraju nasumične šifre (random password generators), ali je vrlo moguće da će ove šifre biti previše teško zapamtiti. Možete ih zapisati? Iskreno, ja Vam lično ne bih preporučio da držite papirić ili Word datoteku gde zapisujete sve svoje šifre. Umesto toga preporučujem da sami napravite svoju šifrtu i držite se sledećih pravila:

  • Držite se toga da morate imati minimalno 15 karaktera
  • Koristite velika i mala slova, kao i brojeve i posebne simbole (@, ^, $, *, #, itd)
  • Vaša šifra ne bi trebala da sadrži reči koje se mogu naći unutar rečnika ili neke enciklopedije
  • Nemojte stavljati svoje ime, ime voljene osobe, kućnog ljubimca itd.
  • Menjanjte šifru jednom mesečno (idealno) ili na svakih par meseci (uobičajno)
  • Vaša nova šifra ne bi smela da bude previše slična staroj

 
jaka wordpress sifra dilbert crtani
Slika: Web strip: www.dilbert.com
 
 
 
Filipe, hvala ti mnogo što si odvojio vremena da napišeš ovaj tekst! Sa Filipom se svakako povežite pomoću linkova sa vrha teksta, a sam tekst podelite sa prijateljima, možda ih baš tim činom spasite od malicioznih napda na njihov sajt.
 
 
Lep pozdrav,
Igor

Comments
  1. Oskar Borbaš

    Sjajan članak! Pratim tvoj rad i zaista si čovek sa znanjem! 🙂 Da podelim neko svoje iskustvo:

    Od nabrojanih napada imao sam:
    1. napad na server, gde verat.net-ovi serveri popustili (inače jako sam nezadovoljan sa njima, a loša je i korisnička podrška)
    2. Injekcija virusa, kada mi samo odjednom google blokirao moj sopstveni sajt. Odvratan osećaj, 2 dana to trajalo dok nisma otklonio problem, ali rank mi nije oštetio. 🙂

    Što se tiče pluginova, better wp security dominira, ali treba pažljivo postupiti u settings-u. Bezbroj puta kada sam se igrao sa podešavanjima srušio sam svoje sajtove 🙂 naravno u tom slučaju uglavnom se samo promeni .htaccess i rešena stvar. 🙂

    Dodao bih još pluginove:
    1. Theme Authenticity Checker (TAC) – za skeniranje teme
    2. Anti-Malware
    3. WordPress File Monitor Plus – pokazuje fajlove koje su promenjene.
    4. Hide My WP – Premium plugin, sakrije sve informacije koje bi mogle da ukazuju da na wp sajt.

    Samo napred u daljem pisanju a i u poslovnom životu!

    Pozdrav

    • Igor Tomić

      Oskare, hvala mnogo na dopunama i komentaru!

  2. Jelena

    Uh, ako nisam sto puta planirala da nešto poradim na bezbednosti, nisam nijednom… Stvarno si me sad prepao, odoh da se igram sa plugins 🙂

    Nego super mi je fascinantno to da većina hakuje sajtove kao “dobro delo” prema webmasterima. Mislim, kapiram logiku, al opet…

    Hvala na savetima!

  3. Jovan Šikanja

    Hvala na dobrom članku.
    WordFence Security nisam koristio ali koliko mogu da vidim Better WP Security ima gotovo sve opcije kao on.
    Bitna stvar koju radi BetterWPSecurity je menjanje prefiksa na bazi. Ne znam da li to radi WordFence Security.
    Izmena admin login url-a je obavezna!

    Dodao bih još dve stvari za koje smatram da su ključne:
    – Uvek i bez izgovora potrebno je koristiti poslednju verziju WordPress-a. Nakon ovoga potrebno je redovno apdejtovati plugine i teme.
    Ako nam je sam WP bušan teško će nam pomoći security plugini.
    – Uključiti dvostepenu autentifikaciju, koja polako postaje sigurnosni standard za logovanje. Postoji dosta načina na koji ovo može da se uradi. Najlakše je preko Google Autentificatora. Potrebno je samo da imamo smartfon.
    Takođe ni servis Clef nije loše rešenje. O njemu sam pisao na mom blogu:
    http://www.e-sigurnost.net/Blog/2013/clef-logujte-se-na-vas-wordpress-sajt-bez-lozinke

    Veliki pozdrav i nastavi sa dobrim pisanjem 🙂

  4. Robi

    Odličan članak. Samo mislim da je dio teksta trebao biti dan i CloudFlare i/ili Incapsula. Ja koristim CloudFlare i pomaže kod DDOS-a i općenito kod zaštite. A u isto vrijeme štedi vaš bandwith.

  5. Igor Tomić

    Hvala vam na komentarima, odlično nadopunjavaju tekst (i dodaju sigurnosti WordPress sajtova). 🙂

  6. Nikola

    Bravo za Filipa odlican tekst. Radujem se citanju sledeceg jer ovako nesto je primenjivo i korisno npr saznao sam za BBQ. Imam pitanje: Da li se Better WP i Wordfence preklapaju u nekim stvarima tj. da li je moguce da dodje do problema ako mi oba plugina budu aktivna u isto vreme?

    • Filip

      Gledam sada WP support forume i koliko vidim ljudi tvrde da nema nikakvih problema oko kompatabilnosti. Međutim, ne postoji način da se garantuje da će ovako biti i tebi, a verujem da ti ne trebaju oba. Možeš svakako da probaš ukoliko radiš redovan back-up jer nemaš šta da izgubiš 🙂

  7. Dimitrije Živadinović

    Sjajan članak kao i svaki tvoj! Redovan sam čitalac a i sam koristim na svom sajtu ove mere zaštite. Sva sreća imam sajt na dobrom hostingu pa ne pada nikada, da kucnem u drvo 😉

  8. Nikola

    Sto se tice sifara predlazem pogledati ovo: http://xkcd.com/936/

  9. Ljubica

    Svaka čast na jednom ovako dobrom informativnom članku! Pitanje zaštite WP sajta je nešto što me već dugo muči i sprečava da isti pokrenem. Kupila sam domen, hosting, instalirala WordPress i tu se ukopala jer nisam mogla da nadjem dobar članak na ovu temu. Iščitavala sam mahom članke na engleskom ni ne sluteći da postoji jedan ovakav poučan tuorijal na srpskom. Svuda pođi, kući dodji! :-). Bacam se na instaliranje preporučenih plugina koliko sutra.
    Jos jednom, svaka čast Filipu na članku a Igoru na sjajnom blogu i hvala na savetima!

  10. Bratislav Grbic

    Baš dobar tekst. Danas već može da se nađe gomila pluginova koji štite WP. Ja sam probao gotovo sve. Iz ličnog iskustva, mislim da je najbolje koristiti kombinaciju Worfenca i Bulletproof Securitia. Naravno, uz određena ograničenja, jer nije pametno pouključivati sve opcije, jer to ubija performanse, a može da dođe i do nekih konflikata.
    Ja sam takođe napisao članak koji se bavi zaštitom WP-a. Pogledajte ovde:
    http://mindstorming.ws/zastita-wordpress-sajta/
    Izabrao sam malo drugačiji pristup, pa možete videti na koji način ja razmišljam kada je u pitanju bezbednost CMS-ova (ne samo WordPressa).

ADD YOUR COMMENT