nikola petrov-bezbednost wordpress sajtova - uvod u wordpress
TRANSCRIPT
Bezbednost WordPress sajtova - Uvod u WordPress
Hardening
#WPNSNikola Petrov15.02.2017.
jhujhuhuhh
Bezbednost
jhujhuhuhhBezbednost - ukratko
Kratak pregled• Zašto je bitna?• „Neće to meni da se desi“• Ljudska priroda
Misliti na vreme Biti temeljan Biti posvećen Ne znači da morate biti eksperti za bezbednost – samo pratite uputstva
Popularnost “Idealan” sistem
• 100% siguran sistem ne postoji
WP platforma
• Fleksibilna• Otvorena• ≈ 50.000 dodataka
W3Techs.com, February 2017
Primer
2.6 TB11.5 milliona dokumenata
• Propust napravljen na Revolution Slider pluginu
• Njihov Web server nije bio iza Firewall-a
• Njihov Web server je na istoj mreži kao i njihov MAIL server s bazom u Panami
• Postavili su osetljive podatke o svojim klijentima sa svog portala, koji uključuju pristupne podatke portalu, kao i mail serveru klijenata
Jedan ne ažuriran WP dodatak, može dovesti do padasvetskih lidera i istorijski najvećeg odliva privatnih
podataka široj javnosti.
Hardening
hardening is the process of securing a system by
reducing its surface of vulnerability
Zašto nam je potreban „hardening“ ?
WP verzije
Kratak pregled
WordPress versions usage – January 2017 W3Techs.com
PHP verzije
Kratak pregled
PHP versions run by WordPress websites – January 2017 W3Techs.com
jhujhuhuhh
Zašto bi neko napao baš moj WP sajt?
jhujhuhuhhSEO
Kratak pregled• Vaš kompromitovani sajt je moguće koristiti u svrhu poboljšanja SEO nekog
drugog sajta ubacivanjem back-link –ova.
• Ovde koriste dobru reputaciju Vašeg sajta za njihove zlonamerne ciljeve.
jhujhuhuhhSPAM
Kratak pregled• Slanje SPAM e-mail poruka je takođe jedan od čestih razloga za zloupotrebu
vašeg WP sajta.
• Kada haker iskoristi Vaš sajt i hosting nalog, prelazi na drugi sajt, a Vama ostavlja „blacklistovan“ sajt sa dosta problema.
jhujhuhuhhKrađa podataka
Kratak pregled• Prosečan korisnik ostavlja gomilu ličnih podataka na računaru.
• Krađa ovih podataka je moguća putem WP sajta, kao što su: lozinke, podatke o Vašoj kreditnoj kartici, bankovnom računu...
jhujhuhuhhNapad na druge sajtove
Kratak pregled• Ponekada cilj hakera je da neki sajt učini nedostupan korisnica (DoS, Denial
of Service). • Da bi koristili ovu tehniku potrebna je mreža sajtova, koju su oni na
maliciozni način „regrutovali“.
jhujhuhuhh
Najčešći hakerski napadiTehnike
jhujhuhuhhBrute force
• Najčešće korišćen od strane script kiddie hakera
• Bruteforce podrazumeva skeniranje slabosti i ranjivosti sajta, kao iisprobavanje svih mogućih kombinacija i kriptografskih ključeva
• U teoriji, na ovakav način bi se moglo pristupiti svakom sistemu koji imaneku ranjivost, ali na svu sreću ovo je daleko od svakodnevne prakse, ali se svakako treba shvatiti ozbiljno
jhujhuhuhhDeface
Kratak pregled• Nije svaki “hacker” osoba koja želi da Vam napakosti i obori sajt.
• Veliki broj ovih „osvetnika i boraca za pravdu“ nazivaju sebe “whitehat“ hakerima i njihov cilj je da ukažu drugima na bezbednosne probleme sajta.
• Njihov omiljeni metod je tehnika poznata kao deface sajta jer na ovaj način neće naneti veliku štetu Vašem sistemu. U pitanju je metoda pomoću koje hakeri iz vašeg direktorijuma uklanjaju index.php fajl i zamenjuju ga svojim index.html fajlom.
jhujhuhuhhVirus/malware injection
Kratak pregled• Ovaj način je prilično jedinstven za WordPress, a to je injekcija virusa i
zlonamernog softvera (malicious software) kroz besplatne i piratizovane teme i dodatke (plugins).
• Ponekad je sasvim dovoljno rukoviditi se zdravim razumom ukoliko želite da izbegnete ovakav napad.
• Zlonamerni virusi i softver će pokušati da okače spam na Vaš sajt ili da ukradu poverljive podatke od Vaših korisnika.
• Ukoliko je Vaš sajt zaražen onda će vrlo brzo biti kažnjen od strane pretraživača.
jhujhuhuhhBackdoor
Kratak pregled• Backdoor skripte su prilično opasne. U najgorem scenariju, backdoor
postavljen na vaš sajt može uzrokovati ozbiljne probleme i gubitak podataka na celom serveru.
• Napad se najčešće dešava zbog neažuriranog software-a i skripti koje koristi.
• Najčešće, malicioznu skriptu možete primetiti kao enkodovanu base64skriptu ili kao deo skripte koji je enkodovan.
jhujhuhuhhDDoS (Distrubuited Denial of Service)
Kratak pregled• DDoS tehnika je gde „hacker“ šalje saobraćaj, preko kompromitovanih mreža
i računara, prema određenoj meti. • Na ovaj način “meta” je toliko zauzeta da prestaje da odgovara na zahteve
koji dolaze od legitimnih korisnika. Ova taktika korišćena je čak i kao sredstvo ucene gde su hakeri zahtevali otkup kako bi oslobodili određeni veb-sajt.
• Tokom DDoS napada, ciljani server ili mreža prima zahteve iz kompromitovanih sistema. Učestalost zahteva je toliko velika da protok dostiže svoj maksimum koji može da ima kada su resursi i mogućnosti servera u pitanju.
• Server usporava do mere u kojoj postaje beskoristan sve dok napad traje.
Rešenja
Redovno pravite „backup“ sajta i baze podataka
Kreiranje backup-a
• Ručno• Putem plugin-a:
• Obavezno testirajte backup !
Redovno ažurirajte WP i njegove dodatake
define('WP_AUTO_UPDATE_CORE', true);
wp-config.php
functions.php
add_filter( 'auto_update_theme', '__return_true' );add_filter( 'auto_update_plugin', '__return_true' );
Sprečite da WP pokazuje informacije o korisnicima koji imaju pristup sajtu
www.vaswpsajt.com/?author=1
www.vaswpsajt.com/?author=2
www.vaswpsajt.com/?author=3
RewriteCond %{QUERY_STRING} (^|&)author=RewriteRule . http://%{SERVER_NAME}/? [L]
.htaccess
Korisničke dozvole
WP Roles
„Honey Pot“ tehnika
Sakrite vašu login stranicu
Sakrite vašu login stranicu
RewriteRule ^mylogin$ wp-login.php?key=123&redirect_to=http://%{SERVER_NAME}/wp-admin/index.php [L]
RewriteCond %{HTTP_REFERER} !^http://%{SERVER_NAME}/wp-adminRewriteCond %{HTTP_REFERER} !^http://%{SERVER_NAME}/wp-login\.phpRewriteCond %{HTTP_REFERER} !^http://%{SERVER_NAME}/loginRewriteCond %{QUERY_STRING} !^key=123RewriteCond %{QUERY_STRING} !^action=logoutRewriteCond %{QUERY_STRING} !^action=lostpasswordRewriteCond %{REQUEST_METHOD} !POSTRewriteRule ^wp-login\.php http://%{SERVER_NAME}/? [R,L]
.htaccess
Poruke o greškama
Sakrivanje poruka o login greškama
// login errors / messageadd_filter('login_errors', '__return_false');add_filter('login_messages', '__return_false');
functions.php
Onemogućiti PHP izvršenje
Onemogućiti PHP izvršenje u upload direktorijumu
Order Allow,DenyDeny from all<Files ~ "\.(xls|doc|rtf|pdf|zip|mp3|flv|swf|png|gif|jpg|ico|js|css|kmz|ttf|woff|woff2)$">
Allow from all</Files>
-uploads.htaccess
Uklonite nepotrebne dodatke (plugins)
• Uklonite neaktivne dodatke• One koje nekoristite
Uklonite nepotrebne dodatke (plugins)
Koristite „jake“ lozinke
Koristite „jake“ lozinke
„slabe lozinke“• pera1990• password• 123456• qwerty• admin
„jake“ lozinke• D7u8hI928FJYusx• Z5BLl20T8by1524• TLv7p64P63V5Hr1• 6b83668I15qRP2I• Um2d4Ejd9T1ExPr
Proizvoljni direktorijum
- WP-ADMIN
- WP-INCLUDE
- WP-CONTENT
Standardni prikaz WP direktorijuma
- APPLICATION
--- WP-ADMIN
--- WP-INCLUDES
- PUBLIC
--- WP-CONTENT
- UPLOADS
Proizvoljan prikaz WP direktorijuma
Proizvoljan prikaz WP direktorijuma
define('WP_CONTENT_DIR', dirname(__FILE__) . '/public);define('WP_CONTENT_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/public');
define( 'WP_UPLOADS_DIR', dirname(__FILE__) . '/uploads' );
define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/application');define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
wp-config.php
Gotova rešenja
Gotova bezbednosna rešenja
Pravite redovan “backup” fajlova i baze podataka
Koristite kompleksne lozinke ( Cpanel, WP login, FTP, DB user)
Redovno ažuriranje WP-a i njegovih dodataka (pluginova)
Monitoring stanja WP sajta (u pogledu bezbednosti)
Pravilan odabir hosting provajdera
Rezime
Testiranje WP zaštite
Testiranje WP zaštite
Kratak pregled• Security-testing distibucija – Kali Linux
• WPScan, Sponsored by Sucuriwpscan --url http://www.ime.domen
Kratak pregled
Hvala na pažnji !
Nikola [email protected]/nikola-petrov