G 5.168 Umgehung clientseitig umgesetzter Sicherheitsfunktionen von Webanwendungen und Web-Services

Auf Webanwendungen wird gewöhnlich mit generischen Clients (zum Beispiel Web-Browsern) zugegriffen. Diese können üblicherweise durch den Benutzer konfiguriert und angepasst werden. Sie unterliegen damit nicht der Kontrolle der Webanwendung, sondern sind von einem Angreifer, der sich Zugriff verschafft hat, beliebig manipulierbar. So können clientseitige Sicherheitsfunktionen außer Kraft gesetzt werden. Sind keine zusätzlichen, serverseitigen Schutzmaßnahmen vorgesehen, kann ein Angreifer somit unbefugt auf Ressourcen der Webanwendung zugreifen.

Auch Web-Services werden zum Teil durch Anwendungen genutzt, die sich nicht in einem vom Betreiber kontrollierbaren Sicherheitskontext befinden, zum Beispiel als Anwendungen auf mobilen Endgeräten ("Apps"). Werden Web-Services für solche Nutzungsszenarien realisiert, darf auch hier nicht von der Umsetzung von Sicherheitsfunktionen durch den aufrufenden Client ausgegangen werden, da für den Web-Service nicht erkennbar ist, ob der aufrufende Client manipuliert oder gegen einen anderen Client ohne entsprechende Sicherheitsfunktionen ausgetauscht wurde.

In der Praxis tritt diese Gefährdung besonders häufig in Verbindung mit Berechtigungsprüfungen auf, die clientseitig durchgeführt, aber nach dem Aufruf des Web-Service nicht vom Server verifiziert werden. So schützt beispielsweise das Ausblenden einer Schaltfläche im Client nicht davor, die für diese Schaltfläche hinterlegte Funktion auf Serverseite aufzurufen, indem zum Beispiel der Client manipuliert wird, URLs direkt aufgerufen werden oder Replay- oder Man-in-the-Middle-Attacken bei der Kommunikation durchgeführt werden.

Beispiele: