Zum Inhalt springen
L

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
  1. 1. Zweck und Grundidee
  2. 2. Teergruben auf IP- und TCP-Ebene
  3. 3. LaBrea als TCP-Beispiel
  4. 4. TCP-Teergrube mit netfilter
  5. 5. Teergruben auf Anwendungsebene und SMTP
  6. 6. HTTP-Teergruben

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.

Weiterlesen

OSI-Modell Das ISO/OSI-Referenzmodell (englisch Open Systems Interconnection model) ist ein Referenzmodell für Netzwerkprotokolle als Schichtenarchitektur. Internet Protocol Das Internet Protocol (IP; deutsch Internetprotokoll) ist ein in Rechnernetzen weit verbreitetes Netzwerkprotokoll und stellt durch seine Funktion die … Transmission Control Protocol Das Transmission Control Protocol (TCP, englisch für „Übertragungssteuerungsprotokoll“) ist ein Netzwerkprotokoll, das definiert, auf welche Art und Weise … Client Man nennt auch ein Endgerät selbst, das Dienste von einem Server abruft, Client. Das Gegenstück zum Client ist das jeweilige Serverprogramm bzw. der Server … Server Ein Server als Software ist ein Programm, das im Client-Server-Modell mit einem anderen Programm, dem Client (englisch für Kunde), kommuniziert. · Ein Hardware- … Address Resolution Protocol Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physische Adresse (Hardware-Adresse) … Paketfilter Ein Paketfilter, auch Netzwerkfilter genannt, ist eine Anwendung oder Software, die den ein- und ausgehenden Datenverkehr in einem Rechnernetz filtert. Simple Mail Transfer Protocol Das Simple Mail Transfer Protocol (SMTP, auf Deutsch etwa Einfaches E-Mail-Übertragungsprotokoll) ist ein Protokoll der Internetprotokollfamilie, … Mail Transfer Agent Ein Mail Transfer Agent oder Message Transfer Agent (MTA) ist die Software eines Mailservers, die E-Mails entgegennimmt und sendet. Hypertext Transfer Protocol Das Hypertext Transfer Protocol (HTTP; englisch für Hypertext-Übertragungsprotokoll) ist ein 1991 eingeführtes zustandsloses Protokoll zur Übertragung von … Honeypot Als Honigtopf, Honigtöpfchen oder auch englisch honeypot wird eine Einrichtung bezeichnet, die einen Angreifer oder Feind vom eigentlichen Ziel ablenken soll …