Cybersicherheit & Technik: Ein Einblick in den Maschinenraum von GatewayAPI

Zurück zur Übersicht
Cybersicherheit & Technik: Ein Einblick in den Maschinenraum von GatewayAPI

Cybersicherheit ist ein wesentlicher Bestandteil der Grundlage von GatewayAPI. Daher haben wir eine Reihe umfassender Sicherheitsmaßnahmen eingeführt, um Daten zu schützen und den Missbrauch unserer Plattform für Smishing, AIT und ähnliche bösartige Aktivitäten zu verhindern.

In einem früheren Blogbeitrag, Cybersicherheit in der Messaging-Branche und unser strategischer Umgang mit neuen Bedrohungen, gaben wir einen Überblick über unseren Gesamtansatz für Sicherheit. 

In diesem Blogbeitrag möchten wir einen tieferen Einblick in die spezifischen technischen Sicherheitsmaßnahmen geben, die wir kürzlich eingeführt haben.

Wir möchten damit andere dazu anregen, potenzielle blinde Flecken in ihren technischen Systemen zu untersuchen und das Bewusstsein für mögliche Angriffsvektoren zu schärfen. Außerdem werden wir die Tools und Methoden vorstellen, die sich für uns als besonders effektiv erwiesen haben.

Wir beginnen den Beitrag mit einem Blick auf eine der zuverlässigsten Methoden zur Verhinderung der Ausführung von bösartigem Code, nämlich einer Content Security Policy.

Content Security Policy

Eine Content Security Policy (CSP) wirkt wie eine zusätzliche browserbasierte Firewall. Eine Website, die eine CSP implementiert, kann gezielt auf einer Whitelist festlegen, welche Skripte, Bilder, Stylesheets, Webdienste usw. die Website verwenden darf. Durch die Implementierung einer strengen CSP wird es für nicht autorisierte Quellen unmöglich, Code auf einer Website auszuführen, da der Browser eingreift und die Versuche blockiert.

Wie bei neuen Standards üblich, dauerte es viele Jahre, bis die CSP für alle Technologien und Frameworks ausgereift war und breite Unterstützung fand. Daher wurde sie 2015 nicht für das GatewayAPI-Frontend in Betracht gezogen. Mit der Einführung von CSP Level 3 im Jahr 2023 bietet die CSP bessere Unterstützung für unsere technischen Systeme und Frameworks. Daher war es für uns naheliegend, diese Sicherheitsmaßnahme zu implementieren.

CSP ist unserer Meinung nach die beste Garantie gegen die Ausführung von bösartigem Code. Im Sinne des eigenen Schutzes empfehlen wir deshalb auch, dass alle Webanwendungen strenge CSP-Regeln implementieren sollten.

 

Implementierung in GatewayAPI

CSP v3 haben wir mit strikten Regeln implementiert, d. h., es gibt kein unsafe-inline oder unsafe-eval mehr für Javascript.

Die Implementierung von CSP war eine große Aufgabe, da wir verschiedene Frontend-Bibliotheken und unsere eigenen Ansätze verwendeten, die eigentlich nicht mit CSP im Blick entwickelt worden waren. D. h., Buttons, die aus dynamisch gerenderten Templates gerendert wurden, die onclick=“-Handler enthielten, oder Javascript-Bibliotheken, die die Style-Attribute von Elementen direkt manipulierten, anstatt über die echten Javascript-APIs.

Ein weiteres Problem war die Unterstützung von Drittanbieter-Tools, die dynamischen Code ausführen. Insbesondere der Google Tag Manager, der dynamischen Code einspeisen darf, musste bearbeitet werden. Zu diesem Zweck implementierten wir eine Nonce-Generierung in unserem Webserver Nginx, die dann an Google Tag Manager weitergegeben wurde.

Die Unterstützung von CSP ist mit den modernen Bibliotheken, die dafür entwickelt wurden, viel einfacher geworden. Da aber unser Frontend-Code etwa neun Jahre alt ist, war es mit einigem Aufwand verbunden, ihn auf strenge CSP-Konformität zu aktualisieren, wozu auch das Patchen älterer Drittanbieter-Bibliotheken gehörte. Trotz der vielen Arbeit hat sich der Aufwand gelohnt, denn die Sicherheit wurde dadurch erheblich verbessert.

GatewayAPI-Blogpost-Cyber_security_v2-google_tag_manager-2024_09_12@2x

Die Sicherheitsrisiken von Google Tag Manager

Mit dem Google Tag Manager (GTM) steht Ihnen ein leistungsstarkes Tool zur unkomplizierten Verwaltung von Tags und Skripten auf Ihrer Website zur Verfügung. Doch neben den vielen Vorteilen bestehen auch erhebliche Sicherheitsrisiken, die oft übersehen werden.

Eines der größten Probleme besteht darin, dass GTM jedem mit ausreichendem Zugriff auf das Konto erlaubt, beliebigen JavaScript-Code in Ihre Website einzufügen. Dazu gehört auch JavaScript von einer Vielzahl von vertrauenswürdigen Drittanbietern, die oft aus der Bibliothek von GTM ausgewählt werden können. Trotz der von Google getroffenen Sicherheitsvorkehrungen gibt es immer noch potenzielle Schwachstellen, insbesondere wenn GTM als Marketing-Tool eingesetzt wird.

Oft greifen Dritte oder Vermarkter mit erweiterten Rechten zur Erleichterung ihrer Arbeit auf GTM zu. Sollte jedoch eine dieser Personen oder Organisationen kompromittiert werden – zum Beispiel durch einen Phishing-Angriff – kann GTM als Hintertür fungieren, um bösartigen Code in Ihre Website einzuschleusen.

Standardmäßig erlaubt GTM Benutzern mit Vollzugriff, jeden JavaScript-Code ohne Verzögerung oder Genehmigungsverfahren zu veröffentlichen. Hieraus können sich schwerwiegende Sicherheitsprobleme ergeben, wenn die Zugangskontrolle nicht streng ist oder wenn es an einer ständigen Überwachung der Skripte fehlt, die über die Plattform bereitgestellt werden.

 

Implementierung in GatewayAPI

Wir haben den Zugriff auf die Freigabe von Änderungen in der Produktion auf eine sehr enge Gruppe vertrauenswürdiger Mitarbeiter beschränkt. Außerdem haben wir Benachrichtigungen erstellt, die an einen gemeinsamen Kanal in unserem Slack gesendet werden, wenn jemand Änderungen im Tag Manager veröffentlicht.

Obfuscated Javascript

Obfuskation und Minifikation verändern nicht den Code oder seine Funktionalität, sondern erschweren das Lesen durch Dritte. Außerdem kann die Obfuskation entfernt werden, sodass man sich nie allein auf die Obfuskation als Sicherheit verlassen kann. Aber es ist auf jeden Fall eine gute Idee, Hackern das Leben schwer zu machen, denn das kann einige davon abhalten, überhaupt einen Hackversuch zu unternehmen. Das ist ein bisschen so, als würde man sicherstellen, dass man das unattraktivste Haus in der Straße hat, um Einbrecher fernzuhalten.

 

Implementierung in GatewayAPI

Unser Javascript-Code wird jetzt nur noch in minifizierter und obfuskierter Form bereitgestellt. Zum Build-Zeitpunkt wird der gesamte Javascript-Code in einer einzigen Javascript-Datei zusammengefasst, die dann obfuskiert und minifiziert wird. Für Javascript wurde UglifyJS 3 verwendet, und für CSS wurde Minify eingesetzt, das unter anderem CleanCSS 5 verwendet.

Sicherheitsscans und Penetrationstests

Trotz umfangreicher Codeüberprüfung können selbst erfahrene Entwickler Sicherheitslücken übersehen. Ebenso können Schwachstellen entstehen, die zu diesem Zeitpunkt niemandem bewusst sind. Auch in Bibliotheken von Drittanbietern kann es Schwachstellen geben, die normalerweise bei einer Codeüberprüfung nicht entdeckt werden.

Um ein besseres Verständnis der Verbesserungsmöglichkeiten zu erhalten, untersuchten wir verschiedene automatisierte Scan- und Penetrationstest-Tools. Schließlich entschieden wir uns für HostedScan zur kontinuierlichen Verfolgung unserer Fortschritte bei der Verbesserung der Sicherheit.

HostedScan führte täglich Scans durch und meldete die Ergebnisse, die wir dann zur Bewertung unserer nächsten Schritte nutzten. Bei der Größe von GatewayAPI.com dauerte der Test fast 12 Stunden, was angesichts der Gründlichkeit des Tools auch zu erwarten war.

Wie beim Penetrationstest gruppiert die Plattform die gefundenen Probleme nach Schweregrad. Dies half uns ebenfalls, uns zuerst auf die kritischsten Probleme zu konzentrieren.

Wir führten auch einen externen Penetrationstest durch, über den Sie hier mehr lesen können.

Fazit

Für alle Organisationen ist es von entscheidender Bedeutung, ihre Sicherheitsmaßnahmen ständig zu überprüfen und zu verbessern, um sich vor neuen Bedrohungen zu schützen. Der Sicherheitsscan und der Penetrationstest bei GatewayAPI deckten einige Schwachstellen auf, die sofort behoben wurden.

Da wir stets um Transparenz bemüht sind, möchten wir unsere Erkenntnisse mit anderen teilen, in der Hoffnung, dass dieser Blogbeitrag andere Organisationen dazu ermuntert, ihre Systeme ebenfalls einem Service-Check zu unterziehen. Wer den Hackern immer einen Schritt voraus sein will, muss sich über Best Practices und die neuesten Sicherheitsfunktionen auf dem Laufenden halten.