M 4.404 Sicherer Entwurf der Logik von Webanwendungen

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Fachabteilung, Verantwortliche der einzelnen Anwendungen

Verantwortlich für Umsetzung: Entwickler, Tester

Webanwendungen bilden komplexe Geschäftsprozesse ab, die über das bloße Anzeigen von einzelnen Webseiten hinausgehen. Beim technischen Entwurf dieser Prozesse muss darauf geachtet werden, dass die umgesetzte Anwendungslogik nicht missbräuchlich verwendet werden kann. So soll beispielsweise nicht aus einem vorgesehenen Prozess der Webanwendung ausgebrochen und somit der Ablauf des Prozesses von außen gesteuert werden können.

Die Anforderungen an die abgebildete Geschäftslogik müssen exakt erfasst und korrekt umgesetzt sein, sodass ausschließlich beabsichtigte und vorgesehene Aktionen durchgeführt werden können. Ein abweichendes Verhalten muss zurückgewiesen werden. Ist beispielsweise eine Empfehlungsfunktion der Webanwendung ausschließlich zum Versand von Artikelempfehlungen gedacht, sollte berücksichtigt werden, dass diese Funktion auch missbraucht werden kann, um SPAM-E-Mails zu versenden. Wird in diesem Beispiel der Empfehlungstext fest vorgegeben, so ist der Versand von SPAM über diese Funktion nicht möglich. Des weiteren ist auch zu prüfen, ob Fehler in der Geschäftslogik durch zwei gleichzeitige Sessions (concurrent sessions) auftreten können (race conditions).

Bei der Konzeption der Webanwendung sollten daher alle Funktionen anhand von Anwendungsfällen (Use Cases) dokumentiert werden. Dabei sollte erfasst werden, für welche Zwecke die Funktionen verwendet werden sollen und wie eine missbräuchliche Nutzung vermieden werden kann.

Wird die Webanwendung aus irgendeinem Grund abgebrochen, so muss die Logik sicherstellen, dass die Webanwendung wieder in einen konsistenten Zustand kommt (roll back).

Interaktive Funktionen in Web-Angeboten können auch durch aktive Inhalte umgesetzt werden, die auf dem Client-System ausgeführt werden (z. B. per JavaScript). Oft ist es auch möglich, diese Funktionalitäten mit dynamischen oder statischen Inhalten bereitzustellen. Da die Nutzung von aktiven Inhalten aus Sicherheitsgründen auf den Client-Systemen häufig deaktiviert ist, wird empfohlen, bei der Konzeption der Webanwendung auf die Verwendung aktiver Inhalte zu verzichten und die Anwendungslogik rein serverseitig zu realisieren.

Interaktive Funktionen in Webanwendungen können auf unterschiedliche Weise realisiert werden: Server-seitig oder Client-seitig. Da der Client nicht unter der Kontrolle der Webanwendung steht, kann nicht ausgeschlossen werden, dass dieser missbräuchlich benutzt wird. Gerade aktive Inhalte wie JavaScript oder ActiveX wurden und werden immer wieder ausgenutzt, Webanwendungen und die von ihnen verwalteten Informationen anzugreifen. Aus Sicherheitsüberlegungen empfiehlt es sich deshalb, aktive Inhalte Server-seitig umzusetzen oder, wo dies möglich ist, auf sie zu verzichten.

Ist die Nutzung aktiver Inhalte erforderlich, sind folgende Punkte zu beachten:

Beispiele:

Prüffragen: