Hier findest du einen Rückblick auf unser Meetup vom 10.03.2020 zum Thema Sicherheit. Die Videos in fünf Teilen sind entsprechend in den Text eingebunden (ganze YouTube-Playlist hier). Wir freuen uns über Ergänzungen. Wir haben versucht, die Kommentare aus dem Meetup bereits an den richtigen Stellen zu ergänzen.
Inhalt
- Sicherheit, Einführung, Updates, Plugins von Mario Wolf
- Backup auf Systemebene mit Klaus Nordmann
- Hardening, Hosting, SSL von Mario Wolf
- Datensicherheit und -schutz von Max Lüdov
- Notfall-Plan, Recovery-Modus und Health-Check von Peter Sentner
Sicherheit, Einführung, Updates, Plugins
Warum wird man angegriffen?
- Angriffe automatisch und nicht zielgerichtet
- Häufig: automatisierte Angriffe von Bots auf kleine und mittlere Websites
- Selten aber möglich: Angriffe aus Langeweile oder wegen politischen & gesellschaftlichen Statements
Ökonomische Gründe für Angriffe
- Systemressourcen: Nutzung des Servers für Aufgaben wie Botnetze, Spam, etc. Die Website muss dabei keine Auffälligkeiten zeigen
- Drive-by-Downloads:Infizierung der Website mit Malware, die sich beim Besuch der Seite auf den Computer des Besuchers herunterlädt / installiert
- BlackhatSEO: Einbinden von (unsichtbaren) Links, damit die Websites in Google oder Bing gefunden werden. Häufig Affiliate-Links (Provision)
- Phishing:Aufbau weiterer Seiten im Webspace zur Erlangung von Zugangsdaten o.ä.
Folgen von Angriffen und Hacks
- Aussendung von Spam oder Malware hat direkte Folgen für die Website-Besucher -Fahrlässigkeit?
- Blocken der Website durch Google
- Abschalten der Website durch den Hoster
- Blocken durch Anti-Virus-Programme
- Folge: keine Besucher, keine Bestellungen, verlorene Reputation
- IT-Sicherheitsgesetz: Unter Umständen drohen Bußgelder
IT-Sicherheitsgesetz
- Betreiber von Web-Angeboten sind verpflichtet, ausreichende, dem Stand der Technik entsprechende technische und organisatorische Maßnahmen zum Schutz ihrer Kundendaten und der von ihnen genutzten IT-Systeme zu ergreifen.
- Ggf. drohen Abmahnungen
- DSGVO: Fehlende Absicherung Grund für Untersuchungen / Bußgelder
Wie werde ich gehackt?
- Sicherheitslücken in WordPress, Plugins, Themes
- Cross-Site-Scripting
- SQL Injections
- Unauthenticated File Uploads
- Server-Zugangsdaten (FTP)
- WordPress-Login geknackt
- Jede (!) Website wird täglich (!) angegriffen
- Angriffe wenig zielgerichtet und mit einfachen Mitteln abzuwehren
- 3 einfache Regeln erhöhen die Sicherheit der Seite immens!
Über 80% der Angriffe nutzen gestohlene und/oder schwache Passwörter.
(Quelle: verizonenterprise.com)
Persönliche Sicherheit
- Computer Sicherheit – ist dein eigener Computer sicher?
- Passwort Sicherheit
- Passwort Manager
- Wie übertrage ich Daten?
Basics der Website-Sicherheit
- Regelmäßige Backups auf externe Server
- Regelmäßige Updates
- Sichere Passwörter
Erweiterte Basics:
- Benutzer nur mit benötigten Rechten ausstatten
- Testen in Testumgebung nicht in Live/Produktiv
Diskutierbar: Security by Obscurity/ Login-Sperren, WordPress-Verwendung verstecken. Für manche unnütz oder veraltet aber noch stets aktuell. Verhindert unnötige Standard-Abfragen auf bekannte Ziele durch Dritte.
Regelmäßige Backups
- Mindestens wöchentlich
- Sowohl alle Dateien als auch die Datenbank
- Die Export-Funktion von WordPress reicht nicht aus!
- Entweder über den Hoster oder mit Backup-Plugin
- Backup muss auf externer Quelle liegen
- Beim Hoster auf anderem Server
- Bei einem anderen Hoster
- In der Cloud
- Zuhause auf dem PC
Regelmäßige Updates
- Updates mindestens wöchentlich (für WP, Plugins und Themes)
- Auto-Update für Minor-Versions aktiviert lassen
- Bei One-Click-Installationen ggf. vom Hoster deaktiviert
- Kauf-Plugins und Themes nur mit gültiger Lizenz
- Lizenz auch im Backend eintragen für Auto-Updates
- Bei Lizenz-Abo: Abo regelmäßig verlängern
- Vor den Updates: natürlich ein Backup machen
- Ausnahme: Bei größeren Versionssprüngen von WordPress (4.9.x auf 5.x) oder großen Plugins (WooCommerce) kann man etwas abwarten
Ergänzend:
- Keine alten Plugins verwenden (letztes Update max. 2 Jahre her)
- Aktuelle PHP-Version nutzen (mind. 7.3)
- Nur einen Administrator-Benutzer (der darf sogar admin heißen)
- Arbeiten an Seiten und Beiträgen nur mit einem Nicht-Admin
- So wenige Benutzer wie möglich, insbesondere Admins
- Nicht genutzte Plugins und Themes löschen (nicht nur deaktivieren)
Parent-Themes von genutzen Child ausgenommen!
Ja, alle ungenutzten Themes können gelöscht werden, es empfiehlt sich aber eine Alternative zu behalten.
Sichere Passwörter
- Ein sicheres Passwort ist mindestens 10 Zeichen lang
- Unterschiedliche Passwörter für jeden Dienst einrichten
- Zeichenklassen: Kleinbuchstaben, Großbuchstaben, Zahlen, Sonderzeichen
- Je weniger Zeichenklassen, desto längeres Passwort
- 20 Zeichen sind super!
- Für alle (!) WP-Benutzer
- Für FTP und Datenbank
- Für den Login beim Hoster
Erweitertes Housekeeping
- Webspace regelmäßig ausmisten (Testinstallationen, Tools)
- Token und API-Schlüssel erneuern
- Inaktive Nutzer löschen
- Regelmäßig die Sicherheitsmaßnahmen testen und aktualisieren
Plugins
Antispam
Udo: Akismet kann nach wie vor nicht DSGVO-konform genutzt werden. Finger weg!
Login
Sicherheit
Plugins, die viele Funktionen in einer Lösung anbieten (aber auch mehr Ressourcen benötigen):
Firewall
Web Application Firewall
Hans Preckel: NinjaFirewall läuft out-of-the-Box schon sicher.
Backup
Duplicator empfiehlt sich nicht, da der Einsatz eigentlich zur Erstellung einer Kopie der Website gedacht ist.
Tools
- Hacker Target – WordPress Security Scan
- Security Headers
Test-Tool für Security Header vom Webserver - ‘;–have i been pwned?
Wurde mein Account schon einmal gehackt? - WPSEC Sicherheitscheck
- Webbkoll hilft Dir festzustellen, welche datenschutzrechtlichen Maßnahmen eine Website ergriffen hat, um Dir die Kontrolle über Deine Privatsphäre zu geben.
- Google Search Console
- siggi: Stopbadware
- Matthias: Webseiten Check SIWECOS
SSL
Dokumentation von Sicherheitslücken
- exploit-db.com
- wpvulndb.com
Christian Behrends: https://wpvulndb.com/ ist seit neuestem kostenpflichtig. - cvedetails.com
- hackertarget.com/100k-top-wordpress-powered-sites/
Passwort-Manager
- 1Password
- KeePass
- Armin Mohren: Dashlane
- Maria Squarra: LastPass
- Stephan Anders: Roboform everywhere
- SafeInCloud
- Norton Passwort-Manager
Backup-Hoster
Wo kann man die Backups gut speichern? (Vorschläge aus der Runde)
Prüft euren eigenen Hoster, oftmals haben diese bereits ein Angebot für euch.
Christian Behrends: AuftragsVerarbeitungsVertrag beachten.
- Amazon AWS Glacier
- Amazon AWS S3
- Google Drive
- STRATO HiDrive
- tresorit
Verbesserter Schutz
- Es gibt viele Härtungsmaßnahmen, die Standard-Angriffe besser abwehren können
- Nicht zwingend Plugin notwendig
- Einsatz aber bitte nur mit entsprechender Erfahrung
- Mehr Sicherheit mit der .htaccess-Datei
Renate Hermanns: blog.seoagentur-hamburg.com htaccess vielen Einstellungen von Andreas Hecht - Über Autorenseiten Benutzernamen herausfinden
- Standard-Sicherheitsplugins können eine gute Möglichkeit sein
- Problem: viele Funktionen und falsche Anwendung durch Laien
- Siehe Plugins Sicherheit
Backups auf Systemebene
Hardening, Hosting, SSL
WordPress Dokumentation deutsch / englisch
- Aktuelle PHP-Version
- Aktuelle Datenbank
- Aktueller Webserver (Apache, NginX)
- Dateiberechtigungen
- Verzeichnis Lististing abschalten (Apache .htaccess Option -Indexes)
- SSL
- Debug-Modus deaktivieren
- wp-admin und wp-config schützen (Apache .htaccess)
- PHP-Ausführung verhindern in (Apache .htaccess Deny from all)
- Wp-includes
- wp-content/uploads
- Bearbeitung von Theme-Files über das Admin-Panel verbieten
(wp-config.php:define(‘DISALLOW_FILE_EDIT’, true);
- Zugriff auf .*** Dateien verweigern (Apache .htaccess)
- Security Headers
WordPress-Installation
- pro Installation eine eigene Datenbank
- individuelle Datenbank-Zugangsdaten verwenden
- Datenbank-Präfix wp_ ändern ist nicht nötig
- Installation mit SSL-Verschlüsselung
- kein admin oder leicht zu erratende Namen als Benutzer
Profi-Schutz
Web Application Firewall (WAF)
- Eine “Mauer” vor der eigentlichen Anwendung (WordPress)
- Verhindert mit intelligenten Regeln die Ausnutzung von bekannten Sicherheitslücken–Lokale WAFs
- Ninja Firewall
- Eingeschränkt auch Wordfence
- Cloud-WAFs
- Cloudflare, Sucuri
- Datenschutzrechtlich in Deutschland nicht einwandfrei
Problem: Zwei Systeme (Firewall und Webserver/WordPress) müssen funktionieren.
Mehr Infos: Marc Nilius – Web Application Firewalls
DoS/DDos Schutz
In der Regel Aufgabe des Hosters. Bitte überprüfen und hinterfragen.
Überwachung aller Dateiänderungen
- Angreifer hinterlegen Schadcode und Backdoors
- Überprüfung aller Dateiänderungen ermöglicht schnelle Erkennung
- Aufwendig und viel Erfahrung notwendig, um Auffälligkeiten zu erkennen–Beispiele:
- Ninja Firewall
- iThemes Security
- …siehe oben
Login mit Zwei-Faktor-Authentifizierung
- Neben Benutzername und Passwort ist noch Eingabe eines weiteren Codes nötig
- Entweder per SMS
- Per App (z.B. Google-, Windows-Authenticator)
Hans Preckel: Laut Heise sind Google und MS Authenticator unter Android unsicher. - Oder per Hardware-Dongle (z.B. Yubikey)
- Plugin Two Factor
- Vortrag von Matthias Kurz auf WordPress.TV
Szenarios, Hausmittel und Anderes
Diskussionsgrundlage, Erfahrungen mit der gesamten Gruppe austauschen:
Diskussion Datenbank-Präfix
- Als Datenbankpräfix nicht ‘wp_’ verwenden
Diskussion Admin Nutzername
Nutzung eines Sicherheits-Plugins sperrt auch echte Nutzer aus. Nutzt man bspw. Admin als Benutzernamen und dieser wird standardmäßig viel angegriffen, so kann man sich selbst ausschließen.
- Hauptnutzer / Erster Nutzer nicht admin nennen
Diskussion Login Verschieben
Macht das Sinn?
Datensicherheit und -schutz
Rechtlich
- Art. 32 DSGVO
- § 64 BDSG
Hilfestellungen
Technische und organisatorische Maßnahmen:
- Zutrittskontrolle
- Zugangskontrolle
- Zugriffskontrolle
- Benutzerkontrolle
- Verschlüsselung
- Belastbarkeit
Liste der EU DSGVO Bußgelder. Kann man nach Land filtern.
Notfall-Plan, Recovery-Modus und Health-Check
- Ruhe bewahren – Panik-Entscheidungen sind meist die falschen!
- Dokumentieren
- Aktuellen Stand der Daten sichern
- Wann wurde der Hack bemerkt?
- Überlegen und identifizieren
- Was wurde zuletzt gemacht?
- Gab es Neues oder Änderungen?
- Tools
- Website vorübergehend offline nehmen
- Vorbereitete Maintenance-Seite
- Entwicklungsumgebung
- Ebenfalls betroffen?
- Falls ja, Computer prüfen?
- Alle Zugriffe zurücksetzen
- FTP, SSH, WP
- Webhoster kontaktieren
- Logfiles
- Backups
- Hilfe / Support
- Backups
- Benachrichtigungen / Eskalation
- Veröffentlichungen
Variante A Bereinigen
- Prüfen der Integrität der WordPress-Installation
- Veränderte/befallene Dateien mit sauberer ersetzen
- Datenbank prüfen
Variante B Ersetzen
- Sauberes Backup einspielen
- Updaten
Generell im Anschluss
- Zusätzliche, bisher fehlende Schutzmaßnahmen vornehmen
- Manuell ein Backup erstellen
- Sofern in Blacklists eingetragen, die Austragung beantragen
- Hoster informieren, falls dieser Sperrungen aktiviert hat