Firewall hacking – atak omijający firewall z wykorzystaniem auto-konfiguracji IPv6.

Czy mając na serwerze, ruterze, czy też desktopie z Linuksem prawidłowo skonfigurowany przy pomocy odpowiednich reguł iptables firewall na pewno można czuć się bezpiecznie? Niekoniecznie. Być może dana instancja Linuksa jest podatna na hacking z wykorzystaniem auto-konfiguracji IPv6. Atak ten pozwala ominąć reguły firewalla i uzyskać hackerowi dostęp do usług uruchomionych na atakowanym hoście.

Scenariusz może wyglądać następująco. Atakujący posiada z jakąś siecią styk w L2. Może to być sieć LAN w firmie, ale i styk na zasadzie operator-klient, czy też peering w L2 np. za pośrednictwem PL-IX, AC-X itp. Mimo, że ruter brzegowy danej sieci ma poprawnie skonfigurowany firewall (przyjmijmy, że jest to Linux i netfilter skonfigurowany za pomocą iptables), istnieje też duże prawdopodobieństwo, że dana dystrybucja Linuksa posiada domyślnie włączoną i nietkniętą przez administratora po instalacji konfigurację IPv6. Sytuacja taka pozwala na rozgłoszenie prefiksu IPv6 atakowanemu hostowi, na podstawie którego ustalony zostanie na atakowanym serwerze adres IPv6 (stworzony w oparciu o MAC adres interfejsu sieciowego – ogólnie znany w przypadku dostępu w L2 – i rozgłoszony prefix). Jeśli atakowany host posiada usługi skonfigurowane do słuchania na wszystkich adresach, staną się one dostępne za pośrednictwem owego adresu IPv6 (znanego napastnikowi), pomijając reguły firewalla napisane wyłącznie z myślą o IPv4.

Jak tego uniknąć? Jakimś rozwiązaniem będzie na pewno wyłączenie w systemie obsługi IPv6. Można też zaznajomić się z ip6tables i np. ustawić domyślną politykę dla INPUT, FORWARD i OUTPUT na DROP. Znajdzie się też pewnie masę innych prostych sposobów na zabezpieczenie przed tego typu atakiem, mającym na celu obejście firewalla z wykorzystaniem niewiedzy w zakresie IPv6. Podstawa, to zdać sobie sprawę z istnienia zagrożenia i przeanalizować obecną konfigurację firewalla oraz IPv6 w kontekście ewentualnej podatności na tego typu atak.

6 odpowiedzi do “Firewall hacking – atak omijający firewall z wykorzystaniem auto-konfiguracji IPv6.”

  1. http://tldp.org/HOWTO/Linux+IPv6-HOWTO/proc-sys-net-ipv6..html

    11.2.3.1. accept_ra

    Type: BOOLEAN

    Functional default: enabled if local forwarding is disabled. disabled if local forwarding is enabled.

    Accept Router Advertisements, and autoconfigure this interface with received data.

    11.2.3.2. accept_redirects

    Type: BOOLEAN

    Functional default: enabled if local forwarding is disabled. disabled if local forwarding is enabled.

    Accept Redirects sent by an IPv6 router.

    11.2.3.3. autoconf

    Type: BOOLEAN

    Functional default: enabled if accept_ra_pinfo is enabled. disabled if accept_ra_pinfo is disabled.

    Autoconfigure addresses using prefix information from router advertisements.

  2. No tak, ale o czym to świadczy? Co chcesz przez to powiedzieć? Przecież forwarding w Linuksie dla IPv6 jest domyślnie wyłączony, więc auto-konfiguracja przy domyślnej konfiguracji IPv6 zadziała.

  3. To że wszystko jest ustawialne i jak ktoś ma problem via autoconf to znaczy że ma zły config i nie panuje nad tym co ma 🙂

  4. Jeśli ktoś nie dotyka konfiguracji IPv6, bo zakłada np., że nie jest to mu do niczego potrzebne, bo przecież nie używa IPv6, to ma domyślne ustawienia, które czynią system podatnym. Zapanować nad tym myślę nie jest trudno, trzeba tylko sobie zdawać sprawę, że należy to zrobić. 🙂

  5. Domyślna konfiguracja IPv6 „popularnych dystrybucjach” jest przeznaczona dla węzłów końcowych (biurka, serwery) a nie dla routerów. Jak ktoś stawia router na „popularnej dystrybucji” zapomina o tak podstawowych rzeczach to nie powinien się do kabli nawet zbliżać.

  6. @f
    Pewnie dużo jest w tym racji. Myślę jednak, że w tę pułapkę mogą wpaść głównie totalni ignorancji IPv6, którzy totalnie ignorują wszystko, co się z IPv6 wiąże uważając zapewne, że nie jest im to do niczego potrzebne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


*