Peamised turvanõrkused ning ründe tüübid:
- Brute force attacks
Need ründed viitavad sellele, kus proovitakse erinevaid kasutajanime ja parooli kombinatsioone mitmeid kordi kuniks on leitud õige kombinatsioon ning kontroll veebilehe üle on olemas. Ründajad kasutavad automaatseid bot’e, mis katsetavad erinevaid kombinatsioone. Alloleval pildid on näha kliendi veebileht, kus on üritatud saada ligipääs WordPressi haldusalasse. IP aadressid pärinevad peamiselt Ukrainast. Selle IP aadressi pealt oli vähemalt 100 katset proovida sisse logida WordPressi haldusalasse. Turvalisuse tõstmiseks kasutame paar kuud juba kahe astmelist autentimist ning paroolid on üle 16 tähemärgi, sisaldades suvalisi tähti, numbreid ning märke. Paroolid näevad välja sellised formaadis: -F,H$E.Mu4?ha8:S[@ - File Inclusion Exploits
Järgmise suure nõrkusena on PHP kood, mida häkkerid ära kasutavad. Nii WordPress, teemad ja pluginad jooksevad kõik PHP koodi peal. Ründajad proovivad leida nõrkusi PHP koodis ning kirjutada koodi pahavara. Seejärel leiavad nad tee, kuidas jõuda WordPressi kõige tähtsamate failideni, milleks on näiteks wp-config.php. Seal on juba kirjas andmebaasi nimi, kasutaja ja parool. - SQL Injections
WordPress kasutab MySQL andmebaasi. SQL injection iseloomustab see, kui ründaja saab ligipääsu WordPressi andmebaasile ning kogu veebilehe infole. Kui ligipääs on olemas saab lihtsa vaevaga andmebaasis luua uue administraatori õigustega kasutaja ning jällegi on kontroll ründaja käes. Lisaks võidakse andmebaasi sisestada pahatahtlikke linke. - Privilege escalation
Järgmine populaarne viis, mida ründajad võivad kasutada. Kui veebilehel on võimalik registreeruda, siis loovad ründajad tavalise kasutaja ning proovivad nõrkuste abil muuta enda kasutaja staatust admin tasemeni. - Cross-Site Scripting
See nõrkus on kõige tavalisem nõrkus, mis leitakse pluginatest. Ründaja leiab mooduse, kuidas laadida veebilehel ebaturvalisi javascripti koode ning kasutaja laeb need alla enda teadmata ning tänu sellele saadakse infot tema brauserist. Näiteks saadakse kontroll mõne veebilehe üle ja kui kasutaja sisestab enda kasutajanime ja parooli siis need varastatakse ründaja poolt. - Ründed läbi virtuaalserverite
Enamik odavamad veebimajutused kasutavad virtuaalservereid, kus ühes serveris on mitu veebilehte. Turvalisus nendes serverites on seinast seina, kuid üldiselt on turvalisus hea. Siiski leidub ka teenusepakkujaid, kus turvalisusele nii palju pole rõhku pandud. Seega on võimalik kellelgil teisel, kellel on serveri üle kontroll kirjutada permissionid üle ning nad saavad ligipääsu näiteks wp-config.php failile, kus on kirjas andmebaasi nimi, kasutaja ja parool. - “admin” kasutajanime kasutamine
WordPress paneb vaikimisi administraatori kasutajanimeks “admin”. See annab ründajatele jällegi eelise, teades et igal lehel on üldiselt administraatori kasutajanimeks admin. Muutsin kliendil selle kasutajanime ammu ära, kuid logist on näha, et kasutajanime “admin” ikka proovitakse, kuigi ühtegi sellist kasutajat veebilehel ei eksisteeri.
Teades WordPressi nõrkusi on võimalik ennetada riske ning tõsta turvalisust. See tekitab ründajale rohkem peavalu ning veebileht on paremini kaitstud. Riskidest rääkides tulid välja ka juba mõned mõtted, kuidas tõsta veebilehe turvalisust. Leidsin, et soovitatakse järgmisi meetmeid:
- WordPressi uuendamine – nagu eelnevalt rääkisin, siis on see ülioluline, kui avastatakse mõni versioon, mis on ebaturvaline, siis on veebileht koheselt haavata
- Tugevad paroolid ning kahe astmeline autentimine – tõstab oluliselt turvalisust, ning nagu piltidelt oli näha, siis on ründed üsna intensiivsed. Kahe astmeline autentimine lisab koheselt ühe turvakihi juurde. Tugevaid paroole tuleks kasutada ka FTPs ja andmebaasis.
- arukoopiate tegemine – võimaldab taastada veebilehe kiirelt, kui ründajad on saanud kontrolli veebilehe üle. Soovitatav oleks teha varukoopiad näiteks Google Drive mitte serverisse, see hajutab jällegi riski. WordPressile on väga palju erinevaid varukoopiate lahendusi, mis teevad automaatselt näiteks iga päev keskööl koopia Google Drive. Populaarsemad pluginad selleks on UpDraft, VaultPress ja BackupBuddy.
- Turvalisuse plugin – see monitoorib ning auditeerib süsteemi tööd ning annab märku, kui midagi kahtlast on toimunud. Sisaldades endas monitooringut, ebaõnnestunud sisselogimisi, tulemüüri ja pahavara skannerimist. Parimaks tasuta pluginaks on näiteks Sucury Security plugin, kuid neid on mitmeid erinevaid ning igalühel on omad plussid ja miinused.
- Vaikimisi “admin” kasutajanime vahetamine – nagu logi näitas, siis proovitakse seda isegi siis, kui veebilehel sellist kasutajat üldse ei eksisteerigi. Seega tuleks see kindlasti ära vahetada.
- Keela failide muutmine – WordPressi haldusalas on võimalik teema ja pluginate faile muuta ning koodi juurde kirjutada. Ründaja saab jällegi kirjutada failidesse pahavara. Failide muutmist saab üsna lihtsalt keelata kirjutades wp-config.php faili väikese koodirea: define( ‘DISALLOW_FILE_EDIT’, true );
- Limiteerida sisselogimiste arvu – kasutan ka ise seda võimalust ning kui ühe IP aadressi pealt on 3 ebaõnnestunud sisselogimist, siis blokeeritakse see IP aadress esimest korda ära üheks tunniks.
- Andmebaasi tabeli eesliite muutmine – vaikimisi on WordPressi kõikide tabelite eesliide “wp_”. Muutes selle ära on ründajatel raskem arvata, mis on tabeli nimi. Tabeli eesliited saab koheselt muuta, kui toimub WordPressi install. Isiklikult muudan alati tabeli eesliited ära ning ei kasuta vaikimisi eesliidet.
- Kataloogi indekseerimise keelamine – mõnel veebilehel võib olla see lubatud ning see annab ründajatele väga lihtsa võimaluse otsida faile, kus võivad olla turvanõrkused. Lisaks sellele saavad ka kõik inimesed vaadata, mis failid sul on, kopeerida pilte, vaadata struktuuri jne. Seega on väga soovitatav see keelata.
Kokkuvõteks ütleksin, et WordPressi turvalisusest oli väga huvitav kirjutada. Leidsin ka ise võimalikke arengukohti, et teha veebilehed veelgi turvalisemaks. Samuti testisin kohe ka mõningad nõrkused ära, näiteks kas kataloogi indekseerimine on keelatud. Minu õnneks oli, kuid sellest nõrkusest ma teadlik ei olnud. Lisaks sellele katsun alati rakendada nüüdsest kõrgemaid turvanõudmisi enda arendatud veebilehtedele, sest näen et probleem on suur ning kui veebilehte ei kaitse, siis juhtuvad suure tõenäosusega edukad ründed. Kuna WordPressi kasutatakse üsnagi palju siis ehk saan neid teadmisi ka edasi jagada ning loodetavasti võetakse mind ka kuulda ja saadakse aru tõsidusest. Samuti nagu alguses rääkisin, ei soovi kliendid turvalisuse peale mõelda, kuid nüüd on mul hea tuua näited ning oskan paremini ka põhjendada, miks see on oluline. Eelnevalt teadsin, et turvalisus on oluline, kuid ma ei teadnud detaile. Praktika näitab, et sellistele asjadele hakatakse mõtlema, kui suurem kahju on juba tehtud, kuid tehes seda tööd leidsin, et oluline on ikkagi nõrkusi ennetada ning teha ründajatele elu raskeks kasutades siis ülaltoodud meetmeid.