Meetup #41: Sicherheit

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

  1. Sicherheit, Einführung, Updates, Plugins von Mario Wolf
  2. Backup auf Systemebene mit Klaus Nordmann
  3. Hardening, Hosting, SSL von Mario Wolf
  4. Datensicherheit und -schutz von Max Lüdov
  5. 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

SSL

Dokumentation von Sicherheitslücken

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

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
  • 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:

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

Quellen und mehr zu dem Thema WordPress Sicherheit