Zdalny 0-day na routery Linksysa.

Pierwotna informacja pojawiła się jakiś czas temu (dokładnie 9 stycznia), wczoraj widziałem wpis pochodny ale widzę, że żaden polski serwis newsowy nie kwapi się z publikacją, więc warto rozpropagować/ostrzec, tym bardziej, że exploit dotyczy potencjalnie 70 mln urządzeń na całym świecie, w tym dość popularnych WRT54GL i okolic. I – jak to 0-day – także najnowszego firmware’u. Co prawda piszą, że działa na 4.30.14, a najnowsza wersja to 4.30.15, ale data wydania wskazuje, że to firmware z 2011 roku.

Dokładne szczegóły nie są znane, działanie exploita można zobaczyć na filmie (poniżej). Na pewno, jak widać na filmie, działa z poziomu sieci lokalnej. Być może działa także zdalnie, ale zapewne warunkiem będzie włączone logowanie do routera po WAN. Szczegóły mają być zamieszczone w ciągu tygodnia na stronie firmy, która błąd znalazła.

Rozwiązania od producenta, czyli Cisco na ten moment nie ma. Dla wielu routerów można wgrać alternatywne oprogramowanie, czyli DD-WRT, OpenWrt lub Tomato, co wg mojej wiedzy rozwiązuje problem. Tak się zastanawiam, czy to nie pochodna błędu w DD-WRT o którym kiedyś pisałem. Wygląda podobnie.

UPDATE: Wygląda, że błąd w routerach Linksys został poprawiony.

WPS prawie tak słaby jak WEP.

Wygląda, że WPS (włączony domyślnie w wielu routerach) jest w tej chwili porównywalnie słaby, jak WEP. Niezależnie od użytego WPA/WPA2 możliwe jest – przy włączonym WPS – stosunkowo szybkie poznanie hasła do sieci WiFi ofiary, dodatkowo są gotowe narzędzia do tego celu (np. reaver-wps spaczkowany niedawno dla Debiana). Spodziewać się można niebawem aktualizacji firmware’ów dla routerów z dodaniem/wydłużeniem czasu dla funkcji lock down, ale to nie jest rozwiązanie, tylko drobne utrudnienie. Do szczegółów, w tym czasu brute force na WPS odsyłam do krótkiego, ale treściwego pdf ze strony.

Jak sprawdzić, czy sieć obsługuje WPS (czyli czy dana sieć jest podatna)? Najprościej (na Linuksie) przy pomocy wpa_supplicantPrzemek w komentarzach na tej stronie opisał jak, a wygląda, że da się prościej i wystarczy (Debian Squeeze z wicd jako helperem do WiFi):

wpa_cli scan
wpa_cli scan_results | grep WPS

Jeśli okaże się, że mamy włączonego WPS, a go nie potrzebujemy, to wypadałoby zmienić hasło do sieci WiFi oraz poszukać, czy WPS nie da się wyłączyć. Często (zwykle?) się da, przynajmniej na Linksysach.

Testując smartfona, pamiętaj o bezpieczeństwie.

Nie tak dawno operator Play rozpoczął kampanię Testuj smarfona. W skrócie jest to tak, że sprzedajemy swoje dane, wyrażamy zgodę na otrzymywanie reklam na podany email i przez podany numer telefonu, a w zamian dostajemy na 14 dni smartfona Huawei od zabawy i kartę SIM od Play (na zawsze). Teoretycznie sprawa idealna dla mnie (podać spamowy numer telefonu i email, za free pobawić się dłuższy czas Androidem, do którego od dawna się przymierzam, ale nie mogę przekonać), ale w praktyce jak pomyślę, że dostałbym wychuchany i wymacany przez większą liczbę obcych ludzi telefon, to jakoś mnie chęć na testowanie odchodzi. Tym bardziej, że stracę czas na ustawienie wszystkiego pod siebie tylko po to, by zaraz zaorać, żeby mniej lub bardziej prywatne dane nie wyciekły.

No właśnie, tu sedno. Telefon przychodzi (i odchodzi) z kartą pamięci. AFAIK Android sam z siebie zapisuje tam dane z prywatnymi informacjami. A dodatkowo pewnie trafią tam choćby mniej lub bardziej prywatne zdjęcia. Zastanawiam się, ilu użytkowników w ogóle wyczyści ustawienia. Optymistycznie: 30%. Pomijam fakt, że zwykłe usunięcie plików czy sformatowanie karty niewiele pomoże – dowolny program do odzyskiwania plików (będąc linuksiarzem czytaj: photorec) pozwoli odzyskać większość z nich. Nie wiem, co robi Android przy formatowaniu karty/przywracaniu do ustawień domyślnych, ale nie sądzę, by robił pełne zerowanie.

A może ktoś, kto uczestniczy w programie i dostał po kimś telefon bawił się już pod tym kątem?

W każdym razie warto pomyśleć trochę o bezpieczeństwie i swojej prywatności i zaorać kartę przed oddaniem telefonu. Pod Linuksem najprościej skorzystać ze shred, albo zwykłe dd if=/dev/zero of=/dev/sdX (gdzie sdX to oczywiście urządzenie pod jakim system widzi czytnik z kartą).

Z mniej inwazyjnych, prostszych i działających na wszystkich systemach metod: telefon można podłączyć do komputera w takim trybie, że karta jest widziana jako urządzenie pamięci masowej. Wtedy wystarczy skasować dane i nagrać jakieś śmieci do pełnej pojemności (np. jakieś mp3). Następnie wystarczy bezpiecznie odłączyć urządzenie i ew. jeszcze raz skasować mp3 (tylko je będzie w stanie odzyskać potencjalny ciekawski).

Ciekawe, czy w wewnętrznej pamięci też coś zostaje po przywróceniu telefonu do ustawień fabrycznych (dane z karty nie są przy tym usuwane!) i na ile skomplikowane jest dobranie się do tych danych…

Gdyby kogoś bardziej interesowała recenzja samego telefonu, to swoje wrażenia z Testuj smartfona opisał tutaj Jakub Rusinek (niestety po angielsku; dead link).

UPDATE: Zaktualizowane o parę informacji od osoby, która ma smarfona na testach.