M 4.405 Verhinderung der Blockade von Ressourcen (DoS) bei Webanwendungen
Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT
Verantwortlich für Umsetzung: Entwickler, Administrator
Webanwendungen bieten den Benutzern häufig ressourcenintensive Funktionen an, die z. B. komplexe Datenbankabfragen auslösen. Werden diese rechenintensiven Operationen bewusst gehäuft aufgerufen oder die Webanwendung mit Anfragen überflutet, kann hierdurch der Betrieb der Webanwendung bis zur Unerreichbarkeit eingeschränkt werden. Dieses Vorgehen wird als Denial-of-Service-Angriff (DoS) bezeichnet.
DoS-Angriffe beruhen in den meisten Fällen ebenso wie Brute-Force- und Enumeration-Angriffe auf Automation (siehe Maßnahme M 4.396 Schutz vor unerlaubter automatisierter Nutzung von Webanwendungen ). Daher sollten zur Vorbeugung gegen DoS-Angriffe ähnliche Schutzmechanismen umgesetzt werden. Dazu zählen beispielsweise folgende Maßnahmen:
Zusätzlich geben die folgenden Beispiele Hinweise auf spezifische Schutzmaßnahmen, um Denial-of-Service-Angriffe auf Webanwendungs-Ebene zu erschweren:
- Grenzwerte festlegen (z. B. die vorübergehende Blockierung einer Ressource nach wiederholten Fehlzugriffen),
- die Zeitspanne zwischen Anfrage und Verarbeitung durch die Webanwendung künstlich verzögern (z. B. bei wiederholt erfolgloser Anmeldung),
- die aufrufende IP -Adresse bei Verdacht auf einen Angriff temporär sperren,
- CAPTCHAs verwenden.
Zusätzlich geben die folgenden Beispiele Hinweise auf spezifische Schutzmaßnahmen, um Denial-of-Service-Angriffe auf Webanwendungs-Ebene zu erschweren:
- Ressourcenintensive Operationen sind besonders anfällig für DoS-Angriffe. Daher kann die Ressourcennutzung pro Benutzer auf ein Maximum eingeschränkt werden. Darüber hinaus können bestimmte Operationen nur angemeldeten Benutzern zugänglich gemacht werden (z. B. komplexe Datenbankaufrufe).
- Pro Benutzer sollte nur eine Anfrage zur gleichen Zeit bearbeitet werden. Mehrere Anfragen desselben Benutzers sollten sequenziell bearbeitet werden.
- Die Last durch DoS-Anfragen kann teilweise durch Zwischenspeichern (cachen) der Webseitenaufrufe deutlich verringert werden. Somit wird die angeforderte, rechenintensive Operation nicht bei jedem Aufruf ausgeführt, sondern lediglich das zwischengespeicherte Resultat zurückgegeben. Stark Ressourcen belastende Anfragen können auch in lastarmen Zeiten vorberechnet werden (Voraggregation).
- Die Architektur und Flusskontrolle der Webanwendung sollten darauf ausgelegt sein, rechenintensive Operationen zu vermeiden (z. B. bei der Erstellung der SessionID sollten ressourcenintensive Operationen gemieden werden). Zur Erkennung rechenintensiver Operationen können Lasttests durchgeführt werden.
- Ein Überlauf von Speicherplatz, z. B. im Rahmen der Protokollierung, kann dazu führen, dass keine Schreibzugriffe mehr auf den Datenträger möglich sind. Werden Speichervorgänge von der Webanwendung durchgeführt, kann dies den Betrieb gefährden. Daher sollte der Zugriff auf Datenspeicher begrenzt und die Kapazität der Datenspeicher regelmäßig geprüft werden. Ebenso sollte auch der Verbrauch von Arbeitsspeicher ( RAM ) pro Thread begrenzt werden.
Prüffragen:
- Wird der Einsatz und die Nutzung ressourcenintensiver Operationen bei Webanwendungen gemieden und werden diese besonders geschützt?
- Wird ein möglicher Überlauf von Protokolldaten bei Webanwendungen überwacht und verhindert?