ZAGOTAVLJANJE IN ANALIZA VARNOSTI SISTEMA ZA … · how the system itself can ensure the safety of...
Transcript of ZAGOTAVLJANJE IN ANALIZA VARNOSTI SISTEMA ZA … · how the system itself can ensure the safety of...
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Aleš Casar
ZAGOTAVLJANJE IN ANALIZA VARNOSTI SISTEMA ZA UPRAVLJANJE VSEBIN -
WORDPRESS
Diplomsko delo
Maribor, september 2017
ZAGOTAVLJANJE IN ANALIZA VARNOSTI SISTEMA ZA
UPRAVLJANJE VSEBIN - WORDPRESS
Diplomsko delo
Študent: Aleš Casar
Študijski program: Visokošolski študijski program
Informatika in tehnologije komuniciranja
Smer: Sistemska podpora ITK
Mentor: viš. pred. mag. Boštjan Kežmah, dipl. gos. inž. elektroteh.
Maribor, september 2017
i
ZAHVALA
Zahvaljujem se mentorju viš. pred. mag.
Boštjanu Kežmahu, dipl. gos. inž. el. za
usmerjanje in pomoč pri izdelavi diplomske
naloge.
Zahvaljujem se tudi moji družini, ki mi je
omogočila študij in punci, ki me je podpirala in
vzpodbujala v času študija.
ii
ZAGOTAVLJANJE IN ANALIZA VARNOSTI SISTEMA ZA
UPRAVLJANJE VSEBIN - WORDPRESS
Ključne besede: WordPress, Varnost, Zaščita, Vtičnik, CMS
UDK: 004.738.5:005.922.1(043.2)
Povzetek
Vse večja priljubljenost sistema za upravljanje vsebin WordPress privablja tudi vse več
potencialnih napadalcev, ki lahko tako ali drugače ogrožajo naše spletne strani in uporabnike
spletnih storitev. V diplomskem delu smo najprej analizirali zakaj je varnost na spletu tako zelo
pomembna in kako za varnost WordPress spletnih strani skrbi sistem sam. V drugem delu smo
raziskali kaj lahko sami postorimo za izboljšanje varnosti in za preprečevanje zlonamernih
napadov. Tako smo šli skozi vse pomembnejše varnostne nastavitve in ukrepe, da bi našo
spletno stran čim bolj optimalno zaščitili.
iii
SECURING AND SECURITY ANALYSIS OF WORDPRESS
CONTENT MANAGEMENT SYSTEM
Key words: WordPress, Security, Protection, Plugin, CMS
UDK: 004.738.5:005.922.1(043.2)
Abstract
The ever increasing popularity of WordPress content management system increases numbers
of potential attackers, who can in various ways harm our websites and users of internet
services. In my diploma we've first analyzed, why the safety on the internet is so important and
how the system itself can ensure the safety of the WordPress web sites. In the second part we
researched, what can we do ourselves to improve security and prevent malicious attacks. So
we went through all the important safety measures and precautions, to achieve optimum
protection of our web site.
iv
KAZALO VSEBINE:
1. UVOD ............................................................................................................................................... 1
2. WORDPRESS .................................................................................................................................... 2
2.1. FUNKCIONALNOSTI .................................................................................................................. 4
2.2. TEME ........................................................................................................................................ 5
2.3. VTIČNIKI ................................................................................................................................... 6
2.4. NASTAVITVE PRI NAMESTITVI SISTEMA .................................................................................. 7
3. POMEMBNOST ZAGOTAVLJANJA VARNOSTI................................................................................. 11
3.1. ZAKONODAJA ........................................................................................................................ 12
3.2. MOŽNE ZLORABE ................................................................................................................... 13
4. ANALIZA VARNOSTNIH REŠITEV WORDPRESS-A ........................................................................... 15
4.1. VARNOST VTIČNIKOV IN TEM ................................................................................................ 17
4.1.1. WORDPRESS.ORG TEME IN VTIČNIKI ............................................................................ 18
4.1.2. SKUPINA ZA PREIZKUS IN PREVERJANJE TEM ................................................................ 18
4.2. WORDPRESS JEDRO API ......................................................................................................... 18
4.3. PROTOKOL HTTPS .................................................................................................................. 19
4.3.1. SSL CERTIFIKAT .............................................................................................................. 20
4.3.2. DODAJANJE SSL CERTIFIKATA V WORDPRESS ............................................................... 21
5. SMERNICE ZA ZAGOTAVLJANJE VARNOSTI ................................................................................... 22
5.1. METODOLOGIJA DELA ........................................................................................................... 23
5.2. STREŽNIŠKO GOSTOVANJE .................................................................................................... 25
5.2.1. DOMOVANJE AKTIVNA ZAŠČITA .................................................................................... 25
5.2.2. NADZOR NAD DELOVANJEM STREŽNIKOV .................................................................... 26
5.2.3. PODATKOVNI CENTER ................................................................................................... 27
5.3. IZBIRA UPORABNIŠKEGA IMENA IN MOČNEGA GESLA ......................................................... 27
5.4. PRIKRIVANJE SKRBNIŠKE PRIJAVNE STRANI .......................................................................... 28
5.5. OMEJITEV ŠTEVILA NAPAČNIH PRIJAV .................................................................................. 30
5.6. DOLOČANJE PRAVIC DATOTEKAM NA STREŽNIKU ................................................................ 32
5.7. DATOTEKA HTACCESS ............................................................................................................ 33
5.8. ZAKRIVANJE DELOVNE RAZLIČICE SISTEMA .......................................................................... 36
5.9. PREDPONE WORDPRESS TABEL ............................................................................................. 37
5.10. SPREMLJANJE SPREMEMB DATOTEK NA STREŽNIKU ........................................................ 38
5.11. 'MALWARE' PREGLEDOVANJE ........................................................................................... 39
5.12. NASTAVITEV POŽARNEGA ZIDU......................................................................................... 40
5.12.1. XMLRPC & PINGBACK RANLJIVOSTI ZAŠČITE ................................................................. 40
v
5.12.2. 6G ČRNI SEZNAM IN NASTAVITVE ................................................................................. 41
5.12.3. BLOKIRANJE LAŽNIH ROBOTKOV ................................................................................... 41
5.12.4. PREPREČEVANJE 'HOTLINK' ........................................................................................... 41
5.12.5. ZAZNAVANJE NAPAKE 404 ............................................................................................. 42
5.12.6. PREPREČITEV SPAM KOMENTARJEV ............................................................................. 42
5.13. UPORABA ORIGINALNIH VTIČNIKOV IN TEM .................................................................... 43
5.14. POMEMBNOST POSODOBITEV .......................................................................................... 43
5.15. VARNOSTNE KOPIJE ........................................................................................................... 45
6. SPREMLJANJE NAPREDKA .............................................................................................................. 47
7. VTIČNIKI ZA ZAGOTAVLJANJE VARNOSTI ...................................................................................... 58
7.1. WORDFENCE .......................................................................................................................... 58
7.2. ITHEMES SECURITY ................................................................................................................ 59
7.3. SUCURI SECURITY .................................................................................................................. 59
7.4. BULLETPROOF SECURITY ....................................................................................................... 60
8. SKLEP ............................................................................................................................................. 61
9. VIRI IN LITERATURA ....................................................................................................................... 62
KAZALO SLIK:
Slika 2.1: WordPress logotip.................................................................................................. 3
Slika 2.2: Sistemske datoteke na strežniku ............................................................................ 8
Slika 2.3: Ustvarjanje podatkovne baze ................................................................................. 8
Slika 2.4: Dodajanje novega uporabnika ............................................................................... 9
Slika 2.5: Podatkovna baza v programskem orodju phpMyAdmin.......................................... 9
Slika 2.6: Dodajanje podatkovne baze v WordPress ............................................................10
Slika 2.7: Zagon namestitve .................................................................................................10
Slika 2.8: Podatki spletišča ...................................................................................................11
Slika 3.1: Obvestilo o piškotkih na naši spletni strani urisk.eu ...............................................13
Slika 4.1: Sprememba URL naslova .....................................................................................22
Slika 4.2: HTTPS preusmerjanje v datoteki .htacces ............................................................22
Slika 4.3: HTTPS na 'Multisite' .............................................................................................22
Slika 4.4: Urisk.eu z varno HTTPS povezavo .......................................................................22
Slika 5.1: Generator varnih gesel .........................................................................................28
Slika 5.2: Sprememba URL naslova za dostop do skrbniške prijavne strani .........................29
Slika 5.3: Omogočanje varnostnega preizkusa .....................................................................29
vi
Slika 5.4: Varnostni preizkus pri prijavi .................................................................................29
Slika 5.5: Zakrivanje uporabniškega imena avtorja s preusmeritvijo na domačo stran ..........30
Slika 5.6: Omejitev števila napačnih prijav ............................................................................31
Slika 5.7: Seznam trajanja aktivnosti prijavljenih uporabnikov ..............................................31
Slika 5.8: Podatki o pravicah datotek ....................................................................................32
Slika 5.9: Določanje pravic datotekam s pomočjo FTP odjemalca ........................................32
Slika 5.10: Pravilno urejene pravice datotek .........................................................................33
Slika 5.11: Datoteka .htaccess .............................................................................................34
Slika 5.12: Spreminjanje dostopa do skrbniške nadzorne plošče ..........................................34
Slika 5.13: Onemogočanje dostopa do datoteke 'wp-config.php' ..........................................34
Slika 5.14: Dostop do datoteke 'wp-login.php' z našega IP naslova ......................................35
Slika 5.15: Preprečevanje eksekucij PHP datotek ................................................................35
Slika 5.16: Zaščita .htaccess datoteke ..................................................................................35
Slika 5.17: Spreminjanje predpon tabel podatkovni bazi .......................................................37
Slika 5.18: Omogočanje osnovne zaščite požarnega zidu ....................................................40
Slika 5.19: Vklop XMLRPC in Pingback zaščite ....................................................................40
Slika 5.20: Aktiviranje 5G in 6G pravil ...................................................................................41
Slika 5.21: Blokiranje lažnih robotkov ...................................................................................41
Slika 5.22: Preprečevanje 'hotlink' ........................................................................................42
Slika 5.23: Zaznavanje napake 404 ......................................................................................42
Slika 5.24: Preprečevanje SPAM komentarjev .....................................................................43
Slika 5.25: Ročno posodabljanje vtičnikov ............................................................................44
Slika 5.26: Ročno posodabljanje tem ....................................................................................45
Slika 5.27: Kreiranje varnostne kopije podatkovne baze .......................................................46
Slika 5.28: Samodejno kreiranje varnostne kopije podatkovne baze .....................................46
Slika 5.29: Samodejno kreiranje varnostne kopije podatkovne baze s pomočjo cPanel ........47
Slika 6.1: Merilnik zaščite sistema na začetku ......................................................................47
Slika 6.2: Razmerje zaščite na začetku ................................................................................48
Slika 6.3: Končno razmerje dejavnikov zagotavljanja zaščite................................................52
Slika 6.4: Opozorilo pri izbiri 'brute force' zaščite ..................................................................52
Slika 6.5: Seznam neuspešnih prijav v sistem ......................................................................53
Slika 6.6: Trenutno prijavljeni uporabniki ..............................................................................53
Slika 6.7: Zadnjih 5 uspešnih prijav v sistem ........................................................................54
Slika 6.8: Trajanje sej prijav ..................................................................................................54
Slika 6.9: Spremembe datotek na strežniku ..........................................................................54
Slika 6.10: Obvestila o spremembah na skrbniški domači strani ...........................................55
Slika 6.11: Rezultat 'Sucuri SiteCheck' pregledovanj ............................................................56
vii
Slika 6.12: Rezultat 'WPMUDEV Security' pregledovanj .......................................................56
Slika 7.1: Vtičnik Wordfence Security ...................................................................................58
Slika 7.2: Vtičnik iThemes Security .......................................................................................59
Slika 7.3: Vtičnik Sucuri Security ..........................................................................................59
Slika 7.4: Vtičnik BulletProof Security ...................................................................................60
KAZALO TABEL:
Tabela 5.1: Čas potreben za razvozlanje 6-9 mestnih gesel .................................................28
Tabela 6.1: Razvrstitev varnostnih ukrepov v skupine pogostih ranljivosti po OWASP .........57
SEZNAM KRATIC:
Apache – Spletni strežnik
API – Application programming interface
Brute force attacks – napadi v zelo kratkih intervalih, po navadi iz različnih IP naslovov
cPanel – strežniška nadzorna plošča
CMS – Content mamagement system
CPU – Central processing unit
CSRF – Croos Site Request Forgery
CSS – Cascading style sheets
DDoS – Distributed Denial of Service
DNS – Domani name System
FTP – File transfer protocol
GPL – General public license
HTML – HyperText Markup Language
HTTP – HyperText Transfer Protocol
HTTPS – HyperText Transfer Protocol Secure
IP – Internet protocol
MariaDB – podatkovna zbirka
MySQL – kombinacija 'My' (ime razvijalčeve hčerke) in 'SQL' (Structured Query Language)
Nginx – Spletni strežnik
OWASP – Open Web Application Security Project
viii
PB – Podatkovna baza
PHP – Hypertext Preprocessor
RFI – Remote file inclusion
SPAM – nezaželena, vsiljena elektronska sporočila
SSD – Solid-state drive
SSL – Secure Sockets Layer
SSRF – Server Side Request Forgery
TIER 1 – internetno omrežje
TLS – Transport Layer Security
URL – Uniform Resource Locator
VPS – Virtal private server
WP - WordPress
XML-RPC – remote procedure call, ki uporablja Extensible Markup Language
XSS - Cross Site Scripting
XXE - XML eXternal Entity
1
1. UVOD
WordPress je dinamični odprtokodni sistem za upravljanje vsebin, ki ga uporablja na milijone
spletnih strani, aplikacij in blogov. Z drugimi besedami, dobrih 23% od 10 milijonov najbolj
obiskanih spletnih strani temeljni na teh spletnih rešitvah. [5] Sistem je zelo priljubljen zaradi
svoje enostavnosti in razširljivosti. Uporabniki lahko brez večjega programerskega predznanja
spreminjajo teme, dodajajo vtičnike, drugo vsebino in tako kreirajo svoje spletne rešitve. Zaradi
velike priljubljenosti sistema je ta tudi precej ogrožen z varnostnega vidika, saj hekerji
neprestano spremljajo razvoj in iščejo ranljivosti. In ker z vdori lahko pride do nezaželenih
posledic, npr. do kraje podatkov, dodajanja povezav do nelegalnih strani, brisanja vsebin ipd.,
je zelo pomembno, da je sistem ustrezno zavarovan. [12] Da bi razne napade in vdore čim bolj
učinkovito preprečili, ne moremo računati samo na sam sistem, ampak lahko s pravilnimi
pristopi največ postorimo sami.
Vsak uporabnik si želi biti varen na svetovnem spletu, zato je zelo pomembno, da so naše
spletne rešitve varne za uporabnike. Tako si pridobimo večje zaupanje obiskovalcev, zvišamo
uvrstitve za ključne besede v spletnih iskalnikih in v primeru spletne trgovine tudi povečamo
prodajo. [13] Namen diplomske naloge je, da raziščemo in analiziramo varnostne vidike, ki so
potrebni pri vzpostavitvi take spletne rešitve. Tako bomo v prvem delu raziskali katere
protokole in aplikacije uporablja WordPress za zagotavljanje varnosti platforme že v osnovi.
V drugem delu pa se bomo osredotočili na to, kako lahko sami poskrbimo za varnost. Raziskali
in pregledali bomo vse varnostne nastavitve platforme WordPress, dodatno poskrbeli za
varnostne rešitve in poskušali zagotoviti optimalno varnost na naši spletni strani. Zelo
pomembno je namreč, da imamo zelo dobro strežniško gostovanje, da samo platformo,
vtičnike in teme redno posodabljamo, onemogočimo spreminjanje datotek na strežniku, si
zagotovimo varnostne kopije, ter da pravilno nastavimo druge varnostne nastavitve. Pri tem
bomo še preizkusili in analizirali nekaj najboljših vtičnikov za zagotavljanje varnosti v
WordPress-u. Da se bomo dela lotili pravilno in dobro, je zelo pomembno, da bomo s pomočjo
različnih postopkov skozi cel čas preverjali in spremljali napredek glede zagotavljanja varnosti
naših spletnih rešitev. Tako bomo med samim delom večkrat preverili spletno stran s pomočjo
sistemov za preverjanja zanesljivosti in varnosti WordPress spletnih strani, ki so dostopni na
svetovnem spletu ter poskušali odpraviti ranljivosti na katere bomo opozorjeni. Z namestitvijo
določenih varnostnih vtičnikov pa bomo napredek spremljali sproti po vsaki spremembi
nastavitev in sicer v grafični obliki s pomočjo grafikonov in v točkovno - številčni obliki, kjer bo
2
napredek viden v številčnih rezultatih. Dobljene rezultate bomo lahko na koncu tudi predstavili
in ugotovili kako uspešni smo bili. Na svetovnem spletu je že ogromno napisanega na temo
zagotavljanja varnosti WordPress spletnih strani. Mi se bomo osredotočali na konkreten primer
ter v namen raziskovanja in analize zagotavljanja varnosti vzpostavili spletno stran v orodju
WordPress. Tako bomo lahko preizkusili različne varnostne vtičnike, nastavitve, spremljali
dogajanje na strežniku in poskušali spletno stran čim bolj optimalno zaščititi pred raznimi
možnimi vdori. Varnost končne rešitve bomo preverjali s samodejnimi varnostnimi orodji,
dostopnimi na svetovnem spletu.
Pisanje diplomskega dela bo temeljilo na znanju, ki smo si ga skozi študijsko obdobje pridobili
na fakulteti, poznavanju sistema WordPress ter lastnem raziskovanju sistemov za
zagotavljanje varnosti. Pri tem bomo uporabili že pripravljene smernice in sam namen
diplomskega dela ni, da bi preverjali ali je seznam ustrezen, popoln in zadosten.
Predpostavljamo pa, da bodo pridobljene informacije zelo koristile tistim, ki se bodo želeli
dodatno poučiti na to temo.
2. WORDPRESS
Sami začetki sistema segajo v leto 2003, v precej bolj okrnjeni obliki kot je današnja, izpod
prstov glavnega razvijalca Matta Mullenwega in le s peščico uporabnikov. WordPress je nastal
v želji po elegantnem, dobro načrtovanem sistemu, ki temelji na PHP programskem jeziku in
MySQL podatkovni bazi in je licenciran pod GPL licenco, kar uporabnikom omogoča svobodno
in prosto uporabo. WordPress je uradni naslednik programa b2/cafelog, ki ga je razvil Michael
Valdrigi. Ime je predlagala razvijalčeva prijateljica Christine Selleck. Od takrat se je ta
brezplačni, dinamični odprtokodni sistem za upravljanje vsebin razvil v najbolj razširjeno
računalniško orodje za ustvarjanje spletišč na svetu, na katerem temelji na milijone spletnih
strani in jih vsakodnevno obišče več deset milijonov ljudi.
3
Slika 2.1: WordPress logotip
Vse kar WordPress predstavlja, od same dokumentacije, do kode sistema je bilo ustvarjeno
za skupnost. Gre za odprtokodni projekt, kar pomeni, da je v ozadju na stotine ljudi po vsem
svetu, ki projekt razvijajo naprej. To tudi pomeni, da je uporaba sistema brezplačna in v
nobenih primerih uporabe ni treba plačevati dodatnih licenc. Sam sistem si lahko prenesemo
na spletni strani wordpress.org. Za namestitev priporočajo Apache ali Nginx spletne strežnike,
saj naj bi ti veljali kot najbolj robustni in preizkušeni pri gostovanju WordPress spletnih rešitev.
V praksi bo pa dovolj vsak strežnik, ki podpira nekatere minimalne zahteve, kot so PHP
programski jezik različice 7 ali novejši, MySql 5.6. ali MariaDB 10.0 podatkovno bazo ter
HTTPS podporo. Platforma je zelo prilagodljiva, saj lahko praktično brez programerskega
predznanja spreminjamo in urejamo teme, razširjamo določene funkcionalnosti z
nameščanjem dodatnih vtičnikov, dodajamo vsebino in si tako kreiramo željene spletne rešitve.
[5]
Na voljo je tudi storitev imenovana WordPress.com, ki omogoča gostovanje in izdelavo
brezplačnih blogov oziroma spletnih strani za registrirane uporabnike in je finančno podprto s
plačljivimi storitvami, nadgradnjami, "VIP" storitvami in oglaševanjem. Spletna stran se je
odprla leta 2005 in je bila prvotno zagnana kot storitev na povabilo. Oktobra 2012, je
WordPress uporabljalo več kot 56 milijonov blogov. To število se je do 2016 zvišalo na 74,6
milijonov, polovica od tega jih gostuje na WordPress.com. V marcu 2016 so našteli več kot
22,5 milijard obiskov na objavah in straneh, istega meseca je na WordPress.com bilo
objavljenih več kot 58,6 milijonov objav in več kot 7,7 milijonov strani. Registracija ni potrebna
pri branju in komentiranju člankov, razen če tako zahteva lastnik. Vse osnovne funkcije in
storitve so za uporabo zastonj. Vendar pa so nekatere storitve vključno s CSS urejevalnikom,
registracijo domene, odstranitev oglasov, nalaganje videov in nadgrajevanja prostora na spletu
plačljive. [14]
Obstajajo tudi različne WordPress skupnosti, ki delujejo po vsem svetu in so tako poleg
ogromnega števila spletnih virov, forumov odlična priložnost za izobraževanja in združevanja
4
uporabnikov. Ena izmed takih je WordCamp, ki organizira različne, povečini brezplačne
dogodke namenjene druženju in izobraževanju. Spored, lokacije in termine je mogoče preveriti
na njihovi spletni strani. Tudi v Sloveniji delujejo skupnosti, ki večkrat organizirajo
izobraževanja za začetnike in naprednejše uporabnike, ter razna predavanja ob čajankah.
2.1. FUNKCIONALNOSTI
WordPress je CMS sistem na katerem temelji 24% celotnega svetovnega spleta in ta številka
se povečuje iz dneva v dan. Vse od preprostih spletnih strani, blogov, spletnih trgovin,
zapletenih portalov, do poslovnih spletnih strani in celo aplikacij je zgrajenih s pomočjo teh
spletnih rešitev. Združuje enostavnost za uporabnike, urednike in prijaznost do razvijalcev, to
omogoča fleksibilnost in hkrati enostavno uporabo ter veliko funkcionalnosti. [5]
- Preprostost za uporabo: Hitro in učinkovito do željenih vsebin v le nekaj korakih.
- Prilagodljivost: Ustvarimo lahko različne vrste spletnih rešitev po svojem okusu.
- Orodja za objavo: Enostavno ustvarjanje in hitra objava željenih vsebin.
- Upravljanje medijskih vsebin: Slika pove več kot tisoč besed, zato je pomembno da
lahko hitro in enostavno nalagamo medijske vsebine.
- Upravljanje uporabnikov: Uporabnikom lahko določimo različne skupine, privilegije
in skrbniške pravice. Od skrbnikov sistema, avtorjev, urednikov, do uporabnikov, ki
lahko stran samo pregledujejo. To omogoča, da imamo različno skupino sodelavcev,
ki tako ali drugače skrbijo za spletno stran.
- Skladnost s standardi: WordPress je popolnoma v skladu s standardi W3C. To
pomeni, da bo vaša spletna stran kompatibilna tudi z naslednjimi generacijami spletnih
brskalnikov.
- Teme: Na voljo je ogromno predlog in tem, ki jih lahko enostavno namestimo in
urejamo.
- Vtičniki: Z njihovo pomočjo lahko enostavno razširimo funkcionalnosti spletnih strani.
Dodamo različne galerije, kontaktne obrazce, forume..
5
- Orodja za upravljanje komentarjev: Skrbi za vse kar potrebujete za učinkovito
vodenje razprav in soustvarjanje vsebin.
- SEO optimizacija za iskalnike: Sistem je optimiziran za iskalnike s pomočjo dodatnih
SEO vtičnikov.
- Upravljanje svojih podatkov: Vaši podatki so dostopni samo vam.
- Večjezičnost: Podpora več kot 70 jezikom. Tudi v slovenščini.
- Skupnost: Kot najbolj priljubljen odprtokodni CMS sistem na svetovnem spletu ima
WordPress veliko in dinamično podporo razvijalcev, ki vsakodnevno objavljajo nove
rešitve in posodobitve.
- Namestitev in nadgradnje: Enostavno in hitro z uporabo FTP klientov. Ali pa
namestitev z enim klikom, kar preko uporabniških nadzornih plošč, ki jih omogočajo
strežniški gostitelji.
- Enostaven uvoz vsebin: Omogoča enostaven uvoz vsebin iz blogger, LiveJournal,
Movable Type, TypePad, Tumblr, in drugih WordPress spletnih strani.
- Analiza obiskanosti: Vodenje statističnih podatkov obiskanosti. [5]
2.2. TEME
Uporabniki WordPress-a lahko namestijo in preklapljajo med različnimi temami (angleško
Themes). Teme omogočajo uporabnikom, da spremenijo videz in funkcionalnost svojim
spletnim stranem. [1] Teme spremenijo sam videz strani in v večini primerov funkcije
WordPress skripte ostanejo nespremenjene. V večini primerih pa zato, ker imajo nekatere bolj
izpopolnjene teme dodane posebne funkcionalnosti, ki še dodatno popestrijo spletno stran.
[16] Vsaka WordPress stran zahteva vsaj eno temo, ki jo lahko oblikujemo s pomočjo
standardov PHP, HMTL in CSS ali pa si jo prilagodimo kar v administrativni nadzorni plošči,
tako da bo skladna s tematiko spletišča in kot taka primerna za obiskovalce. [1] Teme so v
splošnem razdeljene v dve kategoriji, prosto dostopne oz. zastonj teme in plačljive (angleško
premium) teme. Vse prosto dostopne so na voljo na spletni strani WordPress.org, plačljive pa
na spletnih straneh posameznih razvijalcev. V večini primerov je moč plačljive verzije tudi
brezplačno preizkusiti v okrnjeni različici in jih potem dokupiti v polni različici, z vsemi
funkcionalnostmi. Ob zadostnem programerskem predznanju, pa si lahko teme ustvarimo kar
sami. [1]
6
Brezplačne Teme lahko namestimo neposredno preko administrativne nadzorne plošče. Kjer
v meniju izberemo 'Videz' in nato 'Teme'. Za dodajanje nove teme zgoraj izberemo 'Dodaj
novo'. Odpre se seznam vseh brezplačnih tem, ki so dostopne na WordPress.com. Teme lahko
izberemo preko raznih filtrov, ali pa jih poiščemo kar v iskalniku. Ko izberemo ustrezno temo,
lahko s klikom na gumb 'Predogled' preverimo, kako bi naša stran dejansko izgledala z novo
nameščeno temo. Temo namestimo prek gumba 'Namesti' in ko je nameščena, jo moramo
samo še aktivirati s klikom na gumb 'Aktiviraj'
Obstaja še drugi način namestitve in sicer ročna namestitev preko administrativne nadzorne
plošče ali pa s pomočjo FTP odjemalcev. Ti možnosti izberemo kadar želimo namestiti plačljivo
temo, ali pa izbrane teme ni v direktoriju brezplačnih tem. Izbrano temo si prenesemo na
računalnik in se prijavimo v administrativno nadzorno ploščo oz. v strežniško gostovanje preko
FTP odjemalca. V primeru, da želimo temo namestiti preko nadzorne plošče, podobno kot v
prejšnjem primeru namestitve najprej izberemo 'Videz' in nato 'Teme'. V naslednjem koraku
izberemo 'Dodaj novo'. Do tu je postopek enak. Potem pa izberemo 'Naloži temo' in na svojem
računalniku poiščemo direktorij izbrane teme. Sledi samo še, da temo namestimo s klikom na
'Namesti zdaj' in jo aktiviramo. V drugem primeru namestitve preko FTP odjemalcev pa je
najbolj pomembno, da gremo v direktorij wp-content/themes, kjer so nameščene vse teme, ki
jih imamo na naši spletni strani in tam ustvarimo novo mapo z imenom izbrane teme. V to
mapo nato prenesemo vsebino direktorija teme iz računalnika. Tako je namestitev zaključena.
[16]
2.3. VTIČNIKI
Vtičniki ali angleško plugins so deli programske opreme, ki sistemu WordPress omogočajo
hitro in enostavno razširitev funkcionalnosti ter uporabnih dodatkov. Za WordPress obstaja
skoraj 50000 brezplačnih in plačljivih naprednejših vtičnikov. Med najbolj priljubljene vtičnike
sodijo tisti, ki spletno stran nadgradijo s/z:
- Meta oznakami, spletno optimizacijo, zemljevidi spletnega mesta
- Vnosnimi polji, kontaktnimi obrazci
- Blokiranjem nezaželene (ang. spam) vsebine in drugimi varnostnimi ukrepi
- Sinhronizacijo s socialnimi omrežji
- Možnostjo kreiranja poljubnih stolpcev in tabel na podstraneh
7
- Možnostjo pred pomnjenja, kar pohitri našo spletno stran
- Galerijami, forumi, dinamičnimi meniji
- Spletno trgovino [15]
Brezplačne vtičnike lahko enostavno nameščamo in posodabljamo preko administrativne
nadzorne plošče, kjer v zavihku 'Vtičniki' izberemo 'Dodaj'. Prikaže se seznam vseh vtičnikov,
ki so dostopni v podatkovni bazi WordPress.org. Le te lahko razvrščamo po kategorijah, ali pa
jih poiščemo v iskalniku. Če je izbran vtičnik ustrezen izberemo 'Namesti zdaj' in vtičnik se bo
po nekaj sekundah namestil. Po namestitvi se prikaže gumb 'Aktiviraj', kliknemo nanj, da vtičnik
aktiviramo in že ga lahko urejamo in uporabljamo na strani. [15]
Drugi način je namestitev vtičnikov s pomočjo .zip datotek prav tako v administrativni nadzorni
plošči. Ta način bomo največkrat uporabili kadar bomo želeli namestiti naprednejši plačljiv
vtičnik. Postopek je podoben kot v prejšnjem primeru, saj najprej izberemo zavihek 'Vtičniki' in
nato 'Dodaj'. Ko se odpre seznam vtičnikov, zgoraj izberemo 'Naloži vtičnik'. Prikazalo se bo
polje z gumbom 'Izberite datoteko'. Kliknemo nanj in na svojem računalniku izberemo želeno
.zip datoteko. Ostane samo še, da vtičnik namestimo s klikom na gumb 'Namesti zdaj' in ga
isto kot v prejšnjem primeru aktiviramo. Vtičnik bo tako pripravljen za uporabo. [15]
Obstaja še tretji način namestitve vtičnikov in sicer preko nadzorne plošče pri ponudniku
strežniškega gostovanja oz. s pomočjo FTP odjemalcev. V obeh primerih je postopek
podoben, pomembno je samo, da datoteke vtičnika namestimo v pravi direktorij. Po uspešni
prijavi na strežniku poiščemo datoteko 'public_html' in domeno, na kateri se nahaja naša
spletna stran. V primeru, da imamo v paketu gostovanja samo eno domeno, se že nahajamo
v tem direktoriju. Izberemo mapo 'wp_content' in nato še plugins. V tej mapi se nahajajo vsi
vtičniki, ki jih imamo nameščene na naši strani. Nato na našem računalniku poiščemo datoteke
izbranega vtičnika in jih s klikom na gumb 'Prenesi' ali 'naloži' prenesemo na strežnik. [15]
2.4. NASTAVITVE PRI NAMESTITVI SISTEMA
WordPress si lahko na strežnik namestimo preko nadzornih plošč, če jih ponudniki gostovanj
podpirajo ali pa kar preko FTP odjemalcev. Na https://wordpress.org/download/ si pridobimo
namestitveno datoteko in jo razpakiramo, ter preko FTP odjemalca naložimo na strežnik v
mapo 'httpdocs'.
8
Slika 2.2: Sistemske datoteke na strežniku
Pred samo namestitvijo sistema WordPress, si moramo konfigurirati podatkovno bazo. To
storimo tako, da v nadzorni plošči spletnega gostovanja izberemo 'Podatkovne baze' in
ustvarimo novo podatkovno bazo. Novi podatkovni bazi določimo ime in vrsto, v našem primeru
je to MySQL.
Slika 2.3: Ustvarjanje podatkovne baze
9
Podatkovni bazi moramo dodati še uporabnika in geslo. To storimo tako, da izberemo željeno
podatkovno bazo in kliknemo na Dodaj novega uporabnika.
Slika 2.4: Dodajanje novega uporabnika
Podatkovno bazo lahko urejamo in varnostno kopiramo preko orodij za upravljanje s
podatkovno bazo phpMyAdmin.
Slika 2.5: Podatkovna baza v programskem orodju phpMyAdmin
10
Po uspešnem kreiranju podatkovne baze in uporabnika, sledi namestitev sistema WordPress.
To zaženemo tako, da vpišemo URL naslov naše spletne strani. Odpre se začetno
namestitveno okno s kratkim opisom sistema in minimalnimi zahtevami za namestitev. Tu
sistem tudi opozori, da si pred namestitvijo moramo kreirati podatkovno bazo oz. pridobiti
naziv, uporabniško ime in geslo obstoječe podatkovne baze. Ob nadaljevanju se odpre okno
za dodajanje povezave in podrobnosti o podatkovni bazi, kamor vnesemo prej pridobljene
podatke.
Slika 2.6: Dodajanje podatkovne baze v WordPress
Če so podatki vneseni pravilno, sistem obvesti, da je ta del namestitve uspešno opravljen.
Slika 2.7: Zagon namestitve
11
Tako nadaljujemo 5-minutno namestitev sistema WordPress, kjer določimo naslov spletišča
ter skrbniške uporabniške podatke. Spletnim iskalnikom lahko po izbiri tudi preprečimo
indeksiranje našega spletišča.
Slika 2.8: Podatki spletišča
3. POMEMBNOST ZAGOTAVLJANJA VARNOSTI
Živimo v časih, ko večina komunikacije poteka preko svetovnega spleta, ko je internet del
našega vsakdana, ko je meja med realnim in virtualnim svetom iz dneva v dan vse bolj
zabrisana. Svetovna podjetja se predstavljajo na spletu, mnoga omogočajo tudi spletno
nakupovanje. Različna društva splet izkoriščajo za sodelovanje s svojimi člani, kot
posamezniki pa lahko svoje vtise in mnenja hitro predstavimo v svojem spletnem dnevniku, na
forumih ali družbenih omrežjih. Ob vseh teh prednostih svetovnega spleta pa ne smemo
pozabiti tudi na pasti in nevarnosti. [17]
Ne glede na to ali spletno stran vzpostavimo mi ali pa za to poskrbijo zunanji partnerji, smo
sami odgovorni za njegovo delovanje, zato moramo ohraniti nadzor in skrbeti za vzdrževanje.
Izbira ponudnika strežniškega gostovanja mora biti dobro premišljena in na odločitev naj ne
12
vpliva zgolj cena paketa, ampak predvsem storitve, ki jih ponuja, zanesljivost in hitra odzivnost
ponudnika. Pred vzpostavitvijo spletnega mesta moramo dobro razmisliti kaj sploh želimo in si
razdeliti faze postavitve spletnega mesta na tri dele: Načrtovanje, postavitev in vzdrževanje. V
fazi načrtovanja določimo kaj vse bo naša spletna stran zajemala. Ali bo ta zgolj v
predstavitvene namene, ali bo šlo za zapleten portal, spletno trgovino ali celo za poslovno
spletno stran. Od zapletenosti je odvisno kateri sistem izberemo in koliko vzdrževanja bo
zahteval. S postavitvijo spletnega mesta, pri izbranem ponudniku gostovanja smo najeli
poslovne prostore na internetu, za katere moramo skrbeti sami. Način poslovanja, skrb za
varnost in vzdrževanje je naša naloga. Prav slabo ali neobstoječe vzdrževanje je najpogostejši
vzrok za težave na spletnem mestu. Saj če zanj ne skrbimo, je le vprašanje časa kdaj bo prišlo
do kakšnega zapleta. Odpravljanje posledic zlorabe spletnega mesta pa bo terjalo določen čas
in denar. Nedostopnost spletne trgovine ali strani pa povzroči tudi izgubo strank, poslovno
škodo in prav gotovo ne prispeva k naši dobri podobi. Med vzdrževalna dela spada redno
preverjanje delovanja spletnega mesta, redne posodobitve in nadgradnje same platforme,
ažuriranje kontaktnih podatkov za domeno, ter spremljanje novic o novostih platforme. Splet
je dinamično okolje in njegovemu razvoju moramo slediti tudi s svojim spletnim mestom [17]
3.1. ZAKONODAJA
Splet ureja tudi slovenska zakonodaja. Posamezni zakoni in členi so zapisani na
www.cert.si/zakonodaja, zato smo jih kot lastniki spletnih strani dolžni upoštevati. Odgovornost
za vsebine na našem spletnem mestu nosimo mi. Če vdiralec na naše spletno mesto naloži
orodja s katerimi povzroča škodo drugim uporabnikom spleta, smo lahko soodgovorni tudi mi,
če ob tem ustrezno in hitro ne ukrepamo. [17]
Zakon o elektronskem poslovanju na trgu (ZEPT, 11.člen) določa, da ponudnik spletnega
gostovanja ni odgovoren za podatke, ki so naloženi na strežnik, dokler se ne zaveda, da gre
morebiti za protipravno dejavnost. Takoj, ko mu je ta znana pa mora odstraniti ali onemogočiti
dostop do teh podatkov. Ob morebitnih pritožbah glede vsebine, na našem spletnem mestu,
ima ponudnik torej jasno zakonsko dolžnost, da dostop do nje onemogoči. Poleg tega lahko
določi pogoje in dodatna pravila, ki jih moramo upoštevati ob zakupu gostovanja. [17]
Pošiljanje oglasov brez vnaprejšnjega soglasja naslovnika je v nasprotju s slovensko
zakonodajo. Področje nezaželene elektronske pošte (spam) urejajo kar štirje zakoni in izgovor,
da smo elektronske naslove dobili na javno dostopnih spletnih straneh, ni soglasje za spam.
Pomembno je tudi, da upoštevamo pravila glede intelektualne lastnine. Poskrbeti moramo, da
imamo vsa ustrezna dovoljenja za uporabo vsebin na našem spletnem mestu. Tako za vsebino
13
najdeno na spletu nikakor ne pomeni, da jo lahko tudi uporabljamo. Nekatere vsebine se lahko
prosto uporabljajo, spet druge pod določenimi pogoje, sicer pa moramo dobiti dovoljenje od
lastnika pravic. [17]
Spletni piškotki so majhne tekstovne datoteke, ki jih spletni strežnik ob obisku ponudi
brskalniku obiskovalca in se običajno shranijo na njihov računalnik ali mobilno napravo, ob
ponovnem obisku pa se shranjeni podatki iz brskalnika ponovno pošljejo strežniku. Uporabljajo
se za vodenje sej, za razlikovanje med uporabniki, njihovemu sledenju spletišču in za
shranjevanje nastavitev. V skladu z zakonom o elektronskih komunikacijah (ZEKom-1)
moramo uporabnike obvestiti o vrsti piškotkov, ki jih uporabljamo na našem spletnem mestu
ter pridobiti njihovo soglasje za uporabo. Več o spletnih piškotkih je na voljo na spletni strani
https://www.ip-rs.si/fileadmin/user_upload/Pdf/smernice/Smernice_o_uporabi_piskotkov.pdf.
[17]
Slika 3.1: Obvestilo o piškotkih na naši spletni strani urisk.eu
Če na strežniku hranimo ali obdelujemo osebne podatke, moramo v skladu z Zakonom o
varstvu osebnih podatkov zbirke osebnih podatkov prijaviti informacijskemu pooblaščencu. V
primeru, da imamo strežniško gostovanje najeto v tujini, moramo preveriti ali je izvoz osebnih
podatkov v tisto državo sploh dovoljen. Izvoz je dovoljen v članice evropske unije, v ZDA pa le
v podjetja, ki so podpisala ustrezen sporazum. Informacije ali je potrebno s ponudnikom
gostovanja pri tem podpisati pogodbo o obdelavi osebnih podatkov, pa prav tako dobimo pri
informacijskem pooblaščencu. [17]
3.2. MOŽNE ZLORABE
Do vdorov najpogosteje pride v ne vzdrževanem sistemu za upravljanje vsebin ali strežniku,
kjer vdiralec najlažje najde varnostno luknjo. Dostop lahko pridobi tudi s krajo uporabniškega
imena in gesla, ali ugibanjem, če je le to preveč enostavno. Kot posledice vdorov se največkrat
omenja moteno delovanje ali izpad spletnega mesta. Možne ja izguba, sprememba ali kraja
podatkov in posledično ogrožanje obiskovalcev našega spletnega mesta. Pogoste pa so tudi
blokade naše elektronske pošte, ali celo blokada našega spletnega mesta na internetu. [17]
14
Nekaj najpogostejših vrst vdorov:
- RAZOBLIČENJE oz. DEFACEMENT: Je 'grafitiranje' preko katerega želi napadalec
izraziti svoje mnenje, ali pa le pustiti svoj podpis. Podoba spletnega mesta je
spremenjena. [17]
- PHISHING – KRAJA GESEL: Napadalec izkoristi naše spletno mesto za postavitev
lažne kopije. Npr. spletne strani bank in prek strežnika ukrasti gesla, ter nato tudi denar
njenih komitentov. Napadalci uporabljajo phishing tehniko tudi za krajo drugih
podatkov, kot so uporabniški računi, gesla za elektronsko pošto, številke kreditnih kartic
itd. Žrtve napada so po navadi zvabljena na lažne phishing strani preko prirejenega
elektronskega sporočila, v katerih so obveščena da morajo zaradi različnih razlogov
vnesti svoje podatke. Podatki pa gredo k napadalcem. [17]
- NAPAD S ŠKODLJIVO KODO: Naše spletno mesto lahko napadalci izkoristijo tudi za
širjenje zlonamerne kode, virusov, trojanskih konjev in računalniških črvov. Napadalec
na našo spletno stran namesti programsko kodo, ki poskuša izrabiti ranljivosti
obiskovalčevega brskalnika oz. dodatkov brskalnika. V tem primeru smo soudeleženi
pri okužbi računalnikov naših spletnih obiskovalcev. Okužbe lahko imajo za posledice
krajo podatkov z okuženega sistema ali finančno oškodovanje, zato je potrebno
takojšnje ukrepanje, ko ugotovimo, da se naše spletno mesto uporablja za širjenje
škodljive kode. [17]
- ONEMOGOČANJE SPLETNIH MEST: Lahko se zgodi, da pride do porazdeljenega
napada (DDoS), zaradi katerega je naše spletno mesto nedosegljivo. Za napadi lahko
stojijo izsiljevalci iz tujih držav, jezne stranke, bivši zaposleni ali celo konkurenca. V
primeru najave napada, moramo shraniti kopijo komunikacije in podatke o prometu, ki
ga je bil naš strežnik deležen. Lahko se tudi zgodi, da se znajdemo na drugi strani, ko
napadalec vdre v naš strežniški sistem in ga uporablja za napade na druga spletna
mesta. [17]
Ob napadu ali vdoru v naše spletno mesto je pomembno, da o tem obvestimo skrbnika
strežniškega gostovanja in poskrbimo za zavarovanje dokazov o vdoru (predvsem
napadalčevih datotek, sprememb na sistemu in dnevniških datotek). Pri tem je pomembno, da
napadenih datotek ne spreminjamo, da se ohranijo v celoti skupaj z ustreznimi časovnimi
oznakami. O vdoru moramo preko elektronske pošte, na naslov [email protected] obvestiti tudi SI-
CERT, kjer nudijo nadaljnjo pomoč pri preiskovanju vdora, dodatni zaščiti strežnika in spletne
15
strani ter opravijo potrebno komunikacijo s ponudniki interneta, CERT centri v tujini in po
potrebi tudi z organi pregona. [17]
4. ANALIZA VARNOSTNIH REŠITEV WORDPRESS-A
Za varnost pri WordPress-u skrbi ekipa sestavljena iz približno 30 strokovnjakov, ki sodeluje z
raznimi znanimi in zaupanja vrednimi raziskovalci in varnostnimi družbami. Skupaj skrbijo za
reševanje ranljivosti platforme in nove varnostne posodobitve. O vseh odkritih varnostnih
luknjah in pomanjkljivostih, jih lahko obvestimo preko elektronske pošte in tako pripomoremo
k razvoju same platforme. Varnostna ekipa bo pomanjkljivosti v čim krajšem času odpravila in
izdala novo varnostno posodobitev. Ko izidejo nove nadgradnje same platforme, skrbniki
WordPress spletnih straneh dobijo obvestila, da so na voljo nove različice programske opreme.
V primeru ročne nadgradnje, sistem skrbnika preusmeri na zaslon s prikazanimi opisom
sprememb in nadgradenj, ki jih prinaša nova različica. Skrbniki WordPress spletnih strani pa
si lahko nastavimo tudi samodejne nadgradnje sistema v ozadju, v tem primeru pa smo o
namestitvah obveščeni preko elektronske pošte. To možnost samodejnih nadgradenj so pri
WordPressu uvedli z verzijo 3.7. in tako skrbnikom ni potrebno skrbeti za ročno nameščanje,
hkrati pa je vedno nameščena najnovejša stabilna verzija platforme. [18]
OWASP TOP 10 je spletna skupnost namenjena varnosti spletnih aplikacij, ki se osredotoča
na ugotavljanje varnostnih ranljivosti in učinkovito reševanje le teh. Svoje ugotovitve
prikazujejo v seznamu desetih najbolj kritičnih ranljivosti, ki ga sproti spreminjajo in
posodabljajo, glede na statistične podatke zbrane skozi določeno obdobje. [18]
Nabor funkcionalnosti, ki jih uporablja platforma WordPress za krepitev svojega jedra:
- Vrivanje (ang. Injection): Obstaja nabor funkcij in API-jev, ki so na voljo razvijalcem pri
onemogočanju injiciranja nepooblaščene kode. Najbolj učinkovite metode in
dokumentacije uporabe teh programskih vmesnikov za zaščito, ali filtriranje vhodno
izhodnih podatkov so v HTML kodi, URL-jih, HTTP glavah, pri interakciji z podatkovno
bazo in datotečnim sistemom . Skrbniki lahko še dodatno omejijo vrste datotek z
urejanjem raznih filtrov. [18]
- Napaka pri overjanju in upravljanju sej (ang. Broken Authentication and Session
Management): Jedro programske opreme WordPress upravlja uporabniške račune,
16
avtentikacijo in podrobnosti kot so ID uporabnika, uporabniško ime in gesla, kot tudi
piškotke za preverjanje pristnosti, ki se izvajajo na strani strežnika. Gesla so zaščitena
v podatkovni bazi z uporabo že uveljavljenih standardnih tehnik za zaščito. Od verzije
4.0 dalje se obstoječe seje ob odjavi iz sistema uničijo. [18]
- Podtikanje skript (ang. Cross Site Scripting (XSS): Nabor funkcij, ki omogoča, da so
uporabniški podatki na varnem. Prispevki ali posegi v kodo zaupanja vrednih
uporabnikov (skrbniki in uredniki spletnih strani) so nefiltrirani, če tako želimo. Medtem,
ko je vsa vsebina nezaupanja vrednih uporabnikov, kot je na primer zlonamerna koda
z kombinacijo HTML in javascript, privzeto filtrirana z odstranjevanjem nevarnih
subjektov s pomočjo KSES knjižnice in wp_kses funkcije. [18]
- Nezavarovan neposreden dostop do objektov (ang. Insecure Direct Object
Reference): Bogat sistem za nadzor dovoljenj in nadzor dostopa onemogoča
nepooblaščene zahteve spreminjanja vrednosti parametrov in dostop do tujih
podatkov. [18]
- Napačne varnostne nastavitve (ang. Security Misconfiguration): Večina varnostnih
konfiguracij je omejena samo na enega avtoriziranega skrbnika. Privzete nastavitve za
WordPress se kontinuirano preverjajo s strani jedra ekipe, ki prav tako zagotavlja
dokumentacijo in najboljše prakse za konfiguracijo varnosti strežnika. [18]
- Izpostavljenost občutljivih podatkov (ang. Sensitive Data Exposure): Sistem za
upravljanje dovoljenj se uporablja za nadzor dostopa do zasebnih podatkov
registriranih uporabnikov, elektronskih naslovov, itd. Od verzije 3.7. dalje je v platformi
vključen sistem za preverjanje ti. močnih gesel, ki zagotavlja dodatne informacije
uporabnikom, ko si določajo geslo in jim svetuje kako jih izboljšati. WordPress nudi tudi
dodatno konfiguracijo nastavitev za HTTPS protokol. [18]
- Manjkajoč funkcijski nivo za dostopnost (ang. Missing Function Level Access
Control): WordPress preverja ustreznost zahtev za dostop do funkcionalnosti
nepooblaščenih uporabnikov. Dostop ali vizualizacija skrbniških URL-jev, menijev in
strani je tesno povezana s sistemom za preverjanje pristnosti in preprečevanja dostopa
nepooblaščenim uporabnikom. [18]
- Podtikanje zahtevkov (ang. Cross Site Request Forgery): Za zaščito pred morebitnimi
grožnjami CSRF, sistem uporablja kriptografske žetone za preverjanje zahtev, ki bi
17
lahko sprožile nezaželene ukaze. WordPress ponuja API za pridobivanje teh
edinstvenih in začasnih žetonov, ki so omejeni na določenega uporabnika, določen
ukrep, v določenem časovnem obdobju. [18]
- Uporaba komponent z znanimi ranljivostmi (Using Components with Known
Vulnerabilities): Ekipa za preverjanje varnosti pozorno spremlja vključene knjižnice in
razvojna ogrodja, ki so integrirana v osnovne funkcionalnosti sistema. V preteklosti so
večkrat sodelovali z zunanjimi sodelavci, tako so v različici 3.5.2. vključili posodobitev
za podtikanje skript v TinyMCE. Če je potrebno lahko jedro ekipe določi zamenjavo
kritičnih zunanjih komponent, kot je bila knjižnica SWFUpload, ki so jo uradno
nadomestili z Plupload, prav tako z nadgradnjo platforme na različico 3.5.2. [18]
- Nepreverjene preusmeritve in posredovanja (ang. Unvalidated Redirects and
Forwards): Notranji nadzor dostopa in sistem za preverjanje pristnosti ščitita pred
poskusi preusmerjanja uporabnikov na druge neželene povezave in spletne aplikacije.
Ta funkcija je na voljo tudi razvijalcem vtičnikov preko API, wp_safe_redirect(). [18]
- XXE obdelani napadi (ang. XML eXternal Entity): Pri obdelavi XML sistem onemogoča
nalaganje predelanih XML subjektov po meri, zaradi preprečitve napadov s pomočjo
zunanjih subjektov (ang. eXternal Entity) in razširitev (Entity Expansion). Razen jedru
PHP funkcionalnosti sistem ne zagotavlja API za dodatno varno obdelavo XML za
razvijalce vtičnikov. [18]
- SSRF napadi (ang. Server Side Request Forgery): Sistemske HTTP zahteve so
filtrirane, da se prepreči dostop do povratnih zank in privatnih IP naslovov. Poleg
samega filtriranja je dostop dovoljen samo v nekaterih standardnih HTTP portih. [18]
4.1. VARNOST VTIČNIKOV IN TEM
WordPress zahteva omogočeno vsaj eno temo za prikaz in predstavitev vsebine na zaslonu.
Privzeta tema v trenutni različici platforme je 'Twenty Fifteen', ki je bila močno varnostno
pregledana in preizkušena tako s strani ekipe razvijalcev teme, kot tudi s strani jedra razvojne
ekipe sistema. Privzeta tema služi kot izhodišče za razvoj po meri in razvijalci spletnih strani
lahko ustvarjamo popolnoma svoje teme, ali pa obstoječe prilagodimo z vsemi
funkcionalnostmi in varnostnimi rešitvami. Privzeto temo je mogoče popolnoma odstraniti iz
sistema, če jo ne potrebujemo. [18]
18
4.1.1. WORDPRESS.ORG TEME IN VTIČNIKI
Tako kot privzeta tema, je tudi vseh ostalih 2000 tem in več kot 50000 vtičnikov, ki so na voljo
na spletni strani WordPress.org preizkušenih in varnostno pregledanih s strani varnostne ekipe
in ekipe prostovoljcev, preden so na voljo za namestitev in uporabo. Vendar še to ni zagotovilo,
da so brez varnostnih lukenj in ranljivosti. V pomoč razvijalcem so na spletni strani objavljene
tudi smernice in obsežna navodila za izdelavo vtičnikov in tem. Vsak vtičnik in tema imata
možnost sprotnega razvoja in dodelave. Vse naknadne popravke in razvojne funkcije se lahko
z opisom sprememb dodatno naloži v obliki posodobitev in uporabniki so o tem obveščeni
preko administrativne nadzorne plošče. Ko je ranljivost odkrita s strani varnostne ekipe
WordPress, se le ta obrne na razvijalca in skupaj poskrbijo za rešitev problema ter izdajo
varnostne posodobitve. V primeru, da se avtor na opozorila ne odzove oz. gre za hudo
ranljivost, se vtičnik ali tema začasno odstrani iz javnega direktorija, dokler ga varnostna ekipa
ne izpopolni. [18]
4.1.2. SKUPINA ZA PREIZKUS IN PREVERJANJE TEM
Gre za skupino prostovoljcev, vodenih s strani uveljavljenih članov WordPress skupnosti, ki
pregleda in odobri teme, ki so predložene za vključitev v uraden WordPress imenik tem.
Skupina skrbi tudi za smernice pri pregledovanju tem, testiranje podatkov in preverjanje
vtičnikov. Razvijalce angažirajo, da se vključujejo v njihova izobraževanja in jih tako podučijo
najboljših praks glede razvoja samih spletnih rešitev. [18]
4.2. WORDPRESS JEDRO API
WordPress-ov aplikacijski programski vmesnik – API (ang. Application Programming
Interface), je sestavljen iz več posameznih API-jev, ki zajemajo vsak svoj določen nabor
predvidenih funkcionalnosti. Skupaj tvorijo vmesnik, ki omogoča vtičnikom in temam zanesljivo
in varno razširitev jedra funkcionalnosti. [18]
Medtem, ko vsak aplikacijski programski vmesnik v sistemu zagotavlja najboljše prakse in
standardizirane načine za interakcijo in razširitev jedra programske opreme, so naslednji API
najbolj primerni za uveljavljanje in utrjevanje varnosti sistema:
19
- API podatkovne baze (ang. Database API): Ta aplikacijski programski vmesnik je bil
dodan v različici sistema 0.71 in zagotavlja pravilen način za dostop do podatkov,
poimenovanih vrednosti, ki so shranjene v slojih podatkovne baze. [18]
- API datotečnega sistema (ang. Filesystem API): API dodan v različici 2.626 je bil
prvotno ustvarjen za WordPress funkcijo samodejnih posodobitev. Ta aplikacijski
programski vmesnik skrbi za varno pisanje in branje lokalnih datotek, v datotečnem
sistemu na različnih vrstah strežniških gostiteljev. To počne s pomočjo
wp_filesystem_base razreda in raznih podrazredov, ki izvajajo različne načine
povezovanja na lokalni datotečni sistem, odvisno od podpore posameznega gostitelja.
Vsak vtičnik ali tema, ki spreminja lokalne datoteke na strežniku to počne s pomočjo
wp_filesystem razredov. [18]
- HTTP API: Prvič v različici 2.728 in njegova razširitev v različici 2.8 standardizira HTTP
zahteve za WordPress. Obravnava piškotke, GZIP kodiranje in dekodiranje ter razne
druge HTTP protokole. API standardizira zahtevke, testiranje načinov metod pred
pošiljanjem in glede na konfiguracijo strežnika uporablja ustrezen način za pošiljanje
zahtevkov. [18]
- API dovoljenja uporabnikov: je nabor funkcij, ki pomaga preveriti dovoljenja
trenutnega uporabnika in pooblastila za opravljanje nalog in operacij, ki so zahtevana.
Prav tako lahko še dodatno ščiti pred nepooblaščenim dostopom uporabnikov oz. jim
preprečuje izvajanje nalog, ki presegajo njihova dovoljenja. [18]
4.3. PROTOKOL HTTPS
HyperText Transfer Protocol Secure, imenovan tudi HTTP preko TLS oz. SSL, je protokol za
varno komunikacijo preko računalniškega omrežja, ki se uporablja na internetu. HTTPS
sestavljajo protokol HTTP v povezavi s kriptografskim protokolom TLS oz. SSL. Glavne naloge
HTTPS so preverjanje pristnosti spletnih strani ter varovanje zasebnosti in integritete
izmenjanih podatkov. Omogoča dvosmerno šifriranje komunikacij med strežnikom in
odjemalcem, ki ščiti pred prisluškovanjem in nedovoljenim spreminjanjem vsebin sporočil. Kar
v praksi pomeni zagotovilo, da komuniciramo neposredno s strežnikom in da vsebine
komunikacije med uporabnikom in spletno stranjo ni mogoče prebrati ali spreminjati s strani
tretje osebe. [19]
20
V začetkih so ta varnostni protokol uporabljali predvsem za plačilne transakcije preko
svetovnega spleta, elektronsko pošto in občutljive transakcije znotraj informacijskih sistemov
podjetij. V začetkih tega desetletja se je uporaba protokola začela razširjati za zaščito pristnosti
vseh spletnih strani, zaščito uporabniških računov, vodenju zasebnih uporabniških komunikacij
ter za varno in zasebno brskanje po svetovnem spletu. V primerjavi s protokolom HTTP se
HTTPS URL naslovi začnejo s 'https://' in uporabljajo port 443, medtem ko HTTP protokol
uporablja privzeti port 80. HTTP protokol ni šifriran in je občutljiv na prisluškovanja, ki lahko
napadalcem pridobijo dostop do spletnih računov, občutljivih informacij in omogočijo
spreminjanje spletnih strani ter injiciranje zlonamerne kode. HTTPS je zasnovan tako, da je
pred takimi napadi in prisluškovanji varen. [19]
Ob obisku spletne strani je promet izmenjan med strežnikom in brskalnikom poslan kot golo
besedilo. Torej, če zlonamerna tretja oseba prestreže to komunikacijo, lahko prebere in ukrade
zaupne podatke. Kot primer pri prijavi v skrbniško nadzorno ploščo, brez uporabe HTTPS
varnostnega protokola, lahko napadalec enostavno ukrade uporabniško ime in geslo za
prijavo. Enako velja tudi za vse vrste podatkov, poslane na spletno stran, ki se izvaja na HTTP
protokolu, kot so npr. podatki o kreditni kartici itd. Zato mora biti HTTP promet šifriran s SSL,
kadar se občutljive informacije pošiljajo preko svetovnega spleta. [8]
4.3.1. SSL CERTIFIKAT
Za prehod na varni protokol HTTPS si moramo zagotoviti in na spletni strežnik namestiti SSL
digitalno potrdilo. To storimo tako, da pri ustreznem zaupanja vrednem overitelju naročimo
ustrezen certifikat ter ga namestimo na spletni strežnik. Nato v datoteki .httpacces uredimo
preusmeritev iz HTTP na HTTPS. SSL certifikat vključuje informacije o spletni strani, spletni
brskalnik ga pa uporablja za preverjanje:
- ULR naslova spletne strani na kateri se izvaja SSL
- Imena družbe, lastnika spletne strani
- Informacij o izdajatelju potrdila
- Datumov veljavnosti [8]
Komunikacija med uporabnikom in strežnikom deluje tako, da se strežnik predstavi z javnim
ključem. To imenujemo enkripcija z javnim ključem (Public - Key Encryption) in digitalnim
potrdilom. Tako strežnik potrdi svojo identiteto, pri tem pa brskalnik ustvari ključ za enkripcijo
s simetričnim ključem, ga zakodira s strežniškim javnim ključem (public key) in mu ga pošlje.
Ko strežnik sprejme ključ, ga dekodira s privatnim ključem (private key). Od tu naprej poteka
komunikacija preko enkripcije s simetričnim ključem (Symmetric – Key Encryption), ki je
21
bistveno hitrejša za kodiranje in dekodiranje podatkov ter omogoča hitro odkrivanje, če so bili
podatki med prenosom spremenjeni. V primeru, da strežnik zahteva uporabnikovo
predstavitev, se ta podobno kot strežnik predstavi z digitalnim potrdilom. [20]
Kako delujeta SSL potrdilo in protokol HTTPS :
- Ko poskušamo dostopati do spletnih strani, ki se izvajajo na HTTPS protokolu (z
uporabo SSL), brskalnik zahteva od spletnega strežnika, kjer spletna stran gostuje, da
se identificira. [8]
- Spletni strežnik pošlje brskalniku kopijo svojega SSL potrdila. [8]
- Brskalnik preveri zaupnost SSL potrdila. Če je potrdilo zaupno, pošlje sporočilo
spletnemu strežniku, da nadaljuje s šifriranjem. V primeru nezaupnosti potrdilu, opozori
uporabnika, da je nekaj narobe s potrdilom in uporabnik sam izbere, ali bo nadaljeval
z brskanjem, ali ne. [8]
- Ko je potrdilo zaupanja vredno, spletni strežnik pošlje nazaj digitalno podpisano potrdilo
z začetkom SSL šifrirane seje, tako da promet med brskalnikom in spletnim strežnikom
ni mogoče prestreči s strani napadalcev. [8]
4.3.2. DODAJANJE SSL CERTIFIKATA V WORDPRESS
Če imamo spletno stran namenjeno elektronskemu poslovanju, potem moramo obvezno
namestiti SSL certifikat, saj bomo zbirali podatke o plačilih. Prav tako uporaba raznih plačilnih
ponudnikov kot so PayPal itd, zahteva varno povezavo prek SSL. Z namestitvijo SSL certifikata
bomo poleg varne povezave pridobili boljše uvrstitve v iskalnikih Google, večje zaupanje
obiskovalcev spletne strani in povečanje prodaje v primerih spletnih trgovin. [7]
SSL certifikat lahko dodamo kadarkoli in sicer tako, da najprej posodobimo svoj URL naslov
spletnega mesta. To storimo tako, da v skrbniški nadzorni plošči pod 'Nastavitve', izberemo
'Splošne nastavitve' in v polju 'Naslov za WordPress (URL)', ter 'Naslov spletišča (URL)'
spremenimo povezavo. [7]
22
Slika 4.1: Sprememba URL naslova
Naslednji korak, če želimo dodati SSL v svojo obstoječo stran je, da v .htaccess datoteki
dodamo naslednjo kodo, ki bo preusmerila HTTP povezavo na HTTPS.
Slika 4.2: HTTPS preusmerjanje v datoteki .htacces
S pomočjo teh korakov bo naša spletna vsebina delovala na varni povezavi HTTPS. Če želimo
dodati SSL na 'multi-site' skrbniško območje ali prijavno stran, potem moramo nastaviti SSL
še v 'wp-config.php' datoteki. To storimo tako, da v datoteko vstavimo naslednjo nad vrstico
'That’s all, stop editing!' [7]
Slika 4.3: HTTPS na 'Multisite'
Tako zdaj naša spletna stran teče na varni povezavi HTTPS.
Slika 4.4: Urisk.eu z varno HTTPS povezavo
5. SMERNICE ZA ZAGOTAVLJANJE VARNOSTI
23
5.1. METODOLOGIJA DELA
Namen diplomskega dela je poskrbeti za varnost sistema WordPress, na konkretnem primeru,
na naši spletni strani Urisk.eu. To bomo poskušali storiti s posegom v kodo programske
opreme in s pomočjo varnostnih vtičnikov, s katerimi bomo spremljali tudi napredek pri
zagotovitvi varnosti. Naša spletna stran je namenjena predstavitvi vinotoča Urisk, ki se nahaja
v Prekmurju, v Strehovskih goricah. Na podlagi želj naročnika smo za predstavitev vinotoča
uporabili številne vtičnike in gradnike za prikaz ponudbe in aktivnosti, ki se dogajajo v okviru
vinotoča in tamkajšnjega vinogradniškega društva. Pri sami zagotovitvi varnosti bomo iskali
smernice, upoštevali pravila in nasvete, ki so dostopni na svetovnem spletu in poskušali doseči
optimalno zaščito našega spletnega mesta. Pri tem sam namen diplomskega dela ni, da bi
preverjali ali je ta seznam popoln, ustrezen in zadosten.
Ko gre za zagotavljanje varnosti pri WordPress spletnih straneh so varnostni vtičniki eni
najpomembnejših dejavnikov pri tem. Zato je pravilna in dobra izbira le tega zelo pomembna
in ji moramo posvetiti dovolj časa, da se pravilno odločimo. Pri tem moramo upoštevati številne
dejavnike in funkcionalnosti, ki jih za varno delovanje spletne strani potrebujemo ter varnostne
vtičnike pred samo uporabo tudi preizkusiti. Za začetek smo pregledali seznam vtičnikov, ki
so na voljo v spletnem imeniku WordPress.org. Na podlagi mnenj in ocen uporabnikov, števila
prenosov, ažurnosti za posodobitve ter združljivostjo z zadnjimi različicami sistema smo
najprej izbrali pet najpopularnejših vtičnikov, med katerimi smo se pozneje odločili za
najustreznejšega. To smo storili na podlagi preizkusa vseh petih vtičnikov, ob upoštevanju
funkcionalnosti, ki jih ponujajo in ob izpolnjevanju zahtev, ki smo jih pred tem določili. Odločili
smo se za vtičnik 'All In One WP Security & Firewall' ali krajše 'WP Security', ki prihaja izpod
prstov avtorja Tips in Tricks HQ.
Slika 5.1: Vtičnik All in One WP Security & Firewall
24
Gre za enega najpopularnejših WordPress varnostnih vtičnikov z več kot pol milijona aktivnih
uporabnikov. Vtičnik je na voljo v brezplačni različici, ki ponuja številne funkcionalnosti in
smernice za zagotavljanje varnosti. Prijazen uporabniški vmesnik skrbi za enostavno
upravljanje z vtičnikom tudi manj veščim uporabnikom. Vtičnik ščiti naše spletne strani s
preverjanjem ranljivosti, izvajanjem najnovejših tehnologij in varnostnih ukrepov. Ena najbolj
uporabnih funkcij je spremljanje napredka pri zagotavljanju varnosti s pomočjo merilnika
varnosti in grafikonov. Tako lahko z dodajanjem varnostnih ukrepov neprestano spremljamo
in izboljšujemo naše rezultate. Vtičnik s pomočjo varnostnega pregledovalnika, ki hrani
podatke o datotekah opozarja o vsakih spremembah v sistemu in zaznavanju zlonamerne
programske opreme. Vtičnih skrbi za zagotavljanje varnosti uporabniškim računom, za varno
registracijo in varno prijavo, ter pri tem onemogoča dostop do podatkov potencialnim
napadalcem. Le te s pomočjo črnih list blokira in jim onemogoča dostop. Požarni zid preprečuje
zlonamernim skriptam dostop do jedra sistema in do ostalih pomembnih datotek, kot sta npr.
'htaccess' in 'wp-config.php'. Poskrbljeno je tudi za varnost podatkovne baze in preprečevanje
'brute force' napadov. Vtičnik skrbi za preprečevanje SPAM-a, za izdelovanje varnostnih kopij,
za spremljanje prometa na strežniku ter za številne druge varnostne nastavitve in
funkcionalnosti. Vtičnik je preveden v 11 jezikov, avtorji pa vsakodnevno skrbijo za številne
izboljšave in posodobitve. [11]
Namestitev vtičnika sama po sebi še ne zagotavlja varnosti, dokler le tega pravilno ne
nastavimo oz. konfiguriramo. Tako bomo sistem pripravili za namestitev vtičnika in šli skozi
vse varnostne nastavitve, ki jih ponuja. Ker za dobro varnost sistema ne gre računati samo na
varnostni vtičnik bomo določene ukaze in nastavitve dodatno prožili s pomočjo programske
kode preko FTP odjemalcev in cPanel nadzorne plošče. Poleg sistema za spremljanje
varnostnega napredka, ki ga ponuja vtičnik, si bomo za preverjanje ranljivosti spletne strani
pomagali z orodji dostopnimi na svetovnem spletu, ki opozarjajo na šibka gesla, ranljivost
vtičnikov in tem, preverjajo zanesljivost strežnika in ustrezno zaščito pomembnih sistemskih
datotek ter na koncu podajo poročilo o mogočih ranljivostih našega spletnega mesta, ki jih
bomo sproti odpravljali. Tako bomo s pomočjo pridobljenega znanja v času študija, lastnih
izkušenj, nasvetov in vodičev dostopnih na svetovnem spletu, poskušali naše spletno stran
narediti čim bolj varno za obiskovalce in jo ustrezno zaščititi pred potencialnimi napadalci.
25
5.2. STREŽNIŠKO GOSTOVANJE
Izjemno pomembno vlogo pri zagotavljanju varnosti sistema imajo tudi ponudniki gostovanja.
WordPress se lahko namesti na številnih platformah in čeprav jedro programske opreme
omogoča številne funkcionalnosti, ki skrbijo za varno delovanje spletnih aplikacij, je za samo
varnost izrednega pomena konfiguracija operacijskega sistema ter spletnega strežnika, ki gosti
programsko opremo. Ponudniki gostovanja so lahko precej pasivni, saj nekateri le spremljajo
aktivnosti na strežnikih, spet drugi svoje stranke samo obvesčajo o zlorabah, le redki pa ob
tem tudi ukrepajo. Pri izbiri ponudnika gostovanja smo upoštevali naslednje zahteve:
- Brezplačna, strokovna pomoč
- Varni, hitri in zanesljivi strežniki s SSD diski
- Nadzor nad delovanjem strežnikov
- Dnevno izdelovanje varnostnih kopij
- Popolna samostojnost z Nadzorno ploščo
Na podlagi teh kriterijev, zanesljivosti in ažurnosti ekipe smo se odločili, da bomo našo
spletno stran gostovali pri ponudniku domovanje.com, ki vse to in še več ponuja po najbolj
ugodni ceni.
5.2.1. DOMOVANJE AKTIVNA ZAŠČITA
Brezplačna Domovanje aktivna zaščita skrbi za varnost naših spletnih aplikacij tako da:
- Samodejno odpravlja ranljivosti v nekaterih aplikacijah. Za to skrbi sistem Patchman,
ki odkriva in odpravlja znane ranljivosti v CMS sistemih. Sistem Patchman deluje tako,
da vsakodnevno samodejno pregleda nameščene aplikacije na strežniku in v kolikor
za določene aplikacije odkrije znane ranljivosti, naročnika o tem obvesti po elektronski
pošti. Naročnik ima 7 dni časa, da ranljivosti odpravi sam. V primeru, da tega ne stori,
sistem samodejno namesti popravke, ki so na voljo. Po izvedbi posodobitev dobi
naročnik obvestilo o spremembah, ki so bile izvedene. [21]
- Preprečevanje vdorov in napadov. S pomočjo naprednega požarnega zidu, ki omogoča
preprečitev ugibanja gesel. Sistem zna v realnem času ločiti med različnimi oblikami
prometa in nudi zaščito pred veliko oblikami Dos in DDos napadov. Na podlagi novih
26
vzorcev napadov na CMS sisteme, se požarni zid nekajkrat dnevno redno posodablja.
Tako samo na njihovih strežnikih preprečijo tudi do 3 milijone ugibanj gesel mesečno.
[21]
- Opozarjanje naročnikov v primeru najdbe sumljivih datotek. Sistem redno pregleduje
datoteke na strežniku i išče zlonamerno kodo. V primeru najdbe sumljivih datotek, se
naročnika o tem obvesti s posebnim poročilom, ki vsebuje seznam potencialno
nevarnih datotek. [21]
- Opozarjanje naročnikov v primeru sumljivih aktivnosti. V primeru odkritja sumljivih
aktivnosti sistem poskuša preprečiti nadaljnje zlorabe in škodo, ki bi jo lahko napadalec
povzročil. Nadzorni sistem onemogoči dostop do spletne strani in poštnega predala,
hkrati pa naročniku pošlje obvestilo s smernicami, kako težave odpraviti. [21]
5.2.2. NADZOR NAD DELOVANJEM STREŽNIKOV
Tako imenovani nadzor nad delovanjem strežnikov oz. monitoring poteka vse dni v letu in
vključuje naslednje storitve:
- Obveščanje dežurnega tehnika. V primeru težav na strežniku nadzorni sistem prikaže
zapis o napakah in jih v določenih primerih poskuša sam odpraviti. Če mu le teh ne
uspe odpraviti, obvesti o tem dežurnega tehnika preko e-sporočila. V primeru, da tehnik
v roku petih minut ne začne s preverjanjem in odpravljanjem težav, ga sistem obvesti
še preko SMS sporočila. [22]
- Zaradi infrastrukture omrežja se Monitoring izvaja na več lokacijah. Dodatno se
preverja tudi mrežno opremo, kjer se povezljivost preverja izven lokalnega omrežja. Na
mrežni opremi se preverja predvsem pot prometa, stopnjo rasti prometa, spremembe
mrežnih priključkov, CPU obremenitve in temperature naprav. [22]
- Preverjanje delovanja strojne opreme. Tu spremljajo predvsem zasedenost prostora,
obremenitve in temperature strežnikov, napetost na napajalnikih, pomanjkanje
spomina, delovanje hlajenja ter število procesov, ki se izvajajo. [22]
- Posebna pozornost je namenjena strežnikom deljenega gostovanja in vzdrževanim
VPS-om. Pri teh strežnikih se spremljajo predvsem poskusi vdorov, odzivnost
27
strežnikov, odzivnost strežnikov podatkovnih baz, delovanje PHP-ja, obremenjenosti,
število sporočil v čakalni vrsti, spremembe nastavitvenih datotek. Ob večjih odstopanjih
sistem obvesti dežurnega tehnika. [22]
5.2.3. PODATKOVNI CENTER
Strežniki ponudnika Domovanje.com se nahajajo v verjetno najboljšem podatkovnem centru v
Sloveniji, v prostorih Telekoma Slovenije. Prostor nudi najvišjo stopnjo varnosti in zanesljivosti
delovanja opreme s pomočjo protipožarne in protipotresne zaščite, neprekinjenim varovanjem
objekta, s stalnim električnim napajanjem in klimatiziranimi prostori. Dodatno je vzpostavljena
tudi sekundarna lokacija strežnikov, s sekundarnimi DNS, varnostnimi kopijami podatkov in
monitoringom. Povezava z internetom poteka preko TIER 1 ponudnikov z več 10G povezav
do treh glavnih vozlišč Frankfurt, Budimpešta, Sofija. Povezani so tudi na peerig vozlišča in
sicer v Frakfurtu, Sofii in v Sloveniji. [23]
5.3. IZBIRA UPORABNIŠKEGA IMENA IN MOČNEGA GESLA
S pomočjo uporabniškega imena in gesla, se kot skrbniki prijavimo v nadzorno ploščo sistema
WordPress in dostopamo do celotne vsebine, ki jo imamo na naši spletni strani. Zato je zelo
pomembno, da si ustvarimo unikatno uporabniško ime in močno geslo, ter se tako zaščitimo
pred napadalci, ki bi poskušali uganiti naše prijavne podatke. [4]
Uporabniško ime naj ne bo nastavljeno na 'admin' ali 'administrator', ker se napadalci tega
dobro zavedajo in prav na ta način poskušajo najpogosteje vdreti v sistem. Uporabniško ime
določimo med samo namestitvijo sistema WordPress, v primeru, da ga že imamo določenega
in ga želimo spremeniti, lahko to storimo v skrbniški nadzorni plošči. To storimo tako, da v
glavnem meniju izberemo zavihek 'Uporabniki' in dodamo novega uporabnika, ki mu določimo
vlogo skrbnika, prejšnje uporabniško ime pa preprosto izbrišemo. [4]
Izbrati moramo močno geslo, ki naj vsebuje male in velike črke, številke ter posebne znake.
Priporočljivo je, da gesla vsebujejo vsaj 10 znakov, saj jih je tako težje razbiti. Za gesla nikoli
ne smemo uporabljati rojstnih datumov, svojih ali imen najdražjih. Tudi kombinacije zaporedij
številk niso ustrezne. Velja pravilo, čim bolj nesmiselna so gesla, tem težje jih je ugotoviti in
bolj varna so. [26]
28
Tabela 5.1: Čas potreben za razvozlanje 6-9 mestnih gesel
Dolžina gesla Male črke + Velike črke + Posebni znaki
6 znakov 10 minut 10 ur 18 dni
7 znakov 4 ure 23 dni 4 leta
8 znakov 4 dni 3 leta 463 let
9 znakov 4 mesece 178 let 44530 let
[26]
Pri izbiri gesel si lahko pomagamo z raznimi generatorji močnih gesel, dostopnimi na spletu,
ki kreirajo zapletena gesla. Sistem WordPress od različice 4.3. naprej že privzeto vsebuje
generator varnih gesel, tako da si lahko to kadarkoli zamenjamo v skrbniški nadzorni plošči.
Slika 5.1: Generator varnih gesel
5.4. PRIKRIVANJE SKRBNIŠKE PRIJAVNE STRANI
Čeprav varnost, ki se osredotoča na prikrivanje ni popolna, je še vedno pomemben del splošne
strategije. Konec koncev skrivanje določenih elementov naše spletne strani napadalcem ne
bo preprečilo dostop do njih, vendar jim bo pa otežilo dostop do njih.
Premeščanje ali preimenovanje skrbniške prijavne strani je hiter in enostaven način kako
napadalcem otežimo delo. 'Brute force' napadi so običajno samodejni napadi na skrbniške
prijavne strani, ki imajo privzete url naslove za prijavo kot so www.urisk.eu/wp-admin ali
www.urisk.eu/wp-login.php, zato le te spremenimo in napadalcem preprečimo enostaven
dostop do prijavnih strani. Na voljo je veliko številko vtičnikov s pomočjo katerih lahko
spreminjamo url prijavne strani, eden izmed takih je Lockdown WP Admin, mi bomo to storili s
pomočjo našega vtičnika WP Security.
29
Slika 5.2: Sprememba URL naslova za dostop do skrbniške prijavne strani
Poleg tega vtičnik preprečujejo nepooblaščene dostope, saj napadalcem, ki želijo neposredno
dostopati do skrbniške prijavne strani, ko skrbnik ni prijavljen skrivajo le to in jih preusmerijo
na drugo stran.
Na prijavni strani dodamo še varnostni preizkus Captcha, ki ugotavlja ali je določen uporabnik
človek ali program.
Slika 5.3: Omogočanje varnostnega preizkusa
Slika 5.4: Varnostni preizkus pri prijavi
V privzetih nastavitvah sistema je napadalcem dokaj enostavno ugotoviti uporabniško ime
avtorja prispevkov na strani, in ker je ta uporabnik pogosto tudi skrbnik sistema dobijo
napadalci informacije tudi o tem. To ni dobro, saj z vsakršnimi informacijami napadalcem
30
tvegamo ogroženost naše spletne strani. Zato je pomembno, da zakrijemo uporabniška imena
avtorjev prispevkov in vse kar moramo storiti je to, da dodamo nekaj kode v functions.php
datoteko:
Slika 5.5: Zakrivanje uporabniškega imena avtorja s preusmeritvijo na domačo stran
Ko vstavimo kodo ta deluje tako, da napadalcu ob poizvedovanju podatkov o avtorju z ukazom
'?author=1' poleg glavnega URL naslova, ne bo predstavilo avtorjevih podatkov, ampak ga bo
preusmerilo nazaj na domačo stran. [3]
5.5. OMEJITEV ŠTEVILA NAPAČNIH PRIJAV
Napadalci se pogosto poskušajo prijaviti s ponavljanjem poskusov prijave, dokler ne uganejo
uporabniškega imena in gesla. Glede na to, da bi lahko prišlo sočasno do velikega števila
ponavljanj s strani zlonamernih robotov in s tem do obremenitve strežnika, je omejitev števila
napačnih prijav v kombinaciji z močnim geslom, spremljanjem in blokiranjem IP naslovov, ki
so vključeni v ponavljajoče se napačne prijave v kratkem času, zelo učinkovit način zaustavitve
tovrstnih napadov. [9]
Ko vključimo to funkcijo ji določimo zgornjo mejo števila napačnih prijav v določenem času,
preden bo IP naslov blokiran in koliko časa bo ponovna prijava nedostopna. Uporabnike o tem
obvestimo s pomočjo generiranega sporočila, ali pa jim opcijsko omogočimo zahtevo za
sprostitev blokiranih IP-jev. Vtičnik omogoča takojšnjo blokiranje poskusov prijav uporabniškim
imenom, ki niso v našem sistemu. Lahko pa na seznam dodamo uporabniška imena, ki ne
bodo blokirana, kljub napačni prijavi. Sistem o vseh večkratnih poskusih napačnih prijav in
blokiranju IP-jev obvešča preko elektronske pošte.
31
Slika 5.6: Omejitev števila napačnih prijav
Vtičnik prav tako spremlja seznam aktivnosti uporabnikov v določenem času, trajanje njihovih
sej, čas odjave in njihove IP naslove. Beleži tudi podatke o poskusih napačnih prijav, blokirane
uporabnike ter omogoča določitev časovnega obdobja trajanje sej po katerem se bo uporabnik
moral ponovno prijaviti.
Slika 5.7: Seznam trajanja aktivnosti prijavljenih uporabnikov
32
5.6. DOLOČANJE PRAVIC DATOTEKAM NA STREŽNIKU
Privzete nastavitve dovoljenj WordPress datotek in map urejajo dostopnost do branja in
pisanja. Pri sami namestitvi so le ta dovoljenja razumno in varno določena. Vendar včasih
uporabniki in nekateri vtičniki spremenijo različne nastavitve privilegijev za nekatera jedra map
in datotek. Tako je lahko zaradi napačnih vrednosti dovoljenj naša spletna stran na koncu manj
varna. Vtičnik WP Security omogoča pregled nastavitev pomembnih datotek ali map in na
negotove vrednosti opozori ter priporoči optimalne vrednosti.
Slika 5.8: Podatki o pravicah datotek
Obstaja več načinov, kako spremeniti pravice datotekam, obstajajo tudi številne različice, ki
vključujejo spremembe dovoljenj, da bi bile le te bolj restriktivne. Pravice datotekam lahko
spremenimo prek FTP odjemalcev, tako da gremo do določenih datotek ali map, na katere
sistem opozori in jih izberemo z desnim klikom. V stolpčnem meniju damo 'Določi dovoljenja'
ter jih spremenimo na željeno vrednost.
Slika 5.9: Določanje pravic datotekam s pomočjo FTP odjemalca
33
Dovoljenja lahko določimo tudi preko ukazne vrstice s pomočjo ukazov:
- Za direktorije: find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
- Za datoteke: find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Po izvedenih spremembah s pomočjo vtičnika preverimo spremembe, če sistem ne opozori
na nobeno nepravilnost, so nastavitve pravilno nastavljene. [2]
Slika 5.10: Pravilno urejene pravice datotek
5.7. DATOTEKA HTACCESS
Pri zagotavljanju varnosti WordPress spletnim stranem ne moremo mimo datoteke 'Hypertext
access' ali krajše htaccess. To je konfiguracijska datoteka, ki strežniku pove kako obdelovati
določene stvari na naši spletni strani. Uporablja se za avtorizacijo, nadzor predpomnilnika,
varnostne nastavitve, optimizacijo spletne strani in najpogosteje za preoblikovanje URL-jev, ki
so tako enostavnejši in bolj berljivi za uporabnika in iskalnike. To datoteko po navadi najdemo
v korenskem imeniku naše spletne strani, vendar je FTP odjemalci včasih ne prikažejo zaradi
skrivanja le te, tako da je potrebno najprej označiti možnost 'prikaži skrite datoteke', da jo lahko
najdemo. Spreminjanje datoteke .htaccess lahko ogrozi delovanje naše spletne strani, zato je
potrebno pred vsakim posegom v kodo narediti varnostno kopijo le te, da jo kasneje v primeru
izpada obnovimo. Morda pa ob sami namestitvi sistema na strežniku ni .htaccess datoteke,
tako da jo je pred samim urejanjem potrebno ustvariti s pomočjo urejevalnikov besedil ali pa
34
neposredno v cPanel ustvarimo novo datoteko in jo poimenujemo .htaccess, v katero prilepimo
sledečo kodo, ki je privzeta za WordPress od 4.2. različice dalje:
Slika 5.11: Datoteka .htaccess
Ne glede na izbran način dela, je pomembno, da spletno stran po spremembah osvežujemo
in tako preverjamo ali spremembe povzročajo izpade. V teh primerih datoteko obnovimo s
prejšnjo delujočo verzijo. Pomembno pa je, da ne spreminjamo ničesar med vrsticami # BEGIN
WordPress in # END Wordpress. [3]
V primeru, da imamo statični IP zaklenemo dostop do skrbniške nadzorne plošče samo na naš
IP, tako da vstavimo sledečo kodo, datoteko pa prilepimo v direktorij 'wp-admin':
Slika 5.12: Spreminjanje dostopa do skrbniške nadzorne plošče
Zdaj do skrbniške nadzorne plošče dostopamo samo iz enega IP naslova. IP naslove lahko
omejimo tudi samo na tiste, ki prihajajo iz Slovenije, ali pa dodamo več IP naslovov s katerih
želimo dostopati. Pomembno je, da onemogočimo dostop tudi datoteki 'wp-config.php', kjer je
centralno vozlišče za našo spletno stran in vsebuje pomembne podatke ter številne druge
podrobnosti glede varnosti. Skrijemo jo tako, da dodamo ta del kode v datoteko:
Slika 5.13: Onemogočanje dostopa do datoteke 'wp-config.php'
35
Dostop do 'wp-login.php' si zagotovimo podobno kot dostop do skrbniške nadzorne plošče s
sledečo kodo:
Slika 5.14: Dostop do datoteke 'wp-login.php' z našega IP naslova
Onemogočiti moramo tudi listanje direktorijev, kar napadalcem omogoča enostaven pregled
strani in iskanje šibkih točk za napad. To storimo z enostavnim trikom, tako da direktorije
naredimo ne berljive. Vstavimo kodo:
Options ALL –Indexes
S pomočjo .htaccess datoteke, ki jo prilepimo v direktorij /wp-content/uploads in /wp-includes/,
preprečujemo tudi eksekucijo PHP datotek, preko katerih se zgodi dosti napadov, ko jih
napadalci shranijo na strežniku za kasnejše dostope. [3]
Slika 5.15: Preprečevanje eksekucij PHP datotek
Zaradi pomembnosti .htaccess datoteke, je še bolj pomembno, da jo ustrezno zaščitimo pred
napadalci. To storimo tako, da prilepimo naslednjo kodo:
Slika 5.16: Zaščita .htaccess datoteke
[3]
36
5.8. ZAKRIVANJE DELOVNE RAZLIČICE SISTEMA
WordPress nadzorna plošča privzeto uporabnikom omogoča urejanje PHP datotek, kot so
datoteke vtičnikov in tem. To je pogosto prvo orodje, ki ga napadalci uporabijo, saj omogoča
izvajanje zlonamerne kode. WP Security preprečuje urejanje datotek preko nadzorne plošče,
zato je zelo pomembno, da to funkcijo omogočimo.
WordPress privzeto pušča sledi na spletnih straneh zaradi sledenja. Vendar to v nekaterih
primerih ni najboljša rešitev, predvsem kadar nimamo posodobljene delovne različice sistema.
Zato je zelo pomembno, da se prepreči dostop do datotek, kot so readme.html, license.txt in
wp-config-sample.php. Te datoteke vsebujejo namreč nekaj ključnih informacij, kot je npr.
trenutna različica nameščenega sistema, ki bi še kako zanimala potencialne napadalce.
Obstaja veliko načinov kako to storimo in najlažji je prav gotovo preko našega vtičnika WP
Security, kjer v razdelku Filesystem Security / Wp File Access preprečimo dostop do teh
datotek.
Slika 5.11: Zakrivanje delovne različice sistema
Lahko pa zakrivanje delovne različice določimo ročno v datoteki functions.php, kjer dodamo
naslednji izsek kode:
remove_action('wp_head', 'wp_generator'); [24]
Ta rešitev deluje in odstrani podatke iz glave naše spletne strani. Vendar pa to ni popolna
rešitev, saj so informacije o različici vključene tudi v RSS, tako da moramo dodati še:
function my_remove_version_info() { return ''; }
add_filter('the_generator', 'my_remove_version_info');
37
Tako bomo uspešno odstranili informacije o delovni različici iz vseh različnih področij na naši
strani. Vseeno je pa najbolj priporočeno redno posodabljanje, saj je to edina garancija, da bo
naša stran ostala najbolje zaščitena. [24]
5.9. PREDPONE WORDPRESS TABEL
Podatkovne baze so kot možgani za celotne spletne strani, saj se vsi podatki shranijo v njih in
zaradi tega so tudi zelo priljubljena tarča pri napadalcih. Pošiljatelji nezaželene elektronske
pošte in hekerji samodejno prilagajo zlonamerno kodo v obliki SQL injekcij. Veliko uporabnikov
sistema pri namestitvi pozablja spremeniti predpono baze podatkov, kar napadalcem omogoča
lažje načrtovanje napadov z usmerjanjem na privzeto predpono 'wp_'. Najboljši način za
zaščito podatkovne baze je torej sprememba predpone. Pred samimi spremembami si
moramo narediti varnostno kopijo podatkovne baze, saj v primeru, če bi šlo kaj narobe ne
ostanemo brez baze podatkov. Ko uspešno naredimo varnostno kopijo, gremo v nastavitvah
vtičnika WP Security pod Database Security in tam spremenimo predpone. Sistem izpiše
trenutno ime predpon, lahko določi novo naključno 6 mestno predpono, ali pa si le to določimo
sami.
Slika 5.17: Spreminjanje predpon tabel podatkovni bazi
Lahko pa to storimo ročno in sicer tako, da v datoteki wp-config.php spremenimo predpono iz
wp_ v nekaj drugega, npr. test_: [25]
38
$table_prefix = 'wp_test_'
Za dokončanje sprememb potrebujemo dostop do urejanja podatkovne baze. Če uporabljamo
cPanel gostovanje je to phpMyAdmin. Sistem uporablja 11 privzetih tabel, ki jih preimenujemo
s sledečimi SQL ukazi:
RENAME table `wp_commentmeta` TO `wp_test_commentmeta`; RENAME table `wp_comments` TO `wp_test _comments`; RENAME table `wp_links` TO `wp_test _links`; RENAME table `wp_options` TO `wp_test _options`; RENAME table `wp_postmeta` TO `wp_test_postmeta`; RENAME table `wp_posts` TO `wp_test_posts`; RENAME table `wp_terms` TO `wp_test_terms`; RENAME table `wp_termmeta` TO `wp_test_termmeta`; RENAME table `wp_term_relationships` TO `wp_test_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_test_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_test_usermeta`; RENAME table `wp_users` TO `wp_test_users`; [25] V primeru, da imamo še kakšne dodatne tabele, preimenujemo tudi njih. Poiskati moramo še
'option_name' polja, ki uporabljajo staro 'wp_' predpono in jo zamenjati z 'wp_test_'. Pri iskanju
si pomagamo s sledečim ukazom:
SELECT * FROM `wp_test_options` WHERE `option_name` LIKE '%wp_%'
Ko to uredimo, ostanejo še stare predpone 'UserMeta' tabel, ki jih podobno kot prej poiščemo
s pomočjo spodnjega ukaza in jih zamenjamo z novo predpono. [25]
SELECT * FROM `wp_test_usermeta` WHERE `meta_key` LIKE '%wp_%'
S pomočjo tega postopka spremenimo predpone tabel in spletno stran lahko preizkusimo. [25]
5.10. SPREMLJANJE SPREMEMB DATOTEK NA STREŽNIKU
Če je možnost napadalci vstavijo škodljivo kodo ali datoteko v naš sistem, ki jo nato uporabljajo
za izvajanje zlonamernih dejanj na naši stani. Zato je pomembno biti obveščen o kakršnih koli
spremembah na našem strežniku, da bi hitro in učinkovito preprečili nastalo škodo. Na splošno
39
sam sistem in vtičniki zelo redko spreminjajo datoteke kot so .php ali .js in ko se to zgodi je
pomembno, da smo seznanjeni o spremembah, katere datoteke so bile poškodovane. Funkcija
'File Change Detection Feature' obvešča o teh spremembah, na našem strežniku, vključno z
dodatkom za brisanje teh datotek. Funkcija omogoča tudi samodejni ali ročni pregled strežnika
in izključitev pogosto se spreminjajočih določenih datotek ali map iz pregleda, katerim je to del
normalnega delovanja (npr. log datoteke in pred pomnjene datoteke vtičnikov).
Slika 5.13: Omogočanje spremljanja sprememb datotek na strežniku
5.11. 'MALWARE' PREGLEDOVANJE
Beseda Malware predstavlja zlonamerno programsko opremo. To so lahko trojanski konji,
oglaševalci, črvi, vohunski programi in katera koli druga nezaželena koda, ki jo napadalec želi
injicirati v našo spletno stran. Pogosto, ko je zlonamerna programska koda vstavljena v spletno
stran sploh ne opazimo nobenih vizualnih sprememb, lahko pa ima velik vpliv na uvrstitve v
spletnih iskalnikih. To pa zato, ker imajo roboti in pajki iskalnikov, kot je Google sposobnost za
odkrivanje škodljive programske opreme, ko se indeksirajo na spletni strani in stran dajo na
črno listo, kar posledično vpliva na uvrstitve v iskalniku.
Zaradi nenehnih sprememb in kompleksne narave zlonamerne programske opreme je
pregledovanje najbolje izvajati izven lastnega strežnika. To zunanje pregledovanje izvajajo pri
WP Security, če se nanj naročimo. O vseh nevarnostih opozarjajo preko elektronske pošte ter
nudijo nasvete za odpravljanje le teh.
40
5.12. NASTAVITEV POŽARNEGA ZIDU
Funkcionalnosti za zaščito spletne strani požarni zid doseže z vstavitvijo posebne kode v
.htaccess datoteko. To nima nobenega vpliva na splošno funkcionalnost spletne strani, vendar
je priporočljivo prej narediti varnostno kopijo datoteke.
Z vključitvijo 'Basic Firewall settings' oz. tako imenovane osnovne zaščite, zaščitimo
nepooblaščen dostop do .htaccess datoteke, onemogočimo podpis strežnika, določimo
zgornjo mejo pri nalaganju datotek na 10MB, zaščitimo dostop do wp-config.php. Priporočljivo
je vključiti še dodatno požarno zaščito 'Additional Firewall rules', po potrebi pa v 'Custom rules'
tudi sami dodajamo pravila in direktive, vendar samo v primeru, da vemo kaj delamo.
Slika 5.18: Omogočanje osnovne zaščite požarnega zidu
5.12.1. XMLRPC & PINGBACK RANLJIVOSTI ZAŠČITE
Ta nastavitev onemogoči dostop do xmlrpc.php datoteke, ki je odgovorna za funkcionalnosti
XML-RPC v WordPress-u. Napadalci ranljivosti teh datotek izkoriščajo za DoS napade,
pregledovanje portov v notranjih omrežjih, da bi dobili informacije o gostitelju in za vdiranje v
usmerjevalnike. Poleg varnostne koristi ta funkcija zmanjšuje obremenitve na strežniku, še
posebej tam kjer je veliko nezaželenega prometa. Blokiramo tudi zunanji dostop do debug.log
datoteke, do katere pa lahko dostopamo prek FTP odjemalcev.
Slika 5.19: Vklop XMLRPC in Pingback zaščite
41
5.12.2. 6G ČRNI SEZNAM IN NASTAVITVE
Funkcija omogoča, da aktiviramo pravila 6G zaščite požarnega zidu, ki jih oblikujejo pri
Perishable Press. To je preprost in prilagodljiv črni seznam, ki pomaga zmanjšati število zahtev
zlonamernih URL-jev, ki prizadenejo spletne strani in blokira prepovedane znake, ki se
običajno izkoriščajo pri napadih.
Slika 5.20: Aktiviranje 5G in 6G pravil
5.12.3. BLOKIRANJE LAŽNIH ROBOTKOV
Robotki so del programske opreme, ki teče na internetu in opravlja samodejne naloge, kot je
indeksiranje spletnih strani itd. Vendar vsi robotki niso dobri, saj jih je veliko lažnih, ki
oponašajo legitimne, kot so Google robotki, v resnici pa nimajo nobenih opravkov z njimi.
Funkcija lastnikom omogoča, da imajo večji nadzor nad tem, kateri robotki dostopajo do
njihovih spletnih strani.
Slika 5.21: Blokiranje lažnih robotkov
5.12.4. PREPREČEVANJE 'HOTLINK'
Hotlink povezava je, ko nekdo prikaže vsebino, ki se nahaja na našem strežniku, na svoji
spletni strani. Glede na to, da je vsebina prikazana na strani druge osebe, lahko to povzroči
uhajanje pasovne širine in virov na našem strežniku. Funkcija 'Prevent Hotlinks' preprečuje
neposreden 'hotlinking' iz naše spletne strani s pomočjo nekaterih direktiv v .htaccess datoteki.
42
Slika 5.22: Preprečevanje 'hotlink'
5.12.5. ZAZNAVANJE NAPAKE 404
Napaka 404 ali 'strani ni bilo mogoče' se pojavi, ko nekdo poskuša dostopati do neobstoječe
strani na spletni strani. V večini primerov je to zaradi napačno vnesenega URL naslova, ali
uporabe stare povezave, ki več ne obstaja. Dogaja se pa, da pride do teh ponavljajočih se
napak zelo pogosto iz istega IP naslova, kadar napadalci poskušajo odkriti in dostopati do
določenih strani iz zloveščih razlogov. Ta funkcija omogoča spremljanje vseh '404' dogodkov,
ki se zgodijo na spletni strani, poleg tega pa daje možnost blokiranja IP naslovov potencialnih
napadalcev.
Slika 5.23: Zaznavanje napake 404
5.12.6. PREPREČITEV SPAM KOMENTARJEV
Funkcija omogoča samodejno in trajno blokiranje IP naslovov, ki so presegle določeno število
komentarjev, ki so označeni kot SPAM. Komentarje se običajno kot SPAM določa z Akismet
vtičnikom ali pa so ročno določeni s strani skrbnika sistema. Sistem prikazuje seznam IP
naslovov uporabnikov ali robotov, ki so pustili SPAM komentarje, katere blokiramo tako, da jih
dodamo na črno listo. Velik del komentarjev v blogih je posledica samodejnih mehanizmov in
ne nujno ljudi, zato lahko število SPAM komentarjev občutno zmanjšamo s pomočjo Captcha
polja, ki pred oddajo komentarja preveri identiteto avtorja.
43
Slika 5.24: Preprečevanje SPAM komentarjev
5.13. UPORABA ORIGINALNIH VTIČNIKOV IN TEM
Iz varnostnih razlogov je pomembno, da uporabljamo samo preizkušene originalne vtičnike in
teme od uradnih ponudnikov. Čeprav lahko nekaj, za kar je avtor zahteval plačilo, dobimo
popolnoma zastonj, je to slaba ideja, ker po navadi ti plačljivi vtičniki in teme, ki si jih zastonj
prenašamo iz nezakonitih spletnih strani vsebujejo zlonamerno kodo. In ne samo, da je to
ustavno nezakonito, napadalce lahko z vstavljeno kodo neposredno pripeljemo v ozadje naše
spletne strani in si povzročimo številne preglavice ali izpad spletne strani, samo za to, da smo
prihranili nekaj denarja. [3] Uporaba originalnih vtičnikov sicer sama po sebi ne garantira, da
je naša stran varna, je pa odziv, če se ugotovi morebitne varnostne luknje vsekakor hitrejši,
saj bodo razvijalci hitro odreagirali in poskušali zadevo odpraviti. Pred prenosom vtičnika ali
teme je pomembno preveriti splošno oceno zadovoljstva ostalih uporabnikov, število prenosov,
zgodovino izdelkov avtorja, posodobitve in združljivost z najnovejšo različico sistema, saj le
tako lahko naredimo najboljšo izbiro. [6]
5.14. POMEMBNOST POSODOBITEV
O pomembnosti posodobitev je v diplomski nalogi že veliko napisanega. Vedno, ko izide nova
različica programske opreme je potrebno sistem, vtičnike ali temo takoj posodobiti, saj bomo
le tako zagotovili optimalno delovanje in odpravili varnostne ranljivosti. Če uporabljamo
starejšo različico programske opreme, so vse varnostne pomanjkljivosti v različici, ki jo
uporabljamo znane javnosti. Te informacije imajo tudi potencialni napadalci in jih lahko
uporabijo za napad na našo spletno stran. Tudi same posodobitve naše spletne strani morda
ne bodo dovolj, če tega ne bomo izvajali redno. Zato je v teh primerih za tiste, ki temu ne
44
posvečajo dovolj časa in želijo stran upravljati po liniji najmanjšega odpora, vendar želijo imeti
varno spletno mesto, najboljša izbira - samodejno izvajanje posodobitev. WordPress od
različice 3.7. dalje opravlja manjše posodobitve samodejno, vendar je tiste večje vseeno
potrebno prej odobriti. Z vstavljanjem nekaj kode v wp-config.php datoteko, pa lahko tudi te
večje posodobitve sistem namesti samodejno, brez potrebe po naši odobritvi. [3]
Omogočanje vseh samodejnih posodobitev sistema:
define( 'WP_AUTO_UPDATE_CORE', true );
Pri tem velja opozorilo, da bi samodejne posodobitve lahko povzročile nevšečnosti ali celo
izpad naše spletne strani, še posebej, če uporabljamo vtičnike ali teme, ki niso združljive z
najnovejšo različico sistema.
Značilno je, da vtičnike in teme posodabljamo ročno, saj le te prihajajo različno za vsakega
posebej ob različnem času.
Slika 5.25: Ročno posodabljanje vtičnikov
45
Slika 5.26: Ročno posodabljanje tem
Vendar lahko tudi tu podobno kot pri samodejnem posodabljanju sistema vključimo samodejne
posodobitve le teh, brez naših odobritev. To storimo tako da v datoteko wp-config.php vstavimo
kodo:
Omogočanje samodejnih posodobitev vtičnikov:
add_filter( 'auto_update_plugin', '__return_true' );
Omogočanje samodejnih posodobitev tem:
add_filter( 'auto_update_theme', '__return_true' ); [3]
Tako smo nastavili samodejne posodobitve sistema, vtičnikov in tem, brez da bi pred samo
namestitvijo morali le te odobriti.
5.15. VARNOSTNE KOPIJE
Ko gre za spletno stran ali blog lahko pride do številnih zapletov, zato je poleg varnostnih
nastavitev pomembno izdelovati varnostne kopije. Nobena spletna stran ni varna pred
napadalci, saj če je nekdo zelo motiviran, da vdre v našo spletno stran, bo vztrajal pri tem
dokler ne bo uspešen. Varnostne kopije lahko izdelujemo ročno ali samodejno s pomočjo
vtičnikov ali cPanel nadzorne plošče.
46
Tudi naš vtičnik WP Security omogoča izdelovanje varnostnih kopij podatkovnih baz v zavihku
'Database Security'. Za ročno izdelavo varnostne kopije podatkovne baze izberemo 'Create
DB backup now', sistem ustvari varnostno kopijo, ki jo najdemo na strežniku v mapi
'public_html'.
Slika 5.27: Kreiranje varnostne kopije podatkovne baze
Pomembno je, da si nastavimo tudi samodejno izdelovanje varnostnih kopij v določenem
časovnem intervalu in koliko zadnjih različic le teh bomo obdržali, saj bomo le tako vedno imeli
na voljo shranjeno varno kopijo, ki jo po potrebi lahko kadarkoli obnovimo.
Slika 5.28: Samodejno kreiranje varnostne kopije podatkovne baze
Obstaja še veliko številko različnih vtičnikov, ki omogočajo izdelovanje podatkovnih baz z
različnimi opcijami shranjevanja kopij v oblak itd..
Tudi v cPanel nadzorni plošči strežnika imamo različne aplikacije za izdelovanje varnostnih
kopij podatkovnih baz, ena takih je 'R1Soft Restore Backups', ki vsakodnevno samodejno
47
shranjuje varnostne kopije. Nastavili smo tudi, da ob tem hrani zadnjih 5 shranjenih varnostnih
kopij v primeru, da bomo morali sistem obnoviti na starejšo varno različico.
Slika 5.29: Samodejno kreiranje varnostne kopije podatkovne baze s pomočjo cPanel
6. SPREMLJANJE NAPREDKA
Da bi spremljali napredek pri zagotavljanju varnosti naše spletne strani urisk.eu smo jo na
začetku pregledali z našim vtičnikom WP Security in dobili 15 od možnih 470 točk.
Slika 6.1: Merilnik zaščite sistema na začetku
48
Teh začetnih 15 točk smo dobili, ker smo ob namestitvi sistema WordPress spremenili
uporabniško ime iz privzete predloge 'admin' oz. 'administrator', ki je potencialnim napadalcev
še tako znana in za skrbnike spletnih strani še tako nevarna.
Slika 6.2: Razmerje zaščite na začetku
Po navadi se šele ob tako skrb vzbujajočih podatkih lastniki spletnih strani zavemo, kako zelo
je ogrožena naša spletna stran in koliko lahko tudi sami skrbniki naredimo pri izboljšanju
varnosti ter preprečitvi nepooblaščenih dostopov napadalcem. Zato smo skozi celotno
raziskavo pri pisanju diplomske naloge opisovali prav to, postopek kako lahko sami izboljšamo
varnost naših WordPress spletnih strani in sproti preverjali ali naše trditve držijo. Tako smo v
drugem koraku spremenili url naslov prijavne strani v skrbniško nadzorno ploščo iz standardne
urisk.eu/wp-admin oz urisk.eu/wp-login.php na drugi, samo nam skrbnikom znan url naslov.
Po tem postopku spremembe smo z vtičnikom WP Security ponovno preverili spletno stran in
že dobili boljši rezultat za 10 točk.
49
Slika 6.3: Merilni zaščite sistema po prvem koraku
Pri tem sistem vedno prikaže tudi v kolikšni meri je kateri dejavnik pripomogel k izboljšanju
rezultatov.
Slika 6.4: Razmerje zaščite po prvem koraku
Da je naš pristop pravi in deluje tudi v praksi, smo se še dodatno prepričali tako, da smo se po
spremenjenem URL naslovu za prijavo v skrbniško nadzorno ploščo poskušali prijaviti tudi s
privzetima sistemskima URL naslovoma za prijavo.
50
Slika 6.5: Nepravilen URL naslov za prijavo v sistem
Pri tem poskusu sistem takoj izpiše, da skrbniška prijavna stran ni na voljo in potencialni
napadalci tako nimajo dostopa do nje, kjer bi lahko poskušali z 'brute force' napadi in
kombinacijami uporabniških imen in gesel za prijavo v skrbniško nadzorno ploščo. V drugem
poskusu smo želeli dostopati do skrbniške prijavne strani preko drugega sistemskega
privzetega URL naslova za prijavo: urisk.eu/wp-login.php
Slika 6.6: Drugi nepravilen URL za prijavo v sistem
Tudi v tem primeru do skrbniške prijavne strani nismo mogli dostopati. Za dokončno potrditev,
da je bil naš postopek pravilen in delujoč, smo se še poskušali prijaviti preko novega
spremenjenega URL naslova.
51
Slika 6.7: Sistemsko prijavno okno
Tokrat je sistem dovolil dostopati do skrbniške prijavne strani, kar je hkrati potrdilo, da je naš
postopek pravilen in delujoč tudi v praksi. Tako smo po seznamu dela, ki ga opisujemo skozi
celotno raziskavo sproti dodajali ukaze in spreminjali nastavitve v varnostnem vtičniku ter
samem WordPress sistemu. Ker ima lahko samo spreminjanje sistemskih datotek negativen
vpliv na spletno stran oz. lahko povzroči celo izpad le te, smo sproti preverjali delovanje naše
spletne strani in z vtičnikom preverjali ali pri zagotavljanju varnosti res napredujemo. Pri tem
velja še enkrat dodati, da moramo pred vsakim spreminjanjem nastavitev oz. sistemskih
datotek narediti varnostno kopijo datotek, da jih v primeru napak ali določenih zapletov lahko
obnovimo in si preprečimo dodatne nevšečnosti.
Po opravljenem postopku skoraj štiridesetih ukrepov, ki so pomagali pri zagotavljanju varnosti
za našo spletno stran smo na dokončnem preverjanju dosegli 455 od možnih 470 točk.
52
Slika 6.8: Končna meritev zaščite sistema
Slika 6.3: Končno razmerje dejavnikov zagotavljanja zaščite
Kot je že takoj razvidno iz podatkov, je za popoln rezultat zmanjkalo 15 točk, ampak v tem
primeru to ni zaradi nepopolnih nastavitev, ampak ima vtičnik pri možnostih preprečevanja
'brute force' napadov na voljo dve funkciji in sicer 'Rename login page' ali 'Cookie Based Brute
Force Prevention' pri kateri lahko izberemo le eno in tako izgubimo točke drugega, na kar sam
vtičnik tudi vnaprej opozori.
Slika 6.4: Opozorilo pri izbiri 'brute force' zaščite
53
Po vseh opravljenih smernicah in posegih, ki smo si jih začrtali pri načrtovanju rešitev za
zagotavljanje varnosti naše spletne strani, so rezultati izjemni. Spremljamo lahko neuspešne
poskuse prijave v skrbniško nadzorno ploščo.
Slika 6.5: Seznam neuspešnih prijav v sistem
V primeru, da opazimo, da kateri izmed neuspešno prijavljenih uporabnikov nismo bili mi, ga
lahko takoj blokiramo, če ga sistem že samodejno ne doda na črno listo. Spremljamo lahko
tudi trenutno prijavljene uporabnike v skrbniško nadzorno ploščo.
Slika 6.6: Trenutno prijavljeni uporabniki
V primeru naše odsotnosti sistem obvešča o zadnjih uspešnih prijavah v sistem. Tako lahko
spremljamo, kateri uporabniki so se nazadnje uspešno prijavili v skrbniško nadzorno ploščo.
54
Slika 6.7: Zadnjih 5 uspešnih prijav v sistem
Prav tako pa tudi trajanje sej njihovih prijav.
Slika 6.8: Trajanje sej prijav
Opozorjeni smo tudi na vsako spremembo datotek, ki so se zgodile v zadnjem času.
Slika 6.9: Spremembe datotek na strežniku
55
O vseh spremembah smo obveščeni tudi preko hitrega okenca na domači strani skrbniške
nadzorne plošče, tako da nobeno obvestilo o spremembi ne more ostati neopaženo.
Slika 6.10: Obvestila o spremembah na skrbniški domači strani
Tako imamo popoln nadzor nad spremembami v datotekah in nad uporabniki, ki so bili
prijavljeni v sam sistem. Kot je razvidno iz podatkov o neuspešnih prijavah, le ti povedo, da
potencialni napadalci niso uspeli priti niti do prijavne strani, saj so vse neuspešne prijave iz
naših IP naslovov v namene testiranja. Tudi do sprememb v datotekah ne prihaja, razen v
tistih, ki so kot posledica delovanja vtičnikov.
Našo spletno stran smo pregledali tudi s pomočjo zunanjih sistemov za preverjanje ranljivosti
spletnih strani. Eden izmed takih je 'Sucuri Website Malware and Security Scanner' dostopen
na: https://sitecheck.sucuri.net, ki ni odkril nobenih potencialnih nevarnosti na naši spletni
strani.
56
Slika 6.11: Rezultat 'Sucuri SiteCheck' pregledovanj
Stran smo še pregledali z 'WPMUDEV Security Scan', dostopnim na
https://premium.wpmudev.org/blog/security-scanning/ in tudi tu dobili odlične rezultate, saj
sistem ni opozoril na nobene resne varnostne nepravilnosti oz. pomanjkljivosti, prav tako tudi
ne na tiste, ki bi predstavljale manj resne varnostne grožnje.
Slika 6.12: Rezultat 'WPMUDEV Security' pregledovanj
57
Tabela 6.1: Razvrstitev varnostnih ukrepov v skupine pogostih ranljivosti po OWASP
Vrivanje Dobro strežniško gostovanje
Omejitev števila napačnih prijav
Prikrivanje skrbniške prijavne strani
Predpone WP tabel
Varnostno kopiranje podatkovne baze
Napaka pri overjanju in upravljanju sej HTTPS protokol
Uničenje sej po odjavi
Uporaba piškotkov
Podtikanje skript Določanje pravic datotekam na strežniku
Spremljanje sprememb datotek na strežniku
KSES knjižnica
Malware pregledovanje
Nezavarovan neposreden dostop do
objektov
Nastavitve prikrojenih povezav
Določanje pravic datotekam na strežniku
XMLRPC in PINGBACK zaščita
Blokiranje lažnih robotkov
Napačne varnostne nastavitve Nastavitev požarnega zidu
Določanje pravic datotekam na strežniku
6G črni seznam
Izpostavljenost občutljivih podatkov Sistem za preverjanje močnih gesel
HTTPS protokol
Zakrivanje delovne različice sistema
Manjkajoč funkcijski nivo za dostopnost Datoteka HTACCESS
Zaznavanje napake 404
Dodeljevanje vlog uporabnikom
Podtikanje zahtevkov HTTPS protokol
WordPress API jedro
6G črni seznam
Uporaba komponent z znanimi ranljivostmi Plupload knjižnica
Uporaba originalnih vtičnikov in tem
Pomembnost posodobitev
Nepreverjene preusmeritve in posredovanja Preprečevanje Hotlink
Wordpress API jedro
Preprečitev SPAM
58
7. VTIČNIKI ZA ZAGOTAVLJANJE VARNOSTI
Kot smo že predstavili v diplomskem delu, si pri zagotavljanju varnosti WordPress sistemov
poleg lastnih posegov v kodo, hitro, enostavno in učinkovito pomagamo z varnostnimi vtičniki,
saj so njihovi avtorji vključili večino ukrepov za izboljšanje varnosti. Obstaja veliko število
različnih vtičnikov za zagotavljanje varnosti, zato se je zelo težko odločiti kateri je najboljši za
naše potrebe. Mi smo se glede na tip naše spletne strani in njene funkcionalnosti odločili za
'All in one WordPress security', predstavili bomo pa še nekaj ostalih najpopularnejših in
najboljših vtičnikov za zagotavljanje varnosti.
7.1. WORDFENCE
Prenos: https://wordpress.org/plugins/wordfence/
Slika 7.1: Vtičnik Wordfence Security
Eden najbolj priljubljenih WordPress varnostnih vtičnikov z več kot 22. milijoni prenosov.
Vtičnik preverja okužbe spletnih strani z zlonamerno programsko opremo, tako da pregleda
celotno jedro sistema ter vse vtičnike in teme. Ob kakršnikoli okužbi sistem o tem obvesti na
različne načine. S pomočjo Falcom sistema za pred pomnjenje podatkov zelo pohitri našo
spletno stran. Vtičnik je v osnovi brezplačen, za dodatne napredne funkcije pa je potrebno
plačilo. Poleg preverjanja zlonamerne programske opreme ta vtičnik ponuja zaščito s požarnim
zidom, blokiranje 'brute force' napadov, zagotavlja varnost pri prijavi v sistem, monitoring
spremljanje prometa, podpira 'multi-site' spletne strani in številne druge varnostne nastavitve.
[10]
59
7.2. ITHEMES SECURITY
Prenos: https://wordpress.org/plugins/better-wp-security/
Slika 7.2: Vtičnik iThemes Security
Še en priljubljen varnostni vtičnik, ki ponuja več kot 30 načinov za zagotavljanje varnosti in
zaščite spletne strani. Z enim samim klikom lahko ustavimo avtomatizirane napade, prav tako
pa odpravlja različne varnostne luknje v naših spletnih straneh. Vtičnik sledi dejavnostim
registriranih uporabnikov in dodaja dva faktorja avtorizacije, ureja nastavitve uvoza in izvoza,
skrbi za skeniranje zlonamerne programske opreme, uporabnika sili v uporabo varnih gesel,
uporabo SSL certifikata in določanje dovoljenj datotekam. Vtičnik vključuje tudi Google
reCAPTCHA za preprečevanje nezaželenih komentarjev na naši spletni strani. Na voljo je v
brezplačni izdaji ali v dodatni plačljivi premijski različici, ki doda številne različne varnostne
funkcionalnosti in podporo avtorjev. [10]
7.3. SUCURI SECURITY
Prenos: https://wordpress.org/plugins/sucuri-scanner/
Slika 7.3: Vtičnik Sucuri Security
60
Je varnostni vtičnik priljubljene družbe za zagotavljanje varnosti spletnim stranem Sucuri.
Ponuja različne varnostne funkcije kot so revidiranje varnostne dejavnosti, spremljanje
integritete datotek, 'malware' pregledovanje, črne liste in zagotavlja požarni zid spletnim
stranem. Vključuje različne sisteme, kot so Google Safe Browsing, Sucuri Labs, Norton,
McAfee Site Advisor za preverjanje spletnih strani. Vtičnik ščiti pred DoS in 'brute force' napadi,
vodi dnevnik o vseh dejavnostih na strežniku, ki ga hrani v Sucuri oblaku. To pomeni, da v
primeru da napadalec obide varnostne ukrepe in napade spletno stran bodo varnostni dnevniki
varno shranjeni za kasnejše izvajanje ukrepov. Ob doplačilu dobimo premijske storitve in
svetovanje Sucuri, ki jih vodi ekipa strokovnjakov na področju spletne varnosti. [10]
7.4. BULLETPROOF SECURITY
Prenos: https://wordpress.org/plugins/bulletproof-security/
Slika 7.4: Vtičnik BulletProof Security
Vtičnik ponuja hitro in enostavno nastavitev vmesnika v le štirih korakih. Vtičnik praktično samo
aktiviramo, ta pa bo poskrbel za varnost spletne strani. Vtičnik dodaja požarni zid, skrbi za
varnost podatkovne baze, varnost pri prijavi z omejevanjem števila neuspešnih poskusov
prijave, blokiranjem lažnega prometa in blokiranjem zlonamernih uporabnikov. Prav tako
pregleduje jedro sistema, vtičnike in teme ter optimizira delovanje naše spletne strani z
dodajanjem pred pomnjenja. Spletno stran ščiti pred raznimi ranljivostmi vključno z XSS, RFI,
CRLF, CSRF, Base64, Sql injekcijami in mnogimi drugimi. Avtorji skrbijo za redno
posodabljanje, tako da bo naša spletna vedno zaščitena. [10]
61
8. SKLEP
Sistem za upravljanje vsebin WordPress krasi enostavnost in uporabnost. Do svoje WordPress
spletne strani lahko pridemo praktično v nekaj minutah, brez večjega programerskega
predznanja. Takoj po namestitvi sistema na spletni strežnik lahko začnemo z urejanjem
vsebine, dodajanjem slik, blogov, spreminjanjem izgleda spletne strani z nameščanjem in
urejanjem novih tem, dodajanjem razsežnosti in funkcionalnosti z novimi vtičniki, ter urejanjem
drugih nešteto nastavitev. WordPress lahko uporabljamo za osebne spletne strani in bloge, za
spletne trgovine ali napredne spletne portale. Omogoča popoln nadzor nad spletno stranjo in
uporabniki. Priljubljenost sistema za izdelovanje dinamičnih spletnih strani tako iz dneva v dan
strmo narašča, s tem pa na žalost vse bolj privablja zlonamerne napadalce, ki bi si želeli
prilastiti naše podatke, spletno stran onemogočiti, ali pa tako ali drugače posegati v samo
vsebino spletne strani.
V diplomskem delu smo se spoznali s sistemom WordPress, ga na kratko predstavili in opisali
postopek namestitve. Analizirali smo varnostne rešitve, ki jih sistem privzeto uporablja za
zaščito spletnih strani pred napadalci. Poglobili pa smo se tudi v zagotavljanje dodatne
varnostne zaščite za katero lahko v največji meri poskrbimo sami. Tako smo v namen
raziskave izdelali spletno stran urisk.eu, s pomočjo katere smo preizkušali različne postopke
dodajanja in urejanja ukazov ter nastavitev, da bi sistemu zagotovili boljšo varnost. Samega
postopka smo se lotili z zaščito dostopa do pomembnih sistemskih datotek, z določanjem
dobrih gesel in uporabniških imen ter dodatnim preverjanjem identitete pred prijavo v sistem.
Spremenili smo privzeti url naslov za prijavo v skrbniško nadzorno ploščo in uredili samodejno
izdelovanje varnostnih kopij podatkovne baze. Za dodatno zaščito smo poskrbeli z namestitvijo
skrbno izbranega varnostnega vtičnika, ga predstavili in šli skozi vse nastavitve, da bi dosegli
najboljšo učinkovitost le tega. Na koncu smo še predstavili nekaj drugih najboljših vtičnikov za
zagotavljanje varnosti.
Da je bilo naše delo pravilno, predvsem pa učinkovito smo delovanje in napredek pri
zagotavljanju varnosti naše spletne strani sproti preverjali s pomočjo vtičnika. Samo
ogroženost in pomanjkljivosti smo dodatno pregledovali s pomočjo zunanjih sistemov za
odkrivanje ranljivosti spletnih strani, dostopnih na svetovnem spletu, ter jih tako sproti
odpravljali. Tako smo dosegli dobro zaščito pred napadalci in varno spletno stran. To potrjujejo
tudi dejstva v praksi, saj potencialni napadalci ne morejo dostopati do naše spletne strani in
spreminjati njene vsebine. Sistem do sedaj ni zabeležil nobenega poskusa prijave v sistem,
zaradi skrite prijavne skrbniške nadzorne strani, prav tako pa tudi nobene spremembe datotek
62
na strežniku, oz. takšnih ali drugačnih zlonamernih posegov. Vse spremembe, poskuse
spremljamo sproti preko sistemske nadzorne plošče, o vsaki spremembi smo pa tudi
obveščeni preko elektronske pošte s strani sistema oz. ponudnika gostovanja. Pri tem se
moramo zavedati, da nobena zaščita ni popolna in jo lahko dovolj vztrajen napadalec obide
ter povzroči nepredstavljivo škodo. Zato je zelo pomembno, da dnevno izdelujemo varnostne
kopije, saj lahko tako vsebino kadarkoli obnovimo in se izognemo dodatnim stroškom, izgubi
podatkov ter daljšemu izpadu spletne strani.
9. VIRI IN LITERATURA
[1] Wikipedia WordPress. Dostopno na: https://en.wikipedia.org/wiki/WordPress [14.12.2016]
[2] Hardeninng WordPress. Dostopno na: https://codex.wordpress.org/Hardening_WordPress
[14.12.2016]
[3] 12 ways to secure your wordpress site you’ve probably overlooked. Dostopno na:
https://premium.wpmudev.org/blog/wordpress-security-tips/?wpcv=b&utm_expid=3606929-
93.spVh-aR3SwGklKzL4HJQQg.1&utm_referrer=https%3A%2F%2Fwww.google.si%2F
[14.12.2016]
[4] WordPress security. Dostopno na: https://yoast.com/wordpress-security/ [14.12.2016]
[5] Sistem WordPress.org. Dostopno na: https://wordpress.org/about/ [14.12.2016]
[6] Beefing Up WordPress Security. Dostopno na: A Complete Guide To Securing WordPress
Sites https://colorlib.com/wp/improve-wordpress-website-security/ [14.12.2016]
[7] How to add SSL and HTTPS in WordPress. Dostopno na: http://www.wpbeginner.com/wp-
tutorials/how-to-add-ssl-and-https-in-wordpress/ [14.12.2016]
[8] WordPress SSL and HTTPS Explained. Dostopno na:
https://www.wpwhitesecurity.com/wordpress-tips-webmasters/wordpress-blog-website-ssl-
https-explained/ [14.12.2016]
[9] Securing WordPress : A Simple Step-by-Step List. Dostopno na:
https://www.machothemes.com/blog/tips-for-securing-wordpress-sites/ [14.12.2016]
[10] 12 Best WordPress Security Plugins of 2017 to Keep Your Site Secure. Dostopno na:
http://wpdean.com/best-wordpress-security-plugins/ [14.12.2016]
[11] All In One WordPress Security and Firewall Plugin. Dostopno na:
https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin [14.12.2016]
63
[12] Kako poskrbeti za varnost sistema WordPress? Dostopno na: https://www.neoserv.si/blog/varnost-sistema-wordpress [14.12.2016]
[13] Se protokol HTTP dokončno poslavlja? Dostopno na: https://www.prasicek.si/blog/se-http-poslavlja/ [15.12.2016] [14] Storitev Wordpress.com. Dostopno na: https://sl.wikipedia.org/wiki/WordPress.com [12.1.2017] [15] Trije načini za namestitev WordPress vtičinika. Dostopno na: https://www.wpklub.si/namestitev-wordpress-vticnika [12.1.2017] [16] Kako namestiti WordPress temo. Dostopno na: https://www.wpklub.si/kako-namestiti-
wordpress-temo [12.1.2017]
[17] ABC varnosti za lastnike spletnih strani. Dostopno na: https://www.varninainternetu.si/wp-
content/uploads/sites/3/2013/09/Varnost_spletnih_mest_web.pdf [16.1.2017]
[18] WordPress Security. Dostopno na: https://wordpress.org/about/security/ [17.1.2017]
[19] HTTPS Wikipedia. Dostopno na: https://en.wikipedia.org/wiki/HTTPS [18.1.2017]
[20] Secure Sockets Layer. Dostopno na: https://sl.wikipedia.org/wiki/Secure_Sockets_Layer
[18.1.2017]
[21] Domovanje kontrola kakovosti – nadzor nad delovanjem strežnikov. Dostopno na:
https://www.domovanje.com/spletno-gostovanje/primerjava-paketov-gostovanja/nadzor-nad-
delovanjem-streznikov/ [24.1.2017]
[22] Domovanje aktivna zaščita. Dostopno na: https://www.domovanje.com/spletno-
gostovanje/primerjava-paketov-gostovanja/domovanje-aktivna-zascita/ [24.1.2017]
[23] Podatkovni center. Dostopno na: https://www.domovanje.com/spletno-
gostovanje/primerjava-paketov-gostovanja/podatkovni-center/ [24.1.2017]
[24] The Right Way to Remove WordPress Version Number. Dostopno na:
http://www.wpbeginner.com/wp-tutorials/the-right-way-to-remove-wordpress-version-number/
[25.1.2017]
[25] How to Change the WordPress Database Prefix to Improve Security. Dostopno na:
http://www.wpbeginner.com/wp-tutorials/how-to-change-the-wordpress-database-prefix-to-
improve-security/ [25.1.2017]
[26] WordPress varnost – močna gesla. Dostopno na: https://www.wpklub.si/wordpress-
varnost-mocna-gesla [25.1.2017]