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

29 października 2016, 11:55 | W biegu | komentarze 22

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:

botnetmi

A tak miły segfault na zombim:

seg

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. JakPudelek

    No ale jaki to nagłówek? Wasze newsy to copy-paste i to nie w całości ;/ Prawie jak na pudelku.

    Odpowiedz
    • 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…

      Odpowiedz
      • Kk

        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.

        Odpowiedz
      • 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.

        Odpowiedz
        • Odpowiedz
          • 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 :)

    • heliar

      Poza tym podczas cytowania w tekscie ZAWSZE jest link do cytowanego tekstu.

      Odpowiedz
      • Ano. Rzeczywiście bez linka do pełnej rozpiski byłoby to trochę bez sensu pisać parę zdań zajawki.

        Odpowiedz
    • Racja

      Tu sie akurat zgodze. Sekurak moglby publikowac newsy w calosci na twitterze.

      Odpowiedz
      • 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ł.

        Odpowiedz
  2. Potwierdzam

    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ść"

    Odpowiedz
    • 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…

      Odpowiedz
  3. Przemek

    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.

    Odpowiedz
    • 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

      Odpowiedz
      • Przemek

        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ą?

        Odpowiedz
        • 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.

          Odpowiedz
          • Przemek

            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? ;)

          • Przemek

            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.

        • Paeu

          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.

          Odpowiedz

Odpowiedz