WordPress Security

my ~/ is my castle
19.09.2015 Frank Staude <frank@staude.net>
Hallo!
Frank Staude

Email: frank@staude.net

Twitter: @staude

Webseite: www.staude.net

GitHub: staude

Co-Founder of WP Meetup Hannover

Co-Founder of PHP UG Hannover

Co-Founder of Arduino Meetup Hannover

Organizer of WP Meetup Nuremberg

Mod @ german WordPress.org Supportforum

Translation Contributor & Editor for german

Speaker and Volunteer @ WordCamp Hamburg 2014

Speaker @ WordCamp Cologne 2015

Co-Organizer @ WordCamp Nürnberg 2016

Co-Founder of adminpress.de
Das hat doch nix mit mir zu tun!
•kleiner privater Blog

•unverfängliche Inhalte

•kaum öffentliche Wahrnehmung

•überschaubare Zielgruppe

•keine monetären Interessen
Content is King
•Rechenleistung (CPU)

•Speicherplatz

•Bandbreite

•sendmail für Spamversand
nothing
CMS? No prob!
•CVE-Hitliste

•(21) Joomla: 309

•(22) Drupal: 290

•(29) WordPress: 247

•(38) Typo3: 178

•ohne Eintrag ≠ sicher, sondern
nur noch nicht dokumentiert
Angriffsvektoren
•Brute-Force Attacs

•„Standard“ Benutzernamen

•schwache Passwörter

•XSS - Cross Site Scripting / SQL Injections

•schlechter Code

•veraltete Installationen
Benutzername
•»admin« bis 3.0 als Vorgabe

•Teile des Domainnamens

•häufige eMail-Adressen wie »info@…«

•Ein Admin-, ein User-Account

•was spricht eigentlich gegen den Benutzernamen
»asylufdeworig23r«?
Passwörter
Passwörter NoGos
•Vorkommen in Wörterbüchern

•SocialHacking anfälliges

•Tastaturläufe und Folgen

•Passwort-Recycling

•In Word/Excel speichern
Kopfschmerzen? Finger wund? 

➡ Passwortmanager!
Verteidigungsstrategie
•willkürliche Benutzernamen 

•starke Passwörter

•Sperre nach x Fehlversuchen 

für Zeitintervall y

• Blacklisting der IP
Update, Update, Update
•regelmässig WP-Core aktualisieren

•AutoUpdater seit 3.7!

•ok für Minor/Security-Releases

•regelmässig PlugIns aktualisieren

•regelmässig (Premium) Themes aktualisieren
Monitoring
•Server up?

•Dateien verändert?

•Benutzeranmeldungen?

•Eindringungsversuche?

•Wer hat wann was gemacht?
TTV
•zufällige Versionsnummer ausgeben

•.htaccess-Regeln zum Zugriffsschutz

•/wp-content/

•wp-config.php

•readme.html + liesmich.html

•„hide and seek“ (/wp-content, wp_, …)
die Mauer erhöhen
•min. Login per SSL-Zertifikat absichern

•Kostenlos bis < 50 €/p.a.

•ggf. Kosten beim Hosting für eigene IP

•Zwei-Faktor Authentifizierung

•einfaches eMail Konzept vom Pluginkollektiv
ehemals Sergej Müller

•aufwändiger Duo, Clef, Rublon

•Hardware abhängige Lösungen (YubiKey, U2F)
Weitwinkel
•Lokaler Rechner sicher?

•Keylogger

•FTP Zugang geschützt?

•besser SFTP oder FTPS (SSL/TLS)!

•PW per eMail übermittelt?

•eMail ohne Verschlüsselung = Postkarte
Serverbasis
•Hosting

•Shared Hosting

•Virtual Host

•Managed Server

•Rootserver

•Housing

•Basissystem? 

•OS?

•PHP?

•MySQL?

•Webadmin Tool?

•Plesk
im Fall der (Un)Fälle
•Backup!

•regelmässig, automatisiert, zeitgesteuert, offsite 

•MySQL-Datenbank

•Dateien, insp. /wp-content/uploads/

•Wiederherstellung üben!
Fazit
•Sicherheit ist eine Daueraufgabe!

•Aufwand vs. Nutzen

•Make or Buy
Danke! Fragen?
frank@adminpress.de
Linksammlung
https://www.cvedetails.com/top-50-vendor-cvssscore-distribution.php

https://wpvulndb.com

http://wpengine.com/unmasked/

http://codex.wordpress.org/Configuring_Automatic_Background_Updates

https://www.startssl.com

https://buy.wosign.com/free/

https://letsencrypt.org

https://www.psw.net/ssl-zertifikate.cfm

https://github.com/sergejmueller/2-Step-Verification

https://wordpress.org/plugins/better-wp-security/

CMS Sicherheit