Jednym z podstawowych elementów każdego komputera zaprojektowanego do korzystania z systemu operacyjnego, niezależnie od jego twórcy, jest procesor lub procesor, który rozwija się gigantycznymi krokami, oferując nam nowe prędkości przetwarzania, nowe technologie, więcej rdzeni i to wszystko w celu zoptymalizować i usprawnić uruchamianie systemu oraz działanie zainstalowanych tam programów.
Wszystko to jest innowacyjne i napełnia nas emocjami, gdy kupujemy komputer z doskonałym procesorem, ponieważ jesteśmy pewni, że będzie to dobra inwestycja, ale co się stanie, jeśli procesor, czy to Intel, AMD, czy inny, wykaże w swoim projekcie luki w zabezpieczeniach że narażają nasze informacje i naszą poufność na szwank, tam temat zmienia się i każe nam zastanowić się, jak tego typu sytuacja może mieć miejsce w renomowanych przetwórcach i dużych firmach na całym świecie.
Cóż, ta luka jest rzeczywistością, która została odkryta kilka dni temu, 4 stycznia, gdzie odkryto luki Spectre i Meltdown, które są powiązane z konstrukcją procesora, w którym atakujący może uzyskać dostęp do informacji systemowych i pamięci tam, gdzie jest to niezbędne. przechowywane są elementy, takie jak klucze szyfrowania lub hasła.
Najgorsze w całej tej sprawie jest to, że te luki dotyczą procesorów Intel, ARM i AMD, dlatego wszyscy jesteśmy otwarci na bycie ofiarami tych luk i dlatego dzisiaj w Solvetic dokładnie przeanalizujemy, czym są te luki, jak one atak i jak możemy chronić przed nimi nasze serwery i sprzęt.
Pamiętajmy, że podatności te zaatakują wszelkiego rodzaju sprzęt zarówno na poziomie domowym, jak i firmowym, a obecnie twórcy systemów operacyjnych i aplikacji wypuszczają łatki, które posłużą do ochrony nas przed Spectre i Meltdown.
Co to jest Widmo?
Spectre to luka, która może skłonić procesor do rozpoczęcia procesu wykonywania spekulatywnego, ponieważ nowoczesne procesory wykorzystują przewidywanie rozgałęzień, a wykonanie spekulacyjne pozwala zmaksymalizować wydajność procesora.
Ataki Spectre pozwalają skłonić ofiarę do spekulatywnego wykonania pewnych operacji, które nie miałyby miejsca podczas prawidłowego działania programu, a to pozwala w bardzo prosty sposób wyciekać poufne informacje kanałem bocznym dla atakującego.
W powiadomieniach o ujawnieniu tych luk w zabezpieczeniach odkryto dwa warianty o różnym poziomie złożoności i wpływie Spectre na procesor, a wraz z nim na bezpieczeństwo użytkownika.
Te warianty to:
Wariant 1 (CVE-2017-5753)Ta luka dotyczy procesorów Intel, AMD i ARM, umożliwiając atakującemu oszukanie programów bez żadnego błędu, zgodnie z najlepszymi praktykami, w celu filtrowania wszystkich informacji użytkownika przechowywanych na komputerze.
Zostało to wykryte 3 stycznia tego roku przez zespół Google Project Zero, a ten wariant nadmiernie wykorzystuje wykonywanie spekulatywne w celu wykonania zadań obejścia sprawdzania limitów, co powoduje przekierowanie kodu jądra z kontrolą spekulatywną atakującego.
Lista systemów, które mogą zostać zaatakowane przez ten wariant, to:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- RHEV-M 4.0
- RHEV-M dla serwerów
- Red Hat Enterprise Linux OpenStack Platform 7.0 (kilo) dla RHEL 7
- Red Hat Enterprise Linux OpenStack Platform 6.0 (czerwiec) dla RHEL 7
- Red Hat Enterprise MRG 2
- Platforma Red Hat OpenStack v 8/9/10/11/12
- Debian Linux świszczący oddech
- Debian Linux jessie
- Rozciąganie Debiana Linux
- Pogromca Debiana Linux, sid
- SUSE Linux Enterprise Server dla Raspberry Pi 12 SP2
- SUSE OpenStack Cloud 6
- Openstack Cloud Magnum Orchestration 7
- SUSE Container jako platforma usług WSZYSTKO
- SUSE Linux Enterprise High Availability 12 SP2 / SP3
- SUSE Linux Enterprise Live Patching 12
- SUSE Linux Enterprise Module dla chmury publicznej 12
- SUSE Linux Enterprise Server 11 SP3-LTSS
- SUSE Linux Enterprise Server 11 SP4
- SUSE Linux Enterprise Software Development Kit 11/12 SP3 / SP4
- SUSE Linux Enterprise dla SAP 12 SP1
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux oparty na SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI
Wariant 2 (CVE-2017-5715)Wariant ten jest odpowiedzialny za wywołanie wykonania spekulacyjnego poprzez wykorzystanie wstrzykiwania celu rozgałęzienia. Polega ona na obecności w kodzie uprzywilejowanym określonej, precyzyjnie określonej sekwencji instrukcji, a także na sytuacji, w której dostęp do pamięci może spowodować buforowanie danych mikroprocesora, w tym instrukcje wykonywane spekulatywnie, które nigdy nie zostaną naruszone.
Dzięki temu wariantowi napastnik bez żadnych uprawnień miałby możliwość przekroczenia granic systemu i komputera w celu odczytania uprzywilejowanej pamięci poprzez wykonanie ataków na pamięć podręczną w kanale bocznym, a tym samym dostrzeżenie przełamania zabezpieczeń użytkownika.
Systemy, których dotyczy problem, są takie same jak wymienione powyżej.
Aby zapobiec tym wariantom w Linuksie, możemy przeprowadzić następujący proces.
W środowiskach CentOS lub RedHat w pierwszej kolejności wykonujemy następujące linie:
uname -r aktualizacja sudo mniam
Po zaktualizowaniu systemu przystępujemy do ponownego uruchomienia systemu, wykonując linię:
ponowne uruchomienie sudoNastępnie potwierdzamy, że jądro zostało zaktualizowane za pomocą polecenia ponownie:
uname -rNa koniec sprawdzamy, czy warianty są stosowane w systemie, wykonując następujące czynności:
rpm -q --changelog kernel | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754'
POWIĘKSZAĆ
W przypadku korzystania z Ubuntu lub Debiana możemy wykonać następujące linie:
sudo apt-get aktualizacja sudo apt-get aktualizacja sudo shutdown -r 0
Formy ataku widmaSpectre korzysta z niektórych technik ataku, takich jak:
- Wykorzystywanie spekulacyjnej egzekucji. Dzięki tej technice Spectre atakuje zadanie procesora na poziomie spekulatywnych instrukcji wykonania sekwencjami, które nie powinny były zostać wykonane podczas prawidłowego wykonywania programu, a sekwencje te zostaną ostatecznie odwrócone, tworząc instrukcje przejściowe, które atakujący wykorzystuje do filtrowania użytkownika informacje.
- Ataki z użyciem kodu natywnego :. Atak ten tworzy program, który zawiera tajne dane w swojej pamięci dostępowej, a po skompilowaniu tego programu binaria i biblioteki współdzielone w systemie są analizowane w celu filtrowania informacji o użytkowniku.
Na koniec został napisany inny program ataku, który wykorzystuje funkcję spekulatywnego wykonania procesora do wykonywania poprzednio napotkanych sekwencji jako instrukcji przejściowych.
- Ataki przy użyciu JavaScript. Atak ten służy do włamania się do piaskownicy przeglądarki poprzez montowanie za jej pośrednictwem przenośnego kodu JavaScript.
Sprzęt dotknięty przez SpectreObecnie odkryto, że Spectre może naruszać sprzęt, taki jak:
- Procesory oparte na Ivy Bridge
- AMD Ryzen
- Procesory Intel
- Procesory Qualcomm
Podsumowując, atak Spectre składa się z następujących faz:
- Faza 1. Najpierw atak rozpoczyna się od fazy konfiguracji, w której przeciwnik wykonuje operacje powodujące awarie procesora, aby następnie można było przeprowadzić błędną eksploatację spekulacyjną.
Podczas tej fazy atakujący może przygotować kanał boczny, który zostanie wykorzystany do wydobycia informacji ofiary.
- Faza 2. W tej fazie procesor spekulacyjnie wykonuje jedną lub więcej instrukcji, które przekazują poufne informacje z kontekstu ofiary do mikroarchitektury kanału bocznego.
Dzięki temu atakujący może wykonać akcję, taką jak wywołanie systemowe, gniazdo, aw innych przypadkach atakujący może skorzystać ze spekulatywnego wykonania własnego kodu, aby uzyskać poufne informacje z tego samego procesu przez użytkownika.
- Faza 3. W tej fazie poufne dane są odzyskiwane z Spectre przy użyciu technik takich jak opróżnianie + przeładowanie lub eksmisja + przeładowanie. Ten proces odzyskiwania składa się z pomiaru czasu potrzebnego na odczytanie adresów pamięci w wierszach pamięci podręcznej, które są okresowo monitorowane.
Co to jest topnienie
Innym atakiem wpływającym na bezpieczeństwo użytkowników jest Meltdown, który umożliwia atakującemu dostęp do prywatnych informacji użytkownika za pośrednictwem zainstalowanego systemu operacyjnego, takiego jak Microsoft Windows lub High Sierra.
Jego nazwa została przypisana ze względu na zdolność do łamania limitów bezpieczeństwa, jakie zwykle narzuca sprzęt systemowy.
Luka Meltdown została skatalogowana jako CVE-2017-5754, gdzie jest mowa, że Meltdown ma zdolność do przenikania podstawowej izolacji między aplikacjami użytkownika a systemem operacyjnym, bez względu na to, co to jest. Atak ten umożliwia programowi dostęp do pamięci, a wraz z nią również do poufnych informacji innych programów oraz samego systemu operacyjnego.
Ta luka została również wykryta 3 stycznia przez zespół Google Project Zero i inne dodatkowe zespoły.
Ta luka dotyczy procesorów Intel x86-64, ale nie procesorów AMD x86-64.
Meltdown może wpływać na system, taki jak:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux
- Debian Linux świszczący oddech
- Debian Linux jessie
- Rozciąganie Debiana Linux
- Deiban pogromca Linuksa, sid
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux oparty na SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI
- Okna
- RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
- Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / wheezy [3.2.0-5-amd64]
- CoreOS [4.14.11-Coreos]
- Arch Linux [aktualizacja do aktualnej wersji]
- Gentoo Linux [aktualizacja do aktualnej wersji]
- Ubuntu Linux 16.04 [4.4.0-109-ogólne lub 4.13.0-26-ogólne] /v17.10 [4.13.0-25-ogólne] /14.04 [3.13.0-139-ogólne]
- SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]
Aby uchronić się przed tą luką CVE-2017-5754 możemy wykonać następujące czynności:
- Na CentOS i RedHat:
uname -r sudo mniam aktualizacja sudo reboot
- W Fedorze:
sudo dnf -- odśwież jądro aktualizacji
- W Debianie i Ubuntu:
uname -r sudo apt-get aktualizacja sudo apt-get dist-upgrade sudo shutdown -r 0
Jak działa MeltdownPamiętajmy, że jedną z głównych funkcji bezpieczeństwa na poziomie operacyjnym w nowoczesnych systemach operacyjnych jest izolacja pamięci, która zapewnia, że aplikacje użytkownika nie mają dostępu do pamięci innych użytkowników i programów, a tym samym uniemożliwiają aplikacjom odczytywanie lub zapisywanie przez użytkowników do pamięci jądra.
W nowoczesnych procesorach izolacja między jądrem a procesami użytkownika jest zwykle wykonywana przez monitor bitów procesora, który określa, czy pamięć ma możliwość dostępu do strony jądra, czy nie.
Meltdown został opracowany jako nowy atak, który może całkowicie przezwyciężyć izolację pamięci, zapewniając prosty sposób na odczytanie przez dowolny proces użytkownika pamięci jądra działającej maszyny, w tym całej pamięci fizycznej przydzielonej w regionie jądra.
Meltdown działa obecnie na wszystkich głównych systemach operacyjnych, a ta luka wykorzystuje informacje kanału bocznego dostępne na większości nowoczesnych procesorów, takich jak Intel czy AMD.
Meltdown daje atakującemu możliwość uruchomienia kodu na podatnym procesorze w celu zrzucenia całego jądra do przestrzeni adresowej, łącznie z przydzieloną pamięcią fizyczną.
Przyczyną prostoty i zakresu Meltdown są efekty uboczne spowodowane wykonywaniem w niesprawnej kolejności, czyli jest to cecha obecnych procesorów, która została opracowana w celu przezwyciężenia opóźnień zajętych jednostek wykonawczych.
Fazy pracy Meltdown to:
- Faza 1. W tej fazie wysyłane jest zapytanie o nieprawidłową lokalizację pamięci w jądrze procesora.
- Faza 2. W tej fazie wykonywane jest drugie żądanie w celu warunkowego odczytania ważnej komórki pamięci tylko wtedy, gdy pierwsze żądanie zawiera pewną aktywną wartość.
- Faza 3. W tej fazie wykonywane jest spekulacyjne zadanie wykonania, w którym procesor kończy pracę w tle dla dwóch poprzednich żądań przed sprawdzeniem, czy początkowe żądanie jest nieważne. Gdy tylko procesor zrozumie, że żądania dotyczą pamięci poza granicami, odrzuca oba żądania.
- Faza 4. Pojawia się nowe żądanie prawidłowej lokalizacji pamięci.
Możemy więc zdefiniować następujące elementy z podatnością Meltdown:
Zawartość wybranej przez atakującego lokalizacji pamięci, która jest dla niego niedostępna, jest ładowana do rejestru systemowego.
Instrukcja przejściowa uzyskuje dostęp do linii pamięci podręcznej na podstawie tajnej zawartości rejestru.
Atakujący używa funkcji Flush + Reload, aby określić dostęp do linii pamięci podręcznej, a tym samym uzyskać dostęp do informacji przechowywanych w wybranej lokalizacji pamięci.
Gdy zrozumiemy, jak działają te luki, zobaczymy, w jaki sposób będziemy chronić przed nimi nasze komputery, chociaż musimy wyjaśnić, że do tej pory nie zgłoszono żadnego ataku z udziałem zarówno użytkowników, jak i administratorów.
1. Jak uchronić się przed Spectre i Meltdown w systemach Linux
W przypadku Linuksa użyjemy spectre-meltdown-checker.sh, który jest skryptem powłoki, aby określić, czy jądro Linuksa jest podatne na 3 CVE, o których wspomnieliśmy, dotyczące tych podatności.
NotatkaTen skrypt musi być uruchomiony jako użytkownik root.
Krok 1
Aby zainstalować ten skrypt, najpierw przejdziemy do katalogu / tmp w następujący sposób:
cd / tmp /Krok 2
Gdy znajdziemy się we wspomnianym katalogu, przystępujemy do uzyskania skryptu, wykonując następujący wiersz:
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
NotatkaInną możliwością uzyskania go jest wykonanie następującej linii:
klon git https://github.com/speed47/spectre-meltdown-checker.git
Jak sprawdzić, czy jesteśmy podatni na Spectre lub Meltdown?Aby sprawdzić bezpieczeństwo naszej dystrybucji możemy wykonać następującą linię:
sudo sh widmo-meltdown-checker.sh
To takie proste Możemy zweryfikować, czy nasz system jest podatny na te nowe zagrożenia.
2. Jak chronić się przed Spectre i Meltdown w systemach Windows
W tym przypadku użyjemy systemu Windows 10 i w tym celu musimy uzyskać dostęp do Windows PowerShell jako administrator, klikając aplikację prawym przyciskiem myszy i wybierając opcję „Uruchom jako administrator”.
Krok 1
Po otwarciu terminala PowerShell przystępujemy do wykonania następującego wiersza:
Kontrolowanie spekulacji modułu instalacjiKrok 2
W wyświetlonych pytaniach wpiszemy literę S, aby potwierdzić:
POWIĘKSZAĆ
Krok 3
Standardowa polityka wykonywania Windows nie pozwoli nam na wykonanie tego skryptu, w tym celu, aby skrypt został wykonany, musimy zapisać bieżącą konfigurację, aby można ją było później przywrócić, a następnie zmienić politykę wykonywania, aby można było ją uruchomić scenariusz. W tym celu wykonamy następujące dwa polecenia:
$ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser
POWIĘKSZAĆ
Krok 4
Teraz możemy uruchomić skrypt, wykonując następujące czynności:
Import-Module SpeculationControl Get-SpeculationControlSettings
POWIĘKSZAĆ
Krok 5
Widzimy szczegółowe informacje o systemie i musimy przyjrzeć się w szczególności dwóm wierszom:
Obsługa systemu operacyjnego Windows w celu łagodzenia iniekcji docelowych oddziałówTa linia wskazuje aktualizację oprogramowania Microsoft i czy jej wartość wynosi prawda oznacza, że komputer jest chroniony przed atakami Meltdown i Spectre.
Wsparcie sprzętowe dla łagodzenia iniekcji docelowych oddziałówTen wiersz odnosi się do aktualizacji oprogramowania układowego lub BIOS/UEFI wymaganej od producenta komputera, jeśli jej wartość wynosi prawda oznacza to, że będziemy chronieni przed podatnością Spectre.
Krok 6
Aby przywrócić politykę wykonania do pierwotnej konfiguracji po zweryfikowaniu bezpieczeństwa systemu, możemy wykonać następujący wiersz:
Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser
POWIĘKSZAĆ
Krok 7
Warto pamiętać, jak ważne jest aktualizowanie systemu operacyjnego, ponieważ programiści będą publikować łatki bezpieczeństwa, aby zapobiec następującym lukom w zabezpieczeniach:
3. Oficjalne informacje na temat widma i topnienia od producentów
W poniższych linkach możemy znaleźć informacje o tych lukach w każdej z głównych witryn deweloperów, a tym samym uzyskać bardziej szczegółowe informacje o tym, jak zapobiegać i być o krok przed problemem:
- Intel
- RAMIĘ
- AMD
- NVIDIA
- Microsoft Windows
- Serwer Windows
- Amazonka
- Android
- Manzana
- Lenovo
- HP
- Huawei
- Cisco
- Mozilla
- Czerwony kapelusz
- Debiana
- Ubuntu
- Fedora
- VMWare
Jak widzimy, chociaż luki w zabezpieczeniach będą zawsze obecne, możemy podjąć niezbędne środki, aby zwracać uwagę na wszelkie awarie, a tym samym zapobiec naruszeniu naszych informacji.