HULK pokonany przez Thor’a?
Napisał: Patryk Krawaczyński
09/06/2012 w Bezpieczeństwo Brak komentarzy. (artykuł nr 354, ilość słów: 303)
H
ULK (HTTP Unbearable Load King) skrypt do przeprowadzania ataków DoS został napisany jako proof-of-concept przez Barry’ego Shteiman’a – głównego inżyniera bezpieczeństwa w firmie Imperva. Narzędzie to zostało opublikowane na jego prywatnym blogu sectronix.com 17 maja 2012 roku. Pierwotnym zamysłem autora było opracowanie tego narzędzia jako ćwiczenia w celu analizy i badania ataku Denial of Service. Pierwotna wersja skryptu używała statycznych wartości dla wielu nagłówków HTTP, co powodowało, że był on bardzo przewidywalny i łatwy do zablokowania.
W aktualnej wersji HULK’a, który został napisany w języku Python – nagłówki takie jak: KeepAlive, Referer, adres URL i User-Agent zostały poddane losowości. Dzięki unikalnemu wywoływaniu adresów URL i ustawianiu wartości no-cache
skrypt stara się również omijać wszystkie mechanizmy cache’ujące powodując zerowe hitratio. Efekt? Z przeprowadzonego testu za pomocą jednego klienta skrypt był w stanie położyć wyposażoną w 4GB pamięci RAM maszynę, która chodziła pod kontrolą Microsoft IIS7 w czasie mniejszym niż minuta.
Team SpiderLabs firmy Trustwave wykonał szczegółową analizę niezmodyfikowanego skryptu HULK i wydał reguły dla rozszerzenia serwera Apache ModSecurity o nazwie Thor (pozostając w konwencji nazw postaci komiksowych Marvell’a):
SecRule REQUEST_HEADERS_NAMES ".*" "id:'11',chain,phase:1,t:none,log,drop,msg:'Request Header Ordering Alert: Potential Attack Tool - HULK DoS.',setvar:'tx.header_order=%{tx.header_order}, %{matched_var}'" SecRule TX:HEADER_ORDER "@streq , Accept-Encoding, Host, Keep-Alive, User-Agent, Accept-Charset, Connection, Referer, Cache-Control""
PLXsert, czyli Prolexic Security Engineering and Response Team serwisu Prolexic umożliwia również dostęp do reguł programu Snort.
Więcej informacji: Some Hulk Afterthoughts