Błąd w Debianie - Canonical przestaje wysyłać płyty z Ubuntu

Kilka dni temu w generatorze liczb pseudolosowych stosowanym w bibliotece OpenSSL w Debianie wykryto poważny błąd, który zagraża bezpieczeństwu wielu komputerów podpiętych do Sieci. Problem jest na tyle poważny, że Canonical przestało wysyłać płyty z Ubuntu.

Informację o błędzie podano do publicznej wiadomości niecały tydzień temu, 13 maja 2008 roku. Bug, który został znaleziony przez Luciana Bella w paczce OpenSSL, polegał na usunięciu z pliku md_rand.c następującego fragmentu:

MD_Update(&m,buf,j);

[ ... ]

MD_Update(&m,buf,j); /* purify complains */

Linie skasowano, ponieważ generowały ostrzeżenia z narzędziami Valgrind i Purify wykorzystywanymi do badania jakości kodu. Skutki operacji były opłakane, generator liczb pseudolosowych stosowany przez bibliotekę OpenSSL tworzył liczbę pseudolosową na podstawie jednej jedynej wartości, jaką był... identyfikator procesu.

Jako że w Linuksie id procesu może mieć tylko 32768 wartości, z generatora wychodziły niezwykle powtarzalne liczby.

Skasujmy te linie, chyba nie są potrzebne...

Debian jest niezwykle popularną dystrybucją. Jako bazę wykorzystuje go m.in. Ubuntu i Knoppix, a na tych systemach z kolei budowane są następne odmiany Linuksa, w tym np. Linux Mint. Oczywiście błąd był w nich powielany.

Inne dystrybucje - Fedora, openSUSE, Mandriva, Slackware - nie są wrażliwe, o ile tylko ktoś nie zaimportował do nich słabych kluczy wygenerowanych w Debianie.

Luka pojawiła się po raz pierwszy w bibliotece 0.9.8c-1. W linii "unstable" Debiana obecna jest od 17 września 2006 roku (!). Dotyczy kluczy SSH, OpenVPN, DNSSEC, SSL/TLS i certyfikatów X.509 wygenerowanych od wtedy aż do dnia 13 maja 2008 roku.

Przestępcy wiedzieli wcześniej?

Na liście dyskusyjnej incidents 8 maja pojawił się wątek Weird SSH attack last night and this morning (still ongoing) poświęcony dość dziwnym, powolnym próbom logowania się na konto roota za pomocą SSH. Pierwotnie uznano, że jest to typowy - choć rzadko spotykany - przejaw włamania rozproszonego na wiele tysięcy maszyn.

Dopiero po doniesieniach deweloperów Debiana pojawiło się pytanie, czy aby to skanowanie nie jest w jakiś sposób powiązane z błędem w bibliotece OpenSSL.

Oficjalne exploity

Tuż po ogłoszeniu informacji o luce pojawiły się exploity ją wykorzystujące. Markus Mueller opublikował skrypt, który pozwalał na włamanie się do Debiana/Ubuntu w mniej niż 20 minut - ale z wykorzystaniem uprzednio wygenerowanej tablicy kluczy.

Bez niej operacja może potrwać maksymalnie dobę.

Skutki

Zarówno deweloperzy Debiana, jak i programiści pracujący nad Ubuntu udostępnili już odpowiednie łaty (tj. nowe wersje bibliotek) usuwające problem. Należy jednak pamiętać, że ich instalacja to nie wszystko - konieczne jest również ponowne wygenerowanie kluczy.

Canonical wstrzymał rozsyłanie płyt z Ubuntu 8.04 LTS za pomocą ShipIt. Na razie nie ujawniono, co się z nimi stanie - oficjalnie poprawka trafi dopiero na płytę z Ubuntu 8.04.1 (patrz też "Linux: Shuttleworth proponuje synchronizację dystrybucji").

Administratorzy stron WWW wykorzystujący Debiana w roli serwerów WWW powinni na nowo wygenerować certyfikaty SSL i zwrócić się do odpowiednich instytucji o ich zaakceptowanie. Oczywiście operacja nie jest darmowa.

Dodatkowe informacje: "Serious Debian/Ubuntu openssl/openssh bug found" (w języku angielskim)


Zobacz również