A04:2021 – Unsicheres Design – Offenlegung von Informationen
Aktie
Einführung
Die Offenlegung von Informationen stellt eine Sicherheitslücke dar, deren Schwere davon abhängt, wie sensibel die erhaltenen Informationen sind.
Dies geschieht, wenn eine Webanwendung unbefugten Benutzern unbeabsichtigt sensible oder vertrauliche Daten zugänglich macht. Diese Schwachstelle kann sich auf verschiedene Weise manifestieren, einschließlich der Offenlegung technischer Systemdetails, Konfigurationsinformationen, Benutzerdaten oder sogar Quellcodefragmente.
Diese Offenlegung gefährdet nicht nur die Integrität und Vertraulichkeit der Anwendung, sondern kann potenziellen Angreifern auch wertvolle Informationen liefern, um komplexere Angriffe auf das System zu planen und auszuführen.
Auswirkungen
Die Auswirkungen der Offenlegung von Informationen auf die Sicherheit einer Webanwendung können erheblich sein:
- Offenlegung sensibler Daten: Kann vertrauliche Informationen wie Passwörter, Benutzerdaten oder Infrastrukturdetails preisgeben.
- Ermöglichung komplexerer Angriffe: Angreifer können die erhaltenen Informationen nutzen, um präzisere und effektivere Angriffe zu planen und auszuführen.
- Vertrauensverlust: Wenn Benutzer feststellen, dass die Anwendung angreifbar ist, kann dies zu einem Vertrauensverlust und einer Rufschädigung des Unternehmens führen.
- Nichteinhaltung von Vorschriften: Abhängig von der Art der offengelegten Informationen kann es zu Verstößen gegen Datenschutz- und Datensicherheitsbestimmungen kommen.
- Gefährdung der Systemintegrität: Die offengelegten Informationen können dazu verwendet werden, die Gesamtintegrität und Sicherheit des Systems zu gefährden.
Diese Auswirkungen unterstreichen, wie wichtig es ist, Schwachstellen bei der Offenlegung von Informationen in Webanwendungen zu identifizieren und zu beheben.
Praxisbeispiele
Nachfolgend finden Sie einige praktische Beispiele für Schwachstellen bei der Offenlegung von Informationen in Webanwendungen. Diese Fälle veranschaulichen, wie vertrauliche Informationen unbeabsichtigt offengelegt werden können und Angreifern wertvolle Daten über die Infrastruktur und die internen Abläufe der Anwendung liefern.
Jedes Beispiel enthält eine Beschreibung des Szenarios, der möglichen Auswirkungen und empfohlener Abhilfemaßnahmen. Es ist wichtig, diese Fälle zu verstehen, um die Sicherheit von Webanwendungen zu verbessern und die vertraulichen Informationen des Unternehmens zu schützen.
1. Fehlermeldungen
In diesem speziellen Fall handelt es sich um eine absichtliche Technik, mit der aus strategischen Gründen Fehler auf einer Webseite verursacht werden. Das Hauptziel dieser Vorgehensweise besteht darin, das System dazu zu bringen, wichtige Informationen über die Version der verwendeten Software preiszugeben.
Obwohl diese Taktik scheinbar einfach ist, kann sie einem Angreifer wertvolle Daten über die zugrunde liegende technologische Infrastruktur der Webanwendung liefern. Indem ein Angreifer diese Fehler absichtlich erzwingt, versucht er, Systemreaktionen auszunutzen, um an technische Details zu gelangen, die normalerweise verborgen bleiben würden.
Diese Informationen können nicht nur die genaue Version der Software umfassen, sondern auch andere Details wie den Typ des Webservers, das zugrunde liegende Betriebssystem oder sogar Quellcodefragmente. All diese Elemente können später zur Planung komplexerer und gezielterer Angriffe genutzt werden.
Zusammenfassung
- In der Webanwendung wird absichtlich ein Fehler verursacht.
- Die generierte Fehlermeldung enthält einige Informationen. Die erhaltenen Informationen können Softwareversionen, Dateipfade oder Serverkonfigurationen umfassen.
Beispiel
Es gibt mehrere Möglichkeiten, einen Fehler auf einer Webseite zu generieren. In diesem Fall erklären wir einen sehr häufigen Fall, der auftritt, wenn einem Parameter, von dem erwartet wird, dass er einen numerischen Wert INTEGER empfängt, ein nicht numerischer Wert gesendet wird.
https://<victim_web>/product?productId=2
In diesem Fall wird der Wert des Parameters „productId“ geändert, um einen nicht numerischen Wert zu senden und somit einen Fehler zu erzwingen:
https://<victim_web>/product?productId="
Schadensbegrenzung
- Konfigurieren Sie Fehlermeldungen ordnungsgemäß, sodass keine vertraulichen Informationen preisgegeben werden
- Implementieren Sie eine benutzerdefinierte Fehlerbehandlung, die technische Details verbirgt
- Halten Sie Software und Systeme auf dem neuesten Stand, um bekannte Schwachstellen zu reduzieren
- Führen Sie regelmäßige Sicherheitstests durch, um potenzielle Datenlecks zu identifizieren und zu beheben
2. Standardinstallationsdateien/Debugdateien
Zusammenfassung
- Es wird eine Erkennungsphase ausgeführt, in der Dateien und Verzeichnisse zusätzlich zu Crawling-Tools oder der Verzeichnisaufzählung mithilfe von Dateien wie sitemap.xml oder robots.txt durchsucht werden.
- Die Debug-Datei oder die während der Installation generierte Datei enthält bestimmte vertrauliche Informationen. Zu den erhaltenen Informationen können Softwareversionen, Dateipfade, Serverkonfigurationen, Schlüssel und Token im Klartext gehören
Beispiel
Schadensbegrenzung
- Löschen Sie Diagnosedateien in Produktionsumgebungen oder beschränken Sie den Zugriff darauf
- Implementieren Sie robuste Zugriffskontrollen für vertrauliche Dateien
- Verwenden Sie Web Application Firewalls (WAFs), um den Zugriff auf potenziell gefährliche Dateien zu blockieren
- Führen Sie regelmäßige Sicherheitsüberprüfungen durch, um unnötige Dateien zu identifizieren und zu entfernen
- Konfigurieren Sie die Datei- und Verzeichnisberechtigungen auf dem Webserver korrekt
- Verwenden Sie Tools zum Scannen von Schwachstellen, um exponierte Dateien zu erkennen
- Implementieren Sie Sicherheitsrichtlinien, die das Vorhandensein von Debugging-Dateien in der Produktion verhindern
- Informieren Sie Entwickler über die Risiken, die sich daraus ergeben, dass Diagnosedateien zugänglich bleiben
3. Versteckte Dateien
Zusammenfassung
- Es wird eine Erkennungsphase ausgeführt, in der Dateien und Verzeichnisse zusätzlich zu Crawling-Tools oder der Verzeichnisaufzählung mithilfe von Dateien wie sitemap.xml oder robots.txt durchsucht werden.
- Die mit diesen Techniken gefundenen Dateien können interne Dokumentationen, Finanzdaten, Benutzeranmeldeinformationen, Quellcode usw. umfassen.
Beispiel
Schadensbegrenzung
- Identifizieren Sie alle im Internet angezeigten Dateien
- Löschen oder beschränken Sie den Zugriff auf Dateien mit kritischen Informationen wie Quellcode, Anmeldeinformationen usw.
- Implementieren Sie robuste Zugriffskontrollen für vertrauliche Dateien
- Verwenden Sie Web Application Firewalls (WAFs), um den Zugriff auf potenziell gefährliche Dateien zu blockieren
- Führen Sie regelmäßige Sicherheitsüberprüfungen durch, um unnötige Dateien zu identifizieren und zu entfernen
- Konfigurieren Sie die Datei- und Verzeichnisberechtigungen auf dem Webserver korrekt
- Verwenden Sie Tools zum Scannen von Schwachstellen, um exponierte Dateien zu erkennen