Umgang mit NTP-Reflexionsangriffen in IPTables

16

Wir haben es mit einem NTP Reflection / Amplification-Angriff auf unsere Colocated Server zu tun . Diese Frage ist spezifisch für die Reaktion auf NTP-Reflexionsangriffe und richtet sich nicht generell an DDoS.

Hier ist der Verkehr:

Router-Netzwerk-Verkehrsdiagramm

Auf unserem Router wird ein wenig CPU verbraucht:

Grafik zur CPU-Auslastung des Routers

Leider ist es nicht groß genug, um unseren Upstream-Provider zu veranlassen, den Datenverkehr zu blockieren, was bedeutet, dass er an uns weitergeleitet wird.

Wir haben die folgende Regel verwendet, um den NTP-Verkehr zu blockieren, der von Port 123 ausgeht:

-p udp --sport 123 -j DROP

Dies ist die erste Regel in IPTables.

Ich habe viel gesucht und kann nicht viele Informationen darüber finden, wie ich mit IPTables einen NTP-Reflexionsangriff abschwächen kann. Und einige der Informationen da draußen scheinen absolut falsch zu sein. Ist diese IPTables-Regel korrekt? Können wir noch etwas hinzufügen oder tun, um einen NTP-Reflexions- / Verstärkungsangriff abzuschwächen, außer unseren vorgelagerten Netzwerkanbieter zu kontaktieren?

Außerdem: da diese Angreifer Netzwerke benutzen müssen, die

  • Ermöglichen Sie das Spoofing von IP-Adressen in Paketen
  • habe ungeflickt, circa 2010 NTP-Code

Gibt es ein globales Clearinghouse, an das wir diese IP-Adressen melden können, damit sie nicht mehr gefälschte Pakete zulassen und ihre NTP-Server patchen können?

Jeff Atwood
quelle
10
Ja, die iptables-Regel ist korrekt, aber die Ausführung eines Paketfilters am Ende Ihrer Pipe auf Ihrem Server verhindert nicht, dass sich die Pipe füllt. Weitere Informationen finden
HBruijn

Antworten:

20

Im Grunde haben Sie kein Glück, wenn der DDoS-Angriff es schafft, die Pipe zu füllen, die Sie zum Internet haben (was der Zweck eines UDP-Reflection-Angriffs ist - die Pipe zu füllen). Wenn Ihre Upstream-Verbindung 1 Gbit / s Datenverkehr aufnehmen kann und (sagen wir) 2 Gbit / s Datenverkehr für den Verbindungsabbau zur Verfügung stehen, wird die Hälfte davon vom Router oder Switch verworfen, der die Pakete für den Verbindungsabbau verwendet. Dem Angreifer ist es egal, dass die Hälfte seines Angriffsverkehrs abfällt, aber Ihre Kunden tun es: 50% Paketverlust in einer TCP-Verbindung werden schreckliche, schreckliche Dinge für die Leistung und Zuverlässigkeit dieser Verbindungen bedeuten .

Es gibt nur zwei drei Möglichkeiten, um einen volumetrischen DDoS-Angriff zu stoppen:

  1. Habe eine Pipe, die groß genug ist, damit der Angriffsverkehr sie nicht füllt.
  2. Stoppen Sie die Angriffspakete, bevor sie in die Pipe gelangen.
  3. Wechseln Sie zu einer anderen IP-Adresse, die nicht der NTP-Reflection-Attacke ausgesetzt ist.

Sie in iptables zu blockieren, reicht nicht aus, weil der Angriffsverkehr den legitimen Verkehr bereits verdrängt hat und dazu geführt hat, dass er auf den Boden gefallen ist, sodass der Angreifer gewonnen hat. Da Sie (vermutlich) nicht den Upstream - Router oder Switch steuern , die den Angriff Verkehr weiterleitet, ja, werden Sie in Kontakt mit Ihren Upstream - Netzanbietern erhalten müssen und sie tun etwas , um den Angriff Verkehr vom Erreichen Ihres Netzwerkes zu stoppen link, ob das sein soll

  • den gesamten Datenverkehr auf dem Angriffs-Port blockieren (etwas, das die meisten ISPs auf ihren colo-Kunden-Access-Routern nicht bereit sind, für $REASONS)

  • Herausfiltern der Quell-IP-Adressen des Angriffs (plausibler, mit S / RTBH, aber nicht etwas, das jeder Anbieter bereits zur Verfügung hat)

  • Im schlimmsten Fall wird die Ziel-IP-Adresse gelöscht

Beachten Sie, dass das Sperren der IP-Adresse nur funktioniert, wenn Sie über andere IP-Adressen verfügen, die weiterhin verwendet werden können. Wenn Ihr Provider Ihre einzige IP-Adresse sperrt, ist der Angreifer erfolgreich, da Sie nicht mit dem Internet verbunden sind an erster Stelle.

womble
quelle
Haben Sie eine Idee, warum ISPs den Datenverkehr nicht blockieren möchten?
André Borie
4
Es gibt viele Gründe. 1. ISPs werden dafür bezahlt, Traffic zu liefern, nicht ihn zu blockieren. 2. Nur High-End-Netzwerkgeräte sind in der Lage, Leitungsrateninspektionen für große (100G +) Verkehrsvolumina durchzuführen, was teuer ist. 3. Es ist nicht trivial, von der Kundenanforderung zur Konfiguration von Leitungen in einem Core-Router zu wechseln.
womble
5

Ich gehe davon aus, dass Sie eine Pipe zu Ihrem ISP haben, die auf Ihrem eigenen Router / Ihrer Firewall endet. Dann haben Sie hinter diesem Router / Firewall Ihre eigenen Maschinen. Der ISP blockiert den Datenverkehr nicht, sodass Sie sich selbst darum kümmern müssen. Sie möchten den Datenverkehr am Router / an der Firewall blockieren, um zu verhindern, dass er auf die dahinter liegenden Computer trifft, und gleichzeitig die Belastung des Routers / der Firewall minimieren.

Ihre Regel sieht richtig aus, um alles, was von einem NTP-Server stammt, auf dem Standard-Port zu löschen. Denken Sie daran, wenn Sie tatsächlich ntp verwenden, müssen Sie möglicherweise Lücken in Ihren Firewall-Regeln schließen

Wenn Ihre Firewall die Verbindungsverfolgung verwendet (die meisten tun dies), möchten Sie möglicherweise die "rohe" Tabelle verwenden, um die Pakete zu löschen, bevor sie die Verbindungsverfolgungsmaschine erreichen.

iptables -t raw -A PREROUTING -p udp --sport 123 -j DROP

Peter Green
quelle
1

Es sieht so aus, als könnten wir die IPs für NTP-Missbrauch (und hoffentlich für NTP-Patches) melden

http://openntpproject.org/

In Bezug auf Berichtsnetzwerke, die gefälschte IP-Adressen zulassen, kann ich nicht viel finden :

Unsere Messungen zeigen, dass bei ungefähr 25% der von uns untersuchten autonomen Systeme und Netblocks immer noch Spoofing auftritt. Noch wichtiger ist, dass ein einziger Einstiegspunkt für gefälschten Datenverkehr Angreifern die Möglichkeit bietet, gefälschten Datenverkehr an das gesamte Internet zu senden. ISPs können Filterung [RFC2827] verwenden, um sicherzustellen, dass der ausgehende Datenverkehr nicht gefälscht wird.

Vielleicht ist die einzige Möglichkeit, sich direkt an den ISP zu wenden?

Jeff Atwood
quelle