G 4.87 Offenlegung vertraulicher Informationen bei Webanwendungen
Webseiten und Daten, die von einer Webanwendung generiert und ausgeliefert werden, können vertrauliche Informationen enthalten, die nicht für die Nutzung der Webanwendung erforderlich sind ( z. B. Angaben zu Produkt und Versionsständen von Frameworks). Diese Informationen können einem Angreifer Hinweise zur Durchführung gezielter Angriffe auf die Webanwendung geben. Wenn demzufolge Informationen unnötig offengelegt werden, kann dies einen erfolgreichen Angriff erleichtern. Hierbei können diese Informationen auch über weniger offensichtliche Übertragungswege übermittelt werden (z. B. im HTTP -Header).
Beispiele:
- Es werden detaillierte Informationen über Sicherheitsmechanismen oder -attribute ausgegeben, die für einen Benutzer der Webanwendung nicht notwendig sind, aber Hinweise für potentielle Angriffe geben (z. B. "Geben Sie bitte die 6-stellige, numerische PIN ein" anstelle von "Geben Sie bitte die PIN ein"). Aufgrund dieser Information könnte ein Angreifer den möglichen Zeichenraum bei einem Brute-Force-Angriff einschränken und somit schneller eine gültige PIN ermitteln.
- Kommentare (z. B. im HTML-Quelltext) können Informationen zu bekannten Fehlern, Funktionsweisen, eingesetzten Techniken und der angebundenen Infrastruktur beinhalten. Ein Angreifer kann hierdurch gezielt nach Schwachstellen in der Webanwendung und der Infrastruktur suchen und diese ausnutzen. Werden z. B. die in der Entwicklungsphase verwendeten Zugangsdaten für eine Datenbank in Kommentaren erwähnt, können diese gegebenenfalls auch noch im produktiven Betrieb der Webanwendung für den unautorisierten Zugriff verwendet werden.
- Dateien mit unbekannter Dateiendung (z. B. temporäre Dateien mit .tmp oder Backup-Dateien mit .bak von Skripten der Webanwendung) werden von der Webanwendung im Quelltext ausgeliefert. Auf diese Weise können vertrauliche Informationen wie fest kodierte Zugangsdaten ausgelesen werden. Darüber hinaus können von einem Angreifer Programmabläufe aus dem offengelegten Code auf Schwachstellen untersucht werden.