Gedrosselte und geplante Exfiltration erkennen: low and slow

Kurzfassung: Ein vorsichtiger Angreifer zieht Daten nicht in einem großen Schwung ab, sondern "low and slow": in kleinen, gleich großen Häppchen (Data Transfer Size Limits) und nur zu bestimmten Zeiten (Scheduled Transfer), um unter volumenbasierten Schwellen zu bleiben. Der Nachweis liegt im Muster über Zeit, nicht im Einzelereignis: periodische, gleich große Übertragungen, in feste Volumen gesplittete Archive und geplante Aufgaben als Taktgeber. Drei sigma-cli-validierte Sigma-Regeln, Härtung und Test. Serie "Angriff erkennen".

Die naheliegendste Exfiltrations-Erkennung ist der Volumen-Alarm: ein Gigabyte, das in fünf Minuten nach außen geht, fällt auf. Genau deshalb drosseln erfahrene Angreifer den Abfluss. Sie zerlegen die Beute in viele gleich große Teile und schicken sie verteilt über Stunden oder Tage, oft zu immer derselben Uhrzeit. Es ist dieselbe Datenmenge, nur so verpackt, dass keine einzelne Übertragung auffällt. MITRE nennt die beiden Bausteine Data Transfer Size Limits und Scheduled Transfer. Dieser Beitrag aus der Serie "Angriff erkennen" zeigt, wie man das Muster trotzdem findet. Die eigentlichen Kanäle behandeln die Beiträge zu alternativen Protokollen und zum Datenabfluss über rclone und Cloud.

Einordnung in ATT&CK: Es geht um zwei Techniken der Taktik Exfiltration: Data Transfer Size Limits (T1030) und Scheduled Transfer (T1029). Beide beschreiben keinen neuen Kanal, sondern wie der Abfluss zerstückelt und getaktet wird, um der Erkennung zu entgehen. Für den Verteidiger verschiebt sich der Ansatzpunkt damit vom einzelnen Transfer auf das Muster über Zeit.

Was der Angreifer tut

Hinter dem "low and slow" stehen mehrere Bausteine, die sich kombinieren lassen. Auf der Ebene des Prinzips, nicht als Anleitung:

  • In feste Größen splitten. Die Beute wird in Volumen von etwa 50 oder 100 MB zerlegt, damit jeder einzelne Transfer klein bleibt und unter einer Volumen-Schwelle durchrutscht.
  • Verteilt senden mit Pausen. Ein Skript sendet ein Häppchen, wartet und sendet das nächste. So bleibt auch die Übertragungsrate niedrig.
  • Zeitlich takten. Eine geplante Aufgabe oder eine Beacon-Logik überträgt nur zu bestimmten Zeiten - etwa während der Bürozeiten, um im normalen Verkehr unterzugehen, oder gezielt nachts.
  • An einen Kanal koppeln. Das Ganze läuft über einen der Exfiltrationswege, etwa ein alternatives Protokoll oder rclone und Cloud.

Für die Erkennung ist entscheidend: Kein einzelner Transfer sticht heraus. Das Signal liegt in der Wiederholung - gleiche Größe, gleiches Ziel, feste Abstände.

Welche Logquellen die Technik zeigt

  • Die Netz-Telemetrie zuerst. Zeek, NetFlow und die Firewall zeigen das Muster am besten: regelmäßige, ungefähr gleich große Verbindungen zu demselben Ziel in festen Abständen, deren Summe über den Tag hoch ist, auch wenn jede einzelne klein bleibt.
  • Der Prozess am Endpunkt. Event 4688 und Sysmon Event 1 zeigen Packprogramme mit Volumen-Split, Skripte mit Schlafpausen und Upload sowie das Anlegen geplanter Aufgaben.
  • Geplante Aufgaben. Das Anlegen einer Aufgabe erscheint als Event 4698 und, bei Aufruf über die Kommandozeile, im Prozess-Log. Aufgaben, die Skript-Hosts oder Transfer-Werkzeuge starten, sind der Ansatzpunkt - verwandt mit Persistenz.
  • Korrelation über Zeit. Hier muss das SIEM über Zeitfenster aggregieren statt nur Einzelereignisse zu matchen. Kumulative Schwellen pro Host und Ziel sind die eigentliche Erkennung.

Das Muster im Log

Der Kern ist das Muster über Zeit, nicht das Einzelereignis. Drei Bausteine fallen am Endpunkt auf: ein Archiv, das in viele gleich große Teile zerlegt wird; ein Skript, das in einer Schleife mit Pausen sendet; und eine geplante Aufgabe, die einen Transfer taktet. Am stärksten ist die Netz-Sicht: dieselbe Gegenstelle, dieselbe ungefähre Größe, feste Abstände. Einzeln sind die Endpunkt-Treffer schwach - zusammen mit einem periodischen Netzmuster zu einem neuen, selten gesehenen Ziel werden sie aussagekräftig. Deshalb ist die Aggregation über Zeit hier kein Zusatz, sondern der Kern der Erkennung.

Drei Sigma-Regeln

Die Regeln sind mit sigma-cli geprüft. Sie decken die am Endpunkt sichtbaren Bausteine ab; das periodische Netzmuster bleibt Sache der Netz-Telemetrie und der Zeitfenster-Korrelation im SIEM. Die erste zielt auf den Volumen-Split, die zweite auf das Drip-Skript, die dritte auf die geplante Aufgabe.

1. Archiv in feste Volumengrößen aufteilen (T1030). Ein Packprogramm, das mit Volumen-Schalter in viele gleich große Teile splittet. Die Regel steht auf level: medium und braucht Tuning gegen Backup-Skripte.

Sigma
title: Archiv in feste Volumengroessen aufteilen
id: 3c0ef461-7c97-4732-92b2-679a3db7a582
status: experimental
description: |
  Erkennt das Aufteilen eines Archivs in feste Volumengroessen mit gaengigen
  Packprogrammen. Angreifer begrenzen die Groesse einzelner Transfers, um unter
  volumenbasierten Schwellen zu bleiben (Data Transfer Size Limits). Das Splitten
  in viele gleich grosse Teile ist im normalen Betrieb selten.
references:
  - https://attack.mitre.org/techniques/T1030/
author: blue-team.net
tags:
  - attack.exfiltration
  - attack.t1030
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith:
      - '\rar.exe'
      - '\winrar.exe'
      - '\7z.exe'
      - '\7za.exe'
  selection_split:
    CommandLine|contains: ' -v'
  condition: selection_img and selection_split
falsepositives:
  - Legitime Backup- oder Verteilskripte, die grosse Archive in Teile splitten; bekannte Faelle ausnehmen
level: medium

2. Skriptbasierte Drip-Exfiltration mit Schlafpausen (T1029/T1030). Ein Skript, das eine Schlafpause mit einem Upload- oder Web-Aufruf kombiniert. Ebenfalls level: medium.

Sigma
title: Skriptbasierte Drip-Exfiltration mit Schlafpausen
id: 9119cc94-cdbe-4d26-a447-f2df30e16625
status: experimental
description: |
  Erkennt Skripte, die wiederholt kleine Datenmengen mit Pausen dazwischen nach
  aussen senden. Die Kombination aus einer Schlafpause und einem Upload- oder
  Web-Aufruf im selben Skript ist ein Hinweis auf gedrosselte Exfiltration, die
  unter volumen- und ratenbasierten Schwellen bleiben soll.
references:
  - https://attack.mitre.org/techniques/T1029/
  - https://attack.mitre.org/techniques/T1030/
author: blue-team.net
tags:
  - attack.exfiltration
  - attack.t1029
  - attack.t1030
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith:
      - '\powershell.exe'
      - '\pwsh.exe'
  selection_sleep:
    CommandLine|contains:
      - 'Start-Sleep'
      - 'Sleep('
  selection_net:
    CommandLine|contains:
      - 'UploadFile'
      - 'UploadData'
      - 'UploadString'
      - 'Invoke-WebRequest'
      - 'Invoke-RestMethod'
      - 'Net.WebClient'
  condition: selection_img and selection_sleep and selection_net
falsepositives:
  - Legitime Mess- oder Synchronisierungsskripte mit Wartezeiten; bekannte Faelle nach Ziel ausnehmen
level: medium

3. Geplante Aufgabe als Taktgeber für Datenübertragung (T1029). Das Anlegen einer geplanten Aufgabe, die einen Skript-Host oder ein Transfer-Werkzeug startet. Ebenfalls level: medium und mit Baselining zu tunen.

Sigma
title: Geplante Aufgabe als Taktgeber fuer Datenuebertragung
id: d167c988-8a8e-4f08-b84c-58731ea3b339
status: experimental
description: |
  Erkennt das Anlegen einer geplanten Aufgabe, die einen Skript-Host oder ein
  Transfer-Werkzeug startet. Angreifer nutzen geplante Aufgaben, um Daten nur zu
  bestimmten Zeiten oder in regelmaessigen Abstaenden abzuziehen (Scheduled
  Transfer) und so im normalen Betrieb unterzugehen.
references:
  - https://attack.mitre.org/techniques/T1029/
author: blue-team.net
tags:
  - attack.exfiltration
  - attack.t1029
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith: '\schtasks.exe'
  selection_create:
    CommandLine|contains: '/create'
  selection_payload:
    CommandLine|contains:
      - 'powershell'
      - 'pwsh'
      - 'wscript'
      - 'cscript'
      - 'mshta'
      - 'curl'
      - 'bitsadmin'
  condition: selection_img and selection_create and selection_payload
falsepositives:
  - Legitime Wartungs- und Deployment-Aufgaben, die Skripte planen; bekannte Aufgaben ausnehmen
level: medium

Härtung: der Angriff, der ins Leere läuft

  • Volumen über Zeit messen. DLP und Netzüberwachung so einstellen, dass auch die Summe vieler kleiner Transfers zu einem Ziel auffällt - kumulative Schwellen pro Host, Ziel und Tag statt nur Einzelspitzen. Das ist die eigentliche Antwort auf die Drosselung.
  • Ausgehend filtern und Proxy erzwingen. Striktes Egress-Filtering und ein inspizierender Proxy schließen die Kanäle, über die gedrosselt wird, und machen jeden Transfer sichtbar.
  • Geplante Aufgaben einschränken und überwachen. Begrenzen, wer Aufgaben anlegen darf, und auf neue Aufgaben alarmieren, die Skript-Hosts starten.
  • Baselining. Das Normalverhalten je Host kennen, damit regelmäßige Verbindungen zu einem neuen Ziel überhaupt als Abweichung auffallen.

Der Test

Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon:

  • Für Regel 1 im Lab ein harmloses Archiv mit rar oder 7z und dem Volumen-Schalter in Teile splitten. Event 1 und 4688 müssen den Aufruf mit Kommandozeile zeigen.
  • Für Regel 2 ein harmloses Skript mit Start-Sleep und einem Upload-Aufruf ausführen. Event 1 und das Script Block Logging müssen beides zeigen.
  • Für Regel 3 eine geplante Aufgabe anlegen, die PowerShell startet (schtasks /create). Event 4688 und 4698 müssen sie zeigen. Vollständiger wird der Test mit den Fällen zu T1029 und T1030 aus Atomic Red Team.

Fehlalarme und Tuning

  • Backups splitten legitim. Backup- und Verteilskripte nutzen den Volumen-Split. Nimm die bekannten Fälle nach Pfad und Nutzer aus, bevor du Regel 1 scharf schaltest.
  • Wartungsaufgaben. Viele legitime geplante Aufgaben starten Skripte. Baseline die bekannten Aufgaben und alarmiere nur auf neue oder ungewöhnliche.
  • Sync-Skripte mit Pausen. Mess- und Synchronisierungsskripte schlafen und senden. Nimm sie nach Ziel aus.
  • Muster schlägt Einzeltreffer. Erst die Kombination aus einem Endpunkt-Signal und einem periodischen Netzmuster zu einem neuen Ziel ist belastbar. Korreliere über Zeit, statt auf den Einzelaufruf zu alarmieren.

Fazit

Gedrosselte und geplante Exfiltration macht nicht den Kanal unsichtbar, sondern den Abfluss unauffällig - viele kleine, getaktete Transfers statt einer Spitze. Deshalb versagt die reine Volumen-Schwelle, und die Erkennung verlagert sich auf das Muster über Zeit: gleich große, periodische Verbindungen zu demselben Ziel, dazu die Endpunkt-Spuren von Volumen-Split, Drip-Skripten und geplanten Aufgaben. Die wirksamste Härtung sind kumulative Schwellen plus striktes Egress-Filtering. Die Kanäle selbst behandeln die Beiträge zu alternativen Protokollen und rclone und Cloud; das Zerlegen beginnt oft schon bei der Datenarchivierung. Weitere Techniken dieser Taktik sammelt das Lexikon nach Taktik unter Exfiltration.

NH

$ whoami

Norbert Hofmann

Cyber Defense Analyst im Security Operations Center eines Managed Security Service Providers. Red und Blue Teaming, Malware-Analyse, Incident Response und Security-Awareness-Trainings. Finalist bei „Deutschlands bester Hacker“ 2022, mehrere CVE-Einträge für WordPress-Plugins.