Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Kolejny poważny błąd w systemd – można zdalnie wykonać kod w OS
O systemd pisaliśmy jakiś czas temu. W skrócie – przez podstawienie serwera DHCP można wykonać kod w systemie operacyjnym ofiary.
W opisie podatności przeczytacie, że błąd występuje w kliencie DHCP (i to w wersji na IPv6). Więc w zasadzie nie ma się czego obawiać? Otóż jest tu mały kruczek – atakujący może wysłać pakiet ICMP (IPv6) Router Advertisement a klient DHCP na ofierze uruchamia się automatycznie…:
systemd-networkd contains a DHCPv6 client which is written from scratch and can be spawned automatically on managed interfaces when IPv6 router advertisement are received
Dalej atakujący przekazuje odpowiednio spreparowaną opcję DHCP i jeśli ofiara ma szczęście to będzie tylko DoS, a w gorszej sytuacji – wykonanie kodu w OS.
Pamiętajmy, że aby całość zadziałała musimy mieć włączone wsparcie dla IPv6 (jeśli używacie tylko IPv4 – nic nie szkodzi, obsługa v6 jest włączona prawie wszędzie domyślnie). System ofiary musi też akceptować pakiety ICMP Router Advertisement oraz mieć skonfigurowanego klienta DHCP żeby obsługiwał IPv4 oraz v6.
Dystrybucje Linuksa są w trakcie łatania (RedHat „wycenił” podatność aż na 8.8/10, Ubuntu nieco mniej, tutaj Debian).
–ms
Co najmniej w sieciach lokalnych IPv6 nie jest do niczego potrzebne (zresztą nawet dla dedyków z publicznym IP, też najczęściej nie jest, może z paroma wyjątkami). A wówczas coś takiego załatwia sprawę tego błędu, jak i wielu innych:
https://github.com/serverfarmer/sf-ip-noipv6
Tylko te cztery miejsca:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.default.forwarding = 0
Czy może coś jeszcze?
Jeszcze zobacz linijkę z JAVA_OPTS w setup.sh – to rozwiązuje problem z Javą, bo inaczej domyślnie binduje sockety na ipv6-only i po wyłączeniu ipv6 okazuje się, że aplikacja nie przyjmuje połączeń, mimo że niby działa i słucha.
Zaczyna się festiwal bugów w IPv6, widać protokół zaczyna wchodzić pod strzechy
To nie bug IPv6, tylko podatność gównianego systemd. Lenny Poettering wymyślił sobie, że w przyszłości w systemie będą tylko dwa procesy: systemd (który wchłonie jądro) i przeglądarka. Od tego czasu zaczęło się psucie fajnego systemu.
RedHat wprowadził 'systemd’.
Zapomnieli o KISS.
Devuan.