Moderne Angriffe auf die IT-Infrastruktur lassen sich anhand einer sogenannten Cyber Kill Chain modellieren. Dieser Begriff wurde von Lockheed Martin geprägt und stammt aus dem militärischen Umfeld. Er beschreibt, in welchen Schritten ein typischer Angriff erfolgt. Umgekehrt können wir daraus auch lernen, wie wir uns gegen Angriffe schützen können: Wenn wir die „Kette brechen“ können, also den Angreifer daran hindern, eine der Phasen erfolgreich auszuführen, so können wir den Angriff abwehren.

Im Folgenden werde ich die einzelnen Phasen der Attack Chain beschreiben, was ein Angreifer dort jeweils tun könnte und wie wir als Verteidiger die Angriffe erkennen und/oder verhindern können. Natürlich sind dies alles nur wenige Beispiele für mögliche Angriffe und Abwehrmassnahmen. Ein richtiger Angriff kann anders und beliebig komplexer vonstattengehen. Auch gibt es verschiedene Cyber Kill Chain Modelle. Wir wollen uns hier auf ein einfaches Modell beschränken.

Phases of the Intrusion Kill Chain
Quelle: https://commons.wikimedia.org/wiki/File:Intrusion_Kill_Chain_-_v2.png, abgerufen am 29.01.2020.

Reconnaissance

Ziel des Angreifers

    • Möglichst viele nützliche Informationen über das Angriffsziel sammeln. Dies können öffentlich abrufbare Informationen sein: Mailadressen auf der Webseite von möglichen künftigen Phishing-Opfern, Informationen über Firmenstruktur und Teams via LinkedIn für Social Engineering Angriffe, eingesetzte Software und Security Produkte, öffentlich zugängliche Services via DNS, aktive Portscans und Fingerprinting von IT-Services, physische Lokationen, …

Detection

    • Ein solches Sammeln von Informationen ist schwierig zu erkennen, da dieses oft ausserhalb der eigenen Infrastruktur erfolgt.

Schutzmassnahmen

    • Reduzieren des öffentlichen Footprints: Möglichst wenige nutzbare Informationen extern publizieren und sich bewusst sein, was für Informationen extern auffindbar sind. Beispiele: Information über Mitarbeiter (Organigramme, LinkedIn-Profile), Stellenausschreibungen (welche auch eingesetzte Technologien verraten können), Meta Data in öffentlich publizierten Dokumenten.
    • Was für Services bieten wir nach extern an, in unserer eigenen Infrastruktur wie auch „aus der Cloud“? Was für Angriffsflächen bieten diese Services? Dies lässt sich mit eigenen Vulnerability Scans erkennen oder mit öffentlichen Suchmaschinen wie Google oder Shodan.
    • Patch Management: Eingesetzte Software auf Arbeitsstationen und Servern immer auf dem aktuellen Stand halten und sicher konfigurieren
    • Security Awareness Training für Mitarbeiter
    • Data Klassifikation und DLP

Weaponization

Ziel des Angreifers

    • Wenn sich der Angreifer über sein Ziel informiert hat und beschlossen hat, auf welchem Wege er es angreifen will, so legt er sich eine passende „Waffe“ zurecht. Beispielsweise konstruiert er sich ein Word-Dokument mit Makros, welches er in der nächsten Phase dem Opfer zustellen will.

Detection

    • Diese Phase erfolgt ausserhalb unserer Infrastruktur und ist daher nicht zu detektieren.

Delivery

Ziel des Angreifers

    • Die erstellte Malware wird dem Opfer zugestellt. Sei dies als Mail Attachment oder als Link in einem Mail, auf einem USB Stick oder das Opfer wird dazu gebracht, die infizierte Software selbständig „freiwillig“ herunterzuladen (watering hole attack, kompromittierte Software eines vertrauenswürdigen Herstellers)
    • Eine andere Möglichkeit wäre, ein infiziertes Gerät direkt ins Netzwerk zu hängen z.B. durch Bestechung der Putzequippe.

Detection

    • Logs von Firewall, Proxy, Mailgateway, DNS und DHCP

Schutzmassnahmen

    • Security Awareness Training für User. Die User sollten geschult werden, keine verdächtigen Links in Mails anzuklicken, keine Attachments auszuführen und verdächtige Mails und USB Sticks dem Security Team zu melden.
    • USB
      • Die Nutzung von USB Sticks kontrollieren/unterbinden
    • Mail
      • Spoofing verhindern durch Implementierung von SPF, DKIM, DMARC. Dies erschwert Phishing.
      • URLs zu zweifelhaften Servern in den Mails blockieren
      • Attachments mit potentiell gefährlichem Inhalt blockieren, Malware Scan, Analyse in einer Sandbox, Entfernung von Makros
    • Web
      • URL-Filter verwenden, welcher den Zugriff auf zweifelhafte Server unterbindet
      • Malware Scan und Analyse in einer Sandbox auf dem Proxy
      • Absichern der Browser gegen Exploits: EMET, Patch Management
      • Isolieren der Browser durch Edge Application Guard oder Bromium
      • Browser absichern: Flash/Java/… Plug-Ins entfernen, sichere Konfiguration durch GPO und ADMX Templates
    • Network
      • NAC, damit kein fremdes Gerät einfach mit dem Netzwerk verbunden werden kann
      • Netzwerksegmentierung

Exploitation

Ziel des Angreifers

    • Der zugestellte Schadcode wird nun ausgeführt.

Detection

    • Logging von Programm- und Skript-Ausführung mit Eventlog, Sysmon oder einem EDR Tool

Schutzmassnahmen

    • Verhinderung der Ausführung von Executables, Scripts und Makros
      • Application Whitelisting: AppLocker, Windows Defender Application Control oder BeyondTrust
      • Kontrolle von Makros durch Group Policies, Protected View von MS Office
      • Kontrolle von PowerShell, JavaScript, VBScript
    • Verhindern, dass der ausgeführte Schadcode etwas Schlimmes anrichten kann durch Isolation der ausgeführten Dokumente z.B. durch Bromium
    • Patchmanagement, die eingesetzte Software immer aktuell halten
    • Allgemeines System Hardening
    • Verhindern von Exploits
      • EMET, ExploitGuard, Attack Service Reduction
    • Falls selber Software entwickelt wird, sicherstellen, dass dies nach sicheren Standards erfolgt.

Installation, Persistence

Ziel des Angreifers

    • Nachdem sich der Angreifer Zugriff auf ein System verschafft hat, möchte er diesen Zugriff auch dauerhaft behalten, also nicht z.B. nur bis zum nächsten Reboot.
    • Gegebenenfalls wird versucht, die Rechte auszuweiten (privilege escalation)

Detection

    • Um dauerhaft Zugriff auf dem System zu erhalten, müssen lokal Änderungen vorgenommen werden. Diese können erkannt werden durch
      • Agenten auf dem System: AV, IDS, EDR
      • Autoruns
      • Monitoring der ausgeführten Prozesse und geschriebenen Files (Sysmon, Vergleich mit einer Baseline)

Schutzmassnahmen

    • Wenn ein Angreifer schon mal so weit gekommen ist, also Programme auf einem System ausführen kann, dann lässt sich ein dauerhaftes Einnisten fast nicht verhindern. Zu vielfältig sind die Möglichkeiten auf einem Windows System.
    • Limitierung der Benutzer-Rechte
    • Patch Management
    • Unnötige Software deinstallieren
    • Application Whitelisting, so dass nur definierte Programme ausgeführt werden können.

Command and Control

Ziel des Angreifers

    • Nachdem der Angreifer ein System übernommen hat, will er dieses von aussen steuern können.

Detection

    • Erkennung von Call Back Traffic
      • Kommunikation mit verdächtigen Domains
      • Kommunikation in regelmässigen Abständen
      • Welche Prozesse kommunizieren in Richtung Internet?
      • Werden „ungewöhnliche“ http-User-Agents verwendet?
      • DNS und Proxy Log Monitoring

Schutzmassnahmen

    • Kommunikation in Richtung Internet nur via Proxies, keine direkte Kommunikation
    • Die Verhinderung von Command and Control Traffic ist sehr schwierig, da meist irgendein Internetzugriff möglich ist. Datentransfers können z.B. via DNS oder https erfolgen. Es gibt Command and Control Systeme, welche via Twitter oder Forum-Posts kommunizieren, was kaum zu kontrollieren ist.

Actions on Objective

Ziel des Angreifers

    • Nachdem der Angreifer nun Zugriff auf ein System hat, wird er jetzt seine eigentlichen Ziele verfolgen. Diese können sehr unterschiedlich sein: Erpressung (Verschlüsselung von Daten durch einen Crypto Locker), Geld (Installation eines Crypto Miners), Sabotage (Verändern oder Löschen von Daten), Spionage (Stehlen von Firmengeheimnissen, Konstruktionsplänen, Finanzinformationen, …). Oder das Opfer dient nur als Sprungbrett für das eigentliche Ziel, wenn zunächst z.B. ein Lieferant vom eigentlichen Ziel angegriffen wurde.
    • Damit das jeweilige Ziel erreicht werden kann, kann eine weitere Verbreitung im internen Netz nötig sein: Lateral Movement zu weiteren Systemen und Ausweiten der User-Berechtigungen für erweiterte Zugriffe.

Detection

    • Von Lateral Movement / Privilege Eskalation
      • Überwachung des Eventlog auf die Erzeugung von Admin-Usern
      • Überwachung der Logs der Segmentierungs-Firewalls
      • Honeyuser / Honeytoken
        • User und Credentials, welche nirgends verwendet werden. Wenn sich ein solcher User nun doch auf einem System einloggt, so muss ein Angriff erfolgt sein.
      • Von Data Exfiltration
        • Monitoring des Zugriffs auf sensitive Daten
        • Honeypots / Decoy Files
          • Honeypots sind Systeme und Files, welche nur zum Schein wichtig sind. Wenn jemand darauf zugreift, wird es sich wohl um einen Angriff (oder internen Scan) handeln
        • DLP / IPS
          • Monitoring von grossen Datentransfers und auffälligem Verhalten (Firewall, Proxy Logs, Vectra)

Schutzmassnahmen

    • Gegen Lateral Movement
      • Im Alltag möglichst keine Admin-Rechte verwenden, Privilege Management Tools verwenden
      • LAPS für lokale Admin-Rechte verwenden
      • Managed Service Accounts (MSA) verwenden
      • Netzwerk-Segmentierung
      • Erweiterte Schutzmassnahmen von neuen Windows Versionen nutzen
        • Domain Protected Users für alle Domain Admins
        • Protected Processes
        • Credential Guard
        • Remote Credential Guard
    • Gegen Data Exfiltration
      • Die Verhinderung von Data Exfiltration ist sehr schwierig, da meist irgendein Internetzugriff möglich ist. Datentransfers können via Mail, DNS, https oder anderen Protokollen erfolgen. Mindestens die hier genannten sind meist nutzbar. Ein DLP kann beschränkt helfen, wenn die Daten aber vor dem Transfer verschlüsselt wurden und z.B. als Twitter-Nachricht verschickt werden oder als Wikipedia-Eintrag, so ist dies kaum zu verhindern.

Zusammenfassung

Über die ganze Angriffskette haben wir also verschiedenste Möglichkeiten, wie wir Angriffe verhindern und erkennen können. Wir dürfen uns aber nicht auf nur eine Phase bei unserer Verteidigung beschränken, sondern müssen auf allen Ebenen etwas gegen mögliche Angriffe tun, um die Erfolgsaussichten eines Angriffs möglichst klein zu halten.

Ein Angriff auf die IT-Infrastruktur verfolgt immer ein bestimmtes Ziel. Vielleicht haben wir „Glück“ und sind nur ein Zufallsopfer: Dem Angreifer ist es eigentlich egal, von wem er Lösegeld via Crypto Locker verlangt. Wenn wir die Verschlüsselung unserer Daten verhindern konnten, so waren wir erfolgreich. Wenn es aber der Angreifer gerade auf unsere bestimmte Firma abgesehen hat, weil er unbedingt unsere Firmengeheimnisse wissen will oder konkret uns schaden möchte, dann wird er es nicht auf einem gescheiterten Angriffsversuch beruhen lassen und es wiederholt probieren. Darum ist es wichtig, auch erfolgreich abgewehrte Angriffe genau zu analysieren, möglichst viel über den Angreifer, seine Methoden, Vorgehen und Motivation zu lernen, sodass wir für den nächsten Angriff noch besser vorbereitet sind.