Vraag Hoe kan ik een DDOS-aanval op Amazon EC2 voorkomen?


Een van de servers die ik gebruik, wordt gehost op de Amazon EC2-cloud. Om de paar maanden lijken we hier een DDOS-aanval te hebben. Dit vertraagt ​​de server ongelooflijk. Na ongeveer 30 minuten en soms later opnieuw opstarten, is alles weer normaal.

Amazon heeft beveiligingsgroepen en een firewall, maar wat moet ik nog meer op een EC2-server hebben om een ​​aanval te beperken of te voorkomen?

Uit soortgelijke vragen heb ik geleerd:

  • Beperk de snelheid van verzoeken / minuten (of seconden) van een bepaald IP-adres via zoiets als IP-tabellen (of misschien UFW?)
  • Beschikken over voldoende middelen om een ​​dergelijke aanval te overleven - of -
  • Bouw eventueel de webapplicatie zodat deze elastisch is / een elastische load-balancer heeft en snel kan opschalen om aan zo'n hoge vraag te voldoen)
  • Als u mySql gebruikt, stelt u mySQL-verbindingen zo in dat ze opeenvolgend worden uitgevoerd, zodat trage query's het systeem niet vertragen

Wat mis ik nog meer? Ik zou dol zijn op informatie over specifieke tools en configuratie-opties (nogmaals, hier Linux gebruiken) en / of iets dat specifiek is voor Amazon EC2.

ps: Opmerkingen over monitoring voor DDOS zouden ook welkom zijn - misschien met nagios? ;)


46
2017-12-13 01:08


oorsprong


Het voorkomen ervan is bijna onmogelijk, maar je kunt je kwetsbaarheid zeker verminderen. - Belmin Fernandez
Waar. En ik zou blij zijn met antwoorden die discussiëren over afnemende kwetsbaarheid :) - cwd
Om te weten hoe dit te voorkomen, zou men meer moeten weten over de aard van de aanval. Was het een syn-vloed? Was er een webpagina die duur is en die werd geraakt? was het een andere dienst? - stew
Ik denk dat het een webpagina was maar weet het niet zeker. Ik zou ook graag tips over de monitor ontvangen en deze onderzoeken. Sommige toegangslogboeken zijn al verwijderd. Waar moet ik verder naar zoeken? - cwd
en eigenlijk, als een herstart het probleem oplost, dan weet ik niet wat het zou kunnen zijn, behalve dat jouw server ergens een bronlek heeft. Een reboot kan een DDoS natuurlijk niet alleen stoppen. Hoe weet je dat dit een DDoS is? - stew


antwoorden:


Een DDOS (of zelfs een DOS) is in essentie een bron van uitputting. Je zult nooit in staat zijn om knelpunten weg te nemen, omdat je ze alleen maar verder weg kunt duwen.

Op AWS heb je geluk omdat de netwerkcomponent erg sterk is - het zou heel verrassend zijn om te horen dat de upstream-link verzadigd was. De CPU en de I / O van schijven zijn echter veel gemakkelijker te overstromen.

De beste manier van handelen zou zijn door een aantal monitoring te starten (lokaal zoals SAR, remote met Nagios en / of ScoutApp) en enkele externe loggingfaciliteiten (Syslog-ng). Met een dergelijke set-up kunt u identificeren welke bronnen verzadigd raken (netwerkaansluiting vanwege Syn flood, CPU vanwege slechte SQL-query's of crawlers, ram vanwege ...). Vergeet niet om uw logpartitie (als u remote logging niet hebt ingeschakeld) op een EBS-volume te plaatsen (om later de logboeken te bestuderen).

Als de aanval via de webpagina's komt, kan het toegangslog (of het equivalent daarvan) erg handig zijn.


36
2017-12-13 02:20



Misschien wilt u de sectie "load-based" bekijken van serverfault.com/a/531942/87017 - Pacerier


U kunt uw EC2-instanties ook verder isoleren door ze achter een elastische taakverdeler te plaatsen en alleen verkeer uit de ELB-instantie te accepteren. Dit zet meer van de verantwoordelijkheid op Amazon om DDOS-aanvallen te beheren.

Ik neem aan dat je SSH nog steeds voor iedereen open hebt staan, dus het is waarschijnlijk dat je nog steeds malafide verkeer ziet binnenkomen, tenzij je die poort kunt vergrendelen voor bepaalde statische IP's. Je zou de SSHd-poort kunnen veranderen in iets obscure (d.w.z. iets anders dan 22) om DDOS-hits verder te verminderen (de meeste bots controleren alleen bekende poorten).

Ik noem ook fail2ban, dat logboeken kan bewaken en tijdelijk je IP-tabellen kan aanpassen om specifieke IP's te blokkeren (bijvoorbeeld als er zes mislukte pogingen zijn gedaan om SSH in je host vanaf een enkel IP-adres te blokkeren, kan dat IP blokkeren voor 30 minuten of zo). Houd er rekening mee dat (zoals Jordan ook terecht opmerkte) fail2ban waarschijnlijk niet geschikt is voor het blokkeren van proxied verkeer (bijvoorbeeld dat van een ELB) omdat het het IP-adres van de proxy zal blokkeren, niet noodzakelijkerwijs het oorspronkelijke externe IP-adres.

Ik heb het niet gebruikt, maar Apache mod_evasive kan ook de moeite waard zijn om te onderzoeken; het kan echter dezelfde zwakheid hebben als fail2ban als het gaat om IP-gebaseerde blokkering.


24
2017-12-13 19:52



+1 bedankt. eigenlijk heb ik ssh gesloten;) - cwd
Merk op dat als je achter een ELB zit, fail2ban niet zal werken - omdat het over het algemeen functioneert door een IP in iptables te blokkeren. Maar de IP zal altijd die van je ELB zijn. Ik besefte dat na het proberen om fail2ban aan mijn setup toe te voegen. Het werkt niet als de gebruiker alleen toegang heeft via de ELB. - Jordan Reiter


Als u Apache gebruikt, raad ik aan om te gebruiken mod_security. Verpakt door de meeste verkopers doet de kernregelset fantastisch werk.

Een andere verhardingsstap beperkt de aanvragen op het niveau van de webserver. Nginx., Apache kan inkomende verzoeken beperken en beperken.


5
2018-03-07 19:57



geweldig - die zien eruit als fantastische opties bedankt! - cwd


De oplossing die ik gebruik voor het blokkeren van realtime slechte activiteit IP's die uit AWS en anderen komen is dit ... In mijn CSF Firewall in de configuratie voor LFD Blocklists gebruik ik een hier gevonden lijst - http://myip.ms/browse/blacklist/Blacklist_IP_Blacklist_IP_Addresses_Live_Database_Real-time

Download Blacklist voor CSF Firewall » http://myip.ms/files/blacklist/csf/latest_blacklist.txt

Geen buitensporig onaangenaam AWS-verkeer meer.


2
2017-08-14 06:05



Dit geeft geen antwoord op de vraag. - kasperd


Ik ben bevooroordeeld, terwijl ik werk voor een netwerk voor het leveren van inhoud als een pre-sales engineer.

Door gebruik te maken van een Ddos-beperkingsoplossing op een netwerk voor het leveren van inhoud, bent u er zeker van dat uw bronnen nooit helemaal leeg zijn. Het lijkt op het plaatsen van een F5-load balancer voor uw site, maar verspreidt u naar duizenden locaties over de hele wereld.

Met een goede cdn kun je de oorsprong camoufleren met een witte lijst die je installeert op de firewall van de aws. Dus als aanvallers hun verkenning uitvoeren op Amazon, zal je IP-adres leeg worden omdat alles wordt geblokkeerd.

Dus de Ddos-aanvallen worden geblokkeerd wanneer het verkeer een knoop raakt die zo dicht mogelijk bij de aanvaller ligt. Dit zorgt ervoor dat je Ddos-aanvallen net zo ver wegwerkt van het item dat je probeert te beschermen.

Een goede cdn kan ook gezondheidscontroles en failover-verkeer uitvoeren naar andere locaties, bijvoorbeeld een ander ego in de kont, Azure, rackruimte, zachte laag, een fysieke dc enz. Het moet ook een WAF hebben om ervoor te zorgen dat u applicatielaaguitvalaanvallen kunt blokkeren, zoals RUDY, slowpost, slowloris evenals sqli, xss, rfi, lfi etc.

Standaard blokkeert de cdn ook netwerklaagaanvallen zoals traan, icmp-aanvallen, synfloods enz. Een cdn kan Ddos-aanvallen beperken, omdat trey enorme hoeveelheden capaciteit heeft om de verzoeken te accepteren, slecht verkeer uit te filteren en het goede verkeer door te geven. Dus versterkende aanvallen zoals ntp, DNS, ssdp, chargen en snmp volumetrische aanvallen kunnen worden geblokkeerd.

De grootste aanval die ik tot nu toe heb gezien, was 321 gbps in juli 2014. Tijdens deze aanval was er ook een DNS-protocolaanval met 20 gbps. U moet er dus voor zorgen dat uw DNS-infrastructuur ook bestand is tegen een groot aantal verzoeken.

Uit de beschrijving die je hebt gegeven, lijkt het erop dat je bent onderworpen aan een uitputtingsaanval, waarbij een aanvaller veel threads opende zodat alle threads werden opgebruikt op de webserver, app-server of firewall. Het lijkt op een slowpost, slowloris of RUDY.

Als u wilt blokkeren tegen aanvallen van applicatielaaguitputting, moet u een webtoepassingsfirewall (WAF) krijgen. Een typische netwerkfirewall (met inbegrip van amazons firewall en volgende generatie firewalls) zal het niet kunnen blokkeren. Verstuurde werk-firewalls kunnen tegenwoordig slechts ongeveer 30% van alle aanvallen blokkeren (nov 2014).


2
2017-11-12 12:12





Hier is een tool die ik heb gemaakt voor diegenen die Fail2Ban willen gebruiken op aws met apache, ELB en ACL: https://github.com/anthonymartin/aws-acl-fail2ban

Het is handig voor het detecteren en voorkomen van DoS-aanvallen en misbruik van ec2-instanties.


1
2017-09-19 16:20





Config server firewall is de beste die ik heb gezien voor DDoS-beperking in software-gebaseerde VM's in EC2. Als u de syslog-functie combineert, kan deze worden beschermd tegen een load-balanced omgeving.

http://configserver.com/cp/csf.html


0
2017-10-10 16:27



Welkom bij Server Fault! Hoewel dit theoretisch de vraag kan beantwoorden, het zou de voorkeur hebben om de essentiële delen van het antwoord hier op te nemen, en geef de link voor referentie. - Scott Pack