Die heutigen Websites bieten eine umfangreiche Palette von Funktionen und Geschäftsmöglichkeiten sowie Websicherheitsprobleme im Vergleich zu ihren Vorgängern aus dem Jahr 2000. Könnten wir uns vorstellen, unser Banking zu erledigen oder einen Arzttermin über Websites zu vereinbaren? Zweifelhaft.
Es gibt jedoch, wie in jeder Situation, auch eine Kehrseite der Medaille. Mit der Entwicklung der Webtechnologien hat sich auch Malware weiterentwickelt. Heute verarbeiten Websites eine Menge sensibler Benutzerinformationen – Kreditkartennummern, Versicherungsnummern, Geolokalisierung und vieles mehr. Der Verlust solcher Daten kann die Reputation eines Unternehmens bedrohen, Klagen verursachen und letztendlich zu erheblichen finanziellen Verlusten führen. Das ist der Grund, warum die Sicherheit von Webanwendungen zu einem kritischen Aspekt in den Entwicklungsgemeinschaften geworden ist.
Vielleicht haben Sie gehört, dass eine Anwendung oder Website zum Schutz vor Webangriffen gemäß den OWASP-Richtlinien entwickelt werden sollte. Lassen Sie uns herausfinden, was OWASP ist.
Was ist OWASP?
OWASP (Open Web Application Security Project) ist eine Online-Community, die Artikel zur Sicherheit der Webentwicklung sowie umfangreiche Dokumentationen, Richtlinien für die Entwicklung und das Testen in allen Phasen des SDLC veröffentlicht, sowie verschiedene Werkzeuge und Technologien.
Die Befolgung dieser Richtlinien ist gleichbedeutend mit hochwertigem und sicherem Code. Sie gewährleistet, dass die häufigsten Sicherheitsrisiken für Websites Ihre Seite nicht bedrohen.
Arten von Sicherheitsanfälligkeiten
SQL-Injection
Gebrochene Authentifizierung
Bedrohungen durch die Offenlegung sensibler Daten
Externe Entitäten XML (XXE)
Anwendungsfehlkonfiguration
Unsichere Deserialisierung
Session Riding Angriffe
Verwendung von Komponenten mit bekannten Sicherheitsproblemen
Fehlende Zugriffskontrolle auf Funktionsebene
Unzureichendes Logging & Monitoring
Sogar die sicherste Software der Welt kann unter Cyberangriffen leiden. Laut OWASP gibt es jedoch die 10 häufigsten Sicherheitsanfälligkeiten von Webanwendungen, durch die Cyberkriminelle ihre böswilligen Aktivitäten häufiger durchführen.
SQL-Injection
Ein Angreifer injiziert ungültige Daten in eine Webanwendung, um sie dazu zu bringen, etwas zu tun, wofür die Anwendung nicht entworfen/programmiert wurde. Die häufigste Art dieser Bedrohung für Webanwendungen ist die Code-Injektion über eine SQL-Abfrage (SQL-Injektion), die unzuverlässige Daten verwendet. Der Hauptgrund für diese Sicherheitsanfälligkeit in der Software ist das Fehlen von Validierung und Bereinigung der von der Webanwendung verwendeten Daten. Das bedeutet, dass diese Schwachstelle in jeder Art von Technologie vorhanden ist.
Alles, was Parameter als Eingabe akzeptiert, könnte potenziell Ziel eines ähnlichen Angriffs sein.
Wie man seine Website schützt
Die Fähigkeit, Code-Injektionen zu verhindern, hängt von der Technologie ab, die Sie auf Ihrer Website verwenden. Wenn Sie beispielsweise WordPress verwenden, können Sie potenzielle Probleme minimieren, indem Sie die Anzahl der installierten Plugins begrenzen.
Wenn Sie sich in der Entwicklungsphase befinden, ist es immer besser, sich an hochqualifizierte Fachleute zu wenden. Ein Team von top-talentierten Entwicklern wird helfen, die Sicherheitsanforderungen zu formulieren, die später beim Schreiben der Software befolgt werden.
Gebrochene Authentifizierung
Diese Web-Sicherheitsbedrohung besteht darin, dass ein Angreifer, der manuelle oder automatische Methoden verwendet, die Kontrolle über jedes Konto oder, noch schlimmer, über das System erlangen kann. Dies ist eine der häufigsten Arten von Website-Schwachstellen. Authentifizierungsverletzungen stehen normalerweise im Zusammenhang mit logischen Problemen im Authentifizierungsmechanismus, wie z. B. schlechtem Sitzungsmanagement, bei dem Benutzernamen aufgelistet werden. In diesem Fall verwendet der Angreifer Brute-Force-Techniken, um die Benutzerdaten des Systems zu erraten. Die zweithäufigste Manifestation dieser Schwachstelle ermöglicht es Benutzern, die Übereinstimmung von Benutzernamen und Passwort für Seiten der Website zu verwenden.
Häufige Gründe für die Erstellung unsicherer Codes, die solche Schwachstellen enthalten, sind in der Regel:
Fehlende Erfahrung der Entwickler
Fehlende Sicherheitsanforderungen
Eile, das Produkt zu veröffentlichen
Wie man seine Website schützt
Um Probleme im Zusammenhang mit falscher Authentifizierung zu vermeiden, stellen Sie sicher, dass die Entwickler bewährte Praktiken für die Sicherheit der Website umsetzen und genügend Zeit haben, um den Code ordnungsgemäß zu testen, bevor die Anwendung in einer Produktionsumgebung bereitgestellt wird.
OWASP technische Empfehlungen
Wenn möglich, implementieren Sie eine Multi-Faktor-Authentifizierung, um automatisierte Angriffe durch Angreifer zu verhindern.
Verwenden Sie keine Standardanmeldeinformationen, insbesondere nicht für Administratorrollen.
Implementieren Sie Passwortstärkeprüfungen, einschließlich der Überprüfung neuer oder geänderter Passwörter gegen die Liste der 10.000 schlechtesten Passwörter.
Bedrohungen durch die Offenlegung sensibler Daten
Die Verwundbarkeit kritischer Daten ist eine der häufigsten Schwachstellen. Es geht hauptsächlich um sensible Daten, die besondere Aufmerksamkeit und Schutz erfordern. Diese Webangriffe zielen normalerweise auf Kreditkartennummern, medizinische Informationen, personenbezogene Daten usw.
In den letzten Jahren ist die Offenlegung vertraulicher Daten zu einer der häufigsten Bedrohungen für die Websicherheit weltweit geworden. Das Fehlen von Verschlüsselung sensibler Daten ist der Hauptgrund, warum diese Angriffe immer noch so häufig vorkommen. Selbst verschlüsselte Daten können aufgrund von:
Ungeschützter Schlüsselgenerierungs- und Verwaltungsprozess
Verwundbare Algorithmen, Protokolle und Chiffren, die in Webanwendungsprozessen verwendet werden
Unsichere Passwortspeicherungsmethoden.
Beispiele für Angriffszenarien
Szenario #1.
Die Anwendung verschlüsselt Kreditkartennummern automatisch in der Datenbank. Wenn diese Daten jedoch empfangen werden, werden sie automatisch entschlüsselt, wodurch die Verwundbarkeit der SQL-Injection es ermöglicht, Kreditkartennummern im Klartext zu erhalten.
Szenario #2.
<pDie Website verwendet kein TLS für alle Seiten oder unterstützt schwache Verschlüsselung. Der Angreifer überwacht den Netzwerkverkehr (z. B. in einem ungesicherten WLAN), stuft die Verbindung von HTTPS auf HTTP herab, fängt Anfragen ab und stiehlt das Sitzungscookie des Benutzers. Der Angreifer spielt dann diese Cookies erneut ab und übernimmt die Sitzung des Benutzers (bereits authentifiziert), wodurch er Zugriff auf die privaten Daten des Benutzers erhält.
Wie man seine Website schützt
Speichern Sie vertrauliche Daten nicht unnötig. Daten, die nicht gespeichert werden, können nicht gestohlen werden.
Stellen Sie sicher, dass aktuelle und zuverlässige Standardalgorithmen, Protokolle und Schlüssel vorhanden sind; verwenden Sie eine ordnungsgemäße Schlüsselverwaltung.
Verschlüsseln Sie alle übertragenen Daten mit sicheren Protokollen wie TLS, mit sicheren Parametern und Serverpriorisierung der Verschlüsselung
Deaktivieren Sie das Caching für Antworten, die sensible Daten enthalten
Speichern Sie Passwörter mit leistungsstarken adaptiven und „gesalzenen“ Hash-Funktionen wie Argon2, scrypt, bcrypt oder PBKDF2
Externe Entitäten XML (XXE)
Die Sicherheitsbedrohungen von Websites treten auf, wenn ein schlecht konfigurierter XML-Parser XML-Eingaben verarbeitet, die einen Verweis auf ein externes Objekt enthalten. Die meisten XML-Parser sind standardmäßig anfällig für XXE-Angriffe. Es liegt in erster Linie in der Verantwortung des Entwicklers, sicherzustellen, dass die Anwendung diese Schwachstelle nicht enthält.
Angriffsvektoren für externe XML-Objekte
Laut den OWASP Top 10 umfassen die Hauptangriffsvektoren für externe XML-Objekte (XXE) die Verwendung von:
Verwundbare XML-Prozessoren (Angreifer können XML laden oder schadhafte Inhalte in ein XML-Dokument einfügen)
Ungeschützter Code
Verwundbare Abhängigkeiten und Integrationen
Wie man seine Website schützt
Implementieren Sie eine serverseitige positive Validierung („Whitelisting“) von Eingabedaten und Filtern, um zu verhindern, dass bösartige Daten in XML-Dokumenten, Headern oder Knoten verwendet werden.
Stellen Sie sicher, dass die XML- oder XSL-Upload-Funktion eingehendes XML mithilfe von XSD oder einem ähnlichen Tool validiert.
Verwenden Sie SAST-Tools, um XXE im Quellcode zu erkennen (obwohl die manuelle Codeüberprüfung eine bessere Alternative in großen und komplexen Anwendungen mit vielen Integrationen ist).
Anwendungsfehlkonfiguration
Es gibt viele Varianten dieses Angriffs, und die häufigste ist Brute Force. Im Wesentlichen handelt es sich um einen Versuch, viele mögliche Kombinationen einzugeben. Hier sind die Gründe, die diesen Webangriff erfolgreich machen können:
Unkorrekturen im Code
Verwendung der Standardkonfiguration
Existenz ungenutzter Seiten
Ungeschützte Dateien und Verzeichnisse
Unnötige Dienste verwendet
Einer der häufigsten Fehler, die Webmaster machen, ist, die Standard-CMS-Einstellungen beizubehalten. Moderne CMS-Anwendungen sind zwar einfach zu bedienen, können jedoch für Endbenutzer unsicher sein. Die meisten Webangriffe sind vollständig automatisiert, und Angreifer verlassen sich darauf, dass Benutzer die Standardeinstellungen haben. Das bedeutet, dass viele Sicherheitsbedrohungen für Websites durch Ändern der Standardeinstellungen bei der Installation des CMS beseitigt werden können.
Dateiberechtigungen sind ein weiterer Bereich, der bei der Verwendung von Standardeinstellungen durchgesetzt werden sollte.
Verwundbare Objekte
Sicherheitsfehlkonfigurationen können auf jeder Ebene des Anwendungsstacks auftreten:
Netzwerkdienste
Die Plattform
Webserver
Der Anwendungsserver
Datenbank
Frameworks
Benutzercode
Vorinstallierte virtuelle Maschinen
Container
Speicher
Ein Beispiel für eine fehlerhafte Konfiguration von Anwendungen sind Memcached-Server, die für DDoS-Angriffe auf Dienste in der Technologiebranche verwendet werden.
Beispiele für Angriffszenarien
Szenario #1
Der Server wird mit Beispielanwendungen geliefert, die bekannte Sicherheitsanfälligkeiten aufweisen. Angreifer können in den Server eindringen, wenn eines davon die Administratorkonsole ist (und die Standardkonten nicht geändert wurden). Der Angreifer meldet sich mit den Standardpasswörtern an und übernimmt die Kontrolle.
Szenario #2
Der Cloud-Anbieter hat standardmäßig Freigabeberechtigungen. Dies ermöglicht Angreifern den Zugriff auf sensible Daten im Cloud-Speicher.
Wie man seine Website schützt
Überprüfen und Aktualisieren Sie regelmäßig die Konfigurationen, um alle Sicherheitsanforderungen zu erfüllen. Überprüfen Sie insbesondere die Berechtigungen für Cloud-Speicher.
Erstellen Sie Anwendungen mit einer segmentierten Architektur, die eine effiziente und sichere Trennung zwischen Komponenten oder Clients bietet.
Automatisierter Prozess zur Überprüfung der Effizienz von Konfigurationen und Einstellungen in allen Umgebungen.
Unsichere Deserialisierung
Die OWASP Top-10 weist darauf hin, dass diese Webanfälligkeit aufgrund der Ergebnisse einer Branchenumfrage und nicht aufgrund einer Studie quantifizierbarer Daten in die Liste aufgenommen wurde.
Angreifer werden immer versuchen, mit allem zu „spielen“, was mit einer Anwendung interagiert, von URLs bis hin zu serialisierten Objekten.
Was ist Deserialisierung
Um das Verständnis einiger der Schlüsselkonzepte zu vereinfachen, lassen Sie uns die akzeptierte Terminologie vorstellen:
Die OWASP Top-10 weist darauf hin, dass diese Schwachstelle basierend auf den Ergebnissen einer Branchenumfrage und nicht auf einer Studie quantifizierbarer Daten zur Liste hinzugefügt wurde.
Der Serialisierungsprozess ist die Umwandlung von Objekten in Byte-Strings.
Der Deserialisierungsprozess ist die Umwandlung von Byte-Strings in Objekte.
Beispiele für Deserialisierungsangriffe
Szenario #1
Die React-Anwendung ruft eine Reihe von Spring Boot-Mikrodiensten auf. Als funktionale Programmierer versuchten die Entwickler sicherzustellen, dass ihr Code konsistent blieb. Die Lösung, die sie fanden, bestand darin, den Benutzerstatus zu serialisieren und ihn mit jeder Anfrage hin und her zu übergeben. Der Angreifer bemerkt die Signatur des „R00“-Objekts und verwendet das Java Serial Killer-Tool, um den Code remote auf dem Anwendungsserver auszuführen.
Szenario #2
Das PHP-Forum verwendet die Serialisierung eines Objekts, um ein Supercookie zu speichern, das die Benutzer-ID, Rolle, Passwort-Hash und andere Zustände enthält. Dann ändert der Angreifer das serialisierte Objekt, um Administratorrechte zu erlangen.
Eine der Angriffsvektoren ist ein Supercookie, das serialisierte Informationen über den angemeldeten Benutzer enthält. Dieses Cookie gibt die Rolle des Benutzers an.
Wenn ein Angreifer dieses Objekt erfolgreich deserialisiert, ändert er oder sie die Berechtigungen des Benutzers, gibt sich selbst die Rolle des Administrators und serialisiert das Objekt erneut. Diese Reihe von Aktionen kann eine erhebliche Bedrohung für die Sicherheit der Website darstellen.
Wie man seine Website schützt
Implementieren Sie Integritätsprüfungen für alle serialisierten Objekte, um die Erstellung von bösartigen Objekten oder manipulierten Daten zu erkennen
Strenge Einschränkungen während der Deserialisierung durchsetzen
Eingehende und ausgehende Netzwerkverbindungen von deserialisierten Containern oder Servern einschränken oder überwachen
Überwachung der Deserialisierung – Alarm schlagen, wenn ein Benutzer ständig Deserialisierung durchführt
Sitzungsreiterangriffe
Eine der am weitesten verbreiteten Angriffe auf Sitzungen, bekannt als Session Riding oder Session Hijacking, ist ein Cross-Site-Scripting (XSS) Softwareangriff. XSS ist ein gängiges Sicherheitsproblem im Web, das viele Seiten betrifft. XSS-Angriffe beinhalten das Injizieren von bösartigen Client-Skripten in eine Seite und die Nutzung dieser Seite als Verteiler.
Die mit dieser Webanfälligkeit verbundenen Risiken ermöglichen es einem Angreifer, Inhalte in die Seite einzufügen und deren Anzeige zu ändern. Es zwingt den Browser des Opfers, den vom Angreifer bereitgestellten Code auszuführen, wenn die Seite geladen wird.
XSS-Sicherheitsanfälligkeiten sind in etwa zwei Dritteln aller Anwendungen vorhanden. Typischerweise erfordern sie eine Art von Benutzerinteraktion, die entweder durch Social Engineering oder durch den Besuch einer bestimmten Seite initiiert werden muss. Eine nicht gepatchte XSS-Sicherheitsanfälligkeit kann für jede Seite sehr gefährlich sein.
Nach den OWASP Top 10 gibt es drei Arten von Cross-Site-Scripting:
Reflektiertes XSS:
Die Anwendung oder API enthält nicht verifiziertes und nicht überprüftes Benutzereingaben im HTML-Ausgang. Ein erfolgreicher Angriff ermöglicht es dem Angreifer, beliebiges HTML zu laden und JavaScript im Browser des Opfers auszuführen. Typischerweise muss der Benutzer mit einem bösartigen Link zu einer von dem Angreifer kontrollierten Seite interagieren.
Gespeichertes XSS:
Eine Anwendung oder API speichert rohe Benutzereingaben, die ein anderer Benutzer oder Administrator später einsehen kann. Gespeicherter XSS-Code wird oft als hoch oder kritisch eingestuft.
DOM XSS:
JavaScript-Frameworks, Single-Page-Anwendungen und APIs, die dynamisch von Angreifern kontrollierte Daten einfügen, sind anfällig für DOM-XSS.
Wie man seine Website schützt
Verwenden Sie Frameworks, die ohne XSS entwickelt wurden.
Die Aktivierung einer Content-Sicherheitsrichtlinie (CSP) ist ein umfassender Schutz, der das Risiko von XSS-Angriffen verringert.
Anwenden von kontextsensitiver Codierung beim Ändern eines clientseitigen Browserdokuments
Verwendung von Komponenten mit bekannten Sicherheitsproblemen
Heutzutage haben selbst einfache Seiten, wie persönliche Blogs, viele Integrationen mit Drittanbieterdiensten, Plugins und anderen Anwendungen, die zu einem Angriffsziel werden können.
Die Unfähigkeit, jede Software auf der Server- und Client-Seite einer Website zu aktualisieren, schafft früher oder später ernsthafte Sicherheitsrisiken.
Im Jahr 2019 waren 56% aller CMS-Anwendungen veraltet, als sie infiziert wurden.
Die Gründe für das Bestehen dieser Schwachstelle
Webmaster/Entwickler können mit den Updates nicht Schritt halten (schließlich benötigen ordnungsgemäße Updates Zeit).
Veralteter Code funktioniert nicht mit neueren Versionen seiner Abhängigkeiten.
Webmaster haben Angst, dass ihre Seite nicht mehr richtig funktioniert.
Webmaster haben nicht das Fachwissen, um Updates korrekt zu installieren.
Es mag übertrieben dramatisch klingen, aber jedes Mal, wenn Sie eine Aktualisierungswarnung ignorieren, erlauben Sie einer bereits bekannten Schwachstelle, auf Ihrem System zu bestehen. Vertrauen Sie mir, Cyberkriminelle sind schnell darin, Software zu untersuchen und Listen zu ändern.
Wie man seine Website schützt
Entfernen Sie alle unnötigen Abhängigkeiten
Erstellen Sie ein Inventar aller Ihrer Komponenten – sowohl serverseitig als auch clientseitig
Kaufen Sie Komponenten nur von offiziellen Quellen
Entfernen Sie Komponenten, die nicht aktiv verwendet werden
Verwenden Sie virtuelle Patches
Fehlende Funktionsebene-Zugriffskontrolle
Die meisten Content-Management-Systeme (CMS) sind diesem Websicherheitsrisiko ausgesetzt. Standardmäßig hat jeder Zugriff auf die Admin-Login-Seite. In den meisten Fällen wird nicht einmal die Zwei-Faktor-Authentifizierung (2FA) verwendet.
Beispiele für verletzte Zugriffskontrolle
Hier sind einige Beispiele dafür, was wir im Konzept des Zugangs einschließen:
Zugang zum Hosting-Kontrollpanel/Administrationspanel
Zugang zum Server über FTP/SFTP/SSH
Zugang zum Administrationspanel Ihrer Website
Zugang zu anderen Anwendungen auf Ihrem Server
Datenbankzugang.
Angreifer können Autorisierungsfehler für die folgenden Zwecke nutzen:
Zugriff auf unautorisierte Funktionen und/oder Daten.
Anzeigen sensibler Dateien
Ändern von Zugriffsrechten
Wie man seine Website schützt
Um sich gegen diese Schwachstelle zu schützen, müssen Sie die in OWASP beschriebenen Sicherheitsprinzipien während der Gestaltung und Konfiguration der Website befolgen.
Implementieren Sie Zugriffskontrollmechanismen und verwenden Sie diese in allen Phasen der Anwendung. Minimieren Sie die Verwendung von CORS
Deaktivieren Sie die Verzeichnisauflistung des Webservers und stellen Sie sicher, dass Dateimetadaten (wie .git) und Sicherungsdateien nicht im Stammverzeichnis des Webservers vorhanden sind
Begrenzen Sie die Häufigkeit von API-Anfragen, um Schäden durch automatisierte Angriffe zu minimieren.
Unzureichendes Protokollieren & Überwachen
Die Bedeutung der Websicherheit kann nicht unterschätzt werden. Während 100 Prozent Sicherheit kein erreichbares Ziel ist, gibt es Möglichkeiten, Ihre Website ständig zu überwachen, damit Sie sofort handeln können, wenn etwas passiert.
Schließlich kann ein Mangel an angemessener Überwachung zu erhöhten Schäden durch einen Website-Hack führen.
Angriffsszenario
Szenario #1
Eine Open-Source-Plattform, die von einem kleinen Team betrieben wird, wurde durch eine Schwachstelle in ihrer Software gehackt. Die Angreifer konnten das interne Repository mit allen Inhalten darin zerstören. Der Inhalt konnte wiederhergestellt werden, aber das Fehlen von Überwachung führte zu viel schwerwiegenderen Konsequenzen.
Szenario #2
Angreifer suchen nach Benutzern mit einem gemeinsamen Passwort. Sie können auf alle Konten mit diesem Passwort zugreifen. Für alle anderen Benutzer hinterlässt dieser Scan nur einen falschen Login. Nach ein paar Tagen wiederholt sich der Prozess, jedoch mit einem anderen Passwort.
Wie man seine Website schützt
Das Führen von Audit-Protokollen ermöglicht es Ihnen, sich über verdächtige Änderungen bewusst zu sein. Dies ist ein Dokument, in dem alle Ereignisse, die auf der Website auftreten, aufgezeichnet werden. Es ermöglicht Ihnen, Anomalien zu erkennen, damit Sie rechtzeitig einen Spezialisten kontaktieren können, um einen Website-Angriff zu bestätigen oder abzulehnen.
Wie man Sicherheitsbedrohungen von Webanwendungen verhindert?
Wie Sie sehen können, haben moderne Websites eine massive Anzahl von Websicherheitsanfälligkeiten, und wir haben nur die häufigsten aufgelistet. Um sicherzustellen, dass Ihre Seite geschützt ist, müssen Sie die Entwicklung in die Hände von Experten legen, die die OWASP-Richtlinien verwenden und diese strikt befolgen.
Wenn Sie Ihre Website neu gestalten oder auffrischen möchten, lassen Sie es uns wissen und erhalten Sie eine kostenlose Beratung! Unser Team hat Erfahrung in der Entwicklung, Neugestaltung und Verbesserung von Websites und Webplattformen.
Interessiert an unserem monatlichen Newsletter? Erhalten Sie die Einblicke, Updates und Rabatte direkt in Ihr Postfach, nur einmal im Monat.
Choose a feature developer
Sagen Sie uns, was Sie brauchen
Teilen Sie uns Ihren Tech-Stack, Ihre Ziele und Anforderungen mit – wir erstellen eine Shortlist mit interviewbereiten Kandidaten.
Passende Kandidaten innerhalb von 24 Stunden
Wir bringen Sie mit erstklassigen Entwicklern zusammen, die zu Ihren Fähigkeiten, Ihrem Budget und Ihrer Zeitzone passen.
Zahlen Sie nur, wenn Sie sicher sind
Sie führen alle Interviews selbst – zahlen Sie erst, nachdem Sie den Entwickler gefunden haben, der perfekt zu Ihren Anforderungen passt.
By continuing to browse or by clicking ‘Accept’, you agree to the storing of cookies on your device to enhance your site experience and for analytical purposes. To learn more about how we use cookies, please visit our Privacy policy (see Cookies Notice section).