Samstag, 30. Dezember 2017

beA-Anwendung auch für XSS anfällig

Neben den ohnehin schon bekannten gravierenden Sicherheitslücken im #beA kommt nun noch eine XSS-Lücke hinzu - ein alltägliches Problem, das jeder Web-Programmierer kennen und beherrschen muß.

Hier ein schönes Demonstrations-Video.

Was kann man hier erkennen ?



Ein Angreifer kann in einer präparierter URL direkt Programmcode in die Website (der beim Nutzer ausgeführte Teil) einschleusen. Im Demo-Video wurde einfach nur ein neues Fenster geöffnet. Man könnte auch Code einschleusen, mit dem private Daten, zB. der Sitzungsschlüssel zum Server eines Angreifers ausgeleitet werden kann.

Nach erfolgtem Angriff besitzt der Angreifer also den aktuellen Sitzungsschlüssel des Opfers. Hatte sich dieses angemeldet (oder meldet sich in derselben Sitzung später an), hat der Angreifer denselben Zugriff wie das Opfer - hat also das Login komplett umgangen. Unerheblich wie sicher dieses ist - da helfen auch Crypto-Cards, Hardware-Tokens, etc nicht weiter - sie werden komplett umgangen.

Wie kann der Angriff stattfinden ?


Ein Angreifer muß das Opfer lediglich zum Abruf eines präparierten Links bewegen. Dieser kann sich zB. in einer eMail oder einer in irgendeiner Website verstecken.

Das Opfer muß hierfür nichtmal selbst aktiv werden (zB. Link anclicken) - der Abruf kann auch verdeckt geschenen (zB. verdecktes iframe).

Ergo: der Angriff funktioniert völlig unbemerkt.

Ein klein wenig Schutz könnten evtl. besonders strikte Browser-Einstellungen bzw. zusätzliche Filter-Toosl liefern (zB. iframes auf bzw. Nachladen von anderen Domains komplett unterbinden) - dann müßte das Opfer immerhin den Link selbst anclicken. Aber dann funktionieren zahlreiche Websites nicht mehr.


Vergleich aus der 'analogen' Welt:


Die Teilnehmer einer Veranstaltung werden im Vorfeld einer strikten Sicherheitsüberprüfung unterzogen (zB. erkennungsdienstliche Behandlung, etc) - nach erfolgter Prüfung bekommen sie eine einfache Eintrittskarte, mit der sie das Gelände beliebig betreten und verlassen können. Diese identifiziert auch den Teilnehmer.

Der Angreifer macht heimlich Photos von Eintrittskarten und fertigt sich Kopien davon an. Damit kann er das Gelände beliebig betreten und sich als sein Opfer ausgeben.

Lösung:


Programmierer müssen stets darauf achten, daß aus dem Netz kommende Eingaben geprüft werden. Insbesondere dürfen diese Eingaben niemals als Programmcode eingebunden werden.

Die Aufgabe ist technisch sehr leicht - es bedarf lediglich eines Grundmaß an Sorgfalt, dies schlicht konsequent umzusetzen. Zudem sind solche Fehler auch leicht durch Penentrationstests (großenteils sogar automatisiert) aufzudecken.

Grober handwerkliche Fehler


Der Fehler ist derart banal und offentsichtlich, daß man von einem Kunstfehler ausgehen muß. Das gehört schlicht zum grundsätzlichen Handwerkszeugs der Web-Programmierung. Ähnlich wie ein Rechtsanwalt BGB und ZPO kennen muß.

Die betroffenen Juristen mögen eine grobe Pflichtverletzung / grobe Fahrlässigkeit prüfen und entsprechende Haftungen der Verursacher bei #ATOS / #Governicus ableiten.

Keine Kommentare:

Kommentar veröffentlichen