Advertisement
Advertisement

More Related Content

Advertisement

Mijn site beveiliging

  1. Marko Heijnen CODEKITCHEN Mijn Site Beveiliging WordPress Meetup Enschede
  2. The moment my site got hacked
  3. Stay in this bubble
  4. Alles begint met je server setup
  5. Opbouw van mijn site
  6. Loadbalancer Memcached Elasticsearch MariaDB Server setup Micro services Webserver 1 Webserver 2 Thumbor Public Private CDN Verkeer
  7. WordPress setup • Network install • Running Trunk • Folder structure: • /bash • /nginx • /www • /content • /wp
  8. wp-config.php fun
  9. 1 map hoger
 Uit de www folder
  10. WP-Config • Security Keys • $table_prefix • WP_CONTENT_DIR / WP_CONTENT_URL • UPLOADS
  11. WP-Config • Disable Plugin/Theme Editor
 define( 'DISALLOW_FILE_EDIT', true ); • Disable Plugin/Theme Update en Installatie
 define( 'DISALLOW_FILE_MODS', true ); • Block externe URL Requests
 define( 'WP_HTTP_BLOCK_EXTERNAL', true );
 define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );
  12. Hardening WordPress • PHP kan de bestanden niet aanpassen • OPCache word niet ververst tenzij je PHP reload • WordPress Network install
 (Hernoeming van upload directory) • Veel functionaliteit is zelf geschreven
  13. Eigen functionaliteit • Een eigen per site mu-plugins folder
 (/mu-plugins/blog/markoheijnen/plugin-name) • plugins folder heeft alleen WordPress.org plugins • Overzicht van plugins is nu opgeschoond
  14. Login
  15. Hardening login • Moeilijk en lange wachtwoord • IP block voor super admin account (login via VPN) • Binnenkort verplicht 2fa voor admins • Binnenkort fail2ban integratie
  16. • Fail2ban scant log files zoals /var/log/apache/ error_log en bant IPs die malicious tekens vertonen • Zoals te vaak foutief ingelogd • Fail2ban update dan de firewall rules om de IPs voor een bepaalde tijd te blokkeren Fail2ban
  17. Integratie met WordPress • WordPress logt de foutieve pogingen via bijvoorbeeld syslog() • Voegt nieuwe filter toe aan Fail2ban • Hierbij leg je uit hoe de log item opgebouwd is • Voorbeeld: wp-fail2ban
  18. Multiserver setup • In plaats van log file worden acties in een database opgeslagen • Op de Fail2ban server draait een cronjob die nieuwe geblokte IPs toevoegt • fail2ban-client om IPs te blokken • Of dit word een microservice die het beheerd
  19. Firewall
  20. UFW • ufw default deny incoming • ufw default deny outgoing • ufw allow out http(s) • ufw allow out DNS • ufw allow from {your.home.ip} • ufw allow out on eth1 to {internal.ip} port 3142
  21. Application Firewall
  22. Application Firewall • Actieve preventie van vulnerabilities zoals cross- site scripting (XSS) en SQL injection • Sucuri of CloudFlare als een service • NinjaFirewall als een plugin • Zelf hou ik het voorlopig op modSecurity • Momenteel bekijk ik de rule sets van owasp.org
  23. Detection Layer
  24. Apticron • Cronjob checks als er server update zijn • Stuurt een mail wanneer er updates zijn • Totale lijst of alleen nieuwe updates
  25. Apt-dater and Apt-dater-host • Terminal-based remote package update manager • Een tool om meerdere servers te managen • Groeperen van servers • Install en update packages
  26. Use WordPress to manage WordPress
  27. Server Features • Geeft alle Linux packages updates weer • Geeft alle PECL updates weer • Toont aan als je WP-CLI updates heeft • Het updaten van WP-CLI • Opnieuw opstarten van een service
  28. WordPress Features • Geeft alle WordPress updates weer • Mogelijkheid om een update te doen (todo) • Checksum scans • Upload directory scans • Backups (todo) • Send WP CLI command (todo)
  29. Lijst met alle servers
  30. Lijst met alle sites
  31. Overview van je site
  32. Security checks voor je site
  33. Checksums voor plugins/themes
  34. WP Central • Begon als een platform voor statistieken • Daarna met een API voor contributors • Nu het opvragen van checksums voor plugins en themes • http://wpcentral.io/api/
  35. Node.js server • Een microserver voor het genereren en opvragen van de checksums • Indien het nog niet bestaat word het in de queue geplaatst en ontvangt de gebruiker een melding • Tussen WordPress en de node.js applicatie zit nginx die mogelijk crashes afvangt
  36. WP Central API • http://wpcentral.io/api/checksums/theme/ twentyfifteen/1.2 • [{"code":"wpcentral_server_error","message":"Gener ating checksums”}] • [{"file":"header.php","checksum":"c0919b5f4b6e4f3a 58b858b2305e9146"},{},{},{},{},{},{},{},{},{},{},{},{},{}]
  37. WP-CLI
  38. Coming Soon
  39. Coming Soon • API endpoint word officieel gereleased • HTTPS (TLS) • Mogelijk GPG • Open Source Vulnerability database
 (met hoge IP rate check)
  40. Ideeën zijn meer
 dan welkom
  41. Log aggregation
  42. Log aggregation • Logstash • Fluentd • OSSEC
  43. OSSEC • Een Open Source Host-based Intrusion Detection System • Performs log analysis, file integrity checking, policy monitoring, rootkit detection, real-time alerting and active response • Works with a manager and agents • https://hackertarget.com/defending-wordpress- ossec/
  44. Het gebruik van WordPress plugins
  45. WordPress plugins • Persoonlijk geen voorstander om het als bescherming te hebben • Als iemand in je site komt heeft de persoon de mogelijkheid om het uit te schakelen • Gebruik het als een hulp voor server technologie • Zoals bij Fail2ban • Een plugin is je laatste middel voor bescherming
  46. Verdere ideeën
  47. Verdere ideeën • Notificaties (microservice) • Bij elke succesvolle admin login • Bij elke file aanpassing • Plugin activatie/deactivatie
  48. Conclusie
  49. Conclusie • Wanneer je een VPS neemt dien je ook een gedeelte van de veiligheid op je te nemen • Host doen over het algemeen diverse dingen al voor je zoals het blokken van zwakheden in populaire plugins • Je hoeft niet door te draaien zoals ik maar check regelmatig je site en je log files. Zelfs al is het handmatig
  50. Marko Heijnen • Founder of CodeKitchen • Lead developer of GlotPress • Core contributor for WordPress • Organizer for WordCamp Belgrade
  51. Marko Heijnen info@markoheijnen.com @markoheijnen
  52. Bedankt voor
 je aandacht Vragen? @markoheijnen markoheijnen.com
 
 codekitchen.eu
Advertisement