Bundesamt für Sicherheit in der Informationstechnik

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 (" App s"). 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, URL s direkt aufgerufen werden oder Replay- oder Man-in-the-Middle-Attacken bei der Kommunikation durchgeführt werden.

Beispiele:

  • Die Eingabevalidierung ist ausschließlich clientseitig in der Programmiersprache JavaScript umgesetzt. Ist die JavaScript-Unterstützung auf dem Client deaktiviert, wird daher die Validierungsfunktion nicht ausgeführt und somit umgangen. Somit können beliebige Eingaben (wie Schadcode) an die Webanwendung gesendet und ungeprüft verarbeitet werden. Ein Angreifer kann dies ausnutzen, um beispielsweise unbefugt Befehle an Hintergrundsysteme der Webanwendung zu übermitteln (zum Beispiel in Form von Datenbankabfragen um eine SQL -Injection auszuführen).
  • Die Webanwendung prüft ausschließlich einen clientseitig gesetzten Parameter zur Authentisierung (zum Beispiel admin=true). Ist einem Angreifer dieser Parameter bekannt, so kann er den Parameter manuell setzen und verwenden, um sich ohne Kenntnis der Zugangsdaten an der Webanwendung anzumelden.
  • Eine Anwendung zeigt den Menüpunkt "Benutzerverwaltung" nur an, wenn der eingeloggte Anwender Administrationsrechte hat. Durch einen direkten Aufruf des entsprechenden Web-Services ist aber auch eine Bearbeitung der Benutzerverwaltung ohne Administrationsrechte möglich, weil der Programmierer des Web-Service sich darauf verlassen hat, dass eine Berechtigungsprüfung im Client bereits durchgeführt wurde.

Stand: 14. EL Stand 2014

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK