Web- und App-Sicherheit für FinTechs

Web- und App-Sicherheit für FinTechs

Inhalte

Viele Start-ups im Finanzsektor nehmen es mit der Sicherheit ihrer Webseiten und Apps nicht so genau, wie sie sollten. Bei klassischen Banken sieht es nicht anders aus. Durch eine rasant wachsende Bedrohungslage stehen Unternehmen im Finanzsektor vor der großen Aufgabe, die Funktionalität der eigenen Systeme wie auch die Sicherheit der Kundendaten zu gewährleisten. Wie sehen moderne und intelligente Lösungen im Bereich Cybersicherheit für Banken und FinTechs aus?  

Für eine ausführliche Darstellung der aktuellen Bedrohungslage (im Finanzsektor) und eine Aufstellung möglicher Bedrohungsarten verweisen wir an dieser Stelle auf unseren vorangehenden Beitrag zum Thema möglicher Cyberangriffe.

Zusammenfassung

Immer wieder zeigen Studien die Schwächen der großen FinTechs auf. Wiederholt handelt es sich hier um alte Software auf vergessenen Subdomains oder vernachlässigte APIs. Resultierend aus teils gravierenden Schwächen erfüllen die meisten FinTechs angelegte Anforderungen an Verschlüsselung, Sicherheit und Datenschutz nicht. Immerhin: Bei Web-Präsenzen schließen FinTechs größtenteils besser ab als klassische Banken.

Selbstverständlich gilt, obgleich der Finanzsektor hier gesondert angesprochen wird, dass sich Unternehmen aller Branchen vor Cyberangriffen schützen müssen. In den ersten Monaten des Jahres 2021 wurden bereits zahlreiche international tätige Konzerne aus der Lebensmittelindustrie oder auch Energiewirtschaft Ziel von professionellen Cyberattacken.

Sicherheitslage von FinTechs

Sicherheitsexperten und -Analysten der auf Websicherheit spezialisierten Firma ImmuniWeb haben sich in einer Untersuchung der 100 größten Unternehmen der FinTech-Branche deren Sicherheitssysteme genauer angesehen. Sämtliche durchgeführte Tests wurden dabei ausschließlich anhand von Informationen durchgeführt, welche sich aus dem öffentlichen Netz einholen lassen. Genauer bedeutet das, dass die Firma in keinerlei Computersysteme oder Netze der zu überprüfenden Unternehmen eingedrungen ist.

Teil der Untersuchung waren sowohl die Webseiten der FinTechs inklusive aller Subdomains und erkennbarer API-Endpunkte als auch deren Apps. Getestet wurde die Sicherheit der derzeitig im Einsatz befindlichen Software, die Konfiguration der SSL-Verschlüsselung und die Möglichkeit, Phishing-Angriffe gegen die Betreiber der Webseiten und Apps zu fahren. Darüber hinaus wurde das Einhalten der EU-DSGVO und des Kreditkarten-Datenverarbeitungsstandards PCI DSS geprüft.

Zu den meisten auftretenden Sicherheitslücken zählen:

  • Diverse Variationen von Cross-Site Scripting (XSS)
  • Aufgetretene Datenlecks
  • Falsch konfigurierte Sicherheitseinstellungen

Problematisch ist zudem, dass die Hälfte aller Server-Backendsysteme, die eigentlich ausschließlich mit mobilen Apps kommunizieren sollten, auch Teile ihrer Daten an Dritte preisgeben. Daraus können Datenschutzprobleme, aber auch gefährliche Sicherheitslücken resultieren, die unter Umständen für Cyberangriffe genutzt werden.

Positiv: FinTechs sind Banken nahezu überall voraus – insgesamt schließen die 100 getesteten Start-ups fast überall besser ab als die ersten 100 Kreditinstitute der S&P Global-Liste der größten Banken. Ein Grund dafür ist, dass eine traditionelle Bank, die bereits jahrzehntelang mit unterschiedlicher Software arbeitet, mehr „Altlasten“ hat als ein junges FinTech.

Zusammenfassend ist es für den gesamten Finanzsektor und auch darüber hinaus wichtig, den Sicherheitsstandard hochzuhalten, um sich gegen die wachsende Bedrohung von Cyberangriffen zu rüsten.

Schutz vor Cyberangriffen

Folgend gehen wir genauer auf potenzielle Sicherheitslücken und -funktionen bei Android und Webanwendungen ein. Sowohl Banken wie auch FinTechs sind meist auf allen Plattformen vertreten, weshalb die Sicherheit auf den einzelnen Plattformen selbst wie auch übergreifend hoch sein muss.

Mobile Apps sicher gestalten am Beispiel Android

Android selbst verfügt über eingebaute Sicherheitsfunktionen, die die Häufigkeit und auch die Auswirkungen von Sicherheitsproblemen bei Anwendungen in erheblichem Umfang reduzieren. Konzipiert ist das System so, dass Apps in der Regel nur auf eigene Daten zugreifen und für sonstige Berechtigungen – etwa dem Zugriff auf Kontaktinformationen oder die Kamera – die explizite Erlaubnis des Nutzers notwendig ist. Das Betriebssystem setzt somit ein sehr restriktives Berechtigungskonzept um.  

 

Folgende zentrale Sicherheitsfunktionen helfen dabei, sichere Apps zu entwickeln:

  • Android App Sandbox, die Daten und die Codeausführung einer App von anderen Apps isoliert. Die Android-Plattform nutzt dabei den benutzerbasierten Linux-Schutz, um App-Ressourcen identifizieren und isolieren zu können. Diese Isolation schützt das gesamte System und damit auch andere Apps vor Schäden. Zu diesem Zweck weist Android jeder Android-Anwendung eine eindeutige Benutzer-ID (UID) zu und führt sie in einem eigenen Prozess aus.
  • Anwendungsdefinierte Berechtigungen zur Steuerung von Anwendungsdaten auf einer Pro-App-Basis. Beispielsweise muss der Kamerazugriff für jede App separat genehmigt werden. Dabei kann der Nutzer auch zwischen einer einmaligen und einer generellen Erlaubnis unterscheiden.
  • Verschlüsselte Datensysteme, die aktiviert werden können, um Daten auf verlorenen oder gestohlenen Geräten zu schützen. Um diese zu aktivieren, muss der Android-Nutzer sein Gerät lediglich über die „Einstellungen“ „Sicherheit“ mit einer PIN schützen und die Verschlüsselung standardmäßig aktivieren. Je nach Smartphone-Hersteller geschieht dies bereits bei der initialen Einrichtung des Geräts.
  • Erstellen von Anwendungs-Frameworks mit robusten Implementierungen gängiger Sicherheitsfunktionen wie Kryptografie, Berechtigungen und sicherer IPC (interprocess communication).

Diese Sicherheitsfunktionen bilden häufig den Grundbaustein für App-Entwicklungen. Es gibt zahlreiche Möglichkeiten, Sicherheitsfunktionen zu implementieren. Hier erläutern wir drei wichtige Elemente: Die Speicherung von Daten, das Android-Keystore-System und Sicherheit beim Programmieren mit nativem C/C++ Code.

Sichere Datenspeicherung

Die häufigsten Sicherheitsbedenken für eine Anwendung auf Android sind, ob die auf dem Gerät gespeicherten Daten für andere Apps zugänglich sind oder nicht. Es gibt drei grundlegende Möglichkeiten, Daten auf Geräten zu speichern: Interner und Externer Speicher sowie die Nutzung von Dritt-Anbietern. Die korrekte Speicherung von Daten ist für Unternehmen und deren Kunden von großer Bedeutung.

Interner Speicher

Standardmäßig sind Dateien, die im internen Speicher erstellt werden, nur für die App selbst zugänglich. Ein solcher Schutz wird bereits durch die Android-App Sandbox implementiert und ist für die meisten Anwendungen ausreichend. Zu vermeiden sind dabei IPC-Dateien wie MODE_WORLD_WRITEABLE oder MODE_WORLD_READABLE, die weder die Möglichkeit bieten, den Datenzugriff auf bestimmte Anwendungen zu beschränken, noch eine Kontrolle über das Datenformat ermöglichen. Sollten dennoch spezifische Lese- und Schreibrechte für andere Apps notwendig sein, sollte auf dynamische Berechtigungsvergaben gesetzt werden.

Externer Speicher

Dateien, die auf externem Speicher erstellt wurden, sind global lesbar und beschreibbar. Da externer Speicher vom Benutzer manipuliert und auch von jeder anderen Anwendung geändert werden kann, sollten sich hier keine sensiblen Informationen befinden. Zum sicheren Lesen und Schreiben von Dateien auf externem Speicher sollte die Security-Bibliothek verwendet werden, die die Funktion EncryptedFile bereitstellt.

Bei der Eingabe und Verarbeitung von Daten aus externen Speichern sollte eine Eingabe- bzw. Datenvalidierung durchgeführt werden, genauso wie bei Daten von nicht vertrauenswürdigen Quellen.

Dritte Anbieter: Content Provider

Content Provider bieten einen meist gut strukturierten Speichermechanismus, der den Datenzugriff auf die eigene Anwendung beschränkt, bei Bedarf aber den Zugriff durch andere Anwendungen ermöglichen kann. Wenn ein solcher Zugriff nicht beabsichtigt ist, solle der Zugriff durch eine entsprechende Konfiguration verwehrt werden.

  • Zugriff auf gespeicherte Daten ermöglichen: Das Attribut android:exported im Manifest der App auf true
  • Zugriff nicht ermöglichen: Markieren des Content-Providers als android:exported=false.

Bei der Erstellung eines Content-Providers, der für die Verwendung durch andere Anwendungen exportiert wird, gibt es darüber hinaus unterschiedliche Möglichkeiten, den Zugriff zu gewähren. Es kann eine einzige oder auch mehrere Berechtigungen für das Lesen und Schreiben geben. Grundregel ist, die Berechtigungen auf das zu beschränken, was zur Erfüllung der jeweiligen Aufgabe erforderlich ist. In der Regel ist es einfacher, nachträglich Berechtigungen hinzuzufügen, um neue Funktionen freizugeben, als sie zu entfernen und bestehende Nutzer zu beeinträchtigen.

Android Keystore System

Mithilfe des Android-Keystore-Systems (AKS) können kryptographische Schlüssel gespeichert werden, um deren Extraktion aus dem Gerät zu erschweren. Sobald sich Schlüssel im Keystore befinden, können diese für kryptographische Operationen verwendet werden – wie etwa die Verschlüsselung von Daten oder ganzen Datenbanken.

Darüber hinaus bietet es Möglichkeiten, einzuschränken, wann und wie Schlüssel verwendet werden können, wie z.B. das Erfordern einer Benutzerauthentifizierung für die Schlüsselverwendung – via PIN oder biometrischer Authentifizierung am Gerät oder die Einschränkung, dass Schlüssel nur in bestimmten kryptografischen Modi verwendet werden dürfen.

Das AKS schützt das Schlüsselmaterial vor unbefugter Nutzung. Diese Sicherheitsfunktion wirkt erstens gegen die Extraktion des Schlüsselmaterials aus Anwendungsprozessen und dem Android-Gerät als Ganzes. Zweitens wirkt es gegen die unbefugte Nutzung, indem die App die autorisierte Verwendung ihrer Schlüssel festlegen und diese Einschränkungen auch außerhalb der Prozesse durchsetzen kann.

Aufgepasst bei der SDK vs. NDK Wahl

Im Allgemeinen sollte das Android-SDK (Software Development Kit) für die Anwendungsentwicklung genutzt werden, welches auf die Programmiersprache Kotlin (ehemals Java) setzt und oben aufgeführte Sicherheitsmerkmale von Haus aus mitbringt. Es gibt jedoch auch Sonderfälle, wie etwa anspruchsvolle 3D Spiele, welche stattdessen in C/C++ Code mit dem Android NDK (Native Development Kit) erstellt werden. Mit dem NDK erstellte Anwendungen sind komplexer, weniger portabel und neigen eher dazu, Speicherfehler zu enthalten. Wenn mit nativem Code gearbeitet wird, ist es von großem Nutzen, Kenntnis der Best Practices für die Sicherheit bei der Linux-Entwicklung zu haben, denn Android wird mit dem Linux-Kernel erstellt.

Ein wichtiger Unterschied zwischen Android und den meisten Linux-Umgebungen ist die Anwendung Sandbox. Unter Android werden alle Anwendungen in der App Sandbox ausgeführt, auch solche, die mit nativem Code geschrieben wurden.

Webanwendungen richtig absichern

Webanwendungssicherheit stellt den Prozess des Schutzes von Webseiten und Online-Diensten vor verschiedenen Sicherheitsbedrohungen dar. Häufig werden Webanwendungen aufgrund von Schwachstellen im Code der Anwendung angegriffen. Häufige Ziele für Angriffe sind Content-Mangement-Systeme (z.B. WordPress), Datenbankverwaltungstools (z.B. phpMyAdmin) und SaaS-Anwendungen (z.B. CRM-Systeme).

Warum werden Webanwendungen als hoch prioritäre Ziele für Cyberangriffe angesehen? Gründe hierfür sind:

  • Die inhärente Komplexität des Quellcodes, die die Wahrscheinlichkeit von unbeaufsichtigten Schwachstellen und bösartigen Code-Manipulationen erhöht.
  • Hoher Ertragswert für Angreifer, einschließlich sensibler privater Daten, die durch erfolgreiche Quellcode-Manipulationen gesammelt werden.
  • Einfache Ausführung, da die meisten Angriffe leicht automatisiert und wahllos gegen Zehntausende oder gar Hunderttausende von Zielen auf einmal gestartet werden können.

Sicherheitslücken in Webanwendungen

Schwachstellen in Webanwendungen sind häufig das Ergebnis einer fehlenden Bereinigung von Eingaben und Ausgaben, die auch bei FinTechs und allen voran traditionellen Banken zu finden ist. Solche Altlasten können für die Manipulation des Quellcodes genutzt werden und unter Umständen unberechtigten Zugriff für Angreifer ermöglichen.

Solche Schwachstellen ermöglichen die Nutzung verschiedener Angriffsvektoren, darunter:

  • SQL Injeciton – Tritt auf, wenn ein Angreifer bösartigen SQL-Code verwendet, um eine Backend-Datenbank so zu manipulieren, dass sie Informationen preisgibt. Folgen reichen vom unbefugten Zugriff auf Daten bis zu administrativem Zugriff.
  • Cross-Site Scripting (XSS) zählt im Finanzsektor zu den häufigsten und gravierendsten Sicherheitslücken. XSS ist ein Injektionsangriff, der auf Benutzer abzielt, um auf Konten zuzugreifen, Trojaner zu aktivieren oder Seiteninhalte zu modifizieren.
  • Remote File Inclusion – Angreifer nutzen diese Art von Angriff, um eine Datei per Fernzugriff in einen Webanwendungsserver zu injizieren. Solche Angriffe können zum Diebstahl oder zur Manipulation von Daten führen.
  • Cross-Site-Request Forgery (CSRF) ist ein Angriff, der zu einer unaufgeforderten Überweisung von Geldern, geänderten Passwörtern oder Datendiebstahl führen kann. Auch CSRF zählt für den Finanzsektor zu den größten Bedrohungen.

Theoretisch kann die gründliche Bereinigung der Eingaben und Ausgaben viele Schwachstellen und Sicherheitslücken beseitigen und eine Anwendung beinahe immun gegen unrechtmäßige Manipulationen machen. In der Praxis ist eine vollständige Bereinigung meist keine Option, da sich die meisten Anwendungen in einem ständigen Entwicklungsstadium befinden. Außerdem erschweren komplexe Integrationen unterschiedlichster Anwendungen das Auffinden solcher „Altlasten“. 

Um solche Bedrohungen zu vermeiden, sollten Sicherheitslösungen für Webanwendungen und erzwungene Sicherheitsverfahren wie die Zertifizierung nach dem PCI Data Security Standard (PCI DSS) eingesetzt werden. Auch der Sicherheitsstandard PCI DSS ist für die Finanzbranche von enormer Bedeutung, dahingehend gilt es, diese Sicherungen laufend zu optimieren.

Application Firewalls (WAFs)

Hinter WAFs stecken Hard- und Softwarelösungen, die zum Schutz vor Sicherheitsbedrohungen für Anwendungen eingesetzt werden. Diese Lösungen sind so konzipiert, dass sie den eingehenden Datenverkehr untersuchen, um Angriffsversuche zu blockieren und so eventuelle Defizite bei der Code-Bereinigung auszugleichen. Durch den Schutz der Daten vor Diebstahl und Manipulation erfüllt der Einsatz von WAF ein wichtiges Kriterium für die PCI DSS-Zertifizierung. So besagt der Datenverarbeitungsstandard beispielsweise, dass alle in einer Datenbank gespeicherten Daten von Kredit- und Debitkarteninhabern geschützt werden müssen.

In der Regel erfordert der Einsatz einer WAF keine Änderungen an einer Anwendung, da sie vor der DMZ (Demilitarisierte Zone) am Rand des Netzwerks platziert wird. Von dieser Position fungiert sie als Gateway für den gesamten eingehenden Datenverkehr und blockiert bösartige Anfragen, bevor sie überhaupt die Chance haben, mit der Anwendung zu interagieren. Selbstverständlich müssen auch WAFs stets dem aktuellen Stand der Bedrohung gerüstet sein.

Fast alle WAFs können spezifisch für bestimmte Anwendungsfälle und Sicherheitsrichtlinien konfiguriert werden. So können beispielsweise Banken und FinTechs besonderen Wert auf den Schutz vor individuellen und branchenspezifischen Angriffen legen und ihre Sicherheitssysteme dementsprechend aufbauen.

Zielsetzung: Cybersicherheit

Grundlegend ist klar, dass ebenso wie die Sicherheit in einer Bankfiliale selbst nie garantiert werden kann, der Schutz auch im digitalen Zeitalter nicht zu 100% gegeben ist. Wichtig sind daher, allen voran für die Finanzbranche, die ständige Kontrolle und Modernisierung der genutzten Systeme.

Guter Schutz vor Cyberangriffen beginnt bereits beim Design von Anwendungen (Stichworte Security-by-Default und Security-by-Design) und endet erst dann, wenn eine Anwendung von Kunden nicht mehr genutzt wird und interne und externe Daten gelöscht wurden.

Auch im Hinblick auf Compliance-Regularien steht insbesondere der Bankensektor klar im Fokus der Regulatoren. Dahingehend ist es von großer Bedeutung, sich klar an geltende Sicherheitsstandards zu halten und unter Umständen auch darüber hinaus Schutz zu bieten. Moderne und zielgerichtete Sicherheitssysteme sind dabei zudem im Hinblick der Betrugserkennung und -prävention sowie für Audits von Bedeutung.

Die Herausforderungen im Bereich der Cybersicherheit werden in den kommenden Jahren zunehmen. Gerne meistern wir diese gemeinsam mit Dir. Meld dich bei Fragen oder Anregungen bei uns!

Informiert bleiben?

Nie mehr Neuigkeiten verpassen.
Folge uns auf LinkedIn oder melde dich für den Newsletter an.

Sören Elser ElevateX GmbH

Dein Ansprechpartner

Sören Elser

Co-Gründer ElevateX GmbH und dein Ansprechpartner für den Einsatz von Freelancern. 

Baue auf Expertise.
Arbeite mit qualifizierten Experten.