Machine Learning zur Absicherung von IT-Systemen: Gegen welche sicherheitskritischen Angriffe kann ML ein wirksames Mittel sein, welche Methoden sind dafür relevant und wie können Firmen sie implementieren? Und welche Rolle spielt Machine Learning im Vergleich zu klassischen Sicherheitsmechanismen? Das alles erfuhren wir im Interview mit Daniel Etzold, IT-Security-Architekt bei der 1&1 Mail & Media Development & Technology GmbH.
Machine Learning zur Absicherung von IT-Systemen: Gegen welche sicherheitskritischen Angriffe kann ML ein wirksames Mittel sein, welche Methoden sind dafür relevant und wie können Firmen sie implementieren? Und welche Rolle spielt Machine Learning im Vergleich zu klassischen Sicherheitsmechanismen? Das alles erfuhren wir im Interview mit Daniel Etzold, IT-Security-Architekt bei der 1&1 Mail & Media Development & Technology GmbH.
Entwickler: Machine Learning kann zur Erkennung von Hackerangriffen eingesetzt werden – aber setzen andererseits auch Hacker vermehrt Machine Learning ein, um Angriffe durchzuführen?
Daniel Etzold: Ja, Hacker setzen Machine Learning bereits heute auf sehr unterschiedliche Art und Weise ein. Schon seit längerem werden CAPTCHAs automatisch mit Machine Learning gelöst. Insbesondere durch die Entwicklungen im Bereich des Deep Learning haben Hacker hier einen großen Vorteil erlangt. Machine Learning kommt aber auch bei Brute-Force-Angriffen zum Einsatz, wenn es darum geht, Passwörter mit möglichst wenig Versuchen zu erraten. Aus Datensätzen mit geleakten Benutzernamen und Passwörtern können oft verwendete Muster bestimmt und diese anschließend zur Generierung von zu testenden Passwörtern verwendet werden. Schließlich kommt Machine Learning auch immer mehr bei der Entwicklung von Malware zum Einsatz. Hacker nutzen hier als „Malware Evasion Techniques“ bezeichnete Methoden, um einer Entdeckung durch Antivirenprogramme zu entgehen.
Hacker werden in Zukunft verstärkt Machine Learning einsetzen.
Teilweise werden dafür neue Ansätze von den Hackern selbst entwickelt. Hacker nutzen aber auch Ansätze, die von White Hats kommen, also von den „Guten“, und ursprünglich mit dem Ziel entwickelt wurden, die Sicherheit eines Systems oder einer Software zu erhöhen. Zum Beispiel können Tools zur statischen und dynamischen Analyse von Software, bei der immer mehr Machine Learning zum Einsatz kommt, auch von Black Hats verwendet werden, um Schwächen in einer Anwendung zu finden.
Sicher ist, Hacker werden in Zukunft verstärkt Machine Learning einsetzen. Einerseits werden bekannte Angriffstechniken optimiert, und andererseits müssen wir auch davon ausgehen, dass durch neue Entwicklungen auf dem Gebiet des maschinellen Lernens ebenfalls neue Angriffstechniken und neue Bedrohungen entstehen können. Beispiele wie Deep Fakes, Voice Cloning oder Adversarial Examples lassen das bereits erahnen.
Entwickler: Kann diesen Angriffen im Gegenzug auch nur mittels Machine Learning begegnet werden?
Daniel Etzold: In meinen Augen kann mit klassischen Ansätzen bereits ein sehr hohes Sicherheitsniveau erreicht werden. Nach wie vor sind Firewalls notwendig. Es muss Awareness geschaffen werden und Sicherheit muss in den Software Development Lifecycle in allen Phasen der Softwareentwicklung – von der Planung über die Entwicklung bis hin zum Betrieb – integriert werden.
Machine Learning kann die klassischen Ansätze aber ergänzen. Zum Beispiel profitieren Tools, die Quellcode analysieren oder automatische Tests wie Scans oder Fuzzing durchführen, von Machine Learning. Klassische Ansätze kombiniert mit Machine Learning helfen somit Schwachstellen zu vermeiden, so dass Angriffe weniger wahrscheinlich werden.
Entwickler: An welchen Bereichen stoßen klassische Ansätze zur IT-Security an ihre Grenzen und wie kann Machine Learning dort weiterhelfen?
Daniel Etzold: Klassische Ansätze stoßen schnell an ihre Grenzen, falls trotz aller Maßnahmen doch noch eine Schwachstelle existiert, die von einem Hacker ausgenutzt werden kann, um zum Beispiel Zugriff auf ein System zu bekommen.
Bei Intrusion-Detection-Systemen und der Erkennung von Malware spielt Machine Learning seine Stärken aus.
Intrusion-Detection-Systeme helfen dabei, so etwas zu erkennen. Je nach eingesetztem System werden hier Netzwerk-Traffic und Aktivitäten auf einem Host überwacht. Klassische Intrusion-Detection-Systeme verwenden oft Regeln. Diese erkennen zwar bestimmte Angriffe anhand von typischen Signaturen sehr zuverlässig, sind aber nicht in der Lage, unbekannte Angriffe wie Zero-Day-Exploits zu erkennen.
Auch regelbasierte Antivirenprogramme haben in der Regel Probleme, polymorphe Malware zu erkennen. Das ist Malware, die ihren Code mit jeder neuen Kopie ändert, so dass eine Signaturprüfung nicht mehr möglich ist.
Gerade im Bereich der Intrusion-Detection-Systeme und der Erkennung von Malware spielt Machine Learning aber seine Stärken aus.
Entwickler: Welche Arten von Machine Learning eignen sich zur Erkennung sicherheitsrelevanter Angriffe und worin unterscheidet sich deren Einsatz?
Daniel Etzold: Zur Erkennung sicherheitsrelevanter Angriffe eignen sich drei Arten von Machine Learning: Unsupervised Learning, Supervised Learning und Semi-supervised Learning.
Methoden des Unsupervised Learning werden im Wesentlichen verwendet, um einen Datensatz zu analysieren. Häufig kommen Cluster-Algorithmen zum Einsatz, die Daten gruppieren. Daten mit ähnlichen Eigenschaften werden der gleichen Gruppe zugewiesen. Daten, die sich nicht ähneln, befinden sich in unterschiedlichen Gruppen. Auf diese Weise können Ausreißer identifiziert werden, die auf einen Angriff hindeuten können.
Beim Supervised Learning wird ein Modell anhand von Beispielen erstellt, für die die Labels bekannt sind. Ein solches Verfahren eignet sich zum Beispiel sehr gut, um einen lernenden Spamfilter zu implementieren. Theoretisch ließen sich mit diesem Ansatz auch Intrusion-Detection-Systeme realisieren, die Aktivitäten im Netzwerk oder auf einem Host als normal oder als Angriff klassifizieren. In der Praxis verfügt man allerdings selten über Beispiele für Angriffe, weshalb Supervised Learning selten eingesetzt werden kann.
Deshalb kommt zur Erkennung von Angriffen meist Semi-supervised Learning zum Einsatz. Häufig wird ein Modell vom normalen Verhalten eines Systems erstellt. Sollte es von diesem Modell während des Betriebs eine Abweichung geben, kann das auf einen Angriff hindeuten. Beispiele von Angriffen werden zur Erstellung des Modells nicht mehr benötigt.
Entwickler: Gibt es mögliche Fallstricke, die beim Einsatz von Machine Learning im Security-Bereich zu beachten sind?
Daniel Etzold: Natürlich gibt es auch einige Dinge, die beachtet werden müssen. Wenn ein Modell vom normalen Verhalten erstellt wird, sollten nur saubere Daten verwendet werden. Während des Trainings sollte also kein Angriff stattfinden. Ansonsten besteht die Gefahr, dass ähnliche Angriffe nicht mehr erkannt werden. Um sicherzugehen, dass nur saubere Daten verwendet wurden, sollten die Daten deshalb im Anschluss mithilfe einer Clusteranalyse auf Ausreißer hin untersucht werden.
Wenn ein Modell vom normalen Verhalten erstellt wird, sollten nur saubere Daten verwendet werden.
Weiterhin hat natürlich die Genauigkeit ihre Grenzen. Nicht alle Angriffe werden erkannt, das heißt es kommt zu falsch-negativen Findings. Weiterhin wird das eine oder andere normale Verhalten auch als Angriff eingestuft. Es kommt also zu falsch-positiven Findings. Beide Fehler können durchaus eine gewisse Eigendynamik entwickeln. Wird ein Angriff nicht erkannt, kann ein Hacker im Worst Case möglicherweise Daten stehlen oder die Infrastruktur lahmlegen. Kommt es zu häufigen Fehlalarmen, entsteht unnötiger manueller Aufwand bei der aufwändigen Überprüfung der Findings.
Zusätzlich sollte beachtet werden, dass sich das normale Verhalten eines Systems aufgrund geänderten Nutzerverhaltens, nach einem Softwareupdate oder Neukonfiguration der Systemparameter ändern kann. Jedes Mal kann es zu Fehlalarmen kommen. In solchen Fällen sollte das Machine-Learning-Modell einfach und automatisch neu trainiert werden können.
Entwickler: Welche Tipps kannst du Unternehmen geben, die ihre IT-Systeme bisher noch nicht mithilfe von ML schützen, aber gerne damit beginnen würden?
Daniel Etzold: Wie fast überall gibt es auch bei der Erkennung von Angriffen mit Machine Learning nicht die eine Lösung, die alle Probleme löst. Deshalb sollte man sich zunächst überlegen, wo das größte Risiko besteht und dort investieren. Möchte man sich vor Brute-Force-Angriffen oder Abuse von außen schützen oder stellen Insider Threats das größte Risiko dar? Je nach Antwort kommen unterschiedliche Methoden zum Einsatz.
Egal was eingesetzt wird, es sollten kleine Schritte gemacht werden. In der Regel weiß man a priori nicht, ob ein System in die eigene Umgebung passt und welche Genauigkeiten das System erzielen wird. Machine-Learning-Systeme müssen trainiert und justiert werden. Parameter müssen konfiguriert und an die eigene Umgebung angepasst werden. Kleine Schritte machen das Risiko, dass ein System nicht in die eigene Systemlandschaft passt, überschaubar.
Systeme sollten auch getestet werden, zum Beispiel durch Simulation von Angriffen: Wie reagiert ein System, wenn eine absichtlich eingebaute Schwachstelle ausgenutzt wird? Wenn Tools eingesetzt werden, die den Quellcode von Software analysieren, sollte überprüft werden, dass diese Tools absichtlich eingebaute Schwächen im Code finden.
Egal was eingesetzt wird, es sollten kleine Schritte gemacht werden.
Viele Systeme sind eine Black-Box. Oft ist nicht klar, warum ein Alarm zustande gekommen ist. Machine-Learning-Systeme produzieren aber auch Fehlalarme. Jeder Fehlalarm muss untersucht werden, wodurch manueller Aufwand und somit Kosten entstehen. Deshalb sollte darauf geachtet werden, dass ein Alarm leicht interpretierbar ist und dass alle relevanten Informationen vorhanden sind, um einen Alarm schnell als Fehlalarm identifizieren zu können.
Weiterhin sollte die Frage geklärt werden, wie sich das Machine-Learning-System in die eigene Systemlandschaft integrieren lässt. Enthält es bereits ein Dashboard, welches einen passenden Workflow zur Bearbeitung von Findings anbietet? Soll das System in ein eigenes Ticket-System integriert werden?
Werden diese Punkte berücksichtigt, sollte dem erfolgreichen Einsatz von Machine Learning zur Absicherung von IT-Systemen nichts mehr im Wege stehen.
Entwickler: Vielen Dank für das Interview!
Entwickler: Machine Learning kann zur Erkennung von Hackerangriffen eingesetzt werden – aber setzen andererseits auch Hacker vermehrt Machine Learning ein, um Angriffe durchzuführen?
Daniel Etzold: Ja, Hacker setzen Machine Learning bereits heute auf sehr unterschiedliche Art und Weise ein. Schon seit längerem werden CAPTCHAs automatisch mit Machine Learning gelöst. Insbesondere durch die Entwicklungen im Bereich des Deep Learning haben Hacker hier einen großen Vorteil erlangt. Machine Learning kommt aber auch bei Brute-Force-Angriffen zum Einsatz, wenn es darum geht, Passwörter mit möglichst wenig Versuchen zu erraten. Aus Datensätzen mit geleakten Benutzernamen und Passwörtern können oft verwendete Muster bestimmt und diese anschließend zur Generierung von zu testenden Passwörtern verwendet werden. Schließlich kommt Machine Learning auch immer mehr bei der Entwicklung von Malware zum Einsatz. Hacker nutzen hier als „Malware Evasion Techniques“ bezeichnete Methoden, um einer Entdeckung durch Antivirenprogramme zu entgehen.
Hacker werden in Zukunft verstärkt Machine Learning einsetzen.
Teilweise werden dafür neue Ansätze von den Hackern selbst entwickelt. Hacker nutzen aber auch Ansätze, die von White Hats kommen, also von den „Guten“, und ursprünglich mit dem Ziel entwickelt wurden, die Sicherheit eines Systems oder einer Software zu erhöhen. Zum Beispiel können Tools zur statischen und dynamischen Analyse von Software, bei der immer mehr Machine Learning zum Einsatz kommt, auch von Black Hats verwendet werden, um Schwächen in einer Anwendung zu finden.
Sicher ist, Hacker werden in Zukunft verstärkt Machine Learning einsetzen. Einerseits werden bekannte Angriffstechniken optimiert, und andererseits müssen wir auch davon ausgehen, dass durch neue Entwicklungen auf dem Gebiet des maschinellen Lernens ebenfalls neue Angriffstechniken und neue Bedrohungen entstehen können. Beispiele wie Deep Fakes, Voice Cloning oder Adversarial Examples lassen das bereits erahnen.
Entwickler: Kann diesen Angriffen im Gegenzug auch nur mittels Machine Learning begegnet werden?
Daniel Etzold: In meinen Augen kann mit klassischen Ansätzen bereits ein sehr hohes Sicherheitsniveau erreicht werden. Nach wie vor sind Firewalls notwendig. Es muss Awareness geschaffen werden und Sicherheit muss in den Software Development Lifecycle in allen Phasen der Softwareentwicklung – von der Planung über die Entwicklung bis hin zum Betrieb – integriert werden.
Machine Learning kann die klassischen Ansätze aber ergänzen. Zum Beispiel profitieren Tools, die Quellcode analysieren oder automatische Tests wie Scans oder Fuzzing durchführen, von Machine Learning. Klassische Ansätze kombiniert mit Machine Learning helfen somit Schwachstellen zu vermeiden, so dass Angriffe weniger wahrscheinlich werden.
Entwickler: An welchen Bereichen stoßen klassische Ansätze zur IT-Security an ihre Grenzen und wie kann Machine Learning dort weiterhelfen?
Daniel Etzold: Klassische Ansätze stoßen schnell an ihre Grenzen, falls trotz aller Maßnahmen doch noch eine Schwachstelle existiert, die von einem Hacker ausgenutzt werden kann, um zum Beispiel Zugriff auf ein System zu bekommen.
Bei Intrusion-Detection-Systemen und der Erkennung von Malware spielt Machine Learning seine Stärken aus.
Intrusion-Detection-Systeme helfen dabei, so etwas zu erkennen. Je nach eingesetztem System werden hier Netzwerk-Traffic und Aktivitäten auf einem Host überwacht. Klassische Intrusion-Detection-Systeme verwenden oft Regeln. Diese erkennen zwar bestimmte Angriffe anhand von typischen Signaturen sehr zuverlässig, sind aber nicht in der Lage, unbekannte Angriffe wie Zero-Day-Exploits zu erkennen.
Auch regelbasierte Antivirenprogramme haben in der Regel Probleme, polymorphe Malware zu erkennen. Das ist Malware, die ihren Code mit jeder neuen Kopie ändert, so dass eine Signaturprüfung nicht mehr möglich ist.
Gerade im Bereich der Intrusion-Detection-Systeme und der Erkennung von Malware spielt Machine Learning aber seine Stärken aus.
Entwickler: Welche Arten von Machine Learning eignen sich zur Erkennung sicherheitsrelevanter Angriffe und worin unterscheidet sich deren Einsatz?
Daniel Etzold: Zur Erkennung sicherheitsrelevanter Angriffe eignen sich drei Arten von Machine Learning: Unsupervised Learning, Supervised Learning und Semi-supervised Learning.
Methoden des Unsupervised Learning werden im Wesentlichen verwendet, um einen Datensatz zu analysieren. Häufig kommen Cluster-Algorithmen zum Einsatz, die Daten gruppieren. Daten mit ähnlichen Eigenschaften werden der gleichen Gruppe zugewiesen. Daten, die sich nicht ähneln, befinden sich in unterschiedlichen Gruppen. Auf diese Weise können Ausreißer identifiziert werden, die auf einen Angriff hindeuten können.
Beim Supervised Learning wird ein Modell anhand von Beispielen erstellt, für die die Labels bekannt sind. Ein solches Verfahren eignet sich zum Beispiel sehr gut, um einen lernenden Spamfilter zu implementieren. Theoretisch ließen sich mit diesem Ansatz auch Intrusion-Detection-Systeme realisieren, die Aktivitäten im Netzwerk oder auf einem Host als normal oder als Angriff klassifizieren. In der Praxis verfügt man allerdings selten über Beispiele für Angriffe, weshalb Supervised Learning selten eingesetzt werden kann.
Deshalb kommt zur Erkennung von Angriffen meist Semi-supervised Learning zum Einsatz. Häufig wird ein Modell vom normalen Verhalten eines Systems erstellt. Sollte es von diesem Modell während des Betriebs eine Abweichung geben, kann das auf einen Angriff hindeuten. Beispiele von Angriffen werden zur Erstellung des Modells nicht mehr benötigt.
Entwickler: Gibt es mögliche Fallstricke, die beim Einsatz von Machine Learning im Security-Bereich zu beachten sind?
Daniel Etzold: Natürlich gibt es auch einige Dinge, die beachtet werden müssen. Wenn ein Modell vom normalen Verhalten erstellt wird, sollten nur saubere Daten verwendet werden. Während des Trainings sollte also kein Angriff stattfinden. Ansonsten besteht die Gefahr, dass ähnliche Angriffe nicht mehr erkannt werden. Um sicherzugehen, dass nur saubere Daten verwendet wurden, sollten die Daten deshalb im Anschluss mithilfe einer Clusteranalyse auf Ausreißer hin untersucht werden.
Wenn ein Modell vom normalen Verhalten erstellt wird, sollten nur saubere Daten verwendet werden.
Weiterhin hat natürlich die Genauigkeit ihre Grenzen. Nicht alle Angriffe werden erkannt, das heißt es kommt zu falsch-negativen Findings. Weiterhin wird das eine oder andere normale Verhalten auch als Angriff eingestuft. Es kommt also zu falsch-positiven Findings. Beide Fehler können durchaus eine gewisse Eigendynamik entwickeln. Wird ein Angriff nicht erkannt, kann ein Hacker im Worst Case möglicherweise Daten stehlen oder die Infrastruktur lahmlegen. Kommt es zu häufigen Fehlalarmen, entsteht unnötiger manueller Aufwand bei der aufwändigen Überprüfung der Findings.
Zusätzlich sollte beachtet werden, dass sich das normale Verhalten eines Systems aufgrund geänderten Nutzerverhaltens, nach einem Softwareupdate oder Neukonfiguration der Systemparameter ändern kann. Jedes Mal kann es zu Fehlalarmen kommen. In solchen Fällen sollte das Machine-Learning-Modell einfach und automatisch neu trainiert werden können.
Entwickler: Welche Tipps kannst du Unternehmen geben, die ihre IT-Systeme bisher noch nicht mithilfe von ML schützen, aber gerne damit beginnen würden?
Daniel Etzold: Wie fast überall gibt es auch bei der Erkennung von Angriffen mit Machine Learning nicht die eine Lösung, die alle Probleme löst. Deshalb sollte man sich zunächst überlegen, wo das größte Risiko besteht und dort investieren. Möchte man sich vor Brute-Force-Angriffen oder Abuse von außen schützen oder stellen Insider Threats das größte Risiko dar? Je nach Antwort kommen unterschiedliche Methoden zum Einsatz.
Egal was eingesetzt wird, es sollten kleine Schritte gemacht werden. In der Regel weiß man a priori nicht, ob ein System in die eigene Umgebung passt und welche Genauigkeiten das System erzielen wird. Machine-Learning-Systeme müssen trainiert und justiert werden. Parameter müssen konfiguriert und an die eigene Umgebung angepasst werden. Kleine Schritte machen das Risiko, dass ein System nicht in die eigene Systemlandschaft passt, überschaubar.
Systeme sollten auch getestet werden, zum Beispiel durch Simulation von Angriffen: Wie reagiert ein System, wenn eine absichtlich eingebaute Schwachstelle ausgenutzt wird? Wenn Tools eingesetzt werden, die den Quellcode von Software analysieren, sollte überprüft werden, dass diese Tools absichtlich eingebaute Schwächen im Code finden.
Egal was eingesetzt wird, es sollten kleine Schritte gemacht werden.
Viele Systeme sind eine Black-Box. Oft ist nicht klar, warum ein Alarm zustande gekommen ist. Machine-Learning-Systeme produzieren aber auch Fehlalarme. Jeder Fehlalarm muss untersucht werden, wodurch manueller Aufwand und somit Kosten entstehen. Deshalb sollte darauf geachtet werden, dass ein Alarm leicht interpretierbar ist und dass alle relevanten Informationen vorhanden sind, um einen Alarm schnell als Fehlalarm identifizieren zu können.
Weiterhin sollte die Frage geklärt werden, wie sich das Machine-Learning-System in die eigene Systemlandschaft integrieren lässt. Enthält es bereits ein Dashboard, welches einen passenden Workflow zur Bearbeitung von Findings anbietet? Soll das System in ein eigenes Ticket-System integriert werden?
Werden diese Punkte berücksichtigt, sollte dem erfolgreichen Einsatz von Machine Learning zur Absicherung von IT-Systemen nichts mehr im Wege stehen.
Entwickler: Vielen Dank für das Interview!