Dziura w OpenSSL, o jakiej się nie śniło

No bo jak inaczej nazwać błąd, który pozwala na zdalny dostęp do pamięci podatnej maszyny? Co prawda „tylko” 64kB i „tylko” związanej z procesem korzystającym z biblioteki zawierającej błąd, ale biorąc pod uwagę, do czego OpenSSL służy… Wyciec mogą klucze (jeśli nie zostaną zmienione, to w przypadku ich przechwycenia będzie można podsłuchać transmisję nawet po aktualizacji biblioteki), loginy i hasła (jeśli użytkownicy nie zmienią haseł, to atakujący będzie mógł się dostać do serwisów nawet po zmianie certyfikatów i aktualizacji biblioteki).

Heartbleed

Źródło: http://heartbleed.com/

Błąd związany z OpenSSL w Debianie sprzed blisko 6 lat to przy tej dziurze pikuś – wtedy wystarczyło zaktualizować pakiet i zmienić klucze. Teraz na dobrą sprawę należałoby zmienić wszystkie certyfikaty SSL (o ile były używane na choć jednej podatnej maszynie) i skłonić wszystkich użytkowników do zmiany haseł. Niekoniecznie technicznych użytkowników, dodajmy.

Ważne jest to o tyle, że niektóre popularne polskie serwisy oferujące darmową (i nie tylko) pocztę były podatne. I to dość długo (nie wiem, czy nadal nie są). Jeśli atakujący uzyska dostęp do poczty, a używamy tej skrzynki do przypominania hasła w innych serwisach to zmiana w nich haseł nie rozwiązuje problemu.

Dodatkowo sprawdzanie podatności systemów było utrudnione. Popularny test sprawdzający podatność na atak z powodu obciążenia zgłaszał… false negatives. Czyli system był podatny, a narzędzie testujące twierdziło, że jest OK. I to w pewnym momencie, wg moich obserwacji, w jakichś 9x% prób… Problemu tego nie miało narzędzie CLI, ale dość szybko przestało ono być dostępne. Zapewne dlatego, że skutkiem ubocznym tego narzędzia był zrzut pamięci i dostęp do wrażliwych danych.

Na koniec mały paradoks. Systemy, w których logowanie było bez szyfrowania nie są podatne na dziurę (za to były i są podatne na podsłuchanie transmisji). Podobnie jak Debian Squeeze, czyli oldstable, któremu wkrótce skończy się support bezpieczeństwa. Użyta w nim wersja OpenSSL jest na tyle stara, że nie jest podatna.

Na razie status jest taki, że jest dostępna poprawka, załatana jest część systemów (wczoraj o ok. 17 było naprawdę sporo dziurawych). Widziałem tylko jedną firmę (polską), która poinformowała o błędzie użytkowników i zaleciła zmianę certyfikatów (ale już ani słowa o hasłach). Osobiście zalecam zwykłym użytkownikom w tej chwili zmianę ważniejszych haseł (zwł. pocztowych!) i obserwację sytuacji. Gdy opadnie kurz, tj. administratorzy załatają systemy i wymienią certyfikaty – ponowna zmiana haseł, tym razem wszystkich (ale naprawdę wszystkich wszystkich).

Błędowi poświęcona jest specjalna strona i tam odsyłam po szczegóły. Tak jeszcze patrzę na to, co napisałem parę lat temu i chyba tekst dane, niezależnie od tego jak zabezpieczane, nie są bezpieczne i prędzej czy później nastąpi ich ujawnienie łapie się na jakieś motto.

UPDATE: Ważna uwaga, o której zapomniałem. Jeśli aktualizujemy OpenSSL w systemie, to trzeba jeszcze zrestartować usługi. W Debianie można skorzystać z polecenia checkrestart (pakiet debian-goodies), ale na przynajmniej jednym systemie pokazywał, że nie ma nic do restartu, choć był apache i zabbix-server. Można zamiast tego użyć:

lsof -n | grep ssl | grep DEL

0-day w Linksysie ma szerszy zasięg czyli problem z UPnP dla Broadcom..

Zgodnie z wcześniejszą zapowiedzią firma DefenseCode opublikowała szczegóły nt. niedawnego 0-day na routery Linksys. Okazuje się, że chodzi o implementację UPnP w firmware Broadcom i – jak można się spodziewać – w takiej sytuacji podatnych jest znacznie więcej routerów, różnych producentów. Na pewno podatność dotyczy Linksysa WRT54GL, WRT54G3G, prawdopodobnie WRT310N, poza tym, dotknięty potencjalnym błędem chip może występuje w urządzeniach urządzeniach wielu producentuów, m.in. Netgear, Asus, D-Link, Zyxel, TP-Link.

Padało pytanie, czy exploit działa z WAN czy z LAN. Z dokumentu wynika, że w wielu przypadkach działa spoza sieci lokalnej. Pojawia się stwierdzenie, że jedyna popularna implementacja UPnP, która nie posiada błędu, to MiniUPnP (tak, open source, tak, OpenWrt jest odporne). Pora na zmianę firmware’u, chociaż UPnP mam wyłączone. Ciekawe swoją drogą, czy wyłączenie UPnP eliminuje podatność.

UPDATE: Znalazłem dwa ciekawe, polskie serwisy nt. bezpieczeństwa, do których odsyłam zainteresowanych tematem bezpieczeństwa. W szczególności pierwszy pisze więcej o tym konkretnie zagadnieniu (wygląda, że wyłączenie UPnP pomaga), a tutaj znajdziecie istny pogrom domowych urządzeń sieciowych.

0-day w Linksysie załatany?

Widzę, że właśnie na stronach Linksysa pojawił się do pobrania nowy firmware, oznaczony Ver.4.30.16 (Build 4), z datą wydania 10.01.2013 (co ciekawe, jeszcze wczoraj go tam nie było). Prawdopodobnie chodzi o załatanie 0-day opisywanego ostatnio. Z release notes możemy wyczytać:

Firmware 4.30.16 (build 4)- Resolves XSS issue.

Pora na aktualizację.

UPDATE: W komentarzu lolo napisał, że takowego firmware’u nie ma. Jak nie ma, jak jest? pomyślałem (nawet zainstalowany), ale patrzę i faktycznie. Zamiast tego pojawił się Ver.4.30.16 (Build 2), który w release notes ma dokładnie taki sam opis. Jak będę przy kompie, gdzie mam pobrany Ver.4.30.16 (Build 4), to sprawdzę, czy są identyczne binarnie. Stay tuned.

Co prawda nadal nie sprawdziłem czy się różnią, ale proponowana wersja zależy od tego, czy pozwolimy się przekierować ze strony dla US, czy nie.