Jak mogę wykryć Slowloris?

14

Jestem prawie pewien, że byłem pod atakiem Slowloris. Skonfigurowałem regułę iptables, aby ograniczyć maksymalne połączenia z moim serwerem internetowym, ale chciałbym wiedzieć, jak mogę dowiedzieć się, czy to naprawdę był atak Slowloris, a jeśli tak, to w jaki sposób mogę znaleźć adres IP atakującego. Naprawdę chciałbym przekazać logi jego dostawcy usług internetowych.

Dzięki

Obrabować
źródło

Odpowiedzi:

5

Ataki Slowloris działają, wysyłając dane żądania tak wolno, jak to możliwe. Dlatego jeśli możesz zmierzyć wykorzystanie przepustowości na adres IP, to jeśli jest poniżej pewnego progu (znalezionego przez pomiar przepustowości w znanym ataku slowloris), to wiesz, że jesteś atakowany.

Aby zapobiec atakom, sugeruję zmianę oprogramowania serwera. Używam cherokee, który jest odporny w swojej domyślnej konfiguracji. Nie mogę ustalić, czy Nginx jest wrażliwy, ale lighttpd jest. Nie jestem również pewien, czy użycie odpornego serwera WWW jako serwera proxy zrobi jakąkolwiek różnicę.

Oto więcej informacji: http://ha.ckers.org/blog/20090617/slowloris-http-dos/

dan_waterworth
źródło
10

Poziom 1: prosty slowloris DOS


Aby znaleźć adres IP atakującego Slowloris, używam następującego wiersza poleceń:

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

To da ci liczbę aktywnych połączeń dla każdego podłączonego adresu IP

Jeśli jesteś pod prostym atakiem DOS, dzieciak z jednym lub kilkoma adresami IP, ten z 50-100 połączeniami (lub więcej) jest najprawdopodobniej napastnikiem slowloris, który możesz upuścić.

Ma to na celu wykrycie i upuszczenie (wraz z iptables lub preferowanym hlfw) ich „w czasie rzeczywistym”, jeśli jesteś podłączony do serwera podczas ataku.

Dodanie czasu przetwarzania (argument% D lub% T) do dzienników Apache może również pomóc w wykryciu ataków Slowloris „postmortem” poprzez analizę dzienników, jeśli nie masz tych informacji w dziennikach, nie znajdziesz nic interesującego . Zobacz http://httpd.apache.org/docs/current/mod/mod_log_config.html dla konfiguracji dziennika.

Poziom 2: prawdziwe duże slowloris DDOS


netstat (użyj watch netstat do odświeżania) może nadal pomóc zobaczyć, że niektóre adresy IP są zawsze połączone

Aby walczyć ze slowlori, na Apache zainstaluj moduły reqtimeout i skonfiguruj go, na przykład:

http://pastebin.com/3BNNwfyb

Po tym, co 408, które widzisz w access_log, to 99,999% na pewno ip atakujący slowloris.

Korzystając z modułu apq reqtimeout, możesz łatwo stawić czoła tysiącom Ips i tysiącom pakietów / sekundę na przyzwoitym serwerze dedykowanym

Iptables może również trochę pomóc w czymś takim jak:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
neofutur
źródło