M 4.395 Fehlerbehandlung durch Webanwendungen

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Entwickler, Administrator

Tritt während des Betriebs einer Webanwendung ein Fehler auf, sollte dieser so behandelt werden, dass ein konsistenter Zustand der Webanwendung gewährleistet ist und somit etwa der Schutz der Daten aufrechterhalten wird.

Eine Webanwendung ist in einem inkonsistenten Zustand, wenn sie aufgrund eines Fehlers in einen unerwarteten Zustand überführt wird und dadurch Daten unkontrolliert verarbeitet werden ( z. B. keine Fehlermeldung bei erfolgloser Speicherung von Daten).

Der konsistente Zustand einer Webanwendung kann u. a. durch folgende Ereignisse gefährdet werden:

Folgende Punkte sollten bei der Fehlerbehandlung berücksichtigt werden.

Vermeidung vertraulicher Informationen in Fehlermeldungen

Die Webanwendung muss dem Benutzer im Falle es Fehlers neutrale, angepasste Fehlerseiten ausgeben, die keine vertraulichen Informationen beinhalten (siehe auch M 4.400 Restriktive Herausgabe sicherheitsrelevanter Informationen bei Webanwendungen ).

Protokollierung der Fehler

Für eine vollständige Nachvollziehbarkeit aufgetretener Fehler müssen diese als Ereignis gemäß M 4.397 Protokollierung sicherheitsrelevanter Ereignisse von Web-Anwendungen protokolliert werden.

Abbruch des Vorgangs nach Auftreten eines Fehlers

Treten Fehler im Zusammenhang mit Sicherheitskomponenten der Webanwendung auf (z. B. während der Autorisierung oder Authentisierung), muss die veranlasste Aktion abgebrochen und der Zugriff auf die angeforderte Ressource oder Funktion abgewiesen werden. Es muss gewährleistet sein, dass durch provozierte Fehler keine Sicherheitsmechanismen umgangen werden können.

Für Webanwendungen mit einem hohen Schutzbedarf sollte zusätzlich die Invalidierung einer gegebenenfalls bestehenden Sitzung in Betracht gezogen werden (siehe auch M 4.394 Session-Management bei Webanwendungen ).

Freigabe von reservierten Ressourcen

Im laufenden Betrieb belegt eine Webanwendung Ressourcen wie z. B. Netz- oder Datei-Streams, um auf Hintergrundsysteme, zwischengespeicherte Zustände oder sonstige Daten zuzugreifen. Solange die Webanwendung auf diese Ressourcen zugreift, sind diese in der Regel für deren exklusiven Zugriff reserviert und können von anderen Prozessen nicht verwendet werden.

Tritt ein Fehler auf, sollten zuvor reservierte Ressourcen (z. B. ein Datei-Handle auf eine temporäre Datei) im Rahmen der Fehlerbehandlung freigegeben werden. Darüber hinaus sind zwischengespeicherte Daten bei der Fehlerbehandlung zu löschen.

Unmittelbare Behandlung von Fehlern

Fehler in der Webanwendung sollten von der Webanwendung selbst behandelt werden. Die Weiterleitung eines unbehandelten Fehlers an andere Komponenten (z. B. Applikationsserver) kann zu einem Verlust von Informationen führen, die zur Behandlung des Fehlers notwendig sind (z. B. zur Freigabe von gebundenen Ressourcen). Daher sollten unbehandelte Fehler nicht weitergeleitet werden.

Vermeidung einer zu hohen Fehlertoleranz

Sind Ursachen von Fehlerzuständen nicht vollständig geklärt, sollte der Fehler nicht z. B. aufgrund der Bedienungsfreundlichkeit toleriert, sondern die Aktion im Zweifelsfall abgebrochen werden. Schwerwiegende Fehler sollten immer zum Abbruch der Aktion führen.

Das Ziel ist eine robuste und fehlertolerante Webanwendung, die bestimmungsgemäße Bedienung durch den Anwender von offensichtlichen Missbrauchsversuchen und schwerwiegenden Fehlern unterscheiden und dann angemessen reagieren kann.

Prüffragen: