Umgang mit DDoS-Attacken bei nine.ch

nine Team Mär 14, 2016

Eine „Distributed Denial-of-Service“ Attacke zielt darauf ab, einen Server mit möglichst vielen Anfragen von unterschiedlichen Systemen zu überfluten, damit dieser seiner eigentlichen Tätigkeit (z.B. das Ausliefern einer Webseite) nicht mehr nachkommen kann.

Es gibt viele verschiedene Strategien, um eine solche Attacke zu bewerkstelligen. Eine der häufigsten Methoden um einen DDoS-Angriff zu verüben, ist die sogenannte „Reflection“-Attacke. Diese basiert darauf, dass ein gefälschtes Paket, welches die IP-Adresse des Opfers als Absender hat, an viele Server gesendet wird, welche dann mit einem, in der Regel grösseren Paket antworten.

Diese Antwort wird dann an das Ziel des Angriffs gesendet. So kann ein Angreifer viele kleine Pakete aussenden, welche durch z.B. offene DNS-Resolver vergrössert beim Ziel ankommen. Hierbei kann es schnell zu mehreren Gbps Traffic kommen, was die Netzwerkanbindung des Opfers überlasten kann. Die Dienste, welche am häufigsten ausgenutzt werden, sind unter anderem schlecht konfigurierte DNS- und NTP-Server.

Vielen grösseren DDoS-Angriffen geht ein Kleinerer voran, welcher meist von einem Erpressermail begleitet wird. Die Erpresser fordern in der Regel, dass ein gewisser Betrag in Bitcoins bezahlt wird, damit der „richtige“ Angriff nicht stattfindet. Die grössere Attacke wird oft auf ein paar Stunden nach der Ersten angekündigt. Es wird ausdrücklich empfohlen, den Forderungen der Erpresser nicht nachzukommen.

Sofortmassnahmen durch nine.ch bei einer Attacke

Um zu vermeiden, dass bei einem grossen Angriff (mehrere Gbps) mehrere Kunden von nine.ch betroffen sind, wird die angegriffene IP-Adresse so schnell wie möglich „genullroutet“. Dies bedeutet, dass alle Pakete, welche an diese IP gesendet werden, von unseren Routern und derer unserer Peering Provider verworfen werden. So ist es leider nicht möglich, den Betrieb der unter der angegriffenen IP laufenden Seite weiter zu gewährleisten. Jedoch werden keine anderen Dienste in Mitleidenschaft gezogen.

Vorbeugung eines Ausfalls

Leider gibt es nicht viele Möglichkeiten, um bei einer DDoS-Attacke, welche mit mehreren Gbps durchgeführt wird, die betroffene Webseite online zu halten. An vielen Orten wird empfohlen, den schadhaften Traffic einfach auszufiltern. Wenn dies aber auf dem Server, welcher mit 1 Gbps angebunden ist, gemacht wird und der Angriff grösser ist, ist die Leitung zum Server gefüllt und der Filter ist nutzlos.

Um also einen solchen Angriff abwehren zu können, ist es notwenig, dass ein Filter vor den Server gestellt wird, welcher mehrere hundert Gbps filtern und nur den legitimen Traffic an den Server weiter senden kann.

Hier kommt ein Provider wie zum Beispiel CloudFlare ins Spiel. CloudFlare besitzt eine Infrastruktur, die auf 71 Rechenzentren weltweit verteilt ist und kann so ca. 400Gbps Traffic verarbeiten.

Der Zugriff auf eine mittels Cloudflare geschützte Seite läuft so ab, dass das Datenpaket, welches die Anfrage enthält, sich den schnellsten Weg zu einem Server von Cloudflare sucht. Dort wird das Paket genau untersucht, ob die Anfrage legitim ist. Danach wird die Anfrage an den eigentlichen Webserver weitergesendet. Die Antwort an den Webbrowser, nimmt dann den selben Weg (via CloudFlare) zurück. So werden zum einen Angriffe auf den Server herausgefiltert und zum anderen findet ein Angreifer nicht heraus, welcher Server genau für die Webseite zuständig ist.

Dadurch wird gewährleistet, dass nicht einfach der Server über eine andere Route angegriffen werden kann.

DDoS Schutz bei nine.ch

nine.ch bietet mit dem Produkt „Managed DDoS Protection“ eine Lösung, um eine Webseite gegen einen solchen Angriff zu schützen. Hierbei setzt nine.ch auf die oben erwähnte Variante, mit Umleiten des Traffics via CloudFlare.

Damit die Zugriffszeiten durch CloudFlare hindurch nicht schlechter werden, setzen wir zudem die sogenannte Railgun ein. Dies ist eine Eigenentwicklung von CloudFlare und sorgt im Grunde dafür, dass nur die konkreten Unterschiede einer dynamischen Seite zwischen dem Server bei nine.ch und der CloudFlare Infrastruktur übertragen werden müssen.

Die Railgun ist ein Dienst, welcher bei uns auf zwei unabhängigen Servern installiert ist. Sie speichert den jeweils letzten Stand einer ausgelieferten Webseite zwischen und vergleicht bei jeder neuen Anfrage mit der neuesten Version der dynamischen Seite. So muss dann nur der Unterschied zur neuen Versionen der Webseite an CloudFlare gesendet werden, wo die Änderungen in die gecachte Seite einfliessen und an den aufrufenden Browser ausgeliefert werden. Dadurch kann mehr bei CloudFlare gecacht werden, was zu verkürzten Ladezeiten der einzelnen Seiten führt.

Die Umstellung

Um eine Webseite, welche bei nine.ch läuft, hinter CloudFlare zu verbergen, sind keine grossen Änderungen notwendig. Durch nine.ch wird die betroffene Domain zuerst bei CloudFlare erfasst und die ersten Grundkonfigurationen werden vorgenommen. Sobald dies geschehen ist, muss der Inhaber der Kundendomain die Nameserver-Einträge beim Registrar auf die zuständigen DNS-Server von CloudFlare umstellen. Sobald die Umstellung abgeschlossen ist, laufen alle Anfragen über die Server von CloudFlare. Weitere Aktionen sind auf Seite des Kunden nicht notwendig. Allein das Testen, ob alles noch wie gewohnt funktioniert, ist noch nötig. nine.ch nimmt dann noch einige kleinere Anpassungen, wie das Aktivieren der Railgun und das korrekte Konfigurieren des SSL-Zertifikats, vor.

Einschränkungen

Mit erhöhter Sicherheit gehen leider auch immer Einschränkungen einher. Die vermutlich grösste Einschränkung im Zusammenhang mit CloudFlare ist, dass die DNS-Einträge der geschützten Domain nicht mehr selber verwaltet werden können. Die Ursache hierfür ist, dass die DNS-Einträge über die Nameserver von CloudFlare gesetzt werden müssen. Somit ist es nach der Umstellung nötig, dass alle DNS-Änderungen durch die Mitarbeiter von nine.ch erledigt werden müssen.

Des Weiteren leitet CloudFlare nur HTTP-Anfragen weiter. Dies bedeutet, dass z.B. der SSH- oder SFTP-Zugriff nicht mehr über die geschützte Domain möglich ist, sondern direkt auf den Servername gemacht werden muss.

Wir empfehlen ausserdem, die Mails nicht direkt z.B. aus PHP zu versenden, sondern gezielt einen SMTP-Server zu verwenden, über welchen die Mails gesendet werden, um die IP-Adresse des eigentlichen Servers zu verschleiern.

Martin Wittwer arbeitet als Linux System Engineer im “Systems”-Team bei nine.ch. Zusammen mit den Kollegen aus dem „Systems“-Team ist er für die ständige Weiterentwicklung unserer Infrastruktur und Managed Services verantwortlich und war massgeblich an der Entwicklung des Produkts “Managed DDOS Protection” beteiligt.