Błąd jest znany jako Heartbleed .
Czy jestem wrażliwy?
Zasadniczo masz wpływ, jeśli w pewnym momencie uruchomisz serwer, dla którego wygenerowałeś klucz SSL. Większość użytkowników końcowych nie jest dotknięta (bezpośrednio); przynajmniej Firefox i Chrome nie używają OpenSSL. SSH nie ma wpływu. Nie ma to wpływu na dystrybucję pakietów Ubuntu (opiera się na sygnaturach GPG).
Jesteś narażony na atak, jeśli korzystasz z dowolnego serwera korzystającego z OpenSSL w wersjach 1.0–1.0.1f (z wyjątkiem wersji oczywiście poprawionych od czasu wykrycia błędu). Dotknięte wersje Ubuntu to zaufane przedpremierowe wersje od 11.10 do oneiric do 14.04. Jest to błąd implementacyjny, a nie usterka protokołu, więc dotyczy to tylko programów korzystających z biblioteki OpenSSL. Jeśli masz program połączony ze starą wersją OpenSSL w wersji 0.9.x, nie ma to wpływu. Dotyczy to tylko programów używających biblioteki OpenSSL do implementacji protokołu SSL; nie ma to wpływu na programy wykorzystujące OpenSSL do innych celów.
Jeśli korzystałeś z podatnego na atak serwera z dostępem do Internetu, uważaj go za zagrożony, chyba że w dziennikach nie ma połączenia od czasu ogłoszenia w dniu 2014-04-07. (Zakłada się, że luka ta nie została wykorzystana przed ogłoszeniem.) Jeśli serwer został ujawniony tylko wewnętrznie, to czy konieczna będzie zmiana kluczy, będzie zależeć od innych zastosowanych środków bezpieczeństwa.
Jaki jest wpływ?
Błąd pozwala każdemu klientowi, który może połączyć się z twoim serwerem SSL, odzyskać około 64kB pamięci z serwera. Klient nie musi być w żaden sposób uwierzytelniany. Powtarzając atak, klient może zrzucić różne części pamięci podczas kolejnych prób.
Jednym z kluczowych elementów danych, które osoba atakująca może uzyskać, jest prywatny klucz SSL serwera. Dzięki tym danym atakujący może podszyć się pod Twój serwer.
Jak mogę odzyskać na serwerze?
Przełącz wszystkie serwery, których dotyczy problem, do trybu offline. Tak długo, jak działają, potencjalnie wyciekają krytyczne dane.
Zaktualizuj libssl1.0.0
pakiet i upewnij się, że wszystkie serwery, których dotyczy problem, zostaną zrestartowane.
Możesz sprawdzić, czy procesy, których dotyczy problem, nadal działają z libssl `` grep ''. (usunięty) „/ proc / / maps”
Wygeneruj nowe klucze . Jest to konieczne, ponieważ błąd mógł umożliwić osobie atakującej uzyskanie starego klucza prywatnego. Postępuj zgodnie z tą samą procedurą, którą użyłeś początkowo.
- Jeśli korzystasz z certyfikatów podpisanych przez urząd certyfikacji, prześlij nowe klucze publiczne do urzędu certyfikacji. Po otrzymaniu nowego certyfikatu zainstaluj go na serwerze.
- Jeśli korzystasz z certyfikatów z podpisem własnym, zainstaluj je na swoim serwerze.
- Tak czy inaczej, przenieś stare klucze i certyfikaty na bok (ale nie usuwaj ich, po prostu upewnij się, że nie są już używane).
Teraz, gdy masz nowe bezkompromisowe klucze, możesz przywrócić serwer do trybu online .
Odwołaj stare certyfikaty.
Ocena szkód : wszelkie dane, które były w pamięci procesu obsługującego połączenia SSL, mogły zostać wyciekły. Może to obejmować hasła użytkownika i inne poufne dane. Musisz ocenić, jakie mogły być te dane.
- Jeśli korzystasz z usługi, która umożliwia uwierzytelnianie haseł, hasła użytkowników, którzy nawiązali połączenie od czasu przed ogłoszeniem luki w zabezpieczeniach, należy uznać za zagrożone. (Nieco wcześniej, ponieważ hasło mogło być przez jakiś czas nieużywane w pamięci.) Sprawdź swoje dzienniki i zmień hasła każdego użytkownika, którego dotyczy problem.
- Unieważnij także wszystkie sesyjne pliki cookie, ponieważ mogły zostać naruszone.
- Certyfikaty klienta nie są zagrożone.
- Wszelkie dane, które zostały wymienione od czasu, zanim luka w zabezpieczeniach mogła pozostać w pamięci serwera, a więc mogły zostać wyciekły do atakującego.
- Jeśli ktoś zarejestrował stare połączenie SSL i odzyskał klucze serwera, może teraz odszyfrować transkrypcję. (Chyba że zapewniono PFS - jeśli nie wiesz, nie było.)
Jak mogę odzyskać na kliencie?
Istnieje tylko kilka sytuacji, w których wpływają na aplikacje klienckie. Problem po stronie serwera polega na tym, że każdy może połączyć się z serwerem i wykorzystać błąd. Aby wykorzystać klienta, muszą być spełnione trzy warunki:
- Program kliencki użył błędnej wersji biblioteki OpenSSL do wdrożenia protokołu SSL.
- Klient podłączony do złośliwego serwera. (Na przykład, jeśli łączysz się z dostawcą poczty e-mail, nie stanowi to problemu). Musiało to nastąpić po tym, jak właściciel serwera dowiedział się o luce, prawdopodobnie po 2014-04-07.
- Proces klienta miał poufne dane w pamięci, które nie zostały udostępnione serwerowi. (Więc jeśli właśnie pobiegłeś,
wget
aby pobrać plik, nie było danych do wycieku.)
Jeśli zrobiłeś to między 2014-04-07 wieczorem UTC a aktualizacją biblioteki OpenSSL, weź pod uwagę wszelkie dane znajdujące się w pamięci procesu klienta.
Bibliografia