04.10.2020 von Franziska Marx & Joscha Cepok

Potenzielle Angreifer:innen eines Webshops erkennen, noch bevor sie Schaden anrichten können - das ist das Ziel von Fraud Detection im E-Commerce. Ein Team von 5 neuländer:innen hat sich in einem einwöchigen Lab dieser Herausforderung gestellt und wertvolle Erkenntnisse gewonnen.

Die Möglichkeiten, in Online-Shops zu betrügen, sind vielfältig: die Angabe falscher Daten bei der Bestellung, Bots, die versuchen, sich mit fremden Nutzerdaten einzuloggen oder die massive Ausnutzung von Newsletter-Rabattgutscheinen. Der erste Schritt ist hierbei, entsprechende User Sessions zu identifizieren, um dann Angriffe gezielt abwehren zu können. Dies manuell zu tun ist aufgrund der riesigen Anzahl von Nutzerdaten kaum möglich. Besser geeignet sind Regeln, die User Sessions klassifizieren und mit Hilfe derer potenzielle Angreifer erkannt werden können. Doch auch diese Regeln müssen regelmäßig angepasst und erweitert werden, um neuen Verhaltensmustern der Nutzenden zu entsprechen. Die Teilnehmenden des neulandLabs "Fraud Detection" setzten daher auf die Möglichkeiten des Maschinellen Lernens, um automatisch Betrugsversuche aufzudecken, indem sie "böse Bots" erkennen.

neulandLab remote?

Üblicherweise zeichnet sich ein neulandLab dadurch aus, dass sich die Teilnehmenden für einen bestimmten Zeitraum räumlich von ihren Teams trennen und gemeinsam an einem anderen Ort an einem spezifischen Thema arbeiten. Die aktuelle Situation der Corona-Pandemie verlangte hier jedoch nach einer kreativen Lösung, da sich alle Teilnehmenden verteilt und räumlich getrennt voneinander im Home Office befanden. Zudem waren die Erfahrungen der Teilnehmenden mit den im Lab eingesetzten Technologien und Programmiersprachen wie Python, Sklearn, Data Science und Machine Learning äußerst unterschiedlich, was ein paralleles Bearbeiten von Teilaufgaben erschwerte. Das Lab setzte daher auf die agile Methode des Mob-Programming, bei der das gesamte Team an einem "Arbeitsplatz" sitzt. Jeweils ein Entwickler bzw. eine Entwicklerin programmiert und wird vom Rest der Gruppe unterstützt, die per Videokonferenz Zugriff auf den geteilten Bildschirm haben. Der Vorteil dabei ist, dass stark verteiltes Wissen gebündelt wird und alle Teilnehmenden zu jedem Zeitpunkt an der Entstehung des Softwareprodukts beteiligt sind.

Als gemeinsame Vorbereitung nutzte das Lab das Paper "Bot recognition in a Web store: An approach based on unsupervised learning" [Rovetta et al., 2020], das verschiedene Methoden von Angriffen und deren Erkennung im Kontext des E-Commerce beschreibt.

Schritt 1: Daten aufbereiten

Die erste Aufgabe des Labs bestand darin, die vorhandenen Daten so vorzubereiten, dass diese als Trainingsdaten für das Machine Learning genutzt werden können. Zunächst mussten daher die in Request-Form vorliegenden Daten zu Sessions zusammengefasst werden, da sich aus einem einzelnen Request kein Betrugsversuch ableiten lässt. Anschließend wurden aus diesen Sessions Features extrahiert. Ein Feature bezeichnet hier ein Entscheidungskriterium für das Machine Learning, also z.B. die Zeit zwischen zwei Requests. Ist diese Zeitspanne sehr gering, kann das ein Hinweis darauf sein, dass es sich beim Nutzer nicht um einen Menschen, sondern um einen Bot handelt. Daraus konnten im letzten Schritt Labels abgeleitet werden, um die Sessions als "Angriff" und "kein Angriff" deklarieren zu können. Dazu wurde der bereits vorhandene Suspicion Score verwendet, wobei die "verdächtigen" Sessions nicht berücksichtigt wurden.

Um später die Erfolgsrate des Modells messen zu können, wurden die Sessions in zwei Gruppen aufgeteilt. 80% der Sessions wurden zum Trainieren des ML-Modells verwendet, während 20% als Test-Datenset diente.

Schritt 2: Training

Nun ging es daran, die Machine-Learning-Modelle zu trainieren. Im ersten Ansatz wurde ein k-Means-Algorithmus verwendet, um Cluster zu bilden. Dabei wird aus einer Menge von ähnlichen Objekten eine vorher bekannte Anzahl von k Gruppen gebildet. Enthält eine Gruppe überwiegend Sessions, die als "Fraud" gekennzeichnet waren, wird auch dieses Cluster als "Fraud" gekennzeichnet. Die Wirksamkeit dieser Methode lässt sich nun prüfen, indem das Test-Datenset auf dieselbe Weise in die definierten Cluster verteilt und dann überprüft wird, ob die "Fraud-Sessions" und "Nicht-Fraud-Sessions" in den entsprechenden Clustern wiederzufinden sind. Wie gut dies funktioniert, lässt sich anschließend in einem Score ausdrücken, der das Verhältnis von richtig klassifizierten Sessions zu allen Sessions angibt.

Im zweiten Ansatz wurde ein Random-Forest-Algorithmus angewendet, um die Daten zu klassifizieren. Ein Random-Forest besteht aus einem Ensemble von Entscheidungsbäumen, die alle anhand einer zufällig ausgewählten Teilmenge von Features für sich versuchen, eine Session als “Fraud” oder “Nicht-Fraud” zu erkennen. In dem Lab wurde ein “Wald” aus 100 solcher zufälligen Entscheidungsbäume gebildet, der Random-Forest, wobei die Entscheidung des Random-Forest-Algorithmus sich als Mehrheitsbeschluss aller einzelnen Entscheidungsbäume zusammensetzt.
Bei beiden Methoden wurde ein Score von über 99% erreicht, der im Falle von k-Means durch die Skalierung der Daten optimiert werden konnte.

Schritt 3: Klassifikation

Mit diesen zwei trainierten Modellen versuchten die Teilnehmenden nun, die "verdächtigen" Sessions genauer zu untersuchen und diese als "Angriff" oder "kein Angriff" klassifizieren zu können. Das Datenset umfasste Sessions einer Zeitspanne von 6 Tagen, bei denen 248 Sessions als "Angriff" deklariert waren, 4686 Sessions als "kein Angriff" und 3131 Sessions als "verdächtig". Durch die Extraktion von fünf verschiedenen Features und die Anwendung der beiden Modelle konnten tatsächlich 9% der verdächtigen Sessions als "Angriff" klassifiziert werden, also rund 280 Sessions.

Fazit

Die Bilanz des Labs fällt damit äußerst positiv aus. Trotz weniger Vorkenntnisse in Machine Learning bei einigen Teilnehmenden hatten sie es binnen weniger Tage geschafft, ein gemeinsames Verständnis von KI und Fraud Detection aufzubauen und das Wissen im Team zu streuen. Durch die Anwendung der beiden Machine-Learning-Modelle konnte nicht nur die Qualität des bisherigen Systems erreicht werden, sondern dieses sogar verbessert werden, indem mit Unsicherheiten ("verdächtige" Sessions) umgegangen werden konnte. Hier sehen die Lab-Teilnehmenden großes Potenzial für weitere neuland-Kunden.