Checkmarx findet kritische Lücken in Helpdesk-Software XSS-Schwachstelle in Deskpro dokumentiert
Anbieter zum Thema
Trotz aller Initiativen zur sicheren Software-Entwicklung sind Cross-Site-Scripting, kurz XSS-Lücken weiterhin verbreitet. Die Helpdesk-Software Deskpro, welche die Security-Experten von Checkmarx unter die Lupe genommen haben, ist ein gutes Beispiel dafür.

Im Zuge der Corona-Pandemie und der Verlagerung von Arbeitsplätzen ins Homeoffice steigt die Nachfrage nach smarten Helpdesk- und Collaboration-Lösungen rasant. Mit Blick auf diesen Boom entschied sich das Checkmarx Security Research Team, die Sicherheit von Deskpro zu überprüfen.
Dabei entdeckten die Security-Experten in der weltweit verbreiteten Lösung eine gefährliche Cross-Site-Scripting-Schwachstelle. Cyberkriminelle hätten diese gleich auf mehreren Wegen ausnutzen können, um die Sitzungen von Administratoren zu kapern oder die Konten von Helpdesk-Agents zu übernehmen.
Szenario 1: Übernahme von Admin-Sessions
Als Helpdesk-Lösung trackt Deskpro bei jeder Session die Aktivitäten des Anwenders und überträgt die zwischen dem Support-Mitarbeiter und dem Client gesammelten Daten in einer Payload. Diese enthält verschiedene Details zu besuchten Seiten, etwa deren URL, Seitentitel sowie die Seite, von der der Benutzer kam. Mit diesen Daten erstellt Deskpro anschließend Statistiken, die den Administratoren über das integrierte Dashboard „Ticket Insight“ zur Verfügung stehen.
Genau an diesem Punkt konnten Cyberkriminelle ihren Hebel ansetzen, indem sie unbemerkt beliebigen Code in eine sogenannte „request page title“-Abfrage einfügen. Die Daten werden dann in der Deskpro-Datenbank gespeichert und werden immer dann geladen, wenn das Widget „Top KB Views“ gerendert wird. In diesem Fall wird der Code im Kontext des Browsers ausgeführt und ein modales Dialogfeld im Admin-Backend angezeigt.
Angreifer können diese Funktion natürlich leicht ausnutzen, indem sie Schadcode in Anfragen einbetten und das Session-Token des Administrators auf einen von ihnen kontrollierten Server leiten. Das funktioniert, obwohl das Sitzungs-Cookie die httpOnly Flag hat – denn sein Wert ist auch über JavaScript verfügbar, indem auf die globale, fest codierte Variable DESKPRO_SESSION_CODE zugegriffen wird.
Haben die Angreifer den Sitzungscode des Administrators ausgespäht, können sie ihn in ihrem eigenen Browser platzieren und in der Rolle und mit den Rechten des Admins unbefugt Aktionen ausführen. Auf diese Weise erlangen sie Zugriff auf das gesamte System – auf Kundendaten, Eingaben von Agents (Tickets, CRM usw.) sowie auf die Systemkonfiguration (z. B. SMTP-Server-Anmeldeinformationen). In bestimmen Konstellationen sind sie sogar in der Lage, den Helpdesk vollständig zurückzusetzen und alle Systemdaten zu löschen.
Szenario 2: Missbrauch von Supporter-Accounts
Die Checkmarx Experten haben aber noch einen weiteren Weg gefunden, wie sich Kriminelle Zugriff auf eine Deskpro-Instanz verschaffen können – in diesem Fall mit den Agent-Rechten eines Supporters. Auch dazu wird wie beim zuvor beschriebenen „Admin-Hack“ eine Payload mit Schadcode in der Deskpro-Datenbank eingeschleust.
Öffnet der Agent ein Dashboard mit dem Widget „Top KB-Ansichten“ (z. B. das eingebaute Dashboard „Ticket Insights“), wird das Skript ausgeführt. Nach dieser Ausführung fügt das Schad-Skript dem Konto des Agents ohne dedizierte Warnmeldung automatisch eine zweite, vom Angreifer kontrollierte E-Mail-Adresse hinzu. Das erforderliche Anfrage-Token kann der globalen Variable DP_REQUEST_TOKEN entnommen werden.
Um das Konto des Support-Agents zu kapern, geht der Angreifer anschließend auf die Anmeldeseite des Agents. Dort löst er die Kennwort-Wiederherstellung aus und gibt seine eigene E-Mail-Adresse an, die zuvor über die manipulierte Payload eingeschleust worden ist. Der Angreifer erhält so eine E-Mail mit einem Link zum Zurücksetzen des Kennworts in seinen Posteingang.
Danach ist er in der Lage, auf das Konto des Agents zuzugreifen und Aktionen in dessen Namen auszuführen. Dazu muss der Angreifer lediglich die ursprüngliche E-Mail-Adresse des regulären Supporters entfernen, um seine Adresse zur primären Adresse machen. Für den legitimen Agent ist es danach nicht mehr möglich, die Kontrolle über das Konto zurückzugewinnen.
Wie sich Software-Anbieter vor XSS schützen können
Einen Schutz vor den beschriebenen Infiltrationen bietet nur eine korrekte Datenkodierung/Escaping entsprechend dem Ausgabekontext, typischerweise bevor sie mit Markup-Vorlagen zusammengeführt oder an das Document Object Model (DOM) angehängt werden. Ist der Einsatz von Inline-Skripten unvermeidlich, sollten sogenannte kryptografische Nonces verwendet werden, um für die erforderlichen Inline-Skripte eine dedizierte Erlaubnis-Liste zu erstellen.
Darüber hinaus empfiehlt es sich, Benutzer in einigen Fällen erneut zu authentifizieren, etwa wenn sie sensible Aktionen durchführen. Dazu zählt beispielsweise das Ändern von E-Mail-Adressen, die mit einem Konto verbunden sind. Der Kontobesitzer sollte in Echtzeit über derartige Änderungen informiert werden. So kann er bei verdächtigen Aktivitäten direkt und damit rechtzeitig handeln.
Behebung der Schwachstelle in Rekordzeit
Nachdem die Experten von Checkmarx die Schwachstelle entdeckt und validiert hatten, informierten sie Deskpro am 31. Oktober 2020 und unterstützten den Helpdesk-Anbieter dabei, die Schwachstelle zu beheben. Deskpro hat in Rekordzeit mit einem Patch reagiert, der die beschriebenen Lücken schloss: Am 9. November 2020 war das Problem gelöst.
Obwohl sie so alt wie die Application Security selbst und gut dokumentiert sind, gehören XSS-Schwachstellen nach wie vor zu den am häufigsten übersehenen und gefährlichsten Problemen. Tests der Anwendungssicherheit, wie sie etwa Checkmarx anbietet, sind der Schlüssel zum Aufspüren von XSS-Schwachstellen. Damit sind diese Lösungen unverzichtbar, um sichere Software zu erstellen, einzusetzen und zu warten.
* Dr. Christopher Brennan ist Director DACH bei Checkmarx.
(ID:47292139)