Ein-des-ein blog

Die häufigsten Sicherheitsanfälligkeiten im Web und wie man sie vermeidet

Hanna Milovidova
Top Web Security Vulnerabilities and How to Avoid Them
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

  1. SQL-Injection
  2. Gebrochene Authentifizierung
  3. Bedrohungen durch die Offenlegung sensibler Daten
  4. Externe Entitäten XML (XXE)
  5. Anwendungsfehlkonfiguration
  6. Unsichere Deserialisierung
  7. Session Riding Angriffe
  8. Verwendung von Komponenten mit bekannten Sicherheitsproblemen
  9. Fehlende Zugriffskontrolle auf Funktionsebene
  10. 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:
Session Riding Attacks

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.
Using Components with Known Security Issue

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.
Ein-des-ein banner
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.

Folge uns!

Interessiert an unserem monatlichen Newsletter? Erhalten Sie die Einblicke, Updates und Rabatte direkt in Ihr Postfach, nur einmal im Monat.



    ein-des-ein needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Privacy Policy.