Checkmarx findet kritische Lücken in Helpdesk-Software XSS-Schwachstelle in Deskpro dokumentiert

Autor / Redakteur: Dr. Christopher Brennan / Stephan Augsten

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.

Firmen zum Thema

Über eine XSS-Schwachstelle in der Helpdesk-Software Deskpro konnte Checkmarx unter anderem Admin-Sitzungen zu übernehmen.
Über eine XSS-Schwachstelle in der Helpdesk-Software Deskpro konnte Checkmarx unter anderem Admin-Sitzungen zu übernehmen.
(© NicoElNino - stock.adobe.com)

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.

Ergänzendes zum Thema
Die Schwachstelle im Überblick

Angreifer konnten eine XSS-Schwachstelle in Deskpro ausnutzen, um Code im Browser des infiltrierten Unternehmens ausführen und so das Session-Token des Administrators oder Support-Mitarbeiters herauszufiltern. Mit diesem Token in der Hand konnten sie in der Rolle (und mit den Rechten) des jeweiligen Users nahezu beliebige Aktionen ausführen. So war es Kriminellen etwa möglich, Kundendaten auszulesen, zu manipulieren oder zu löschen.

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.

Christopher Brennan
Christopher Brennan
(Bild: Checkmarx)

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.

Ergänzendes zum Thema
Wortweiser: Deskpro

Die Multichannel-Helpdesk-Software Deskpro steuert die Kundenkommunikation von Unternehmen über multiple Kanäle wie E-Mail, Live-Chat, Voice und Social Media. Sie ist modular aufgebaut und passt sich exakt an die Anforderungen des jeweiligen Unternehmens an. Deskpro läuft wahlweise auf der unternehmenseigenen Server-Infrastruktur oder wird über öffentliche oder private Cloud-Dienste bereitgestellt.

Je nach Ausbaustufe können Unternehmen über das Deskpro-eigene CRM-Modul auch kundenspezifische Daten verwalten. So stehen Servicemitarbeitern bei Anfragen umfassende Informationen zu den jeweiligen Kunden zur Verfügung. Gerade im Zuge der zunehmenden Nutzung von Remote-Arbeitsplätzen wird Deskpro zudem immer häufiger als firmeninternes Kommunikationstool genutzt, mit dem sich Mitarbeiter untereinander austauschen. Damit enthält die multifunktionale Plattform in aller Regel auch eine große Menge unternehmensrelevanter und hochgradig sensibler (Kunden-)Daten.

(ID:47292139)