Mijn site beveiliging
-
Upload
marko-heijnen -
Category
Technology
-
view
647 -
download
1
Transcript of Mijn site beveiliging
Loadbalancer Memcached
Elasticsearch
MariaDB
Server setup
Micro services
Webserver 1
Webserver 2
Thumbor
Public Private
CDN
Verkeer
WordPress setup• Network install
• Running Trunk
• Folder structure: • /bash • /nginx • /www
• /content • /wp
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' );
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
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
Hardening login• Moeilijk en lange wachtwoord
• IP block voor super admin account (login via VPN)
• Binnenkort verplicht 2fa voor admins
• Binnenkort fail2ban integratie
• 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
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
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
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
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
Apticron• Cronjob checks als er server update zijn
• Stuurt een mail wanneer er updates zijn
• Totale lijst of alleen nieuwe updates
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
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
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)
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/
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
WP Central API• http://wpcentral.io/api/checksums/theme/
twentyfifteen/1.2
• [{"code":"wpcentral_server_error","message":"Generating checksums”}]
• [{"file":"header.php","checksum":"c0919b5f4b6e4f3a58b858b2305e9146"},{},{},{},{},{},{},{},{},{},{},{},{},{}]
Coming Soon• API endpoint word officieel gereleased
• HTTPS (TLS)
• Mogelijk GPG
• Open Source Vulnerability database (met hoge IP rate check)
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/
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
Verdere ideeën• Notificaties (microservice)
• Bij elke succesvolle admin login
• Bij elke file aanpassing
• Plugin activatie/deactivatie
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
Marko Heijnen• Founder of CodeKitchen
• Lead developer of GlotPress
• Core contributor for WordPress
• Organizer for WordCamp Belgrade
Bedankt voor je aandacht
Vragen?
@markoheijnen markoheijnen.com
codekitchen.eu