Na dzień dzisiejszy znaleziono błąd w OpenSSL, który wpływa na wersje 1.0.1
poprzez 1.0.1f
(włącznie) i 1.0.2-beta
.
Od wersji Ubuntu 12.04 wszyscy jesteśmy podatni na ten błąd. Aby usunąć tę lukę, dotknięci użytkownicy powinni zaktualizować do OpenSSL 1.0.1g
.
Jak każdy użytkownik, którego dotyczy problem, może teraz zastosować tę aktualizację ?
Odpowiedzi:
Aktualizacje bezpieczeństwa są dostępne dla 12.04, 12.10, 13.10 i 14.04, patrz Informacja o bezpieczeństwie Ubuntu USN-2165-1 .
Najpierw musisz zastosować dostępne aktualizacje zabezpieczeń, na przykład uruchamiając
z linii poleceń.
Nie zapomnij zrestartować usług (HTTP, SMTP itp.), Które korzystają z wersji OpenSSL, której dotyczy problem, w przeciwnym razie nadal będziesz narażony. Zobacz także Heartbleed: co to jest i jakie są opcje jego łagodzenia? na Serverfault.com.
Następujące polecenie pokazuje (po aktualizacji) wszystkie usługi, które należy zrestartować:
Następnie musisz zregenerować wszystkie klucze SSL serwera , a następnie ocenić, czy twoje klucze mogły wyciec, w takim przypadku osoby atakujące mogły odzyskać poufne informacje z serwerów.
źródło
openssl version
dajeOpenSSL 1.0.1 14 Mar 2012
. To nie jest łatana wersja, prawda? A może źle to interpretuję?1.0.1 14 Mar 2012
. Przeczytaj odpowiedź crimi, aby dowiedzieć się, czy Twoja instalacja zawiera poprawkę.dpkg -l | grep ' openssl '
i dostaniesz,1.0.1-4ubuntu5.12
możesz iść.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.
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.
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:
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
źródło
openssl
zawiera narzędzia wiersza poleceń. Nie jest używany przez aplikacje korzystające z biblioteki OpenSSL do implementacji protokołu SSL (takie jak Apache). Ale powinieneś po prostu zastosować aktualizacje bezpieczeństwa dystrybucji.Aby zobaczyć, która wersja OpenSSL jest zainstalowana w systemie Ubuntu:
Jeśli wyświetli się następująca wersja, należy dołączyć łatkę do CVE-2014-0160.
Patrząc na https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12 , pokazuje, jaki rodzaj błędów został naprawiony:
źródło
sudo service apache2 restart
openssl
nie naprawia aplikacji takich jak Apache, Nginx czy postfix. Musisz je zaktualizowaćlibssl1.0.0
i uruchomić ponownie, jak wyjaśniono w innych postach.Jeśli Twoje repozytoria apt-get nie zawierają żadnej wstępnie skompilowanej wersji OpenSSL 1.0.1g , po prostu pobierz źródła z oficjalnej strony i skompiluj je.
Poniżej jednego wiersza poleceń do kompilacji i instalacji ostatniej wersji openssl.
curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install
Zamień stary plik binarny openssl na nowy za pomocą dowiązania symbolicznego.
Wszyscy jesteście dobrzy!
Por. Ten post na blogu .
Uwaga: Jak stwierdzono w poście na blogu, to obejście nie naprawi „serwera Nginx i Apache, który musi zostać ponownie skompilowany ze źródłami openSSL 1.0.1g”.
źródło
Dla tych, którzy nie chcą robić aktualizacji pakietu na cały serwer. Przeczytałem dzisiaj kilka z tych przewodników i
apt-get upgrade openssl
===apt-get upgrade
spowoduje to zastosowanie wszystkich poprawek bezpieczeństwa wymaganych przez twój komputer. Cudownie, chyba że wyraźnie bazujesz gdzieś na starej wersji pakietu.Jest to minimalna czynność wymagana na Ubuntu 12.04 LTS z uruchomionym Apache 2:
Przejdź pod ten adres i udowodnij, że masz lukę. Powinieneś użyć BEZPOŚREDNIEGO ZEWNĘTRZNEGO ADRESU SWOJEGO SERWERA INTERNETOWEGO. Jeśli używasz modułu równoważenia obciążenia (na przykład ELB), możesz nie kontaktować się bezpośrednio z serwerem WWW.
Uruchom następującą 1 linijkę, aby zaktualizować pakiety i uruchomić ponownie. Tak, widziałem wszystkie przewodniki mówiące, że powinieneś mieć znacznik czasu później niż 4 kwietnia 2014 r. Nie wydaje mi się, że tak jest.
apt-get update && apt-get install openssl libssl1.0.0 && /etc/init.d/apache2 restart
Upewnij się, że masz zainstalowane odpowiednie wersje pakietów i jeszcze raz sprawdź swój serwer pod kątem luki.
Kluczowe pakiety są następujące: ustaliłem te informacje za pomocą poniższego polecenia, a następnie zredagowałem cruft (nie musisz wiedzieć tyle o stanie moich komputerów).
1.0.1-4ubuntu5.12
NIE powinien zawierać luki w zabezpieczeniach. Upewnij się, że tak jest, wchodząc ponownie na poniższą stronę internetową i testując serwer WWW.http://filippo.io/Heartbleed/
źródło
apt-get install openssl libssl1.0.0
zrobił to dla mnie. Uruchomioneopenssl version -a
teraz pokazuje:built on: Mon Apr 7 20:33:29 UTC 2014
Zauważyłem tutaj wielu komentatorów, którzy pilnie potrzebują pomocy. Postępują zgodnie z instrukcjami, aktualizują się, ponownie uruchamiają i nadal są podatne na ataki podczas korzystania z niektórych testowych stron internetowych.
Musisz sprawdzić, aby upewnić się, że nie masz wstrzymanych pakietów, takich jak libssl.
Aby je uaktualnić
apt-mark unhold libssl1.0.0
(na przykład). Następnie upgrade:apt-get upgrade -V
. Następnie uruchom ponownie usługi, których dotyczy problem.źródło