Sicher wie Fort Knox: So schützen Sie eine Website vor Hackern
Veröffentlicht: 2021-10-05In diesem Artikel bieten wir eine Anleitung, wie Sie eine Website vor Hackern und illegalen Aktivitäten schützen können.
Online-Sicherheit ist eine riesige rote Fahne am unendlich blauen Himmel des Internets. Und während die Worte „Online-Sicherheit“ zunächst an Online-Belästigung und Schutz für Benutzer denken mögen, ist der Schaden, den ein Mangel an Website-Sicherheit für ein Unternehmen haben kann, ebenfalls erheblich. Website-Besitzer, die ihre Sicherheitsausgaben kürzen, zahlen mit ihrer Reputation und erleiden dadurch finanzielle Einbußen.
Inhalt:
- Warum jeder Website-Besitzer in Sicherheit investieren muss
- Von welchen Schwachstellen sprechen wir?
- Einspritzfehler
- Offenlegung sensibler Daten
- Cross-Site-Scripting (XSS)-Angriffe
- Gebrochene Authentifizierung
- Sicherheitsfehlkonfiguration
- Defekte Zugangskontrolle
- Unsichere Deserialisierung
- Unzureichende Protokollierung und Überwachung
- Externe XML-Entitäten (XXE)
- Verwendung von Komponenten mit bekannten Schwachstellen
- So erstellen Sie eine sichere Website
- Wie viel kostet es, eine Website zu sichern?
Warum JEDER Website-Besitzer in Sicherheit investieren muss
Einige Website-Besitzer haben Gedanken wie diese: Auf meiner Website gibt es nichts zu stehlen. Ich speichere keine Benutzerdaten oder Zahlungsdetails. Ich brauche keine teure Sicherheit von der Stange.
Das ist jedoch schlicht naiv. Es gibt eine Reihe von Gründen, warum Ihre Website gehackt werden kann, auch wenn sie keine persönlichen oder finanziellen Daten enthält. Hier ist eine Liste der Verwendungsmöglichkeiten von Hackern für fast jeden ungeschützten Server:
- Lösegeld zu verlangen. Selbst wenn Sie keine Benutzerdaten auf Ihren Servern speichern, können Hacker diese übernehmen und Geld von Ihnen verlangen, um sie zurückzubekommen.
- Zur Verwendung als SMTP-Relay (Simple Mail Transfer Protocol). SMTP ist ein Protokoll, das verwendet wird, um E-Mails in großen Mengen zuzustellen, beispielsweise Newsletter. Hacker können Ihre Server verwenden, um Spam oder Ransomware zu versenden.
- Um Bitcoins zu minen.
- Zur Verwendung bei DDoS-Angriffen als Teil eines Botnets.
- Um die Daten auf Ihrer Website zu ändern oder zu löschen. Die Gründe dafür können unterschiedlich sein.
Und das kratzt nur an der Oberfläche. Neben Bedrohungen durch Dritte (Hacker und andere Kriminelle) gibt es beispielsweise auch Bedrohungen durch mögliche Fehler von Mitarbeitern, die Ihre Website verwalten. Tatsächlich ist die innere Sicherheit genauso wichtig wie die äußere, wenn nicht sogar noch wichtiger.
Wie kann ich meine Website vor Hackern schützen? du fragst.
Nun, Sie müssen eine Reihe von Schwachstellen berücksichtigen und mit ihnen umgehen.
Von welchen Schwachstellen sprechen wir?
Eine der renommiertesten Einrichtungen der Branche, die sich mit Cybersicherheit beschäftigt, ist das Open Web Application Security Project, kurz OWASP. Die OWASP Foundation überwacht und aktualisiert regelmäßig ihre Liste weit verbreiteter Web-Sicherheitsprobleme. Im Folgenden finden Sie häufige Sicherheitsprobleme auf ihrer Liste (in keiner bestimmten Reihenfolge) zum Zeitpunkt der Erstellung dieses Artikels und einige Tipps, wie Sie die Gefahr für Ihre Website verringern können.
Einspritzfehler
Injektionsfehler betreffen Datenbanken und werden durch eine schlechte Eingabevalidierung verursacht. Wenn Ihr System Benutzereingaben akzeptiert, diese jedoch nicht richtig filtert, wird das System anfällig – Hacker können dies ausnutzen, um ihren Code in Ihr System einzuschleusen (daher der Name). Dieser injizierte Code kann dazu führen, dass Ihre Website Befehle ausführt, die Sie nicht beabsichtigt haben, sensible Daten anzeigt oder sogar die Kontrolle über die Website an den Hacker abgibt.
Die beliebteste Art von Injection-Schwachstellen betrifft SQL-Datenbanken, aber Injection-Schwachstellen sind nicht wirklich darauf beschränkt. XPath-Abfragen, LDAP-Anweisungen und XML-Skripte können ebenfalls anfällig für Injektionen sein.
Wie wird eine Website vor Injektionsfehlern geschützt? Zu den Best Practices gehören die Verwendung der SQL-Abfragebereinigung und parametrisierter Abfragen. Es gibt APIs, die Ihnen dies ermöglichen.
Wenn Sie diese Dinge nicht von Hand implementieren möchten, können Sie ein ORM-Tool (Object-Relational Mapping) für Ihre bevorzugte Programmiersprache verwenden. Wir verwenden ActiveRecord, weil es eng mit dem Rails-Ökosystem verbunden ist.
Keine der oben genannten Optionen ist absolut narrensicher, aber heutzutage ist es so nah wie möglich an einem soliden Schutz.
Offenlegung sensibler Daten
Sensible Daten sind alle Daten, die dazu verwendet werden können, eine Person auf die eine oder andere Weise auszubeuten:
- Name
- Sozialversicherungsnummer
- Führerscheinnummer
- Kreditkarteninformation
- Benutzernamen und Passwörter
- Geburtsdatum
- Gesundheitsinformationen
- Mädchenname
- Namen der Eltern
Es kann sogar alle Informationen enthalten, die eine Antwort auf eine Sicherheitsfrage darstellen, beispielsweise für Ihr Bankkonto. Wer hätte gedacht, dass der Name Ihres ersten Haustieres als sensible Daten gelten könnte, oder?
Es ist schwierig, Websites vor der Offenlegung sensibler Daten zu schützen, da diese Gefährdung schwer vorherzusagen und zu erkennen ist. Aber es gibt vorbeugende Maßnahmen, die Sie ergreifen können. Sensible Daten dürfen, wenn sie auf einer Website gespeichert werden, niemals als Klartext gespeichert werden ; sie muss mit der neuesten Technologie verschlüsselt und nur über sichere Kanäle übertragen werden.
Wenn Ihre Website Transaktionen ermöglicht oder allgemein mit sensiblen Daten umgeht, muss sie eine SSL-Verschlüsselung verwenden. Dies ist die neueste und beste verfügbare Verschlüsselungstechnologie. Die SSL-Verschlüsselung hilft Ihnen, Daten sicher zwischen einem Browser und einem Server oder zwischen Servern zu übertragen. Darüber hinaus suchen viele Benutzer nach HTTPS in der Adresse Ihrer Website, um zu sehen, ob diese sicher ist. Diesen Header erhalten Sie, wenn Sie ein SSL-Zertifikat erhalten.
Es wird auch allgemein empfohlen, Daten in der Cloud zu speichern. Gehen Sie jedoch nicht davon aus, dass die Daten durch die bloße Speicherung in der Cloud automatisch sicher sind. Alle Schutzmaßnahmen müssen dennoch umgesetzt werden und Sie müssen die Sicherheit regelmäßig überwachen und aktualisieren.
Cross-Site-Scripting (XSS)-Angriffe
XSS-Schwachstellen ähneln in gewisser Weise Einschleusungsfehlern, da sie es Hackern ermöglichen, Ihre Website-Seiten zu beeinflussen, indem sie nicht-nativen Code einschleusen. Im Fall von XSS sprechen wir von JavaScript-Injection. Von einem Hacker injiziertes JavaScript kann Seiteninhalte ändern, Links zu bösartigen Websites einfügen und ursprünglich verborgene Daten an den Hacker zurücksenden, was zu einer Offenlegung sensibler Daten führt.
Ruby on Rails und React verfügen über einen integrierten XSS-Schutz. Eine andere Möglichkeit für Anti-XSS- und Anti-Injection-Maßnahmen wäre die Verwendung des Content-Security-Policy-HTTP-Antwortheaders.
Gebrochene Authentifizierung
Ursprünglich als „Broken Authentication and Session Management“ bezeichnet, handelt es sich bei dieser Schwachstelle um Schwachstellen bei der Benutzerauthentifizierung und dem Sitzungsmanagement, wie aus dem Namen hervorgeht. Dazu gehören die Offenlegung von Anmeldeinformationen und eine Reihe von Problemen mit Sitzungs-IDs:
- Schwache Sitzungs-IDs
- Sitzungs-IDs, die in URLs angezeigt werden
- Sitzungs-IDs, die sich zwischen den Anmeldungen nicht ändern
- Übertragung von Sitzungs-IDs über ungesicherte Verbindungen
Sitzungs-IDs sind wie Anmeldeinformationen direkt mit der Identität eines Benutzers verbunden, und daher kann ihr Abfangen zur Entführung des Benutzerkontos führen. Dies führt zu allen Arten von Schäden für Ihre Benutzer, von finanziellen und Reputationsschäden bis hin zu Gesundheitsschäden.
Um Ihre Website vor Authentifizierungsangriffen zu schützen, ist eine Multi-Faktor-Authentifizierung erforderlich: beispielsweise ein konstantes Passwort und ein Einmalpasswort, das an das mobile Gerät des Benutzers übermittelt wird.
Google verwendet eine Option zur Zwei-Faktor-Authentifizierung : Um Ihr Google-Konto in einem Webbrowser zu öffnen, müssen Sie zunächst Ihr Passwort eingeben. Wenn es richtig ist, müssen Sie auch die Google App auf Ihrem Telefon öffnen und die im Webbrowser angezeigte Nummer auswählen.
Zu den offensichtlicheren Methoden zum Schutz von Websites für eine fehlerhafte Authentifizierung gehören:
- Passwortkomplexität erzwingen – „Ihr Passwort muss mindestens 8 Zeichen lang sein und mindestens eine Zahl, einen Großbuchstaben und einen Kleinbuchstaben enthalten.“
- Begrenzung der Anmeldeversuche, vor denen das Konto gesperrt wird (für eine bestimmte Zeit oder bis der Benutzer die Site-Administratoren kontaktiert) und die Admins alarmieren
Sicherheitsfehlkonfiguration
Sicherheitsfehlkonfigurationen sind ein weit verbreitetes Thema, da dies in jeder Phase und bei jedem Teil Ihrer Website passieren kann: eine Datenbank, ein Netzwerk, ein Server, ein Framework, ein Speicher oder fast alles andere. Konfigurationsschwächen können ausgenutzt werden, um Zugriff auf Systemfunktionen zu erhalten. Je nachdem, wo sich die Schwachstelle befindet, kann ein solcher Zugriff teilweise oder vollständig sein. Beispiele für Fehlkonfigurationen:
- Sie haben die Standardkonten/Passwörter nicht deaktiviert.
- Es gibt unnötige und ungenutzte Funktionen.
- Zugriffsberechtigungen für die Cloud sind nicht sicher konfiguriert.
- Ihre Fehlermeldungen enthalten vertrauliche Informationen wie Benutzernamen, Passwörter oder E-Mail-Adressen.
Das erste, was Sie tun müssen, um Fehlkonfigurationen zu vermeiden, besteht darin, alles zu entfernen, was nicht verwendet wird – Funktionen, Beispiele, Frameworks usw. Der nächste Schritt besteht darin, die gleiche Konfiguration für alle Umgebungen sicherzustellen und ihre Leistung regelmäßig zu überprüfen. Eine durchdachte Architektur ist ein Muss.
Defekte Zugangskontrolle
Die Zugriffskontrolle ist die Kontrolle darüber, was Benutzer tun können und was nicht. Wenn es nicht ordnungsgemäß durchgesetzt wird, können Benutzer Aktionen ausführen, die sich auf unvorhersehbare Weise auf Ihre Website auswirken können. Eine Möglichkeit, eine fehlerhafte Zugriffskontrolle auszunutzen, besteht darin, die Profile und Daten anderer Benutzer anzuzeigen und zu bearbeiten. Ein anderer ist der Zugriff auf Premium-Funktionen, ohne dafür zu bezahlen oder sie zu verdienen. Ein weiterer ist der Zugriff auf Admin-Seiten von einem Nicht-Admin-Konto (oder schlimmer noch, ohne ein Konto).
Der beste Weg, um sicherzustellen, dass die Zugriffskontrolle Ihrer Website funktioniert, sind manuelle Tests. Keine automatisierten Testtools können garantieren, dass die Zugangskontrolle wie beabsichtigt funktioniert.
Eine fehlerhafte Zugriffskontrolle kann auch durch den Missbrauch des Cross-Origin Resource Sharing (CORS)-Mechanismus entstehen, der den Zugriff auf ansonsten eingeschränkte APIs ermöglicht. Aus diesem Grund wird empfohlen, CORS so wenig wie möglich zu verwenden.
Unsichere Deserialisierung
Serialisierung ist der Prozess der Umwandlung eines Objekts in einen Binärcode. Die Deserialisierung ist logischerweise das Gegenteil. Beides sind Prozesse, die in der Webentwicklung regelmäßig durchgeführt werden, weshalb es wichtig ist, Schutzmaßnahmen gegen ihren Einsatz bei Angriffen zu implementieren.
Die gute Nachricht ist, dass die Deserialisierung weder ein normaler Benutzer noch Ihr Mitarbeiter aus Versehen durchführen kann . Das ist zum Teil auch die schlechte Nachricht – Deserialisierungsangriffe sind immer vorsätzlich und daher bösartig. Sie führen auch zu den schwerwiegendsten Problemen, wie dem Ausführen von Remote-Code, dem Betreten der Website ohne Authentifizierung und dem Initiieren von DoS-Angriffen (Denial of Service).
Der einfachste Weg, Ihre Website vor dieser Art von Angriff zu schützen, besteht darin, benutzergenerierte serialisierte Objekte zu verbieten. Wenn dies nicht möglich ist, besteht die nächstbeste Option darin, kryptografische Signaturen für Integritätsprüfungen zu verwenden.
Die Verwendung von JSON, YAML oder XML kann Hackern das Ausnutzen von Deserialisierungsschwächen erschweren, da diese Formate nicht binär sind.
Unzureichende Protokollierung und Überwachung
Diese Schwachstelle scheint ziemlich offensichtlich: Wenn Sie Ihre Website nicht überwachen und nicht alle Fehler und fehlgeschlagenen Versuche, sich einzuloggen oder Zugriffskontrollfunktionen auszuführen, protokollieren , verführen Sie Hacker im Grunde genommen dazu, Ihre Website anzugreifen. In jeder Art von Krieg, ob digital oder im realen Leben, geht es beim ersten Angriff normalerweise nicht darum, zu gewinnen, sondern zu sehen, womit man es zu tun hat. Und wenn es einen einfachen Weg gibt, verwenden Sie ihn. Das Versäumnis, solche Sondierungen zu protokollieren und zu überwachen, führt dazu, dass Ihr System den Angriff vollständig übersieht oder ihn erkennt, sobald er bereits stattgefunden hat und der Schaden angerichtet ist.
Die Protokollierung ist besonders wichtig für E-Commerce-Sites, da sie mit dem Geld und den finanziellen Anmeldeinformationen der Benutzer umgehen.
Um Ihre Website sicherer zu machen, protokollieren Sie alle fehlgeschlagenen Versuche ordnungsgemäß und stellen Sie sicher, dass diese Protokolle außerhalb Ihrer lokalen Server gespeichert und gesichert werden. Setzen Sie automatische Warnsysteme für solche Ausfälle ein und sperren Sie, wenn möglich, Konten, die ständig solche Ausfälle generieren. Es ist wichtig, über Echtzeit-Warnsysteme zu verfügen, damit Sie sofort auf eine mögliche Sicherheitsverletzung reagieren können.
Externe XML-Entitäten (XXE)
Wir haben XML (Extensible Markup Language) bereits ein paar Mal erwähnt. Es ist eine flexible Sprache, die es einfach zu verwenden und weit verbreitet macht. XML-Prozessoren parsen Daten aus XML-Dokumenten. Wenn Ihre Website XML-basiert ist und XML-Uploads ohne Validierung akzeptiert, kann sie anfällig für Angriffe sein.
Um die Integrität Ihrer Website zu schützen, werden die folgenden Maßnahmen empfohlen:
- Deaktivieren Sie die DTD-Verarbeitung (Dokumenttypdefinition).
- Begrenzen oder verhindern Sie XML-Uploads oder erzwingen Sie, falls dies nicht möglich ist, Whitelisting – positive serverseitige Eingabevalidierung.
- Aktualisieren Sie Ihre XLM-Prozessoren und -Bibliotheken regelmäßig.
- Verhindern Sie die Serialisierung sensibler Daten.
- Verwenden Sie gegebenenfalls JSON oder ähnliche einfache Formate.
- Implementieren Sie Web Application Firewalls (WAFs) und API-Sicherheitsgateways.
Verwendung von Komponenten mit bekannten Schwachstellen
Nichts ist perfekt, und jede Komponente, die Sie in Ihrer Software verwenden, weist zwangsläufig eine bekannte oder unbekannte Schwachstelle auf. Als Reaktion auf entdeckte und erkannte Schwachstellen wird die Software aktualisiert, um diese Schwachstellen abzudecken oder Schäden zu mindern, die durch ihre Ausnutzung verursacht werden können. Einige Schwachstellen verursachen geringfügigen Schaden, andere können Ihr Geschäft jedoch beeinträchtigen.
Um Website-Hacking aufgrund bekannter Schwachstellen zu verhindern, ist es wichtig, regelmäßig nach Updates zu suchen und alle auf Ihrer Website verwendeten Komponenten zu aktualisieren. Dies kann in komponentenintensiver Software und Websites eine mühsame Aufgabe sein. Aus diesem Grund empfehlen Sicherheitsexperten, regelmäßig nach unnötigen und ungenutzten Bibliotheken, Funktionen, Dateien und anderen Komponenten zu suchen und diese zu entfernen. Und natürlich nur Komponenten aus offiziellen Quellen verwenden. Lassen Sie sich nicht von Websites verführen, die normalerweise kostenpflichtige Software kostenlos vertreiben – sie kann geändert werden, um Ihre Website zu hacken.
So erstellen Sie eine sichere Website: die Quintessenz
Um alle techniklastigen Informationen in Laiensprache auszudrücken, hier sind die Sicherheitstipps, die Sie befolgen sollten, wenn Sie eine sichere Website erstellen möchten:
- Finden Sie einen zuverlässigen Webhost.
- Aktualisieren Sie regelmäßig alle Software, Frameworks und Bibliotheken, die auf Ihrer Website verwendet werden.
- Entfernen Sie alle unnötigen Funktionen und Komponenten von Ihrer Website.
- Richten Sie Systeme ein, um Eingaben sowohl auf der Browser- als auch auf der Serverseite zu validieren.
- Überwachen Sie die in Fehlermeldungen angezeigten Informationen.
- Richten Sie eine Passwortstärkeprüfung für Benutzer ein.
- Verwenden Sie immer starke Passwörter für Ihre Server und Admin-Seiten und ändern Sie diese regelmäßig.
- Investieren Sie in ein SSL-Zertifikat / verwenden Sie das HTTPS-Protokoll.
- Richten Sie eine ordnungsgemäße Protokollierung für Ausfälle und Fehler ein.
- Protokollieren Sie Audit-Transaktionen (insbesondere wenn es sich um eine E-Commerce-Website handelt).
- Überwachen Sie Protokolle genau.
- Nutzen Sie Cloud-Server, aber schützen Sie Ihre Daten trotzdem.
- Verschlüsseln Sie sensible Daten immer mit den neuesten Technologien.
- Lassen Sie Ihr Sicherheitsteam aufkommende Sicherheitsupdates sowie neue Bedrohungen im Auge behalten, um rechtzeitig auf Angriffe reagieren zu können.
Wie viel kostet es, eine Website zu sichern?
Dies ist eine Frage, auf die es keine eindeutige Antwort gibt. Die Kosten für die Sicherheit hängen stark vom Tech-Stack ab, den Ihre Website verwendet. Außerdem fallen die Kosten für Updates an, die davon abhängen, wie viele Komponenten Sie aktualisieren müssen, wie oft Sie sie aktualisieren und wie viel die Aktualisierung der einzelnen Komponenten kostet. Diese Kosten müssen von Ihren Entwicklern individuell berechnet werden.
Wir empfehlen dringend, die Sicherheit von Anfang an bei der Entwicklung zu berücksichtigen . Wenn Sie das Thema Sicherheit bis zum Ende belassen, müssen Sie möglicherweise (und höchstwahrscheinlich) Änderungen am Kern Ihrer Site vornehmen, was sogar noch teurer sein kann, als die Sicherheit von Anfang an einzubauen.
Abschluss
Wenn Sie selbst Entwickler sind, eine Entwicklungsfirma besitzen oder ein eigenes Entwicklungsteam haben, können Sie all diese Aufgaben vor sich haben. Wenn Sie jedoch noch keine technischen Spezialisten an Ihrer Seite haben und wissen möchten, wie Sie mit einem Outsourcing-Anbieter eine sichere Website erstellen, empfehlen wir Ihnen, eine Entwicklungsfirma zu finden, die eine Website nicht nur erstellen, sondern auch unterstützen kann. Es ist fast unmöglich, jede Schwachstelle vorherzusagen, aber die Fähigkeit, rechtzeitig auf jede Verletzung zu reagieren, kann Ihre Website vor dem schlimmsten Schicksal bewahren.
Die Entwickler von Mind Studios sind erfahren in den besten Sicherheitspraktiken und halten mit den neuesten Trends Schritt. Wenn Sie Fragen zum Schutz Ihrer Website vor Hackern haben, kontaktieren Sie uns für eine kostenlose Beratung .
Geschrieben von Svitlana Varaksina und Artem Chervichnik