10 Punkte zur Verbesserung der Sicherheit der Website

von Marco Simbürger

Selbst wenn man ein solides CMS verwendet, können Update-Faulheit, unzuverlässige Module und unvorsichtige Entwicklung/Konfiguration die Sicherheit einer Website erheblich beeinträchtigen. Nachfolgend 10 Punkte, um die Sicherheit der Website zu verbessern.

1. Aktualisierung von Core und Modulen auf die neueste Version

Es mag offensichtlich klingen, aber regelmässige Updates ist eines der effektivsten Wege, eine Website zu schützen. Das Core-Team eines CMS arbeitet laufend am Projekt, veröffentlicht neue Funktionen und beseitigt Schwachstellen. Üblicherweise wird man direkt im CMS über verfügbare Updates informiert. Man kann sich die Informationen aber auch auf der Website oder über anderen Kanälen wie Twitter und co. beschaffen. Alternativ zur manuellen Verfolgung von Updates gibt es z.B. für Drupal automatisierte Aktualisierungslösungen wie DropGuard.
Nach dem Update sollte man das CMS bzw. die Module unbedingt ausführlich testen, bevor sie auf Produktion ausgespielt werden!

2. Sicherheitshinweise im Auge behalten

Das Core-Team bzw. das Security-Team (wie bei Drupal) prüft das CMS und die Module laufend auf Schwachstellen und versendet bei aufgedeckten Risiken Benachrichtigungen über diverse Kanäle. Sie informieren die Anwender und zeigen auf, wie das Problem beohebn werden kann. Es ist wichtig, dass man diese Benachrichtigungen auf irgend eine Weise erhält, um zu erfahren, welche Teile des Webseitenschutzes verbessert werden sollten. Gänige Kanäle sind Newsletter, Twitter, Slack usw.

Drupal:
https://www.drupal.org/security (Security-Newsletter abonnieren)
https://twitter.com/drupalsecurity

Contao:
https://contao.org/de/news.html (leider kein Abo/Newsletter möglich)
https://twitter.com/contaocms

Symfony:
https://symfony.com/blog/category/security-advisories (Security-Newsletter abonnieren)

3. Prüfung der verwendeten Module

Man sollte gelegentlich alle Module prüfen, um die veralteten und unbenutzten unter ihnen zu finden. Solche Module sollten dann entweder auf eine neue (und sichere) Version aktualisiert oder gelöscht werden. Ein veralteter Code verschwendet nicht nur die Ressourcen der Website/des Servers, sondern ist auch für Angreifer besser zugänglich.

4. Server-Sicherheit

Der Schutz der serverseitigen Umgebung ist eine der wichtigsten Massnahmen für die Sicherheit von Websites. Dabei sollte man auf ein ganzes Spektrum von Sicherheitsaspekten achten.

Zuverlässiges Webhosting: Man sollte einen zuverlässigen Hoster wählen, der aktuelle Software und Frameworks einsetzt und ein hohes Sicherheitsniveau bietet. Die Aktualisierung der gesamten Software, einschliesslich PHP-Versionen, Versionen von Modulen und des Betriebssystems des Servers, sollte ebenfalls zur obersten Prioritäten gehören. Bei einem Hosting-Anbieter wie z.B. Cyon kümmert sich der Hoster um diese Punkte. Bei einem eigenen Server muss man sich selbst darum kümmern.
Zuverlässiges Webhostings sind zum Beispiel Cyon, Hostpoint, Nine, Webland, ...

SSH/SFTP: man sollte immer eine verschlüsselte Verbindung zum Server via SSH oder SFTP aufbauen, um die übertragenen Daten zu schützen.
Die Verwendung von FTP gilt als sehr unsicher, da für die Übertragung immer ein Kennwort eingegeben werden muss, das unverschlüsselt übertragen wird. Heisst: Benutzername und Kennwort werden im Klartext übertragen und können so mitgelesen werden.

HTTPS: auch die Website sollte über eine sichere Verbindungen (HTTPS) ausgeliefert werden. Dazu ist ein SSL-Zertifikat notwendig. Dank Let's Encrypt ist ein solches Zertifikat heutzutage gratis erwerbbar und wird praktisch von allen Hostern angeboten. Die Auslieferund der Website via HTTPS verhindert nicht nur den Zugriff von Hackern auf die übertragenen Daten, sondern hilft auch, dass die Website in der Suchmaschinen besser gewertet wird. Moderne Browser wie Chrome oder Firefox zeigen eine Sicherheitswarnung an, wenn eine Website ohne HTTPS ausgeliefert wird.

5. Sichere Passwörter

CMS wie Drupal oder Contao verschlüsseln alle Passwörter und machen sie schwer zugänglich. Die Sicherheit auf der Benutzerseite liegt aber beim Anwender. Kurze und einfache Passwörter können von Angreifern leicht gehackt werden. Um Angriffe zu verhindern, sollte man eine starkes Passwort wählen. Für das Passwort sollte man Gross- und Kleinschreibung, Zahlen und Sonderzeichen verwenden und das Passwort sollte mindestens 8 Zeichen lang sein. Ich empfehle sogar mehr Zeichen zu wählen. Zudem zählt die Komplexität des Passworts ohne erkennbares System. Heisst z.B. nicht "Passwort2019!" sondern "Pa22W0rT2o$9!".
Um Passwörter sicher zu verwalten empfiehlt sich ein Passwort-Manager wie zum Beispiel 1Password oder Lastpass zu verwenden.

6. File Execution kontrollieren

Wenn man Benutzern erlaubt, Dokumente hochzuladen, können Hacker darüber bösartige Skripte und Viren ins System einschleusen. Dies kann vermieden werden, indem man die erlaubten Dateiformate einschränkt. Dies kann bei jedem CMS eingestellt werden.

7. Berechtigungen prüfen

Man sollte zudem die vorhandenen Benutzerrollen kontrollieren und nur die minimal erforderlichen Berechtigungen gewähren. Auf diese Weise verhindert man einen möglichen Missbrauch der Daten. Die Administrationsrolle sollte nur einer begrenzten Anzahl von Personen zugewiesen werden, da sie den Zugriff auf kritische Konfigurationen der Website ermöglicht.

Eine gute Vorgehensweise beim Erstellen einer neuen Benutzerrolle ist es, alle Berechtigungen standardmässig zu verweigern und dann nur die notwendigen zu erlauben. Wenn man eine bestehende Website übernimmt, sollte man prüfen, welche Benutzer welche Rechte haben und sollte diese ggf. einschränken.

8. Regelmässige Erstellung von Backups

Es ist zu empfehlen, regelmässig saubere und aktuelle Backups zu erstellen. Backups können im Worstcase-Szenario Gold wert sein! Die Hosting-Anbieter erstellen selbst regelmässig Backups aller Daten. Diese sind meinstens aber nicht so rasch wiederhergestellt, da man via den Support des Hosters gehen muss. Daher sollte man selbst auch regelmässig ein Backup erstellen - zumindest von der Datenbank. Vor einer grösseren Anpassung der Website/der Inhalte, Update des CMS oder allgemein Datenbank-Änderung sollte man IMMER ein Datenbank-Backup erstellen! Die erstellen Backups dürfen nicht via das Internet zugänglich sein. Daher immer ausserhalb des Webroots auf dem Server platzieren.

9. Lokal ein aktuelles Antivirenprogramm verwenden

Ein infizierter Admin-Computer kann ein weiteres Risiko für eine Website darstellen. Man sollte eine zuverlässige Antivirensoftware verwenden und diese regelmässig aktualisieren, um das eigene System vor Angriffen zu schützen. Für die serverseitige Sicherheit ist eine Firewall zwingend notwendig. Die Hosting-Anbieter setzen dies aber autoamtisch ein.

10. Durchführung eines Sicherheits-Audits vor der Veröffentlichung der Website

Und last but not least sollten man vor dem GoLive einer Website noch einmal prüfen, ob die Website vollständig geschützt ist. Die Erstellung einer Sicherheits-Checkliste und deren Befolgung während der Entwicklungsphase kann helfen, jedoch ist es schwieriger, eigene Fehler zu erkennen. Daher ist es empfehlenswert, einen anderen Entwickler zu bitten, das Setup zusätzlich zu prüfen.

Zurück

Kommentare

Einen Kommentar schreiben

Bitte addieren Sie 7 und 4.