Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Podatność buffer overflow w botnecie Mirai – można zabić infekującego zombie
Najsłynniejszy już chyba botnet na IoT – Mirai (użyty w ostatnich kilku dużych DDoSach) jest analizowany nie tylko pod względem użycia w nielegalnych celach.
Ostatnio, badacze z firmy invincealabs znaleźli w Mirai (a dokładniej w jednym z requestów powodujących) podatność klasy buffer overflow:
stack buffer overflow vulnerability in the HTTP flood attack code. When exploited it will cause a segmentation fault (i.e. SIGSEV) to occur, crash the process, and therefore terminate the attack from that bot.
W tym przypadku wystarczy podstawić odpowiedni nagłówek Location w odpowiedzi (mogą to potencjalnie robić np. IPS-y) i cały proces odpowiedzialny za flood zostaje zabity (segfault).
Dla lubiących bardziej obrazkowe historie… tak wygląda start botnetu:
A tak miły segfault na zombim:
–ms
No ale jaki to nagłówek? Wasze newsy to copy-paste i to nie w całości ;/ Prawie jak na pudelku.
Ty to jakiś agent niebezpiecznika? ;-)
Proponuję czytać do końca, nie tylko pierwsze 2 linijki. Jest jak byk: nagłówek Location. Nawet jest też info, że to nagłówek odpowiedzi, a nie np. request nagłówek. To jakby ktoś miał wątpliwości.
Chyba jaśniej się nie da…
Oczywiście że da się jaśniej. Można np rozwinąć co dokładnie trzeba przesłać w tym nagłówku. Jest to pytanie które się nasuwa z automatu.
Da się. Po prostu otwierasz tag PRE i wklepujesz przykład o jakim piszesz, a potem zamykasz tag PRE. Wtedy nikt nie musi pytać, szukać czy się domyślać o czym mowa.
Jak ktoś chce kawa na ławę to: https://sekurak.pl/teksty/ a jak ktoś nie umie doczytać w newsie to: plotek.pl/teksty/ :-)
Wszystko rozbija się o to czy chcecie ruch zatrzymać u siebie, czy przekierować bo o szacunku do czytelnika się nie wypowiem). Jeśli to pierwsze, to takie „newsy” są jak strzał w kolano – gdyby całą treść wpisu zamienić tylko na odsyłacz efekt byłby ten sam.
Monter – niestety wszystkim nie dogodzi :)
Poza tym podczas cytowania w tekscie ZAWSZE jest link do cytowanego tekstu.
Ano. Rzeczywiście bez linka do pełnej rozpiski byłoby to trochę bez sensu pisać parę zdań zajawki.
Tu sie akurat zgodze. Sekurak moglby publikowac newsy w calosci na twitterze.
Dział 'w biegu’ to są krótkie zajawki z samej definicji, które też się nie pojawiają w długim feedzie. I nie będziemy tego zmieniać. Możemy pomyśleć ew. o subskrypcji na same /teksty jakby ktoś chciał.
Niestety muszę się zgodzić z JakPudelek.
Ten news nie jest przejrzysty. Piszecie „odpowiedni nagłówek Location”, ale nie piszecie na czym to dokładnie polega. Wystarczy jako wartość nagłówka Location podać „http”? A może po „http” ma być znak nowej linii, jak być może wynika ze screenshota?
Trzeba zgadywać co autor miał na myśli, zamiast po prostu napisać, że w response ma być zwrócony nagłówek Location z wartością: „<podać wartość"
Tak jak ktoś odpisał – w takich szybkich opracowaniach (w biegu) staramy się zawsze dawać linka do oryginału. Kto chce – doczyta.
Rzeczywiście pewnie można by było całość opisać od a do z: jaki nagłówek, jakiego typu to buffer overflow, czy możliwe jest też wykonanie kodu na zombie, analiza zrzutów pamięci, podanie fragmentów kodu źródłowego.
Byłoby super, tylko a) (prawie) wszystko jest w oryginalnym wpisie b) zanim byśmy to zrobili to szybki news nie byłby newsem…
Ten moment kiedy przeginamy z ofensywą… – właśnie teraz.
Active Defense – tak mówi się o tym co zrobiła firma InvinceLabs.
Otóż nie jest to Active Defense i nie należy tak tego nazywać. Active Defense jest legalny i mocniej niż rekomendowany w stałym użyciu, a wykorzystywanie podatności by dokonać „kontrataku” legalne nie jest.
Reguła w IPS’ie modyfikująca odpowiedź HTTP? – serio?
Działanie osób/zespołów kontratakujących to inna para kaloszy – regulowana innymi kodeksami w zależności od miejsca siedzenia.
Polecam Active Defense – który z definicji jest legalny, to co proponujecie jest o krok dalej, dla większości firm o jeden za daleko.
Ja wiem? To nie jest atakowanie w kontrodpowiedzi, tylko chronienie się we własnej infrastrukturze.
Na normalnego przeglądacza weba w zasadzie szansa skutecznego ataku tym tematem wynosi 0% ;-) A jak ktoś flooduje, to sam się prosi.
To mi się trochę kojarzy z więzieniem gdzie więźniowie narzekają na warunki (mało gier na PS4 ;) Botneciarze też mogą narzekać, cele nie dają się gładko floodować uch
1) Dostajesz „normalnie” wyglądającym żądaniem HTTP, odpowiadasz celowo zmodyfikowanym. To jest kontratak.
2) Może być traktowane jako nielegalne – dlatego nie każdy może swobodnie korzystać z takich możliwości. Publicznie nie będę namawiał to robienia tego.
3) Zrób statystykę ile firm zdecyduje się na taki krok z lekkością jak sekurak ;-)
PS
Który z topowych i popularnych IPSów potrafi odpowiedzieć zmodyfikowaną w warstwie 7 odpowiedzią?
To tak jak ktoś chce mi podać rękę. Wszystko spoko, do momentu gdy w tej ręce nie ma noża a buzia mówi – dawaj kasę. Wtedy jak zastosuję gaz pieprzowy wydaje się to być adekwatna operacja :) Choć nie jestem specjalistą od prawa, może powiedzą że to naruszenie ochrony koniecznej ;) Lepiej oddać kasę (dać się sfloodować :)
PS
Z IPSem nie wiem. Ale WAFy położone jeszcze w trybie reverse proxy – pewnie tak.
Daruję sobie już te analogie, bo nadal nie widzę drogi by łatwo zrobić.
Modyfikacja odpowiedzi HTTP w części nagłówków HTTP nie jest taka prosta dla popularnych WAF’ów, co innego dodać treść (body) odpowiedzi. Dodatkowo pytanie jest na jakie żądanie HTTP tak odpowiadać i jak je wyłuskać z ruchu HTTP by efektywnie wykorzystywać ten mechanizm.
Poproszę następną hipotezę :)
Z tymi nagłówkami to można na zwykłym apache zrobić (mod_headers bodaj) – choć nie pamiętam jak z warunkami, co tutaj może być istotne żeby nie 'zabić’ normalnego ruchu.
Może ktoś się włączy jeszcze do dyskusji. Drodzy Czytelnicy? ;)
Gdyby jeszcze wszyscy posiadali Apache jako serwery www
Zwracam uwagę, że budowa obrony nie jest taka prosta jak się wydaje i wnioskuję o większy dystans w przypadku kiedy ktoś się na tym dobrze nie zna.
Apache – no ale tak samo nie każdy ma WAF-a ;) (A Apache + rev proxy + mod_security wydaje się być niezłym rozwiązaniem). No dobra, co więcej, prawie wszyscy nie mają żadnej ochrony.
PS
No a obrona na pewno jest trudniejsza niż atak. Co do tego nie ma dwóch zdań. A najbardziej drastyczny przykład to chyba właśnie DDoS.
A HAproxy przypadkiem nie potrafi modyfikować nagłówków odpowiedzi? ;) Tutaj nie ma co się wykręcać – HAproxy jest stosowane jako frontend w znanych portalach w Polsce ;)
Nginx w sumie też to potrafi. W przypadku ataku można „przełączyć wajchę” na HAproxy i wtedy modyfikować nagłówki albo (jeśli chcemy to robić z użyciem dodatkowej warstwy) zrzucić to niżej – przez nginx’y za HAproxy. Można wybiórczo wysyłać tylko do części klientów takie modyfikowane odpowiedzi (nginx upstream przeca). Co zgodnie z matematyką w znacznej mierze dotknie atakujące zombie (gdy np. 8 na 10 żądań będzie pochodzić z botnetu a my wysyłamy zmodyfikowany nagłówek co 3 żądanie).
Kontynuować, aż ruch opadnie do takiej wielkości, że zmieści nam się w łączu, bo nierzadki jest przypadek, że po stronie frontendów/aplikacji mamy dość mocy, aby to obsłużyć, ale łącz jest na kilkadziesiąt Gb/s a nie na kilkaset.