Es kommt zu einem Denial-of-Service-Angriff. Wenn Sie feststellen, dass der Datenverkehr von mehreren Netzwerken kommt (unterschiedliche IP-Adressen in unterschiedlichen Subnetzen), liegt ein Distributed Denial of Service (DDoS) vor. 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; benutze netstat um das zu überprüfen. Dies könnte jedoch schwierig sein.
Denial-of-Service fällt normalerweise in zwei Kategorien: verkehrsbasiert und lastbasiert. Das letzte Element (mit dem Absturzdienst) ist ein auf Exploits basierendes DoS und ist ganz anders.
Wenn Sie versuchen, die Art des Angriffs genau zu bestimmen, möchten Sie möglicherweise Datenverkehr erfassen (mit Wireshark, tcpdump oder libpcap). Sie sollten sich nach Möglichkeit aber auch darüber im Klaren sein, dass Sie wahrscheinlich ziemlich viel Verkehr erfassen werden.
So oft wie nicht, werden diese von Botnetzen stammen (Netzwerke kompromittierter Hosts, die unter der zentralen Kontrolle eines Angreifers stehen, dessen Gebot sie abgeben). Auf diese Weise kann der Angreifer (sehr kostengünstig) die Upstream-Bandbreite vieler verschiedener Hosts in verschiedenen Netzwerken abrufen, mit denen er Sie angreifen kann, während er deren Spuren verwischt. Die Low Orbit Ion Cannon ist ein Beispiel für ein Botnetz (obwohl es freiwillig und nicht von Malware abgeleitet ist). Zeus ist typischer.
Verkehrsbasiert
Wenn Sie sich in einem DoS befinden, das auf Datenverkehr basiert, wird auf Ihrem Server nur so viel Datenverkehr übertragen , dass die Verbindung zum Internet vollständig ausgelastet ist. Es gibt eine hohe Paketverlustrate, wenn Sie Ihren Server von einem anderen Ort aus anpingen, und (abhängig von den verwendeten Routing-Methoden) stellen Sie manchmal auch eine sehr hohe Latenz fest (der Ping ist hoch). Diese Art von Angriff ist normalerweise ein DDoS.
Dies ist zwar ein sehr "lauter" Angriff, und es ist offensichtlich, was vor sich geht, aber für einen Serveradministrator ist es schwierig, ihn zu mildern (und für einen Benutzer von Shared Hosting ist es im Grunde unmöglich, ihn zu mildern). Sie werden Hilfe von Ihrem ISP benötigen. Lassen Sie sie wissen, dass Sie unter einem DDoS-System stehen, und sie können möglicherweise helfen.
Die meisten ISPs und Transitanbieter werden jedoch proaktiv erkennen, was gerade passiert, und eine Blackhole-Route für Ihren Server veröffentlichen. Dies bedeutet, dass sie eine Route zu Ihrem Server mit möglichst geringen Kosten veröffentlichen, indem 0.0.0.0
sie den Datenverkehr zu Ihrem Server über das Internet nicht mehr routingfähig machen. Diese Routen sind in der Regel / 32s und werden schließlich entfernt. Das hilft dir überhaupt nicht; Ziel ist es, das Netzwerk des Internetdienstanbieters vor der Flut zu schützen. Während dieser Zeit verliert Ihr Server effektiv den Internetzugang.
Der einzige Weg, wie Ihr ISP (oder Sie, wenn Sie über einen eigenen AS verfügen) helfen kann, ist die Verwendung intelligenter Traffic Shaper, die den wahrscheinlichen DDoS-Verkehr erkennen und dessen Rate begrenzen können. Nicht jeder hat diese Technologie. Wenn der Datenverkehr jedoch von einem oder zwei Netzwerken oder einem Host stammt, kann er möglicherweise auch den vor Ihnen liegenden Datenverkehr blockieren.
Kurz gesagt, es gibt sehr wenig, was Sie gegen dieses Problem tun können . Die beste langfristige Lösung besteht darin, Ihre Dienste an vielen verschiedenen Orten im Internet zu hosten, die einzeln und gleichzeitig DDoS-fähig sein müssten, was das DDoS erheblich verteuert. Die Strategien hierfür hängen von dem Service ab, den Sie schützen müssen. DNS kann mit mehreren autorisierenden Nameservern, SMTP mit MX-Datensicherungsdatensätzen und E-Mail-Austauschern sowie HTTP mit Round-Robin-DNS oder Multihoming geschützt werden.
Lastverteiler sind selten eine effektive Lösung für dieses Problem, da der Lastverteiler selbst dem gleichen Problem unterliegt und lediglich einen Engpass erzeugt. IPTables oder andere Firewall-Regeln helfen nicht, da das Problem darin besteht, dass Ihre Pipe gesättigt ist. Sobald die Verbindungen von Ihrer Firewall erkannt wurden, ist es bereits zu spät . Die Bandbreite in Ihrer Site wurde verbraucht. Es ist egal, was Sie mit den Verbindungen machen. Der Angriff wird abgeschwächt oder beendet, wenn der eingehende Datenverkehr wieder normalisiert wird.
Wenn Sie dazu in der Lage sind, können Sie ein Content Distribution Network (CDN) wie Akamai, Limelight und CDN77 oder einen DDoS-Scrubbing-Service wie CloudFlare oder Prolexic verwenden. Diese Dienste ergreifen aktive Maßnahmen, um diese Arten von Angriffen abzuwehren, und verfügen außerdem über eine so große Bandbreite an so vielen verschiedenen Orten, dass eine Überflutung im Allgemeinen nicht möglich ist.
Wenn Sie sich für CloudFlare (oder einen anderen CDN / Proxy) entscheiden, denken Sie daran, die IP Ihres Servers zu verbergen. Wenn ein Angreifer die IP herausfindet, kann er Ihren Server unter Umgehung von CloudFlare erneut direkt einer DDoS-Operation unterziehen. Um die IP zu verbergen, sollte Ihr Server niemals direkt mit anderen Servern / Benutzern kommunizieren, es sei denn, diese 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.
Außerdem können einige VPS- und Hosting-Anbieter diese Angriffe besser abwehren als andere. Je größer sie sind, desto besser werden sie im Allgemeinen darin sein. Ein Anbieter, der sehr gut informiert ist und über eine große Bandbreite verfügt, ist von Natur aus widerstandsfähiger, und ein Anbieter mit einem aktiven und voll besetzten Netzwerkbetriebsteam kann schneller reagieren.
Lastbasiert
Bei einem lastbasierten DDoS stellen Sie fest, dass der Lastdurchschnitt ungewöhnlich hoch ist (oder die CPU-, RAM- oder Datenträgerverwendung, abhängig von Ihrer Plattform und den Besonderheiten). Obwohl der Server anscheinend nichts Nützliches tut, ist er sehr beschäftigt. In den Protokollen befinden sich häufig zahlreiche Einträge, die auf ungewöhnliche Bedingungen hinweisen. Meistens kommt dies von vielen verschiedenen Orten und ist ein DDoS, aber das ist nicht unbedingt der Fall. Es muss nicht einmal viele verschiedene Hosts geben .
Dieser Angriff basiert darauf, dass Ihr Service viele teure Dinge erledigt. Dies könnte so etwas wie das Öffnen einer riesigen Anzahl von TCP-Verbindungen und das Erzwingen des Status für sie sein, oder das Hochladen übermäßig großer oder zahlreicher Dateien zu Ihrem Dienst, oder möglicherweise das Durchführen wirklich teurer Suchen oder das Ausführen von allem, was in der Handhabung teuer ist. Der Datenverkehr liegt innerhalb der von Ihnen geplanten und möglichen Grenzen, aber die Art der gestellten Anfragen ist zu teuer, um so viele Anfragen zu bearbeiten .
Erstens weist diese Art von Angriff häufig auf ein Konfigurationsproblem oder einen Fehler hinin deinem Dienst. Möglicherweise haben Sie die ausführliche Protokollierung übermäßig aktiviert und speichern Protokolle auf etwas, auf das nur sehr langsam geschrieben werden kann. Wenn dies jemand merkt und viel unternimmt, was Sie dazu veranlasst, viele Protokolle auf die Festplatte zu schreiben, wird Ihr Server langsam kriechen. Ihre Software kann in bestimmten Eingabefällen auch eine äußerst ineffiziente Aktion ausführen. 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 ansonsten beendet wird, nicht schließt, und eine Situation, die dazu führt, dass ein untergeordneter Prozess erzeugt und verlassen wird. Wenn Sie am Ende Zehntausende von offenen Verbindungen mit state haben, um den Überblick zu behalten, oder Zehntausende von untergeordneten Prozessen, werden Sie in Schwierigkeiten geraten.
Das erste, was Sie möglicherweise tun können, ist die Verwendung einer Firewall, um den Datenverkehr zu reduzieren . Dies ist nicht immer möglich, aber wenn es eine Eigenschaft gibt, die Sie im eingehenden Datenverkehr finden können (tcpdump kann hilfreich sein, wenn der Datenverkehr schwach ist), können Sie es an der Firewall ablegen und es verursacht keine Probleme mehr. Die andere Sache, die Sie tun müssen, ist, den Fehler in Ihrem Service zu beheben (setzen Sie sich mit dem Anbieter in Verbindung und seien Sie auf eine lange Supporterfahrung vorbereitet).
Allerdings , wenn es sich um ein Konfigurationsproblem ist, starten Sie es . Reduzieren Sie die Protokollierung auf Produktionssystemen auf ein angemessenes Maß (je nach Programm ist dies normalerweise die Standardeinstellung) und stellen Sie in der Regel sicher, dass die Protokollierungsstufen "Debug" und "Verbose" deaktiviert sind feine Details, Ihre Protokollierung ist zu ausführlich). Darüber hinaus überprüfen Grenzen Kind - Prozess und Anforderung , möglicherweise Drossel eingehende Anfragen, Verbindungen pro IP, und die Anzahl der erlaubten Kindprozesse, wie anwendbar.
Es versteht sich von selbst, dass diese Art von Angriff umso schwerer ist, je besser konfiguriert und bereitgestellt Ihr Server ist. Vermeiden Sie es, besonders mit RAM und CPU zurechtzukommen. Stellen Sie sicher, dass Ihre Verbindungen zu Back-End-Datenbanken und zum Festplattenspeicher schnell und zuverlässig sind.
Exploit-basiert
Wenn Ihr Dienst nach dem Aufrufen auf mysteriöse Weise sehr schnell abstürzt , insbesondere wenn Sie ein Muster von Anforderungen erstellen können, das dem Absturz vorausgeht, und die Anforderung untypisch ist oder nicht mit den erwarteten Verwendungsmustern übereinstimmt, liegt möglicherweise ein DoS auf Exploit-Basis vor. Dies kann von nur einem Host (mit so ziemlich jeder Art von Internetverbindung) oder von vielen Hosts kommen.
Dies ähnelt in vielerlei Hinsicht einem lastbasierten DoS und hat im Grunde die gleichen Ursachen und Abhilfemaßnahmen. Der Unterschied besteht lediglich darin, dass in diesem Fall der Fehler nicht dazu führt, dass Ihr Server verschwenderisch ist, sondern dass er stirbt. Der Angreifer nutzt normalerweise eine Sicherheitsanfälligkeit bezüglich eines Remoteabsturzes aus, z. B. eine verstümmelte Eingabe, die eine Null-Dereferenzierung oder etwas in Ihrem Dienst verursacht.
Behandeln Sie dies ähnlich wie einen nicht autorisierten RAS-Angriff. Firewall gegen die Ursprungs-Hosts und die Art des Datenverkehrs, wenn diese festgehalten werden können. Verwenden Sie ggf. validierende Reverse-Proxies . Sammeln Sie forensische Beweise (versuchen Sie, einen Teil des Datenverkehrs zu erfassen), reichen Sie ein Fehlerticket beim Anbieter ein und erwägen Sie, eine Missbrauchsbeschwerde (oder rechtliche Beschwerde) auch gegen den Ursprung einzureichen.
Diese Angriffe sind relativ kostengünstig, wenn ein Exploit gefunden werden kann, und sie können sehr effektiv sein, lassen sich aber auch relativ leicht aufspüren und stoppen. Techniken, die gegen verkehrsbasiertes DDoS nützlich sind, sind jedoch im Allgemeinen gegen DoS auf Exploit-Basis nutzlos.