Die Flut von unstrukturierten Daten wird zu einer immer größeren Herausforderung für die IT-Sicherheit. Auf relevante Security-Vorfälle hin zu untersuchen sind hier eine Vielzahl an IoT-Geräten, Web-Services, Mobilgeräte-Apps, Logs, Videos, Fotos, Chats etc. Die IT-Sicherheitsbranche setzt zu diesem Zweck zunehmend auf ML-Algorithmen (Machine Learning).
Bislang war es üblich, die Daten durch zentrale Security-Proxies, Scanner oder SIEM-Tools (Security-Information- und Event-Management) zu prüfen. Allerdings können Scanner und SIEM-Werkzeuge Signaturen bereits bei kleinen Modifikationen der Datenmuster nicht mehr wiedererkennen. Außerdem speichern viele Unternehmen nur die Logs. Dadurch können konventionelle Security-Lösungen die dahinter liegenden Datenstrukturen nicht exakt interpretieren - die relevanten Zusammenhänge bleiben im Dunklen.
Auch die Zugriffsmuster via API sind ein kritischer Punkt. In diesem Bereich stellt sich die Frage, wie man auf die Daten zugreifen kann und was die einzelnen HTTP- oder API-Parameter - etwa Request-Body-Anfragen und URLs - in einem Log konkret bedeuten. Eine solch einfache und typische Frage bei einem IT-Sicherheitsaudit können Entwickler häufig nicht vollständig beantworten.
Die Nutzung von Serialisierungs-Frameworks impliziert, dass der Entwickler die Kodierung der übermittelten Werte nicht genau kennt. Soll beispielsweise der Name Max Mustermann technisch übermittelt und gespeichert werden, ist es notwendig, dass die Parameter und die zugrunde liegenden Kodierungsverfahren exakt bekannt sind. Ein nicht exakt definiertes Interface zu schützen ist für klassische Systeme sehr schwierig, da sie eine exakte Spezifizierung erfordern.
Zusätzlich sind auch die Überprüfungs- und Update-Zyklen zu überdenken. Es reicht jedenfalls nicht mehr, einmal pro Jahr eine Sicherheitsevaluierung durchzuführen. Schließlich aktualisieren viele IT-Organsationen ihre Applikationen täglich neu; jede neue Codezeile kann hier eine Sicherheitslücke verursachen. Den Code nicht zu aktualisieren hieße aber im Gegenzug, längst bekannte Schwachstellen offenzulassen. Eine manuelle Evaluierung oder gar vollabdeckende Security-Tests bei größeren Anwendungen lassen sich allerdings nicht bei jeder Code-Änderung durchführen. Die Zeit für diese Tests blockiert die Veröffentlichung. Kritische Sicherheitsänderungen müssen deshalb schnell und automatisiert erkennbar sein.
Von einer intelligenteren Erkennung profitiert auch die Analyse der Kommunikationsmuster von Datenbanken. Ein Beispiel: Eine Anwendung kontaktiert eine Datenbank jede Minute und lädt 100 KByte an Daten. Nach einem Update werden plötzlich alle zwei Minuten 1 MByte an Daten geladen. Ist das normal oder steckt dahinter ein gezielter Angriff auf Kundendaten? Die Definition, was ein "normales" Kommunikationsmuster ist und was nicht, kann nur selten manuell erfolgen, weil die Anwendungen meist zu komplex sind. Ein solches Muster präzise zu identifizieren ist jedoch entscheidend für die Sicherheit.
Das gleiche Prinzip gilt auch beim Nutzerverhalten: Hat ein Anwender ein neues Smartphone, erweitert er seinen Freundeskreis oder geht er einem neuen Hobby nach, kann dies schnell zu einem komplett geänderten Benutzerverhalten führen. Aus Sicht der Analysesoftware kann dahinter aber auch ein Identitätsdiebstahl stecken. Das Problem: Wie genau ein Nutzer eine Anwendung einsetzt, lässt sich nur schwer antizipieren. Bei einer klassischen Sicherheitslösung ist es allerdings erforderlich, das von vornherein zu definieren, da sonst ein anormales Verhalten nicht festzustellen ist.
Außerdem erfolgt in vielen Fällen die Inventarisierung von möglichen Schwachstellen der IT-Sicherheit nur mangelhaft. So lässt sich häufig nur schwer feststellen, welche Kunden- und Unternehmensdaten tatsächlich online verfügbar sind. Da in Unternehmen heute viele Projekte in kurzen Abständen starten, ist eine lückenlose Dokumentation und Überprüfung schwierig. Ohne die Daten zu kennen, lässt sich aber kein effektiver Schutz gewährleisten.
Zu den klassischerweise am häufigsten auftretenden Sicherheitsvorfällen gehören vergessene Datenbank-Backups im Internet, von Entwicklern direkt in das Code-Repository eingebettete Schlüssel und das Publizieren unternehmensinterner Daten auf öffentlichen Websites. Unbedachte Handlungen und Fehlverhalten von Mitarbeitern werden so zu einem Risiko.
IT-Sicherheitsrichtlinien (Policies) können die ungewollte Herausgabe oder versehentliche Veröffentlichung von Daten verhindern. Allerdings handelt es sich bei diesen nur um administrative Maßnahmen - eine technische Kontrolle können sie nicht ersetzen.
Ob tatsächlich eine Sicherheitslücke besteht, prüft in größeren Unternehmen ein Security Operations Center (SOC). Dort analysiert geschultes Personal alle Ereignisse, um sie entweder zu eskalieren oder als falsche Alarme (False Positives) zu identifizieren. Sind weder eine Anwendung noch das entsprechende Kommunikationsmuster identifizierbar, gibt es in der Folge zwei Optionen: entweder eine sehr hohe Anzahl an Falschmeldungen oder aber nicht erkannte Angriffe (also False Negatives).
Unbekannte Kommunikationsmuster und normale API-Anfragen verursachen sehr viel falsche Alarme, die manuell zu bearbeiten sind - eine repetitive, langwierige und ressourcenintensive Aufgabe. Letzlich investieren Mitarbeiter viel Zeit in einfache, wenig strategisch Aufgaben, die man nicht notwendigerweise händisch erledigen müsste.
All diese Punkte sprechen für ein Security-Konzept, das Machine Learning (ML) aus der Cloud beinhaltet - nicht zuletzt, weil große Datenmengen eine nach Bedarf skalierbare Lösung verlangen. Sind kurzfristig mehrere TBytes an Daten zu evaluieren, muss das Unternehmen die Ressourcen dafür nicht dauerhaft vorhalten: Es bezahlt den Cloud-Service pro Stunde oder Datenmenge. Cloud-Provider bieten dabei Algorithmen, die sich innerhalb von Minuten einsetzen lassen, "als Baukasten" an. Passt eine bestimmte Architektur oder ein Algorithmus nicht zu den eigenen Anforderungen, so lässt er sich schnell und umkompliziert adaptieren.
Regel- und signaturbasierte Sicherheitssysteme erkennen eine Sicherheitsverletzung anhand definierter Muster. Allerdings kann jeder Angreifer mit Grundkenntnissen in ML ohne großen Aufwand eine Maschine trainieren, die ein Reverse Engineering der Verteidigungsregeln durchführt, um so das Sicherheitssystem leicht zu überwinden. Adaptive ML-Systeme dagegen erkennen und bewältigen auch solche Angriffe.
Unüberwachte ML-Systeme wurden entwickelt, um Muster in nicht-klassifizierten Daten zu erkennen. Zum Beispiel implementierte Amazon Web Services (AWS) Anfang 2018 den "Random Cut Forest"-Algorithmus, einen Algorithmus zur Anomalie-Erkennung, über einen vollständig verwalteten ML-Dienst. Dadurch kann jeder Entwickler und Data Scientist einen von AWS stammenden Algorithmus zur Erkennung von Anomalien nutzen. Dieser lässt sich auf beliebige Zeitreihen anwenden, etwa um eine Anomalie in einer bestimmten Zeitreihe aufzudecken. Dadurch kann der Verteidiger Gegenmaßnahmen ergreifen, indem entweder die Traffic-Quelle blockiert oder der Datenverkehr für notwendige Untersuchungen umgeleitet wird.
Andere Algorithmen zur Anomalie-Erkennung sind die Unterscheidung von Ausreißern aus einem gleitenden Durchschnitt oder anderen Statistiken, K-Means Clustering - in denen das Verhalten auf Cluster einer vorab definierten Anzahl (k) von Gruppen verteilt wird - und K-Nearest-Neighbors, also die Berechnung der Entfernung zu den k nächsten Nachbarn; ist diese Entfernung zu groß, wird der Punkt als Ausreißer definiert. Eine weitere Variante sind Autoencoder, wobei es sich um neuronale Netze (NN) zur Dimensionsreduktion handelt. Dabei werden Daten von hoher Komplexität (zum Beispiel Tausende von Attributen, also Dimensionen pro Datensatz) in Daten niedrigerer Komplexität (zum Beispiel nur noch Hunderte Attribute/Dimensionen oder weniger) umgewandelt, vergleichbar dem Reduzieren der Farbtiefe von Bildern, beispielsweise durch das Erhöhen des Kontrasts. Da die Informationsdichte in der codierten Repräsentation deutlich höher ist als in der ursprünglichen Form, fallen Anomalien hier stärker auf und sind deshalb leichter zu erkennen.
Überwachte ML-Systeme sind so konzipiert, dass sie zuerst Muster in klassifizierten Daten erkennen, zum Beispiel Sicherheitsverletzungen und anormales Verhalten. Das überwachte ML-System wird auf den Datensatz geschult und verwendet ihn als Ausgangslage. Nachdem es trainiert ist, kann man es auf einen neuen, nicht klassifizierten Datensatz anwenden, von dem nicht bekannt ist, ob es sich um einen Angriff handelt. Im Idealfall erkennt das trainierte ML-Modell die anormalen Verhaltensweisen und erkennt so potenzielle Angriffe.
Die Anwendungen können sowohl gemäß den Klassifizierungsmerkmalen als auch gemäß den Dateninhalten variieren. Wenn die Daten boolescher Art klassifiziert sind, etwa als "Angriff/nicht", ist es möglich, Algorithmen wie Logistic Regression, Decision Trees oder in ihren fortgeschrittener Formen Random Cut Forest und Gradient Boosting anzuwenden. Nearest Neighbors (NN) können, wie beschrieben, bei einer booleschen Klassifizierung Anwendung finden, aber auch auf jede andere Art von Datenstruktur. So ermöglicht es NN, Muster in Texten zu erkennen, etwa Kreditkartendaten oder personenbezogene Informationen. Rekurrente neuronale Netze (RNNs) sind eine gängige Technik zur Identifizierung solcher Muster.
Amazon Web Services nutzt eine breite Palette von ML-Algorithmen. So kommt Machine Learning beispielsweise zum Einsatz, um Daten automatisch zu erkennen, zu klassifizieren und anormale Benutzerzugriffe oder Verhalten zu identifizieren. Dazu klassifiziert Software zuerst Daten von Amazon-S3-Objekten mittels NLP (Natural Language Processing). Die Informationen werden nach Gruppen von Personen, Daten, Geschäftswert, Schlüsseln/Zertifikaten, Source Code, Datenbank-Backups, Kontoanmeldeinformationen und weiteren Parametern klassifiziert. Mit Hilfe von NN findet die Software dann Anomalien bei den Zugriffen auf diese Daten. Tritt eine Anomalie auf, generiert sie einen Alarm. Ein Dashboard gibt dem Administrator dann die erforderlichen Informationen.
Ein anderer Dienst untersucht AWS-Nutzerkonten und -Instanzen (Virtuelle Maschinen) fortlaufend auf bösartiges oder unbefugtes Verhalten. Die Software erkennt verdächtige Akteure mittels integrierter Informations-Feeds zu den jeweiligen Bedrohungen und nutzt maschinelles Lernen zur Erkennung von Angriffen innerhalb des Benutzerverhaltens und bestimmter Workloads. Erkennt der Service eine potenzielle Bedrohung, stellt er eine ausführliche Sicherheitswarnung bereit. Eine solche Bedrohung kann zum Beispiel Bitcoin-Mining, Malware, ein Port-Scan oder der Zugriff von einem potenziellen Malware-Server sein.
Für die Analyse mit Machine Learning finden folgende Quellen Verwendung: Netzwerk-Logs (etwa TCP-Aktivitäten), Benutzer-API-Aufrufe (Starten und Stoppen von EC2-Instanzen), DNS-Auflösung (Wohin kommuniziert eine Instanz im Internet?) und Threat-Intelligence-Quellen (Informationsdienste zu in Umlauf befindlicher Malware). Der Vorteil dabei ist, dass keine Agentensoftware auf dem Rechner erforderlich ist. Der Anwender erfährt somit keinerlei Performance-Einbußen oder Anwendungsprobleme wie zum Beispiel beim Einsatz eines Virenscanners.
Wer ein Konstrukt mit Bausteinen aufbauen möchte, kann Anwendungslogs oder Netzwerklogs (VPC FlowLogs) exportieren und durch einen Analytics-Dienst analysieren lassen. Dieser gruppiert die Daten anhand mehrerer Dimensionen und stellt Anomalien basierend auf dem "Random Cut Forest"-Algorithmus fest, darunter zum Beispiel eine untypische Netzwerk-Kommunikation oder ein auffälliges Nutzerverhalten.
Machine-Learning-Algorithmen, Cloud-Elastizität und Visibilität sind wichtige Hilfsmittel der Sicherheitsmitarbeiter, um mit der Datenflut und hoher Komplexität umgeben zu können. Die neuen ML-Möglichkeiten kommen ihnen dabei entgegen. Für die Security-Mitarbeiter in den Unternehmen heißt es deshalb nun, sich weiterzubilden, um die Prinzipien des Machine Learnings und die ML-Algorithmen zu verstehen.