Dawno nie pisaliśmy o bezpieczeństwie domowych ruterów WiFi – najwyższy czas opisać kolejną kompromitującą wpadkę producentów tych urządzeń. Tym razem problem dotyczy kodu PIN usługi WPS w licznych ruterach D-Linka.
Bohater wielu naszych artykułów, Craig z serwisu /dev/ttys0, spędza swój wolny czas analizując oprogramowanie wbudowane w domowe urządzenia sieciowe. Tym razem spojrzał w kod rutera D-Link 810L i znalazł tam interesujący i niepokojący fragment oprogramowania.
PIN dla wszystkich
Ładnych kilka lat temu producenci sprzętu WiFi wymyślili łatwiejszy sposób konfiguracji urządzeń dla mniej technicznie rozwiniętych klientów. Zamiast wybierać sposób szyfrowania i podawać długie hasła, w nowej technologii, nazwanej WiFi Protected Setup (WPS) wystarczy podać kod PIN, najczęściej wydrukowany na obudowie urządzenia. Oczywiście technologia ta po pewnym czasie została skutecznie zaatakowana na skutek błędów w implementacji.
Odgadywanie PINu o długości 8 cyfr może być dość żmudnym zajęciem. Okazało się jednak, że ostatnia cyfra to suma kontrola, a pierwsze 4 i kolejne 3 sprawdzane są niezależnie, co zamiast 99 999 999 dało jedynie 11 000 kodów PIN do sprawdzenia, co zajmowało ok. 3h. Producenci odpowiedzieli – dość skutecznie – wprowadzeniem ograniczeń w ilości prób odgadnięcia kodu PIN. Ataki na kod PIN w ruterach D-Link okazują się jednak dużo prostsze – w wielu modelach kod ten obliczany jest na podstawie adresu MAC urządzenia.
Losowy kod PIN nie jest losowy
Craig znalazł w kodzie oprogramowania rutera fragment odpowiedzialny za obliczanie prawidłowego domyślnego kodu PIN usługi WPS. Craig szukał metody wstrzyknięcia swojego polecenia, jednak natrafił na inny problem. Okazuje się, że kod PIN, zamiast być odczytany z pamięci NVRAM, jest generowany dynamicznie. Podstawą do obliczeń jest adres MAC interfejsu WAN (różny o 1 od interfejsu WiFi). Następnie po serii mnożeń, operacji XOR i przesunięć powstaje wartość, która staje się – po obliczeniu sumy kontrolnej – kodem PIN usługi WPS urządzenia. Craig oczywiście stworzył odpowiednie narzędzie, generujące ów PIN, atak został również zaimplementowany w Reaverze Pro i wygląda tak:
Czy mój ruter jest podatny?
Craig informuje, że podatne są modele:
- DIR-810L
- DIR-826L
- DIR-632
- DHP-1320
- DIR-835
- DIR-615 revs: B2, C1, E1, E3
- DIR-657
- DIR-827
- DIR-857
- DIR-451
- DIR-655 revs: A3, A4, B1
- DIR-825 revs: A1, B1
- DIR-651
- DIR-855
- DIR-628
- DGL-4500
- DIR-601 revs: A1, B1
- DIR-836L
- DIR-808L
- DIR-636L
- DAP-1350
- DAP-1555
Z kolei odporne są modele:
- DIR-815
- DIR-505L
- DIR-300
- DIR-850L
- DIR-412
- DIR-600
- DIR-685
- DIR-817LW
- DIR-818LW
- DIR-803
- DIR-845L
- DIR-816L
- DIR-860L
- DIR-645
- DIR-685
- DAP-1522
Pozostałe możecie sami przetestować. Jeśli Wasz ruter znajduje się na pierwszej liście, to rekomendujemy wyłączenie usługi WPS oraz zmianę hasła WiFi.
Za podesłanie linka dziękujemy Radziowi.
Komentarze
WPS to pierwsze co wyłączam na nowo skonfigurowanym routerze. Wolę spędzić więcej czasu przy manualnej konfiguracji urządzeń sieciowych, niż zdawać się na pastwę automatyki mnie wyręczającej z myślenia.
Na szczęście w moim D-Linku na DD-WRT nie działa WPS :)
Błedy w domowych routerach stają się już nudne i aż dziwne że nie są wykorzystywane na masową skalę (chyba że są :) tylko o tym nie wiem) aż chyba z ciekawości wszystkie sieci wifi w mojej okolicy przebadam na okoliczność różnych podatności.
Ja siedzę na DD-WRT. I nie martwię się o błędy.
Linux ślinux. Bezpieczeństwo to proces nie stan.
Jak się nie pilnujesz to będziesz pierwszym wydymanym :)
A GO-RT-N150 z obrazka jest podatny?
Jeśli na obrazku jest inny, to powiem że wspomniany wyżej model wygląda identycznie.