Jeden z serwerów, z których korzystam, jest hostowany w chmurze Amazon EC2. Co kilka miesięcy wydaje się, że mamy atak DDOS na tego serwera. To niesamowicie spowalnia serwer. Po około 30 minutach, a czasem później ponownym uruchomieniu, wszystko wraca do normy.
Amazon ma grupy zabezpieczeń i zaporę ogniową, ale co jeszcze powinienem mieć na serwerze EC2, aby złagodzić atak lub go zapobiec?
Z podobnych pytań nauczyłem się:
- Ogranicz szybkość żądań / minutę (lub sekund) od określonego adresu IP za pomocą czegoś takiego jak tabele IP (a może UFW?)
- Posiadaj wystarczające zasoby, aby przetrwać taki atak - lub -
- Prawdopodobnie zbuduj aplikację internetową, aby była elastyczna / miała elastyczny moduł równoważenia obciążenia i mogła szybko skalować w celu spełnienia tak dużego zapotrzebowania)
- Jeśli używasz mySql, skonfiguruj połączenia mySql, aby działały sekwencyjnie, aby wolne zapytania nie powodowały awarii systemu
Czego jeszcze mi brakuje? Chciałbym uzyskać informacje o konkretnych narzędziach i opcjach konfiguracji (ponownie, używając Linuxa tutaj) i / lub cokolwiek, co jest specyficzne dla Amazon EC2.
ps: Uwagi na temat monitorowania DDOS również byłyby mile widziane - może z nagios? ;)
Odpowiedzi:
DDOS (lub nawet DOS) w swej istocie jest wyczerpaniem zasobów. Nigdy nie będziesz w stanie wyeliminować wąskich gardeł, ponieważ możesz je tylko odepchnąć dalej.
Na AWS masz szczęście, ponieważ element sieci jest bardzo silny - byłoby bardzo zaskakujące, gdyby dowiedzieć się, że łącze upstream było nasycone. Jednak zarówno procesor, jak i dyski we / wy są znacznie łatwiejsze do zalania.
Najlepszym rozwiązaniem byłoby rozpoczęcie monitorowania (lokalne, takie jak SAR, zdalne z Nagios i / lub ScoutApp) oraz niektóre narzędzia zdalnego logowania (Syslog-ng). Dzięki takiej konfiguracji będziesz w stanie określić, które zasoby zostaną nasycone (gniazdo sieciowe z powodu zalania Syn; procesor z powodu złych zapytań SQL lub przeszukiwaczy; ram z powodu ...). Nie zapomnij mieć partycji dziennika (jeśli nie masz włączonego zdalnego rejestrowania) na woluminach EBS (aby później przestudiować dzienniki).
Jeśli atak przejdzie przez strony internetowe, dziennik dostępu (lub odpowiednik) może być bardzo przydatny.
źródło
Możesz także dodatkowo izolować instancje EC2, umieszczając je za modułem równoważenia obciążenia elastycznego i akceptując tylko ruch z instancji ELB. To kładzie większy nacisk na Amazon na zarządzanie atakami DDOS.
Zakładam, że nadal będziesz mieć SSH otwarte dla wszystkich, więc prawdopodobnie zobaczysz trochę nieuczciwego ruchu, chyba że możesz zablokować ten port do niektórych statycznych adresów IP. Możesz zmienić port SSHd na coś bardziej niejasnego (tj. Coś innego niż 22), aby dodatkowo zmniejszyć liczbę trafień DDOS (większość botów sprawdza tylko znane porty).
Wspomnę również o fail2ban, który może monitorować dzienniki i tymczasowo modyfikować tabele IP, aby blokować określone adresy IP (na przykład, jeśli wykonano 6 nieudanych prób SSH do twojego hosta z jednego adresu IP, może zablokować ten adres IP przez 30 kilka minut). Należy pamiętać, że (jak to skomentował Jordan) fail2ban prawdopodobnie nie jest odpowiedni do blokowania ruchu proxy (np. Z ELB), ponieważ blokuje adres IP serwera proxy, niekoniecznie pierwotny zdalny adres IP.
Nie korzystałem z niego, ale warto też zbadać mod_evasive Apache; może jednak mieć tę samą słabość co fail2ban, jeśli chodzi o blokowanie oparte na IP.
źródło
Jeśli używasz Apache, sugeruję użycie mod_security . Zestaw podstawowych zasad zapakowany przez większość dostawców wykonuje fantastyczną robotę.
Kolejnym etapem hartowania jest ograniczenie żądań na poziomie serwera WWW. Nginx ., Apache może dławić i ograniczać przychodzące żądania.
źródło
Rozwiązaniem, którego używam do blokowania złej aktywności adresów IP wychodzących z AWS i innych jest to ... W mojej Zaporze CSF w konfiguracji list blokujących LFD używam listy znalezionej tutaj - http://myip.ms/browse/blacklist/ Blacklist_IP_Blacklist_IP_Addresses_Live_Database_Real-time
Pobierz Czarną listę dla Zapory CSF » http://myip.ms/files/blacklist/csf/latest_blacklist.txt
Nigdy więcej skandalicznie wstrętnego ruchu AWS.
źródło
Jestem stronniczy, ponieważ pracuję w sieci dostarczania treści jako inżynier ds. Bezpieczeństwa w przedsprzedaży.
Jednak zastosowanie rozwiązania łagodzącego Ddos w sieci dostarczania treści gwarantuje, że nigdy nie zabraknie zasobów u źródła. Jest to podobne do umieszczania modułu równoważenia obciążenia F5 przed witryną, ale obejmuje tysiące lokalizacji na całym świecie.
Dobry cdn pozwoli ci zamaskować pochodzenie białą listą, którą zainstalujesz na zaporze aws. Kiedy atakujący przeprowadzą rozpoznanie na Amazon, Twój adres IP stanie się pusty, ponieważ wszystko zostanie zablokowane.
Dlatego ataki Ddos są blokowane, gdy ruch trafia do węzła tak blisko atakującego, jak to możliwe. Zapewnia to złagodzenie ataków Ddos tak daleko od zasobu, który próbujesz chronić.
Dobry cdn może również przeprowadzać kontrole kondycji i przełączanie awaryjne do innych lokalizacji, np. Inne ego włączone w dupę, platformę Azure, miejsce w szafie, miękką warstwę, fizyczny komputer stacjonarny itp. Powinien również mieć WAF, aby zapewnić blokowanie ataków wyczerpania warstwy aplikacji, takich jak RUDY, slowpost, slowloris, a także sqli, xss, rfi, lfi itp.
Domyślnie cdn blokuje również ataki warstwy sieci, takie jak teardrop, ataki icmp, synfloods itp. CDn jest w stanie złagodzić ataki Ddos, ponieważ trey mają ogromną pojemność do przyjmowania żądań, filtrowania złego ruchu i przekazywania dobrego ruchu. Tak więc ataki wolumetryczne typu ntp, DNS, ssdp, chargeen i snmp mogą być blokowane.
Największy atak, jaki do tej pory widziałem, to 321 gb / s w lipcu 2014 r. Podczas tego ataku nastąpił także atak protokołu DNS przy 20 gb / s. Musisz więc upewnić się, że infrastruktura DNS jest również odporna na wiele żądań.
Z podanego opisu wygląda na to, że zostałeś poddany atakowi wyczerpania, w którym atakujący otworzył wiele wątków, tak że wszystkie wątki zostały zużyte na serwerze WWW, serwerze aplikacji lub zaporze. Jest podobny do czegoś takiego jak slowpost, slowloris lub RUDY.
Aby zapobiec atakom polegającym na wyczerpaniu warstwy aplikacji, musisz uzyskać zaporę sieciową (WAF). Typowa zapora sieciowa (w tym zapora amazonów i zapory nowej generacji) nie będzie w stanie jej zablokować. Wysłane zapory robocze w tych dniach mogą blokować tylko około 30% wszystkich ataków w tych dniach (listopad 2014).
źródło
Oto narzędzie, które stworzyłem dla tych, którzy chcą korzystać z Fail2Ban na aws z apache, ELB i ACL: https://github.com/anthonymartin/aws-acl-fail2ban
Jest to przydatne do wykrywania i zapobiegania atakom DoS i nadużyciom instancji ec2.
źródło
Zapora serwera konfiguracji jest najlepsza, jaką widziałem w łagodzeniu DDoS w programowych maszynach wirtualnych w EC2. Połączenie funkcji syslog może zabezpieczyć ją przed środowiskiem z równoważeniem obciążenia.
http://configserver.com/cp/csf.html
źródło