Thumbnail – 9 Tipps um Deine Website vor Hackern zu schützen

Wie Du Deine Website vor Hackern schützen kannst

E-book just for you

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Inhaltsverzeichnis

Weitere Blog-Beiträge

Immer Up-To-Date?
Newsletter-Anmeldung

In Zeiten der Digitalisierung wird das Thema «Cyber-Security» stets relevanter. 10.8 Millionen Websites werden jährlich gehackt. Das sind knapp 30'000 pro Tag. Die beliebte Open-Source-Software WordPress ist dabei am meisten betroffen. Warum? Na, weil es nach wie vor das am häufigsten eingesetzte CMS (Content Management System) ist.

Erfahre in diesem Praxis-Guide, wie Du Deine Website oder Webapp mit konkreten, praxisbezogenen Massnahmen schützen kannst, um das Risiko eines schädlichen Hacker-Angriffs auf ein Minimum zu reduzieren. Folgend erhältst Du 10 konkrete Tipps:

1. Standard-Tipps, die wir trotzdem nochmals kurz erläutern

Als Du einen Blick ins Inhaltsverzeichnis warfst, fiel Dir sicher auf, dass Du mindestens die ersten aufgeführten Punkte bereits kennst oder schon einmal davon gehört hast. Das dürfte vielen anderen genauso gehen. Warum? Weil es sich dabei um absolute Basics handelt, die in jeder Website-Konfiguration – ob Blog, Vereins-Website oder hochkomplexer Onlineshop – beachtet werden sollten.

Trotzdem möchten wir Dir diese wichtigen Punkte näher bringen und konkret darlegen, wie Du diese Basic-Massnahmen konkret umsetzen kannst.

Verwende ein SSL-Zertifikat

SSL (Secure Sockets Layer) wird verwendet, um den Datenaustausch zwischen Deiner Website und dem Browser Deiner Kunden zu verschlüsseln. Dadurch haben unbefugte Dritte keinen Zugriff auf die übertragenen Daten. Diese Verschlüsselung ist besonders wichtig für Websites, die Formularübermittlungen oder Onlineshop-Funktionalitäten anbieten. Dennoch ist die Implementierung eines SSL-Zertifikats für jede Art von Website sinnvoll. Es gibt verschiedene Arten von SSL-Zertifikaten, die sich im jeweiligen Schutz unterscheiden.

  • Domain-Validated (DV-Zertifikat): Validiert nur die Domain, nicht aber den Inhaber und ist daher bestens für Blogs geeignet.
  • Organisation-Validated (OV-Zertifikat): Validiert die Domain und den Inhaber mittels Handelsregister und ist für Unternehmen geeignet.
  • Extended-Validated (EV-Zertifikat): Hier werden die strengsten Kontrollen durchgeführt, wobei diese Art des Zertifikats bestens für Banken geeignet sind.

Zur Implementierung kannst Du zuerst bei einem passenden Anbieter das jeweilige Zertifikat erwerben und installiere das Zertifikat anschliessend auf Deinem Webserver. Die Installation des Zertifikats unterscheidet sich je Hosting-Anbieter.

Halte Deine Software stets aktuell (CMS und Plugins)

Egal ob WordPress, Joomla, Drupal oder eine andere Software, die auf Deiner Website verwendet wird. Der Schlüssel ist, diese stets auf dem neuesten Stand zu halten und neue Updates sofort nach ihrer Veröffentlichung zu installieren. Achtung: Nicht nur das CMS wie WordPress sollten up to date gehalten werden, sondern auch jegliche auf Deiner Website installierten Plugins und Erweiterungen.
Konkrete Anleitungen dazu findest Du in der Dokumentation der verwendeten Software.

Verwende sichere, aber einfach zu merkende Passwörter

Einer der schwerwiegendsten Fehler im Bezug auf Cyber-Security ist es, sich auf einfache, vorhersehbare Passwörter zu verlassen und sie dann ein ganzes digitales Zeitalter lang unverändert zu lassen. Das ist wie wenn Du zu Hause Bargeld versteckst und dann auf Social-Media teilst, wo Du dieses versteckt hast.
Gehe auch sicher, dass Du keines Deiner Passwörter mehrmals verwendest und diese keinesfalls anderen Personen weitergibst – ob Familie, Freunde oder der IT-Support Deiner Bank.

Übrigens: Sichere Passwörter machen nicht nur im Zusammenhang mit der Administration Deiner Website Sinn. Jedes Deiner Passwörter sollte «unhackbar» sein – oder zumindest nahe dran. In Zahlen: Mindestens 34'000 Jahre dauern, um es zu hacken. So lange dauert es, ein willkürliches Passwort aus Klein- / Grossbuchstaben, Zahlen und Sonderzeichen (12 Zeichen lang) zu knacken.
Du fragst Dich, wie Du Dir solch komplexe Passwörter merken kannst? Ganz einfach, verwende beispielsweise lange Phrasen wie "Ich liebe es seit 2023, Blog-Beiträge über digitale Themen zu verfassen!&" und wandle diese in ein Passwort um. So wird daraus das Passwort «Iles2023BBüdTzv!&».

Muster erkannt? Genau: Immer den ersten Buchstaben jedes Wortes verwenden und mit Zahlen und Sonderzeichen spicken.

Trotz solch einfacher Methoden, sich Passwörter zu merken, kommst du vermutlich nicht um einen ordentlichen und sicheren Passwortmanager herum.

Verwende untypische Benutzernamen

Verwende für die Administration Deiner Website (oder andere Logins) keine typischen Benutzernamen. Verhindere also die Verwendung von z. B. «Admin», «Administrator», «Root», «Webmaster», «Superuser» o. Ä.

Auch Benutzernamen, die Deinem Namen entsprechen, solltest Du vermeiden.

Sperre inaktive Konten und benutze Auto-Logout

Nicht mehr benötigte Konten sollen stets gelöscht werden, um das Risiko einer Kompromittierung des Accounts zu minimieren. Auch kann in regelmässigen Abständen eine Kontrolle der Berechtigungen vorgenommen werden, bei der Du Dich fragst, ob die aktuellen User tatsächlich die entsprechenden Berechtigungen benötigen. Braucht Marc aus dem Marketing tatsächlich Administratoren-Rechte im CMS?
Des Weiteren kannst Du Benutzer via Auto-Logout automatisch abmelden, wenn sie eine gewisse Zeit inaktiv waren.

Sichere Website-Formulare durch Captcha

Es gehört zu den Basics, Website-Formulare wie beispielsweise das Login-Formular für's Website-Backend mit sogenannten Captachas abzusichern. Captcha stellt sicher, dass der Zugriff von echten Personen und nicht automatisierten Programmen (Bots) stattfindet. Meistens handelt es sich dabei um Aufgaben, die von Menschen einfach gelöst werden können, von Maschinen jedoch nicht, beispielsweise das Erkennen von verzerrten Buchstaben.
Captcha schützt vor allem vor Spam und Passwortentschlüsselung via Brute-Force bzw. Dictionary-Angriffen.

Und was ist jetzt «Brute-Force» bzw. «Dictionary-Angriff» schon wieder?
Der Angreifer geht systematisch alle potenziellen Kombinationen von Benutzernamen und Passwörtern durch, um Zugriff auf das geschützte System zu erhalten.
Beim Dictionary-Angriff hingegen, wird nicht jede Zeichenkombination ausprobiert, sondern eine vorgefertigte Liste mit möglichen Passwörtern und Benutzernamen verwendet, das sogenannte Wörterbuch (Dictionary).

Du hast bestimmt bereits gemerkt: Wenn Du Benutzernamen und Passwort komplex gestaltest, wird es für den Angreifer praktisch unmöglich, sich Zugang zu Deinem Account und Systemen zu verschaffen.

Erstelle regelmässige Backups und bewahre sie sicher auf

Trotz jeglicher Sicherheitsmassnahmen kommst Du nicht drumherum, regelmässige Backups Deiner Systeme (Systemdaten und Datenbank) zu erstellen, um diese im Notfall ohne grosse Verluste wiederherstellen zu können. Bestenfalls erstellst Du diese mindestens wöchentlich (je nach Software auch automatisierbar) und speicherst sie an einem externen Ort, unabhängig von Deinem Webserver.
Es ist ebenfalls wichtig, die ordnungsgemäße Funktion der erstellten Backups in regelmäßigen Abständen auf einem Test-Server zu überprüfen.

2. Richte MFA für die Anmeldung ein

Eine MFA (Multi-Faktor-Authentifizierung) verwendet zwei oder mehr Identifikationsmassnahmen, um ein Login-Versuch zu bestätigen, z. B. mit dem Zusenden eines Einmalcodes ans Smartphone. Nur wenn die Verifizierungsfaktoren bestanden wurden, wird Zugriff zur Ressource (Konto) gewährt.

Wenn Du MFA auf die Spitze treiben möchtest, kannst Du einen physischen Hardware-Key – den Du ständig an Dir trägst – für die zweite Authentifizierung verwenden. Die Bestätigung Deiner Identität geschieht – je nach Modell – entweder über die USB-A bzw. USB-C-Schnittstelle oder NFC (Near-field communication).


3. Setze einen HTTP-Sicherheits-Header auf

Security-Headers sind HTTP-Header, die auf Websites zur Anwendung kommen, um den Schutz vor verschiedenen Arten von Angriffen zu verbessern. Das Prinzip funktioniert dabei immer gleich: Du sendest eine Anfrage an die aufzurufende Website und damit den im Hintergrund stehenden Webserver. Der Server antwortet auf diesen Request, wie die Website aufgerufen werden soll und gibt zusätzliche Parameter mit. Genau in diesen Parametern kannst Du mittels Security-Header erweiterte Sicherheitseinstellungen konfigurieren, um die Angriffsfläche auf ein Minimum zu reduzieren.

Die einfachste Möglichkeit ist es, die Konfigurationsdatei Deines Webservers anzupassen. Bei Apache ist dies die Datei «.htaccess» und bei Nginx «nginx.conf». Je nach verwendetem CMS hast Du ebenfalls die Möglichkeit, ein entsprechendes Plugin zur Konfiguration eines Security-Headers zu installieren.

Folgende Security-Header können wir Dir ans Herz legen:
 

  • Strict-Transport-Security (HSTS) erzwingt eine sichere Verbindung via HTTPS (Hypertext Transfer Protocol Secure) zwischen dem Browser und dem Webserver.
    Beispiel: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  • X-Content-Type-Options stellt sicher, dass kein sogenanntes MIME-Sniffing stattfindet. Wird kein Wert hinterlegt, versucht der Browser selbstständig das richtige Format zu erkennen, was als Sicherheitslücke ausgenutzt werden kann, um bösartige XSS-Angriffe (Cross-Site-Scripting) zusenden. Dabei wird versucht, schädlichen Code in die Webanwendung zu schleusen.
    Beispiel: Header always set X-Content-Type-Options "nosniff"
  • X-Frame-Options kontrolliert, ob Deine Seite z. B. in einem iFrame in einer anderen Seite eingebunden werden kann. Dies ist problematisch, weil damit Clickjacking-Angriffe (jemand denkt, er ist auf Deiner Website, was in Realität aber nicht der Fall ist) durchgeführt werden können. Somit hat der Angreifer Einsicht in die auf dem fremden Webserver eingegebenen Daten.
    Beispiel: Header always set X-Frame-Options "SAMEORIGIN"
  • Content-Security-Policy (CSP) legt fest, von welchen Quellen Ressourcen (Skripte, Stylesheets, Bilder etc.) geladen werden dürfen. Die Einrichtung ist hierbei jedoch ein wenig komplexer, da damit jegliche externen Skripts blockiert werden. Hast Du also Google-Analytics oder Google-Fonts eingebunden, musst Du zusätzliche Einstellungen vornehmen. Dies bedarf einem ausgiebigen Testing, welches Du über die Option «Content-Security-Policy-Report-Only» einschalten kannst. Die Kontrolle erfolgt dabei in der Browserkonsole.
    Du kannst aber «Content-Security-Policy "upgrade-insecure-requests"» einsetzen, um Inhalte immer über HTTPS zu laden, auch wenn diese über HTTP eingebunden sind, was die Sicherheit zusätzlich erhöht.
    Beispiel: Header always set Content-Security-Policy "upgrade-insecure-requests"
  • Permissions-Policy legt fest, welche Informationen weitergegeben werden, sobald ein Nutzer Deine Website verlässt und auf eine andere wechselt. Du kannst beschränken, welche Informationen weitergegeben werden dürfen.
    Beispiel: Header always set Referrer-Policy "strict-origin"
  • Feature-Policy steuert, welche Browser-Funktionen auf Deiner Website verwendet werden dürfen. Dadurch kann das Risiko des Missbrauchs bestimmter Funktionen minimiert werden. Du kannst also beispielsweise festlegen, ob der Browser auf das Mikrofon oder die Kamera zugreifen kann, obschon die meisten Browser bereits eigene Sicherheitsrichtlinien implementiert haben.
    Beispiel: Header always set Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"

4. Richte eine WAF (Web Application Firewall) ein

Eine WAF (Web Application Firewall) überwacht, filtert und blockiert den Datenverkehr, der zu Deiner Webanwendung gelangt und verhindert, dass nicht autorisierte Daten Deine Anwendung verlassen können. Sie fungiert damit als Schutzschild, welches potenzielle Bedrohungen identifiziert, indem sie Angriffe wie DDoS, SQL-Injection, Cross-Site-Scripting und andere schädliche Aktivitäten erkennt und abwehrt.
Je nach verwendetem CMS-System gibt es unterschiedlich viele verschiedene Anbieter auf dem Markt.
Vor der Auswahl einer Software solltest Du immer eine genaue Situationsanalyse erstellen und die konkreten Ziele dokumentieren. Mit diesen Informationen kann es an die Evaluation einer geeigneten Software gehen, wobei Dich etliche Ressourcen im Internet unterstützen können.

Mit einer WAF lassen sich unter anderem folgende Angriffe abwehren:

  • DDoS
  • Man in the Middle
  • SQL-Injection
  • XSS (Cross Site Scripting)
  • Session-Hijacking
  • Malware
  • ...

5. Verhindere DDoS-Angriffe

Wir haben schon so viel darüber gesprochen, aber was ist DDoS überhaupt? Dabei versucht der Angreifer, einen Service durch abrupten Zustrom von künstlichem Datenverkehr in die Knie zu zwingen und damit Deine Website lahmzulegen. Grundsätzlich unterscheiden wir zwischen zwei Arten eines solchen Angriffs:
DoS: Von einem einzigen Gerät ausgehender Datenverkehr.
DDoS: Viele – dutzende, hunderte oder gar tausende – Geräte (meist bereits gehackt) greifen im Zusammenschluss einen Webserver an. Einen solchen Zusammenschluss nennt man auch «Botnetz» oder «Zombie-Netzwerk».

Das kannst Du konkret dagegen tun:

  • Verwende eine Firewall (siehe WAF).
  • Wähle einen Hosting-Provider, der die Website gut gegen diese Art eines Angriffs schützt und informiere Dich, was er im Falle einer Attacke unternimmt.
  • Richte eine Uptime-Überwachung ein, die stetig Deine Website anpingt und damit kontrolliert, ob und wie schnell der Webserver antwortet. Im Zweifelsfall erhältst Du je nach Anbieter (es gibt kostenpflichtige und kostenlose) eine Push-Benachrichtigung mit weiteren Informationen.
  • Verwende ein CDN (Content Delivery Network). Dabei liegen Kopien Deiner Website auf verschiedenen Servern, um weltweit eine möglichst schnelle Zugriffszeit zu gewährleisten. Solche Systeme lassen sich schwieriger durch DDoS ausschalten.

6. Deaktiviere ungenutzte Dienste auf Deinem Webserver

Unter Umständen macht es Sinn, nicht benutzte Services auf Deinem Server zu deaktivieren, um potenziellen Angreifern möglichst viele Einfallstore zu verschliessen. Zusätzlich zur Deaktivierung ist es ratsam, die übrigen Services sicher zu konfigurieren. Best Practices findest Du auf den Herstellerseiten oder anderer Literatur zur Serveradministration. Beachte jedoch, dass diese Schritte nur relevant sind, wenn Du einen eigenen Webserver betreibst. Wenn Du mit einem Hosting-Provider zusammenarbeitest, übernimmt dieser in der Regel solche Aufgaben für Dich.

7. Ändere den Tabellenpräfix in der Datenbank

Was ist ein Tabellenpräfix überhaupt? Dies ist eine kurze Zeichenkette vor dem eigentlichen Namen der Datenbanktabelle.

Viele Anbieter verwenden jeweils Standard-Datenbank-Präfixe. Damit machst Du es den Hackern ziemlich einfach, denn sie können den jeweiligen Tabellennamen einfach erraten. Beachte jedoch, dass dies nur bei frischen Installationen geändert werden soll und der Sicherheits-Impact nicht besonders hoch ist, da ein Hacker den Präfix auf andere Weise relativ einfach ermitteln kann.

8. Installiere ein Security-Plugin für Deine Website

Je nach CMS-Software gibt es ganzheitliche Plugins, die viele der oben genannte Massnahmen beinhalten und mit denen Du damit schon eine riesige Verbesserung im Thema «Sicherheit» Deiner Website erreichen kannst.
Die Implementierung einer Security-Software als Plugins bietet Dir damit eine effiziente Möglichkeit, die Sicherheit zu erhöhen und den Überblick über diverse Sicherheitseinstellungen etc. zu behalten. Beachte jedoch unbedingt, dass der Einsatz als Teil eines gesamtheitlichen Systems angesehen werden soll und keinesfalls weitere relevante Sicherheitsmassnahmen ersetzen soll.

9. Erstelle regelmässige Audits und implementiere ein Monitoring

Es ist wichtig, Deine Website ständig zu überwachen und regelmässige Audits zur systematischen Überprüfung der Sicherheitsrichtlinien durchzuführen.
Ein Monitoring unterstützt Dich dabei, eine Echtzeitüberwachung von Benutzeraktivitäten, Sicherheitsvorfällen und Systemereignissen aufzubauen.
Durch diese Massnahmen können verdächtige Aktivitäten identifiziert und rechtzeitig darauf reagiert werden.

Unternehmen in gewissen Branchen sind zusätzlich darauf angewiesen, bestimmte Sicherheitsstandard einzuhalten und regelmässige Audits durchzuführen, um den Compliance-Anforderungen gerecht zu werden.

Im schlimmsten Fall (Angriff oder Datenschutzverletzung) können Protokolle und Überwachungsdaten als forensische Beweismittel verwendet werden, um die Ursachen zu ermitteln und angemessene Massnahmen zur Behebung des Problems zu ergreifen.

10. Setze einen Incident-Response-Plan auf

Das Risiko eines Angriffes mit Folgen auf ein Minimum zu reduzieren ist sicherlich ein guter Anfang, jedoch kann ein Angriff heutzutage trotz allerlei Sicherheitsvorkehrungen nie 100% ausgeschlossen werden.
Je nach Art der Website und strategischer Bedeutung für Dein Unternehmen, ist es unter Umständen sinnvoll, einen Incident-Response-Plan aufzusetzen. Dabei legst Du fest, welche Massnahmen von wem unternommen werden, wenn eine Sicherheitsverletzung oder ein Sicherheitsvorfall auftritt.
Dabei legst Du beispielsweise konkret fest, wie das Eskalationsverfahren auszusehen hat, welche kommunikativen Massnahmen unternommen werden und wie und wer Beweise sichert.
 

Deine Checkliste zu mehr Sicherheit auf Deiner Website:

  • Setze die Basics von Website-Sicherheit um:
    • Halte Deine Software (CMS und Plugins) stete aktuell (PHP nicht vergessen)
    • Verwende komplexe und sichere Passwörter, die einzigartig sind und gib sie niemandem weiter.
    • Verwende untypische Benutzernamen, die schwierig zu erraten sind.
    • Benutzer ohne Interaktion automatisch abmelden und inaktive Konten löschen.
    • Website-Formulare durch Captcha absichern.
    • Erstelle regelmässige Backups und bewahre diese separat und sicher auf.
  • MFA für die Anmeldung im CMS-Backend aktivieren, um Brute-Force zu verhindern.
  • HTTP Sicherheits-Header einrichten und konfigurieren, um Deine Website zusätzlich zu schützen.
  • WAF (Web Application Firewall) einrichten, um schädlichen Traffic abzuweisen.
  • DDoS-Angriffe verhindern, um eine möglichst höhe Uptime zu gewährleisten.
  • Überflüssige, nicht notwendige Dienste Deines Webservers wenn möglich deaktivieren, um die Angriffsfläche möglichst gering zuhalten.
  • Ändere den Tabellenpräfix Deiner Datenkbank.
  • Security-Plugin installieren, um möglichst viele der oben genannten Punkte abzudecken.
  • Regelmässige Audits und eine kontinuierliche Überwachung implementieren, um frühzeitig auf Vorfälle reagieren zu können.
  • Incident-Response-Plan erstellen, um im Ernstfall effektiv und professionell reagieren zu können.

Finde heraus, ob Deine Website sicher genug ist

Website kostenlos prüfen lassen

Weitere Blog-Beiträge

Immer Up-To-Date?
Newsletter-Anmeldung
Mit Klick auf „Akzeptieren“ stimmst Du der Speicherung von Cookies zu, um die Navigation auf unserer Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Weitere Informationen findest Du in der Datenschutzerklärung

Du willst schnell und preiswert entwickeln?

Deine Idee schnell, kostengünstig und flexibel umgesetzt. Erfahre, wie wir Dich bei Deinem Vorhaben mit unserem No-Code-Stack und Expertise unterstützen.