Frage Ich bin unter DDoS. Was kann ich machen?


Das ist ein Kanonische Frage über DoS- und DDoS-Minderung.

Ich habe auf einer Website, die ich heute hosten werde, eine massive Verkehrsspitze gefunden. Ich bekomme Tausende von Verbindungen pro Sekunde und ich sehe, dass ich alle 100Mbps meiner verfügbaren Bandbreite verwende. Niemand kann auf meine Site zugreifen, da alle Anfragen auslaufen, und ich kann mich nicht einmal am Server anmelden, da SSH ebenfalls ausläuft! Dies ist ein paar Mal zuvor passiert, und jedes Mal dauerte es ein paar Stunden und ist von selbst gegangen.

Gelegentlich hat meine Website ein anderes, aber zusammenhängendes Problem: Der Lastdurchschnitt meines Servers (der normalerweise um 0,25 liegt) rakelt bis zu 20 oder mehr, und niemand kann genau wie im anderen Fall auf meine Site zugreifen. Es geht auch nach ein paar Stunden weg.

Neustart meines Servers hilft nicht; Was kann ich tun, um meine Website wieder zugänglich zu machen und was passiert?

In Verbindung damit, fand ich einmal, dass für ein oder zwei Tage, jedes Mal, wenn ich meinen Dienst begann, es eine Verbindung von einer bestimmten IP-Adresse bekam und dann abgestürzt ist. Sobald ich es wieder gestartet habe, ist es wieder passiert und es ist wieder abgestürzt. Wie ist das ähnlich, und was kann ich dagegen tun?


171
2017-08-19 09:14


Ursprung


Ich folgte diesem nach dem Lesen (Erstellen einer kanonischen "Hilfe, ich bekomme DDOS-ed!" Frage?). Will ich nur nette Arbeit sagen !!! - AngryWombat
Siehe auch security.stackexchange.com/a/792/2379 - Pacerier


Antworten:


Sie haben einen Denial-of-Service-Angriff. Wenn Sie sehen, dass Datenverkehr von mehreren Netzwerken kommt (verschiedene IPs in verschiedenen Subnetzen), haben Sie einen Distributed Denial of Service (DDoS); Wenn alles vom selben Ort kommt, hast du ein einfaches altes DoS. Es kann hilfreich sein zu überprüfen, ob Sie in der Lage sind; Verwenden Sie Netstat, um zu überprüfen. Dies könnte jedoch schwierig sein.

Denial of Service fällt in der Regel in zwei Kategorien: verkehrsbasiert und lastbasiert. Das letzte Element (mit dem Absturzdienst) ist ein Exploit-basiertes DoS und ist ziemlich unterschiedlich.

Wenn Sie herausfinden möchten, welche Art von Angriff stattfindet, möchten Sie möglicherweise etwas Verkehr erfassen (mit wireshark, tcpdump oder libpcap). Sie sollten, wenn möglich, aber auch beachten, dass Sie wahrscheinlich ziemlich viel Verkehr erfassen werden.

Diese werden oft von Botnets kommen (Netzwerke von kompromittierten Hosts unter der zentralen Kontrolle eines Angreifers, dessen Gebote sie erfüllen werden). Dies ist eine gute Möglichkeit für den Angreifer, die Upstream-Bandbreite von vielen verschiedenen Hosts in verschiedenen Netzwerken (sehr billig) zu erwerben, um Sie anzugreifen, während sie ihre Spuren abdecken. Das Ionen-Kanone mit niedrigem Orbit ist ein Beispiel für ein Botnet (obwohl es freiwillig und nicht von Malware abgeleitet ist); Zeus ist ein typischer.

Verkehrsbasiert

Wenn Sie unter einem verkehrsbasierten DoS sind, finden Sie das Es gibt einfach so viel Verkehr zu Ihrem Server kommen, dass seine Verbindung zum Internet vollständig gesättigt ist. Es gibt eine hohe Paketverlustrate beim Pingen Ihres Servers von woanders aus, und (abhängig von den verwendeten Routing-Methoden) sehen Sie manchmal auch eine sehr hohe Latenz (der Ping ist hoch). Diese Art von Angriff ist normalerweise ein DDoS.

Während dies ein wirklich "lauter" Angriff ist, und es offensichtlich ist, was vor sich geht, ist es für einen Serveradministrator schwer zu entschärfen (und für einen Benutzer des Shared Hostings ist es im Grunde unmöglich abzuschwächen). Sie benötigen Hilfe von Ihrem ISP; Lass sie wissen, dass du unter einem DDoS stehst, und sie könnten vielleicht helfen.

Die meisten ISPs und Transitanbieter werden jedoch proaktiv erkennen, was vor sich geht und veröffentlichen Blackhole-Route für deinen Server. Dies bedeutet, dass sie eine Route zu Ihrem Server mit so wenig Kosten wie möglich veröffentlichen 0.0.0.0: Sie machen Verkehr zu Ihrem Server nicht mehr im Internet routable. Diese Routen sind normalerweise / 32s und schließlich werden sie entfernt. Das hilft dir überhaupt nicht; Der Zweck besteht darin, das Netzwerk des ISP vor der Flut zu schützen. Für die Dauer verliert Ihr Server effektiv den Internetzugang.

Die einzige Möglichkeit, mit der Ihr ISP (oder Sie, wenn Sie Ihre eigene AS haben) helfen kann, ist, wenn sie intelligente Traffic-Shaper verwenden, die möglichen DDoS-Verkehr erkennen und Rate-limitieren können. Nicht jeder hat diese Technologie. Wenn der Datenverkehr jedoch von einem oder zwei Netzwerken oder einem Host stammt, können diese möglicherweise auch den vor Ihnen liegenden Datenverkehr blockieren.

Zusamenfassend, Es gibt sehr wenig, was du tun kannst über dieses Problem. Die beste langfristige Lösung besteht darin, Ihre Dienste an vielen verschiedenen Orten im Internet zu hosten, die einzeln und gleichzeitig DDoSed werden müssten, wodurch der DDoS sehr viel teurer wird. Strategien hierfür hängen von dem Service ab, den Sie schützen müssen. DNS kann mit mehreren autorisierenden Nameservern, SMTP mit Backup-MX-Records und Mail-Exchanger und HTTP mit Round-Robin-DNS oder Multihoming geschützt werden (einige Beeinträchtigungen sind jedoch für die Dauer erkennbar).

Load Balancer sind selten eine effektive Lösung für dieses Problem, da der Load Balancer selbst dem gleichen Problem unterliegt und lediglich einen Engpass verursacht. IPTables oder andere Firewall-Regeln werden nicht helfen weil das Problem ist, dass deine Pfeife gesättigt ist. Sobald die Verbindungen von Ihrer Firewall erkannt werden, ist es bereits zu spät; Die Bandbreite in Ihrer Website wurde verbraucht. Es ist egal, was du mit den Verbindungen machst; Der Angriff wird gemildert oder beendet, wenn der eingehende Datenverkehr wieder normal wird.

Wenn Sie dazu in der Lage sind, sollten Sie in Erwägung ziehen, a Inhaltsverteilungsnetzwerk (CDN) wie Akamai, Limelight und CDN77 oder verwenden Sie einen DDoS-Scrubbing-Dienst wie CloudFlare oder Prolexic. Diese Dienste ergreifen aktive Maßnahmen, um diese Arten von Angriffen abzuschwächen, und sie verfügen über so viel verfügbare Bandbreite an so vielen verschiedenen Orten, dass eine Überflutung nicht möglich ist.

Wenn Sie sich entscheiden, CloudFlare (oder einen anderen CDN / Proxy) zu verwenden, vergessen Sie nicht, die IP Ihres Servers zu verbergen. Wenn ein Angreifer die IP-Adresse findet, kann er Ihren Server direkt erneut DDoS, unter Umgehung von CloudFlare. Um die IP zu verbergen, sollte Ihr Server niemals direkt mit anderen Servern / Benutzern kommunizieren, außer sie sind sicher. Zum Beispiel sollte Ihr Server keine E-Mails direkt an Benutzer senden. Dies gilt nicht, wenn Sie alle Ihre Inhalte auf dem CDN hosten und keinen eigenen Server haben.

Auch einige VPS und Hosting-Anbieter können diese Angriffe besser abmildern als andere. Je größer sie sind, desto besser werden sie im Allgemeinen sein; Ein Anbieter, der sehr gut informiert ist und über viel Bandbreite verfügt, wird natürlich widerstandsfähiger sein, und einer mit einem aktiven und voll ausgestatteten Netzwerkbetriebsteam wird in der Lage sein, schneller zu reagieren.

Lastbasiert

Wenn Sie ein lastbasiertes DDoS erleben, stellen Sie fest, dass das Lastdurchschnitt ist ungewöhnlich hoch (oder CPU-, RAM- oder Festplattennutzung, abhängig von Ihrer Plattform und den Besonderheiten). Obwohl der Server scheinbar nichts Nützliches tut, ist er sehr beschäftigt. In den Protokollen werden häufig umfangreiche Einträge angezeigt, die auf ungewöhnliche Bedingungen hinweisen. Meistens kommt das von vielen verschiedenen Orten und ist ein DDoS, aber das ist nicht unbedingt der Fall. Es müssen nicht viele verschiedene Hosts sein.

Dieser Angriff basiert darauf, dass dein Dienst eine Menge teurer Sachen macht. Dies könnte etwas wie das Öffnen einer gigantischen Anzahl von TCP-Verbindungen sein und zwingt Sie, den Status für sie beizubehalten oder übermäßig große oder zahlreiche Dateien auf Ihren Dienst zu laden, oder wirklich teure Suchen durchzuführen oder wirklich alles zu tun, was teuer zu handhaben ist. Der Verkehr ist innerhalb der Grenzen dessen, was Sie geplant haben und übernehmen können, aber Die Art der Anfragen ist zu teuer, um mit so vielen zu umgehen.

Erstens, dass diese Art von Angriff möglich ist, ist oft ein Hinweis auf a Konfigurationsproblem oder Fehler in deinem Dienst. Zum Beispiel haben Sie möglicherweise eine sehr ausführliche Protokollierung aktiviert und können Protokolle auf etwas speichern, auf das sehr langsam geschrieben wird. Wenn jemand dies erkennt und viel tut, was dazu führt, dass Sie umfangreiche Mengen an Logs auf die Festplatte schreiben, wird Ihr Server langsam crawlen. Möglicherweise führt Ihre Software bei bestimmten Eingabefällen auch etwas sehr Ineffizientes aus. Die Ursachen sind so zahlreich, wie es Programme gibt, aber zwei Beispiele wären eine Situation, die dazu führt, dass Ihr Dienst eine Sitzung, die sonst beendet wird, nicht schließt, und eine Situation, die dazu führt, dass ein untergeordneter Prozess erzeugt wird und ihn verlässt. Wenn Sie mit Zehntausenden von offenen Verbindungen mit dem zu überwachenden Status oder Zehntausenden von untergeordneten Prozessen enden, werden Sie in Schwierigkeiten geraten.

Das erste, was Sie tun können, ist Verwenden Sie eine Firewall, um den Datenverkehr zu löschen. Dies ist nicht immer möglich, aber wenn es eine Eigenschaft gibt, die Sie im eingehenden Verkehr finden können (tcpdump kann bei schwachem Verkehr nett sein), können Sie es an der Firewall ablegen und es wird keine Probleme mehr verursachen. Die andere Sache ist, den Fehler in Ihrem Service zu beheben (nehmen Sie Kontakt mit dem Anbieter auf und seien Sie auf eine lange Support-Erfahrung vorbereitet).

Jedoch, Wenn es ein Konfigurationsproblem ist, starten Sie dort. Verringern Sie die Protokollierung von Produktionssystemen auf ein vernünftiges Maß (abhängig vom Programm ist dies normalerweise der Standard) und es wird normalerweise sichergestellt, dass die Debug- und die ausführlichen Protokollebenen ausgeschaltet sind, wenn alles, was ein Benutzer tut, genau angemeldet ist feines Detail, Ihre Protokollierung ist zu ausführlich). Zusätzlich, Überprüfen Sie den Kindprozess und fordern Sie Limits an, möglicherweise drosseln eingehende Anforderungen, Verbindungen pro IP und die Anzahl zulässiger untergeordneter Prozesse.

Es versteht sich von selbst, dass je besser dieser Server konfiguriert und besser bereitgestellt wird, desto schwieriger wird diese Art von Angriff sein. Vermeiden Sie es, besonders mit RAM und CPU geizig zu sein. Stellen Sie sicher, dass Ihre Verbindungen zu Dingen wie Backend-Datenbanken und Festplattenspeicher schnell und zuverlässig sind.

Exploit-basiert

Wenn dein Dienst geheimnisvoll ist stürzt extrem schnell ab Nach dem Hochfahren, insbesondere wenn Sie ein Muster von Anfragen erstellen können, die dem Absturz vorausgehen und die Anfrage atypisch ist oder nicht den erwarteten Nutzungsmustern entspricht, können Sie ein Exploit-basiertes DoS erleben. Dies kann von so wenig wie nur einem Host (mit so ziemlich jeder Art von Internetverbindung) oder viele Hosts kommen.

Das ist ähnlich einem lastbasierten DoS in vielerlei Hinsicht, und hat im Grunde die gleichen Ursachen und Milderungen. Der Unterschied besteht lediglich darin, dass der Fehler in diesem Fall nicht dazu führt, dass Ihr Server verschwendet wird, sondern dass er stirbt. Der Angreifer nutzt normalerweise eine Remote-Crash-Schwachstelle aus, beispielsweise eine verzerrte Eingabe, die eine Null-Dereferenzierung oder etwas in Ihrem Dienst verursacht.

Behandeln Sie dies ähnlich wie bei einem nicht autorisierten Fernzugriffsangriff. Firewall gegen die verursachenden Hosts und Art des Datenverkehrs, wenn sie festgenagelt werden können. Verwenden Sie validierende Reverse Proxys wenn anwendbar. Sammeln Sie forensische Beweise (versuchen Sie, einen Teil des Datenverkehrs zu erfassen), reichen Sie ein Fehlerticket beim Anbieter ein und überlegen Sie, eine Missbrauchsbeschwerde (oder eine rechtliche Beschwerde) auch gegen den Ursprung einzureichen.

Diese Attacken sind ziemlich billig zu montieren, wenn ein Exploit gefunden werden kann, und sie können sehr potent sein, aber auch relativ einfach zu finden und zu stoppen. Techniken, die gegen verkehrsbasierten DDoS nützlich sind, sind jedoch im Allgemeinen nutzlos gegen Exploit-basiertes DoS.


183
2017-08-19 09:14



In Bezug auf deinen letzten Absatz, Und was ist, wenn du auf Exploits basierst? D DOS? Wie konntest du es aufspüren und stoppen? - Pacerier


Wenn Sie ein Unternehmen sind, haben Sie viele Möglichkeiten. Wenn Sie ein kleiner Kerl wie ich sind, einen VPS oder einen dedizierten Server mieten, um eine kleine Website zu bedienen, können Kosten schnell prohibitiv werden.

Aus meiner Erfahrung glaube ich, dass die meisten dedizierten und VPS-Anbieter keine speziellen Firewall-Regeln nur für Ihren Server einrichten werden. Aber heutzutage haben Sie ein paar Möglichkeiten.

CDN

Wenn Sie einen Webserver betreiben, sollten Sie ihn hinter ein CDN wie CloudFlare oder Amazon CloudFront stellen.

CDNs sind teuer. Um die Kosten unter Kontrolle zu halten, sollten Sie große Dateien (große Bilder, Audio, Video) direkt von Ihrem Server anstatt über das CDN bereitstellen. Dies kann jedoch die IP-Adresse Ihres Servers für Angreifer offen legen.

Private Wolke

Private Clouds sind meist teure Enterprise-Lösungen, aber Amazon VPC kostet so gut wie nichts. Die Bandbreite von Amazon ist jedoch im Allgemeinen teuer. Wenn Sie sich das leisten können, können Sie die Sicherheitsgruppe von Amazon VPC und die Netzwerk-ACL einrichten, um den Datenverkehr zu blockieren, bevor er bei Ihrer Instanz eintrifft. Sie sollten alle Ports außer Ihrem TCP-Server-Port blockieren.

Beachten Sie, dass ein Angreifer weiterhin den TCP-Server-Port angreifen kann. Wenn es sich um einen Webserver handelt, sollten Sie in Betracht ziehen, etwas wie nginx zu verwenden, das nicht blockierende E / A verwendet und eine große Anzahl von Verbindungen verarbeiten kann. Darüber hinaus können Sie nicht viel tun, um sicherzustellen, dass Sie die neueste Version der Serversoftware ausführen.

Wenn Ihr TCP-Port angegriffen wird und alles andere fehlschlägt

Dies ist eine von mir entwickelte Lösung, die für Nicht-Webserver gilt, die sich nicht hinter einem CDN verstecken können, z. B. WebSocket, Medieninhalts- / Streaming-Server. CloudFlare unterstützt WebSocket derzeit aber nur für Unternehmen.

Ziel ist es, den TCP-Port so schnell zu ändern, dass ein Botnet nicht mehr mithalten kann, etwa alle 10 Sekunden. Dies wird unter Verwendung eines einfachen Proxy-Programms erreicht, das das Port-Roaming durchführt. Die Reihenfolge der Ports ist pseudozufällig, muss jedoch auf der Serverzeit basieren. Und der Algorithmus zur Berechnung der Serverzeit & Port muss in Ihrem Client Javascript / Flash-Code versteckt werden. Das Programm sollte auch die Firewall ändern, wenn sich der Listening-Port ändert, und die Firewall muss Stateful sein. Wenn jemand interessiert ist, werde ich mein node.js-Skript, das mit Amazon funktioniert, auf GitHub hochladen.


6
2017-12-05 18:04





Ändern Sie Ihre Domain, um für kurze Zeit zu einem schwarzen Loch wie 0.0.0.0 zu wechseln.

Sprechen Sie mit Ihrem Server, um zu sehen, ob er Ihnen eine andere IP-Adresse als temporären Weg zum Zugriff auf den Server ausstellen kann oder ob der Server über Remote-Konsolenzugriff verfügt (so wie Sie davor sitzen). Von hier aus können Sie sehen, ob es sich um eine einzelne IP-Adresse handelt und diese von der Site oder einem verteilten Angriff blockieren.


3
2018-02-26 07:44



Das Ändern von DNS wird wahrscheinlich eher schaden als nützen. Zuerst würde ich die TTL des A-Datensatzes reduzieren, aber die IP-Adresse unverändert lassen - bis ich eine neue IP habe, auf die ich zeigen kann. - kasperd


Wenn Sie unter DDoS-Angriff sind, kann Ihr ISP Ihnen am meisten helfen, aber wenn Sie keinen DDoS-Schutz haben, ist es sehr wahrscheinlich, dass Sie außer Betrieb sind, bis der Angriff aufhört. Normalerweise sehen sie die angegriffene IP-Adresse und löschen das Netzwerk auf ihrem Upstream-Router. Wenn Sie nicht viel Datenverkehr haben, gibt es viele Online-Dienste für den DDoS-Schutz, bei denen Ihr Datenverkehr umgeleitet, gefiltert und zurück an Ihren Server gesendet wird.


0
2017-11-18 11:42