Wikipedia · einfach zusammengefasst · Stand
Teergrube (Informationstechnik)
Eine Teergrube (engl. Tarpit, dt. auch Teerfalle) stellt ein Verfahren dar, mit dem unerwünschte Netzwerkverbindungen künstlich verlangsamt werden und der …
Inhalt6 Abschnitte
Zweck und Grundidee
Eine Teergrube (englisch Tarpit, auch Teerfalle) ist ein Verfahren, das unerwünschte Netzwerkverbindungen künstlich verlangsamt und den Verbindungspartner möglichst lange bindet. Sie wird vor allem zur Bekämpfung von Spam und Würmern eingesetzt. Eine Teergrube kann grundsätzlich auf jeder Schicht des OSI-Modells umgesetzt werden; typisch sind IP-, TCP- und Anwendungsebene.
Der Client baut zunächst eine Verbindung zu einem Server auf. Der Server nimmt sie an, bearbeitet sie aber extrem langsam: Antwortdaten kommen nur tröpfchenweise. Der Client wartet fortlaufend und hält die Verbindung dadurch theoretisch beliebig lange offen. Die Verzögerung kann auf niedrigen Netzwerkschichten wie IP oder TCP oder innerhalb eines Anwendungsprotokolls erzeugt werden.
Teergruben auf IP- und TCP-Ebene
IP-Teergruben arbeiten auf IP-Level. Sie verringern die Paketgröße auf ein Minimum und senden Pakete nur sehr langsam.
TCP-Teergruben arbeiten eine Schicht höher im Netzwerkstack, verwenden aber ähnliche Techniken. Sie können ebenfalls Paketgrößen minimieren, Antwortpakete vergessen oder Verbindungsfehler melden. Das Ziel ist jeweils, dass die Gegenstelle lange mit Wiederholungen, Wartezeiten und dem Aufrechterhalten der Verbindung beschäftigt bleibt.
LaBrea als TCP-Beispiel
LaBrea ist eine bekannte TCP-Teergrube und kann mit einem einzigen Dienst ein ganzes Netzwerk schützen. Der Teergruben-Computer lauscht auf unbeantwortete ARP-Requests, die normalerweise zu unbenutzten Adressen gehören, und beantwortet sie. Dadurch gibt er vor, die gesuchte IP-Adresse zu besitzen.
Erhält er anschließend das initiale SYN-Paket eines Angreifers, häufig eines Portscanners, antwortet er einmal mit SYN/ACK und sendet danach nichts mehr. Es wird kein Socket geöffnet und keine echte Verbindung eingerichtet; nach dem SYN/ACK speichert die Teergrube auch keine Verbindungsdaten. Deshalb benötigt sie selbst keine Ressourcen wie Rechenzeit, Sockets, Speicher oder Netzwerkbandbreite.
Die Remote-Seite sendet ein ACK, um den TCP-Drei-Wege-Handschlag abzuschließen. Dieses Paket ignoriert LaBrea bereits. Aus Sicht des Angreifers besteht nun eine Verbindung; dessen gesendete Daten erreichen jedoch niemanden. Da TCP für jedes Paket eine Bestätigung vorsieht, endet die Verbindung normalerweise erst durch ein Timeout. Bis dahin verbraucht die sendende Maschine Zeit und Rechenleistung, abhängig vom Netzwerkstack etwa durch Wiederholungen, Back-off und Retransmit.
Neuere LaBrea-Versionen können später eingehende Pakete mit unsinnigen Antworten beantworten. Dafür nutzen sie RAW-IP-Pakete, damit keine Sockets oder anderen Ressourcen des Teergrubenservers benötigt werden. Auch TCP-Damping wird als weitere TCP-Teergrube genannt.
TCP-Teergrube mit netfilter
Der Linux-Paketfilter netfilter kann TCP-Verbindungen ohne zusätzliche Userspace-Software in eine Teergrube leiten. Das Target tarpit akzeptiert neue TCP-Verbindungen und setzt sie direkt in den persist-state. Die daraus entstehende Fenstergröße von 0 erlaubt dem Angreifer nicht, Daten zu senden.
Er muss deshalb die Fenstergröße alle 60 bis 240 Sekunden erneut abfragen. Auch Versuche, die Verbindung zu schließen, werden ignoriert. Dadurch läuft die Verbindung erst nach 12 bis 24 Minuten aus; währenddessen bleiben Ressourcen auf der Seite des Angreifers belegt.
Teergruben auf Anwendungsebene und SMTP
Application-Level-Teergruben nutzen Eigenschaften eines Anwendungsprotokolls, um Verbindungen künstlich zu verlangsamen. Möglich sind simulierte verlorene Anfragen, Fehlerstatus oder besonders ausführliche, aber sinnlose Antworten. Gegen Spam werden vor allem SMTP- und HTTP-Teergruben eingesetzt.
Bei SMTP werden Sitzungen künstlich verzögert, etwa durch kleine Verzögerungen im SMTP-Handschlag. Zusätzlich kann der Server SMTP Continuation Lines senden. Diese ermöglichen mehrzeilige Antworten, die der Client vollständig abwarten muss. Bei normalem Mailverkehr verursacht dies je nach Umsetzung und Aggressivität meist keine größeren Einschränkungen. Versendet ein Server aber sehr viele E-Mails gleichzeitig, wie bei Spam, können seine begrenzten TCP-Sitzungen in der Teergrube feststecken. Neue Mails kann er dann erst senden, wenn Sitzungen enden oder abgebrochen werden.
Viren und auf Spam optimierte Server brechen den Versand bei kurzen Verzögerungen oft ab und versuchen später nicht erneut. Dann schützt die Teergrube den Empfänger vor Spam und Malware, ohne den Sender unbedingt zu blockieren. Dies kann jedoch unwirtschaftlich sein: Spammer beenden die Verbindung sofort, während normale Versender gefangen werden. OpenBSD spamd verwendet deshalb beispielsweise Whitelisting und Greylisting, um Spammer zu erkennen und legitime Versender zu schützen.
Die früher angeführte Traffic-Ersparnis wird als zunehmend weniger wichtig beschrieben. Große Provider und Newsletter-Versender können ebenfalls blockiert werden. Das lässt sich abschwächen, indem nur SMTP-Sitzungen suspekter Hosts, etwa nach RBL, dem Tarpitting unterworfen werden und gegebenenfalls eine Whitelist für große Provider besteht.
HTTP-Teergruben
HTTP-Teergruben setzen früher an als SMTP-Teergruben: Sie sollen Harvester von Spammern blockieren. Harvester sind Programme, die ähnlich wie Suchmaschinen-Spider Webseiten durchsuchen, jedoch gezielt nach E-Mail-Adressen möglicher Spamopfer statt nach Suchbegriffen.
Eine HTTP-Teergrube liefert Webseiten deutlich verlangsamt aus. Außerdem enthält sie auf erzeugten Seiten zahlreiche Links auf sich selbst, sodass der Harvester wiederholt in die Falle gerät.