Webseite sicher machen

Webseite sicher machen

Heute gibt es viele Internet Projekte, welche ohne aktiven Webmaster betrieben werden. Anders als bei manchen großen Websites oder Online Shops lauern viele Gefahren für die Betreiber.

Bei der Sicherheit um Webseiten sind viele Betreiber so unbekümmert, als würden Sie die Brieftasche offen im Auto herumliegen lassen. Um was geht es? Es geht schlichtweg darum, dass der Einbruch (Hacken) in Websites für zahlreiche dubiose Geschäftsmodelle interessant ist.

Das Interesse dahinter ist das verbreiten von Viren, Trojaner, Malware, Spam Mail, Kommentar Spam, Nutzung Rechenleistung und und und. Sie sollten die Situation ernst nehmen, denn es gibt zu viele Sicherheitslöcher in den Technologien, die im Internet verwendet werden.

Ihr Webmaster, Webagentur oder System Administrator sollte einige Bereich abklopfen damit Sie auf der "sicheren Seite" liegen. Denken Sie daran, wenn Google Malware auf Ihren Webseiten entdeckt, "raucht" auch Ihr Ranking ab oder die Website landet auf einer Blacklist.

Nachfolgend werden einige Bereiche erläutert und die Maßnahmen, die getroffen werden müssen.

Server

  • Alle Logins erfolgen über verschlüsselte Kanäle
  • Passwörter sind mind. 10 Zeichen aus dem vollen ASCII Zeichensatz
  • Wordpress, Drupal, Contao, Magento usw. nur mit SSL verbinden
  • Sperren IP Adressen unsicherer Regionen (oftmals Russland, Ukraine, Asiatische Staaten)
  • Aktuelle Version von PHP, ASP usw.
  • Keine anderen Dateien wie Backups, Passwortlisten, temporäre Entwickler Dateien o.ä. in der Webserver Root

Wordpress

Das beliebte CMS wird natürlich bei Ihnen täglich automatisiert angegriffen. Als Firmeninhaber oder Geschäftsführer gehört es zu Ihrer Pflicht Sorge zu tragen. Es gib eine Reihe von Blogs, die das Thema gut behandeln. Hier die wichtigsten Grundlagen

Login

Teilweise werden Namen, Begriffe aus der Webseite extrahiert sowie klassische admin:123456 Kombinationen. Eine Maßnahme ist das schützen der Login Sequenz.

  • /wp-login.php url ändern
  • /wp-login.php?action=register  ändern
  • Passwort nur stark wählen mit mind. 10 Zeichen
  • Captcha oder ReCaptcha anwenden
  • Kein Login als Admin für einfache Arbeiten

Benutzername

  • Keine üblichen Namen wie admin oder root verwenden
  • eMail Adresse als Login Namen verwenden mit dem Plugin WP EMail Login
  • Benutzername und Pseudonym unterschiedlich einstellen

Schnittstellen

Einige sinnvolle Schnittstellen, die aber viele Projekte nicht brauchen ggf. Sperren bzw. gezielt beschränken. Wer, was, wann und wo darf. Testen Sie mal meine-domain.de/wp-json (für meine-domain bitte Ihre Domain nehmen) was kommt.

Sperren Sie also erstmal

  • REST-API
  • JSON

Mit dem Plugin WP Cerber kann man das einfach und schnell umsetzten.

Konfigurations Datei

Die wp-config.php Datei enthält relevante Konfigurationen. Die Benutzer Rechte per Terminal Komandozeile auf 444 setzen, damit nur Leseberechtigung besteht.

chmod -f 444 wp-config.php

Bevor Sie das machen können Sie noch die am Ende der wp-config.php folgenden Code eintragen:

define('DISALLOW_FILE_EDIT', true);

Außerdem sollten die Verbindung zur Datenbank auch per SSL erfolgen sowie ein starkes Passwort gewählt werden.

Plugins

Jedes Plugin stellt auch ein Sicherheitsrisiko dar. Es ist daher ratsam nicht alles zu installieren, was traumhafte Lösungen anbietet. Ein schlankes System ist beherrschbarer für viele Projekte. Nach Angaben einer Studien gehen die Sicherheitslücken zu ca. 50% von Plugins aus.

Folgende Überlegungen erscheinen sinnvoll:

  • Löschen inaktiver unbenutzer Plugins
  • Regelmäßige Updates
  • Community Beiträge lesen zu den Plugins
  • Ist das Plugin unter aktiver Entwicklung

Updates

Machn Sie regelmäßig Updates insbesondere wenn Sicherheitslücken bekannt werden. Automatisierte Programme durchdorsten das Internet nach Schwachstellen. Der Trick ist wie das versuchen ob eine Tür nicht abgeschlossen ist.

Backup

Legen Sie vorher und nach der Tätigkeit ein Backup an, das außerhalb der Webserver Root in einen sicheren Ordern liegt. Setzen Sie die Dateirechte auf 000 per Kommandozeile oder auch mit FTP Programm.

WP Cerber Security & Antispam führt auch einen Check der Dateiintegrität aus. Sprich, es wird kontrolliert ob Dateien manipuliert wurden.

Drupal

Viele Sicherheitsmaßnahmen, die für Wordpress gelten sind auch für Drupal anzuwenden. Es gibt natürlich Unterschiede die zudem abweichen zwischen Drupal 8 (insgesamt sicherer) und Drupal 7.

HTACCESS Datei

Die .htaccess Datei hat es vielen Benutzer angetan. Wer Kontrolle über seinen Server hat, kann darauf verzichten und das gleich in der vitrual-host.conf, apache2.conf (o.ä. Name) anpassen. Am besten .htaccess auch gleich deaktivieren und den Overhead reduzieren.

Wie auch immer hat .htaccess Vorteile, da es schnell und leicht geht und der Webserver Deamon nicht neu gestartet werden muss (z. B. apachectl restart ).

Wer Drupal nicht nutzt für Foren, Multi-User oder einer breiteren Nutzergruppe die sich einloggen sollt kann den Zugriff auf Login Attacken reduzieren und erweitert .htaccess gleich zu Anfang um folgende Zeilen.

#Beispiel
SetEnvIfNoCase Request_URI "user/password" intrusion
SetEnvIfNoCase Request_URI "user/register" intrusion
Deny from env=intrusion

Viele Webseiten Betreibern brauchen keine Besucher z. B. aus China, Vietnam. Sie sind z. B. Rechtsanwalt, Architekt ein lokaler Shop oder Dienstleister mit DACH Kunden? Wie oft kam da ein Geschäft aus Asien zustande? Dann kann man den IP Adress Raum bestimmter Telekom Provider sprerren wo regelmäßig Attacken ausgehen.

#Beispiel
#Chunghwa Telecom Co. Taiwan
deny from 1.34.0.0/15

Erzwingen von SSL ist bei Drupal schon in der .htaccess Datei enthalten. Ändern Sie die betreffenden Zeilen, dass jeder Zugriff per TLS / SSL erfolgt und verschlüsselt ist.

Verzeichnisse

Hier scheiden sich die Geister, den je nach Projektumfang gibt es keinen Goldstandard, da es auch von Serverkonfiguration des jeweiligen Hosting Anbieters abhängt. Insgesamt darf man heute etwas Paranoid sein als zu freizügig.

Für die meisten Dateien reichen Dateirechte wie 555 ( lesen - ausführen ). Für viele Drupal Script Dateien reicht es aus im unbeaufsichtigten Betrieb die Recht auf 440 zu setzen, also nur Besitzer und Gruppe dürfen lesen.

Im Verzeichnis (Directory) files wird man nicht umhin kommen die Rechte auf 755 zu belassen, da sonst diverse Module Dateien nicht schreiben können, also z. B. Dateien aufladen, Sitemaps erstellen, CSS Dateien verbinden.

Nachfolgend ein Beispiel minimaler Dateirechte für D7, die jedoch bei Update o.ä. über Drupal oder Drush wieder angepasst werden müssen

rm -f CHANGELOG.txt
rm -f COPYRIGHT.txt
rm -f INSTALL.mysql.txt
rm -f INSTALL.pgsql.txt
rm -f INSTALL.sqlite.txt
rm -f INSTALL.txt
rm -f MAINTAINERS.txt
rm -f README.txt
rm -f UPGRADE.txt
rm -f LICENSE.txt

chmod 440 MAINTAINERS.txt
chmod 440 README.txt
chmod 440 UPGRADE.txt

chmod 444 web.config
chmod 444  robots.txt 
chmod 444 .gitignore
chmod 444 .editorconfig

chmod 440 cron.php
chmod 440 index.php
chmod 440 install.php
chmod 440 update.php
chmod 440 xmlrpc.php
chmod 440 authorize.php


chmod 555 vendor
chmod 555 themes
chmod 555 sites
chmod 555 scripts
chmod 555 profiles
chmod 555 modules
chmod 555 misc
chmod 555 includes

chmod 755 sites/all/modules
chmod 755 sites/all/libraries

Module

Bei Wordpress ist der Begriff Plugin üblich bei Drupal sagt man Module. Im Prinzip das Gleiche, denn es ist Code der das System erweitert und auch aus dem Aspekt Sicherheit schwächt. Deinstallieren Sie unnötige Module komplett. Machen Sie regelmäßig die Sicherheits Update.

Es gibt einige Module welche helfen schneller Überblick zu erhalten zu Schwachstellen im System.

Security Review Zeigt Schwachstellen in der Konfiguration auf
Login Security Blockiert IP Adressen erfolgloser Login Versuche
Hacked Prüft Dateiintegrität von Drupal und Modulen
Diff Aufspüren von Dateinänderungen
Path2Ban Blockiert IP Adressen mit verdächtigen Dateiaufrufe
Seckit Implementiert Content-Security-Policy
Paranoia  
Recaptcha Kontrolle automatisierter Formular Übertragungen

Das XML Sitemap Module sollte Beachtung finden. Hier kann es sein, dass versehentlich als Benutzer Name offen im Netz stehen. Das Module jQuery Update ist auch eine Kontrolle wert, da alte jQuery Version Sicherheitslöcher aufweisen.

Konfigruations Datei

In Drupal ist die Konfigurations Datei settings.php. Nach Änderung sind die Dateirechte 440 (lesen - lesen - keine) zu setzten.

chmod -f 440 ./sites/default/sitemap.xml

Benutzer

Drupal Core als auch einige Module bieten zahlreiche Einstellungen für Benutzerrechte. Bevor man daran geht, ist es zweckmäßig unnötige Module zu deinstallieren. Ein Benuzter hat in Drupal 7 und Drupal 8 besondere Rechte. Der User mit der ID 1 auch Root User genannt. Diesen sollten man in der Datenbank Tabelle sperren und zusätzlich einen alternativen Administrativen Nutzer anlegen.

Weitere Tipps

Content-Security-Policy

CSP oder Content-Security-Policy verfolgt vor allem ein Ziel. Von wo dürfen Datei Resourcen geladen werden, die beim Aufruf Ihrer Webseite dem Benutzer im Browser gezeigt werden und das einschleusen von fremden Code bzw. Inhalte.

Beispiel: Sie integrieren ein Firmenvideo von Youtube auf Ihrer Webseite. Dann müssen Sie gemäß CSP das in dem HTTP Header Ihrer Webseite dem Browser mitteilen. Ansonsten sieht der Benuzter nicht den Inhalt der extern von Youtube geladen wurde.

Noch nicht ganz klar. Stellen Sie sich vor Unberechtigte schaffen es Inhalte auf Ihre Webseite zu integrieren. Dann wird das nur angezeigt, wenn Sie die externe Quelle explizit definiert habe.

Die Content-Security-Policy kommt Ihne etwas entgegen, wenn Sie es mit Datenschutz und Tracking ernst nehmen. Denn Sie werden zum ersten mal sehen, von wo überall Dateien in Ihrem Systems stammen und schön immer "mithören".

Insgesamt sollte man bevor eine CSP aufgesetzt darüber nachgedacht werden, wieviel Dateien aus externen Ressourcen wirklich geladen werden müssen, die man auch lokal bzw. unter eigener Kontrolle hosten kann.

Beispiele typischer Bibliotheken die extern geladen werden und dort auch aufzeigen, wie Ihr Webseiten Traffic ist.

  • Bootstrap
  • jQuery
  • FontAwesome
  • GoogleMaps
  • GoogleFonts
  • Google Recaptcha
  • Google Analytics
  • Facebook
  • Youtube
  • Vimeo
  • Instagram
  • TripAdvisor
  • Jameda
  • uvm

Weitere Tipps

Bots, Crawler, Harvester, Webscraper

Viel Webseiten Verkehr wird durch Bots, Crawlerm Webscraper o.ä. automatisierte Programme verursacht. Um was geht es dabei?

Webseiten oder Onine Shops werden durchforstet nach Inhalte, sei es um Ranking Vergleiche anzustellen, Ihre Preis Strategie, Copyright bzw. Urheberrechtsverstöße, Schwachstellen im System, Daten Extraktion im Allgemeinen. Vieles bringt Ihnen wenig Nutzen außer, dass Sie mehr Serverleistung bereitstellen müssen.

Eine allumfassende Lösung wird es hier in naher Zukunft nicht geben. Es bieten sich 2 Lösungen an mit denen man Risiken reduziert.

  • Manuelle Listen mit sperren von IP Adressen sowie User-Agents über Einstellungen am CMS oder WebServer
  • Einsatz spezieller Dienste, wie Cloudflare, welche dauerhaft sich dem Thema widmen

Als Webmaster kann man zu Lösung 1 greifen und seine eigenen Listen und Sperren pflegen, die sehr lang sind. Eine umfassen Liste von "misbehaving Bots" bietet Northwest.ca an.

SSL / TLS sicher machen

Eine Grundmaßnahme um Websites, Homepages oder eCommerce Shops sicher zu machen ist die SSL / TLS verschlüsselte Datenübertragung. Für den Laien hier kurz eine einfach bildliche Erklärung:

Stellen Sie sich einen durchsichtigen Gartenschlauch vor der durch die Hecke zum Nachbarn geht. Jeder kann sehen, was durchfliesst. Nun nehmen Sie einen Gartenschlauch mit schwarzer Umantelung. Nun kann man nicht mehr sehen was durch den Schlauch fließt. Das wäre die SSL Verbindung.

Wie Sie unschwer erkennen wissen Sie trotz dem schwarzen Schlauch nicht wer auf der anderen Seite der Hecke ist. Das wäre in dem Beispiel das Zertifikat, was der SSL Verbindung bestätigt wer die Gegenstelle ist.

Was macht nun eine SSL / TLS Verbindung nicht?

Sie verschlüsselt nicht Ihre Daten selber. Das bedeutet auf der Gegenstelle (Computer, Handy, Tablet) können die Daten ja von jedem gelesen werden. Wollen Sie nun ein Dokument wie z. B. Patientendaten sichern müssten Sie das Dokument selber auch verschlüsseln. Bedenken Sie, dass jedes eMail am eMail Server als unverschlüsselter Text wie eine ganz normale Textdatei hinterlegt ist.

Urheberrecht

Es gehört weniger zu den technischen Maßnahmen aber ist aufgrund zahlreicher Gesetze absolut wichtig, da automatisierte Programme (Bots) wie z. B. PicScout das Internet durchforsten ob Sie auf Ihrer Webseite ggf. Inhalte verwenden, die urheberrechtlich geschützt sind. Die Folge sind kostspielige Abmahnungen. Der Digital Millennium Copyright Act (DMCA) schafft eine rechtliche Basis für die juristische Verfolgung von Urheberrechtsverletzungen im Internet. Google bietet hier ein "Tool" an um Inhalte aus dem Suchindex zu entfernen. Sie sollten hier aufpassen, denn nachhaltige Verstöße werden bestimmt nicht mit guten Rankings belohnt.

Wichtig: Sie als Webseitenbetreiber müssen gem. Urhebergesetz Sie den Nachweis führen, dass Sie die Nutzungsberechtigung für die Inhalte haben. Können Sie das nicht, kann das richtig teuer werden.

Datenschutz

Spätestens seit in Kraft treten der EU-DSGVO sind Sie als kommerzieller Webseitenbetreiber verpflichtet datenschutzrechtliche Bestimmungen zu erfüllen. Schon seit geraumer Zeit was schon das Übermittlen an Formulardaten an Bedingungen geknüpft. Relevante Bedingungen für Webformulare sind in jedem Fall

  • SSL gesicherte Übertragung
  • Einwilligung EU-DSGVO
  • Nachweis führen zu Einwilligung (Protokoll)

Um Ihre Webseite auch EU-DSGVO Konform zu gestalten sind je nah Projekt zahlreiche Aufgaben zu erfüllen. Einige Relevante sind davon:

  • Inhaltlich Verantwortlicher
  • Kontakt Daten für Löschung personenbezogener Daten
  • Aufklärung personenbezogener Daten
  • Seite mit Datenschutzbestimmung und Cookie Politik
  • Impressum gem. §6 Telemediengesetz
  • Übertragung über verschlüsselte Verbindungen bei eMail und Webseiten
  • Einwilligung, dass man z. B. per Telefon, eMail, Whatsapp usw. in Kontakt treten darf

Fazit

Eine Website sicher machen erfordert einiges an Aufwand und laufende Kontrolle. Große Projekte brauchen ein aktives und laufende Sicherheitsmanagement der gesamten IT Infrastruktur. Jeder Betreiber von kommerziellen Webseiten ist schon aufgrund der EU-DSGVO verpflichtet für die Sicherheit ausreichend Maßnahmen getroffen zu haben und dies auch Nachweisen kann.

Für viele automatisierte oder einfachere Attacken können Sie Ihre Webseite sicher machen mit einem aktzeptablen Aufwand. Bedenken Sie dass es besonders vertrauenserweckend ist, wenn Ihre Kunden auf eine "Online Spiele" oder "Viagra" Seite umgeleitet werden.