Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WordPress Security

1,427 views

Published on

Slides of the WordPress Security talk I gave at WP Meetup Nijmegen in March 2015.

The book can be found here: http://www.amazon.com/dp/B00Q247BXW

Published in: Technology
  • Be the first to comment

WordPress Security

  1. 1. WordPress Security Brecht Ryckaert
  2. 2. Brecht Ryckaert - Support engineer @ Combell.com - WordPress sinds 1.5 - Blogger (tot 2010 techblogger) - Auteur - WordCamp Netherlands 2014
  3. 3. WordPress Security 101 • Amazon Kindle • + 1800 exemplaren • Blijft een “work in progress” • Eerstkomende update ergens in de komende 4 weken
  4. 4. Wie zijn site werd al eens gehacked of had een site van een client die gehacked is geweest?
  5. 5. “Is WordPress nog veilig?”
  6. 6. Tuurlijk!
  7. 7. “Een keten is zo sterk als zijn zwakste schakel."
  8. 8. WordPress hacking - de dreigingen Onderzoek van WPMUdev heeft uitgewezen dat hacking gebeurt door volgende oorzaken: • 50%: thema’s of plugins • 25%: WordPress core (verouderde versies) • 25%: server configuratie + andere factoren
  9. 9. Wie van jullie installeert security plugins in zijn/haar WordPress websites?
  10. 10. En bij wie van die mensen is dat de enige beveiligingsmaatregel?
  11. 11. Wie gebruikt FTP om bestanden op zijn website te plaatsen en eventuele code te bewerken?
  12. 12. FTP Uit persoonlijke ervaring heb ik geleerd dat FTP eveneens een bijzonder zwakke schakel is. Heel wat hacks gebeuren middels gestolen FTP-gegevens die men heeft bemachtigd via: • Keyloggers • Virussen (meestal trojans) • Andere malware of spyware • Lekken in oudere versies van software (Acrobat Reader 8, Flash Player)
  13. 13. FTP Hoe vermijden we hacking via FTP: • Geen FTP gebruiken! Gebruik SFTP waar mogelijk. • OS up to date houden • Software up to date houden • Gebruik anti-virus + anti-malware + firewall software
  14. 14. Welke soorten aanvallen? *Meest voorkomende soorten
  15. 15. Type 1 Backdoors
  16. 16. Type 2 Drive By Downloads
  17. 17. Type 3 Pharma Hack
  18. 18. Type 4 Malafide Redirects
  19. 19. Hoe gaan we dergelijke 
 hacks vermijden?
  20. 20. Security in WordPress Plugins, Themes & Best Practices
  21. 21. Security door middel van plugins iThemes Security Wordfence Security Sucuri Security Sucuri Security Website Firewall Bulletproof Security Limit Login Attempts All in one WP Security & Firewall …
  22. 22. Security mét plugins • Beperk het aantal plugins waar mogelijk • Verwijder gedeactiveerde plugins altijd • Hou je plugins altijd up to date • Probeer je te beperken tot plugins uit de officiële WordPress plugin repository (http://www.wordpress.org/ plugins) • Check altijd hoe lang geleden de laatste update uitgegeven werd.
  23. 23. WordPress gebruikers • Gebruik geen admin user, verwijder deze na installatie! • Kies een goed wachtwoord: 
 - Hoofdletters & kleine letters
 - Cijfers
 - Speciale tekens (@, !, ?, …)
 - Gebruik geen bestaande woorden
  24. 24. WordPress Themes • Altijd up to date houden • Gratis theme? Altijd via http://www.wordpress.org/ themes. • Premium themes? Hou dit altijd goed up to date • Nooit themes aanpassen in de theme files zelf. Werk ALTIJD met een child theme voor aanpassingen.
  25. 25. Eigen thema gemaakt? • test met https://wordpress.org/plugins/theme-check/
  26. 26. WordPress opties • Pingbacks uitschakelen • User Registration uitschakelen indien niet noodzakelijk
  27. 27. De bestandsstructuur Tweaks binnen je hosting
  28. 28. Toegang tot gevoelige files blokkeren via htaccess Options All -Indexes
 <files .htaccess>
 Order allow,deny
 Deny from all
 </files>
 <files readme.html>
 Order allow,deny
 Deny from all
 </files>
 <files license.txt>
 Order allow,deny
 Deny from all
 </files>
 <files install.php>
 Order allow,deny
 Deny from all
 </files>
 <files wp-config.php>
 Order allow,deny
 Deny from all
 </files> Plaats dit in de hoofdmap 
 van je WordPress-installatie
  29. 29. Injections blokkeren via htaccess <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
 RewriteRule ^(.*)$ - [F,L]
 RewriteCond %{QUERY_STRING} ../ [NC,OR]
 RewriteCond %{QUERY_STRING} boot.ini [NC,OR]
 RewriteCond %{QUERY_STRING} tag= [NC,OR]
 RewriteCond %{QUERY_STRING} ftp: [NC,OR]
 RewriteCond %{QUERY_STRING} http: [NC,OR]
 RewriteCond %{QUERY_STRING} https: [NC,OR]
 RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
 RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
 RewriteCond %{QUERY_STRING} base64_encode.*(.*) [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>|ê|"|;|?|*|=$).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]
 RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
 RewriteRule ^(.*)$ - [F,L]
 </IfModule>
  30. 30. Robots.txt User-agent: * Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Allow: /wp-content/uploads
  31. 31. wp-content/uploads beveiligen met .htaccess <Files *.php>
 deny from all
 </Files>
  32. 32. Server configuratie Tweaks in php.ini, …
  33. 33. PHP versie • Huidige PHP-versie 5.6 • Heel wat security tweaks vanaf 5.4 • Heel wat hosters draaien nog 5.3 • Vraag actief naar upgrades bij je hoster! Een goede hoster standaardiseert op 5.5.
  34. 34. PHP.ini • safe_mode (weg sinds 5.4, deprecated in 5.3) • allow_url_fopen • register_globals (weg sinds 5.4, deprecated in 5.3)
  35. 35. Fail2ban • Server package tegen brute forcing • Integreerbaar met wp-fail2ban (https://wordpress.org/ plugins/wp-fail2ban/)
  36. 36. Wat als je zelf onvoldoende technisch onderlegd bent om dit zelf te implementeren?
  37. 37. Managed (WordPress) Hosting - Nemen de serverconfiguratie voor hun rekening - Doen de WordPress & plugin updates voor je - Ondersteunen jou bij hacking
  38. 38. savvii.nl • Sponsor van dit event
 (waarvoor dank!) • Gespecialiseerd in managed WordPress hosting
  39. 39. Hoe kan je je website 
 proactief doorlichten?
  40. 40. WPScan • scanner voor WordPress • scant naar vulnerabilities • kan gebruikt worden om DDOS te simuleren • via CLI • Self hosted • Gratis te gebruiken
  41. 41. Sucuri’s sitecheck • http://sitecheck.sucuri.net/ • Gratis te gebruiken
  42. 42. Site toch gehacked Wat nu?
  43. 43. Zelf te nemen acties • Wijzig alle wachtwoorden: MySQL database, FTP, WordPress, … • Update je gehele installatie van WordPress, de thema’s, plugins • Controleer de inhoud van je database op eventuele malafide entries of verdachte users
  44. 44. Zijn er nog vragen?
  45. 45. Bedankt! https://joind.in/13678

×