Sigurnost WordPress-a

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Alan Gregorinčić

Sadržaj

Općenito o Wordpressu

WordPress je besplatan i „open-source“ alat prvenstveno namijenjen blogerima, ali u današnje vrijeme ga koriste i tvrtke koje se bave online prodajom i slično. Napravljen je kao CMS (Content Management System) baziran na PHP-u i MySQL-u. Ono što su velike odlike WordPress-a su pluginovi (dodaci) i template-i (teme). Pomoću njih možemo proširiti samu funkcionalnost WordPress-a, ali isto tako se sa svim tim dodacima može ugroziti sigurnost WordPress-a ako oni nisu dobro implementirani. U 2015. godini više od 23.3% od top 10 milijuna web stranica je bazirano na WordPress platformi. Više od 60 milijuna web stranica u svijetu koristi WordPress. Iz tih navedenih prednosti, odmah postoje i nedostaci. Kako puno ljudi koristi WordPress, postoji i veća šansa da će njihove web stranice biti hakirane. Mnogo ljudi koristi WordPress, a nisu upoznati sa mogućim napadima ako se ne pazi na bitne stvari poput lozinka, provjerenih pluginova, redovitih ažuriranja i slično. WordPress je sam po sebi jednostavan alat, ali ako ga želimo koristiti na ispravan način moramo koristiti njegovu dokumentaciju dostupnu na: https://codex.wordpress.org/. U ovome radu će biti opisani načini kako se zaštititi od napada na web stranicu koja je pogonjena WordPress-om, koji pluginovi bi mogli spriječiti takve napade i slično.

Sis1.png
Slika: Izgled WordPress sučelja (Izvor: https://codex.wordpress.org/Dashboard_Screen)


Teme

WordPress ima web template sustav koji koristi template procesor. To znači da korisnici mogu instalirati teme te mijenjati teme jednostavnim klikom. Tema nije samo izgled same stranice, ona ovisi i o tome kako je tema napisana, odnosno kako će funkcionirati. Teme su napisane kombinacijom tri jezika: PHP, HTML i CSS, a također se tu pojavljuju i JavaScript i jQuery. Teme možemo podijeliti u dvije kategorije: Premium (teme koje se plaćaju) te besplatne teme, a ukoliko dobro poznajemo navedene programske jezike te WordPress dokumentaciju možemo se upustiti u razvoj svojih tema.


Pluginovi (dodaci)

Pomoću pluginova, odnosno dodataka možemo proširiti funkcionalnost WordPress-a. Postoji preko 30000 dostupnih pluginova od kojih svaki ima svoju funkcionalnost. Takvi pluginovi omogućavaju da se primjerice poboljša SEO (Search Engine Optimization) web stranice, pluginovi za registraciju/login, a isto tako pluginovi koji omogućavaju veću sigurnost WordPress-a, odnosno štite ga od hakerskih napada, a isti će biti detaljnije objašnjeni u daljnjem tekstu. Svaki od dodataka je instaliran, aktiviran i testiran lokalno na računalu.


Savjeti za očuvanje sigurnosti WordPress stranice

Savjet 1: Praćenje verzija WordPressa, pluginova i tema

Developeri koji razvijaju WordPress svakodnevno rade na ispravkama koje bi poboljšale sigurnost WordPress-a pa je bitno ažurirati na najnoviju verziju. Trenutna verzija je 4.2.1. Također, ako koristimo pluginove, također je bitno pratiti njihove najnovije verzije. Isto vrijedi i za teme koje koristimo.

Savjet 2: Napisati posebne tajne znakove za wp-config.php datoteku U wp-config.php datoteci postoje različiti podaci pa tako primjerice postoje i podaci o bazi podataka koju koristi naša web stranica. Tajni znakovi su jedan od bitova informacija pohranjeni u toj datoteci pa je bitno promjeniti zadane znakove u nešto drugo.

Alagregor-sis2.png


Savjet 3: Promijeniti prefiks baze podataka

Kada koristimo WordPress čarobnjak kod instalacije on nam nudi nekoliko postavki koje većinom ne odlučimo mijenjati prilikom same instalacije. Takve su postavke naravno poznate hakerima pa je bitno promijeniti prefiks koji je puno teži za pristupanje podacima u našoj bazi podataka koju koristimo. WordPress prilikom instalacije predlaže prefiks 'wp_'.

Alagregor-sis3.png


Savjet 4: Zaštititi wp-config.php datoteku

Svi potrebni podaci za pristup bazi podataka se nalaze u wp-config.php datoteci pa je bitno da samo mi imamo pristup. Kako bi zaštitili konfiguracijsku datoteku potrebno je samo zalijepiti sljedeći kod u htaccess datoteku:

Alagregor-sis4.png
Slika: Zaštita wp-config.php datoteke (Izvor: http://www.napravi-stranicu.com/10-savjeta-za-sigurnu-wordpress-stranicu)


Savjet 5: Zaštititi htaccess datoteku

Kako bi zaštitili htaccess datoteku potrebno je kopirati sljedeći kod u htaccess datoteku:

Alagregor-sis5.png


Savjet 6: Sakriti verziju WordPress-a

Kako su hakerima poznati nedostaci sigurnosti prema određenoj verziji WordPressa, potrebno je ukloniti meta generator za WordPress. Navedena meta oznaka otkriva koja se verzija WordPress-a koristi na web stranici. Sve dodatne funkcionalnosti dodaju se u function.php datoteku koja se nalazi u korijenskoj mapi teme koju koristimo. Kako bi sakrili verziju WordPress-a moramo kopirati sljedeći kod u navedenu datoteku:

Alagregor-sis6.png
Slika: Sakrivanje trenutne verzije Wordpress-a


Savjet 7: Pažljivo odabrati korisničko ime i lozinku za prijavu u administracijsko sučelje

Prilikom instalacije moramo paziti koje ćemo podatke odabrati kao pristupne podatke. Najviše se koristi korisničko ime admin, pa će navedeno hakeri najprije pokušati. Isto tako, treba obratiti pozornost na lozinku, a WordPress nam omogućuje i prikaz jačine odabrane lozinke pa nam to može pomoći u odabiru. Bitno je koristiti što više kombinacija posebnih znakova, velikih i malih slova te brojeva.

Alagregor-sis7.png
Slika: Odabir lozinke


Savjet 8: Napraviti backup podataka

Ukoliko smo pripazili na svaki od prije navedenih koraka, još se može dogoditi da WordPress stranica bude hakirana. Kako bi izbjegli neželjeni gubitak podataka, trebamo odabrati neki period nakon kojeg ćemo napraviti backup teme i baze podataka te isti pohraniti lokalno na neko sigurno mjesto. Postoji i više dodataka koji olakšavaju izradu backup-a. Navedeni savjeti su dobri ako poznajemo neke osnove programiranja i rukovanja izrazima kao što su server, podaci na serveru i slično. Ukoliko smo korisnik koji ne želi previše mijenjati datoteke ručno, za to postoje dobri dodaci WordPressa i omogućavaju upravo to što je prethodno objašnjeno.

Savjet 9: Spriječiti direktan pristup bitnijim datotekama WordPress-a

Ako kopiramo sljedeći kod u htaccess datoteku spriječit ćemo napadače od eventualnih napada na našu web stranicu.


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond % =POST
RewriteCond % !^http://(.*)?.example.com [NC]
RewriteCond % ^/wp-login\.php(.*)$ [OR]
RewriteCond % ^/wp-admin$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

Dodaci za očuvanje sigurnosti WordPress-a

Dodatak „All In One WP Security & Firewall“

Ovaj dodatak smanjuje rizik sigurnosti tako da provjerava ranjivosti te implementira i poboljšava posljednje WordPress tehnike sigurnosti. Pravila sigurnosti su kategorizirana na osnovne, srednje i napredne. Jedan je od najboljih dodataka jer je dosta ažuran i sve funkcionalnosti zaštite WordPressa su objedninjene u nekoliko jednostavnih opcija.

Funkcionalnosti dodatka:

Alagregor-sis8.png
Slika: Tab General Settings - Dodatak „All In One WP Security & Firewall“


Sa slike vidimo mogućnosti backupa baze podataka, htaccess datoteke te wp-config datoteke, koje možemo obaviti jednim klikom na određeni link. Također, ako kliknemo na Backup your database, možemo promijeniti i prefiks baze podataka, postaviti automatski backup sa određenim intervalom te ga poslati preko email-a. Ako iz nekog razloga ne rade određene funkcionalnosti web stranice, možemo onemogućiti sve sigurnosne mjere koje nam donosi ovaj dodatak.

Alagregor-sis9.png
Slika: Backup baze podataka


Zatim imamo tabove .htaccess File te wp-config.php File gdje možemo napraviti backup tih datoteka i napraviti restore prema prethodno backupiranoj datoteci. Kada se pozicioniramo na tab WP Meta info možemo isključiti WP Generator Meta info koji u head tagove dodaje informacije o verziji WordPress-a na kojoj se nalazi web stranica.

Alagregor-sis10.png
Slika: Isključivanje WP Generator Meta Info


Posljedni tab u postavkama je Import/Export gdje možemo napraviti izvoz svih postavki koje smo napravili preko All In One WP Security & Firewall dodatka, a isto tako možemo i uvesti takve postavke koje smo prethodno izvezli.

Alagregor-sis11.png
Slika: Izbornik Dashboard

Kada se pozicioniramo na izbornik „Dashboard“ možemo vidjeti podatke o tome kakva je trenutna zaštičenost WordPress stranice, zatim posljednjih 5 prijava i sl.

Alagregor-sis12.png
Slika: Izbornik User login


Preko izbornika User Login možemo odabrati maksimalni broj pokušaja prijave, možemo obavijestiti administratora o zabrani pristupa korisniku preko e-maila.

Alagregor-sis13.png
Slika: Izbornik Spam prevention


Ono što je svakako korisno kod WordPress stranica je dodavanje Captcha koda pri polju za unos komentara. Time će se smanjiti broj SPAM komentara od botova.

Dodatak „Akismet“

Navedeni dodatak dolazi predinstaliran kada instaliramo WordPress i potrebno ga je samo aktivirati kako bi ga koristili. Služi za zaštitu od spamova, odnosno spam komentara i povratnih veza. Evo i službenog opisa sa njihove stranice: „Korišten od strane milijuna korisnika, Akismet je vjerojatno najbolji način zaštite vašeg bloga od spam komentara i povratnih veza. Štiti vašu internet stranicu čak i dok spavate. Kako bi započeli: 1) Kliknite poveznicu "Aktiviraj" lijevo od ovog teksta, 2) Prijavite se za Akismet API ključ, i 3) Otvorite stranicu Akismet konfiguracije i snimite vaš API ključ.“

Ostali dodaci

Postoji puno više dodataka za poboljšanje sigurnosti WordPress-a, ali svaki od njih većinom koriste samo jednu od funkcionalnosti zaštite dok opisani dodatak „All In One WP Security & Firewall“ omogućava sve funkcionalnosti zaštite podataka i samog WordPress sustava. Neki od dodataka koje je vrijedno spomenuti:

Primjer napada

Od napada na web stranice pogonjene WordPress platformom su najčešći oni preko komentara, odnosno spam komentari. Međutim, napad može imati i veći efekt. Jouko Pynnönen je otkrio nedostatke, odnosno ranjivosti WordPress-a verzije 4.2, 4.1.2, 4.1.1, 3.9.3. Radi se o tome da ako nepoznati napadač unese određeni JavaScript kod u polje za komentar, može promijeniti lozinku administratora, može kreirati nove administracijske račune i slično. Tekst takvog komentara mora biti prilično dugačak kako bi bio efektivan, veći od 64 kB.

Kod koji se unosi u komentar:


<a title='x onmouseover=alert(unescape(/hello%20world/.source)) style=position:absolute;left:0;top:0;width:5000px;height:5000px AAAAAAAAAAAA...[64 kb]..AAA'></a>


Kako bi navedeni kod postao efektan potrebno je samo učitati predani komentar. Više detalja dostupno je na stranici: http://klikki.fi/adv/wordpress2.html.

Literatura

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima