Badacze bezpieczeństwa opublikowali w Project Zero nową lukę o nazwie Spectre and Meltdown, pozwalającą programowi na kradzież informacji z pamięci innych programów. Wpływa na architektury Intel, AMD i ARM.
Wadę tę można wykorzystać zdalnie, odwiedzając stronę JavaScript. Szczegóły techniczne można znaleźć na stronie redhat , zespole bezpieczeństwa Ubuntu .
Wyciek informacji poprzez spekulacyjne ataki kanałowe po stronie wykonania (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 alias Spectre and Meltdown)
Odkryto, że nowa klasa ataków z kanału bocznego wpływa na większość procesorów, w tym procesory Intel, AMD i ARM. Atak pozwala złośliwym procesom przestrzeni użytkownika na odczyt pamięci jądra i złośliwego kodu u gości na odczyt pamięci hiperwizora. Aby rozwiązać ten problem, konieczne będą aktualizacje jądra Ubuntu i mikrokodu procesora. Te aktualizacje zostaną ogłoszone w przyszłych Informacjach o bezpieczeństwie Ubuntu, gdy będą dostępne.
Przykładowa implementacja w JavaScript
Jako dowód słuszności koncepcji napisano kod JavaScript, który po uruchomieniu w przeglądarce Google Chrome pozwala JavaScript na odczyt prywatnej pamięci z procesu, w którym działa.
Wydaje się, że na mój system ma wpływ luka widma. Skompilowałem i wykonałem ten proof-of-concept ( spectre.c
).
Informacje o systemie:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
Jak ograniczyć luki w zabezpieczeniach Spectre i Meldown w systemach Linux?
Dalsza lektura: Używanie Meltdown do kradzieży haseł w czasie rzeczywistym .
Aktualizacja
Używanie Spectre & Meltdown Checker
po przejściu do 4.9.0-5
wersji jądra po odpowiedzi @Carlos Pasqualini, ponieważ dostępna jest aktualizacja zabezpieczeń, aby zminimalizować cve-2017-5754 na Debian Stretch:
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel: NO (only 31 opcodes found, should be >= 70)
> STATUS: VULNERABLE (heuristic to be improved when official patches become available)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
Zaktualizuj 25 stycznia 2018 r
spectre-meltdown-checker
Skrypt jest oficjalnie zapakowane przez Debiana, jest on dostępny dla Debiana odcinku przez backports repozytorium, Buster i Sid.
Obejście sklepu spekulacyjnego (SSB) - znane również jako wariant 4
Systemy z mikroprocesorami wykorzystujące spekulacyjne wykonywanie i spekulacyjne wykonywanie odczytów pamięci przed poznaniem adresów wszystkich wcześniejszych zapisów pamięci mogą umożliwić nieuprawnione ujawnienie informacji atakującemu z dostępem lokalnym użytkownikom za pomocą analizy kanału bocznego.
Nieuczciwy odczyt rejestru systemowego (RSRE) - znany również jako wariant 3a
Systemy z mikroprocesorami wykorzystujące wykonywanie spekulacyjne i wykonujące spekulacyjne odczyty rejestrów systemowych mogą umożliwiać nieautoryzowane ujawnienie parametrów systemowych atakującemu z dostępem lokalnym użytkownikom za pomocą analizy kanału bocznego.
Edytuj 27 lipca 2018 r
NetSpectre: Czytaj dowolną pamięć w sieci
W tym artykule prezentujemy NetSpectre, nowy atak oparty na wariancie Spectre 1, który nie wymaga kodu kontrolowanego przez atakującego na urządzeniu docelowym, co wpływa na miliardy urządzeń. Podobnie jak lokalny atak Spectre, nasz atak zdalny wymaga obecności gadżetu Spectre w kodzie celu. Pokazujemy, że systemy zawierające wymagane gadżety Spectre w odsłoniętym interfejsie sieciowym lub interfejsie API mogą zostać zaatakowane przez nasz ogólny zdalny atak Spectre, umożliwiający odczyt dowolnej pamięci przez sieć. Atakujący wysyła tylko ofierze spreparowane żądania i mierzy czas reakcji na wyciek tajnej wartości z pamięci ofiary.
źródło
Odpowiedzi:
Alan Cox udostępnił link z bloga AMD: https://www.amd.com/en/corporate/speculative-execution
Wariant pierwszy: Bounds Check Bypass Wariant drugi: wstrzyknięcie do rozgałęzienia Wariant trzeci: Nieuczciwe ładowanie pamięci podręcznej danychDobrze byłoby mieć potwierdzenie tych oświadczeń AMD przez stronę trzecią.
„Łagodzenie” w systemach, których dotyczy problem, wymagałoby nowego jądra i ponownego uruchomienia, ale w wielu dystrybucjach nie ma jeszcze wydanych pakietów z poprawkami:
Debian:
Inne źródła informacji, które znalazłem:
źródło
27 stycznia 2018 Intel Microcode psuje niektóre systemy
Intel Microcode Aktualizacja 08.01.2018 zająć wykonywanie spekulatywne rozgałęzienia luki bezpieczeństwa złamał kilka systemów. Wpłynęło to na wiele systemów Ubuntu od 8 stycznia do 21 stycznia. 22 stycznia 2018 r. Ubuntu wydało aktualizację, która przywraca starszy Microcode od 07.07.2017.
Jeśli wystąpiły problemy z aktualizacjami, przeinstalowałeś system Ubuntu i wyłączyłeś aktualizacje między 2018-01-08 a 2018-01-22, możesz spróbować ponownie uruchomić automatyczne aktualizacje Ubuntu.
16 stycznia 2018 aktualizacja Spectre w 4.14.14 i 4.9.77
Jeśli korzystasz już z jądra w wersjach 4.14.13 lub 4.9.76, tak jak ja, instalacja nie wymaga zastanowienia się,
4.14.14
a4.9.77
kiedy pojawią się one w ciągu kilku dni, aby zmniejszyć lukę w zabezpieczeniach Spectre. Ta poprawka nazywa się Retpoline i wcześniej nie spekulowała na poważnym poziomie wydajności:Bez wchodzenia w szczegóły JavaScript, oto jak natychmiast uniknąć dziury w Meltdown (i od 10 stycznia 2018 r., Ochrona Spectre)
Aktualizacja z 12 stycznia 2018 r
Wstępna ochrona przed Spectre jest już dostępna i będzie ulepszana w nadchodzących tygodniach i miesiącach.
Jądra systemu Linux 4.14.13, 4.9.76 LTS i 4.4.111 LTS
Z tego artykułu Softpedia :
Wielu użytkowników miało problemy z aktualizacjami Ubuntu LTS w dniach 4 stycznia 2018 r. I 10 stycznia 2018 r. Używam
4.14.13
przez kilka dni bez żadnych problemów, jednak YMMV .Aktualizacja z 7 stycznia 2018 r
Greg Kroah-Hartman napisał wczoraj aktualizację statusu dotyczącą luk w zabezpieczeniach jądra Meltdown i Spectre Linux. Niektórzy mogą nazwać go drugim najpotężniejszym człowiekiem w świecie Linuksa, tuż obok Linusa. Artykuł dotyczy stabilnych jąder (omówionych poniżej) i jąder LTS, które ma większość użytkowników Ubuntu.
Jądra Linuksa 4.14.11, 4.9.74, 4.4.109, 3.16.52 i 3.2.97 Wada krachu
Z tego artykułu :
Użytkownicy proszeni są o natychmiastową aktualizację swoich systemów
4 stycznia 2018 01:42 GMT · Przez Marius Nestor
Opiekunowie jądra Linuksa Greg Kroah-Hartman i Ben Hutchings wypuścili nowe wersje jądra Linuksa 4.14, 4.9, 4.4, 3.16, 3.18 i 3.12 LTS (Long Term Support), które najwyraźniej załatały jedną z dwóch krytycznych wad bezpieczeństwa, wpływających na najnowocześniejsze procesory.
Jądra Linux 4.14.11, 4.9.74, 4.4.109, 3.16.52, 3.18.91 i 3.2.97 są teraz dostępne do pobrania ze strony internetowej kernel.org, a użytkownicy są proszeni o aktualizację swoich dystrybucji GNU / Linux do tych nowych wersji, jeśli natychmiast uruchomią którąkolwiek z tych serii jądra. Dlaczego warto aktualizować? Ponieważ najwyraźniej usuwają krytyczną lukę zwaną Meltdown.
Jak informowaliśmy wcześniej, Meltdown i Spectre to dwa exploity, które wpływają na prawie wszystkie urządzenia zasilane przez nowoczesne procesory (CPU) wydane w ciągu ostatnich 25 lat. Tak, to znaczy prawie wszystkie telefony komórkowe i komputery osobiste. Rozpad może zostać wykorzystany przez nieuprzywilejowanego atakującego w celu złośliwego uzyskania poufnych informacji przechowywanych w pamięci jądra.
Poprawka do luki w zabezpieczeniach Spectre nadal działa
Chociaż Meltdown jest poważną luką, która może ujawnić twoje tajne dane, w tym hasła i klucze szyfrowania, Spectre jest jeszcze gorszy i nie jest łatwy do naprawienia. Badacze bezpieczeństwa twierdzą, że będzie nas to prześladować przez dłuższy czas. Spectre wykorzystuje technologię wykonywania spekulatywnego wykorzystywaną przez współczesne procesory w celu optymalizacji wydajności.
Do czasu usunięcia błędu Spectre zdecydowanie zaleca się przynajmniej aktualizację dystrybucji GNU / Linux do dowolnej z nowo wydanych wersji jądra Linux. Wyszukaj w repozytoriach oprogramowania ulubionej dystrybucji nową aktualizację jądra i zainstaluj ją jak najszybciej. Nie czekaj, aż będzie za późno, zrób to teraz!
Używałem jądra 4.14.10 przez tydzień, więc pobieranie i uruchamianie jądra Ubuntu Mainline w wersji 4.14.11 nie stanowiło dla mnie większego problemu.
Użytkownicy systemu Ubuntu 16.04 mogą być bardziej komfortowi dzięki wersjom jądra 4.4.109 lub 4.9.74, które zostały wydane w tym samym czasie, co 4.14.11.
Jeśli twoje regularne aktualizacje nie instalują żądanej wersji jądra, możesz to zrobić ręcznie, postępując zgodnie z odpowiedzią Zapytaj Ubuntu: https://askubuntu.com/questions/879888/how-do-i-update-kernel-to-the-latest -mainline-version / 879920 # 879920
4.14.12 - Jaką różnicę robi dzień
Niecałe 24 godziny po mojej pierwszej odpowiedzi została wydana łatka naprawiająca wersję jądra 4.14.11, która mogła się wydostać. Aktualizacja do 4.14.12 jest zalecana dla wszystkich użytkowników 4.14.11. Greg-KH mówi :
Patrząc na tę aktualizację, niewiele wierszy kodu źródłowego zostało zmienionych.
źródło
apt-get dist-upgrade
.W rzeczy samej. Jednym rozsądnym środkiem zaradczym jest wyłączenie JavaScript w przeglądarkach internetowych lub użycie przeglądarek internetowych, które nie obsługują JavaScript.
Większość przeglądarek obsługujących JavaScript ma ustawienie umożliwiające jego wyłączenie. Alternatywnie, jeśli chcesz zachować białą listę witryn lub domen, dla których zezwalasz na JavaScript, możesz skorzystać z różnych dodatków, takich jak uBlock Origin i NoScript .
Uwaga: Oczywiste jest, że wyłączenie / ograniczenie JavaScript nie powinno być Twoim jedynym ograniczeniem. Powinieneś dodatkowo przejrzeć (i prawdopodobnie zastosować) wszelkie odpowiednie poprawki jądra i inne aktualizacje bezpieczeństwa po ich napisaniu, przetestowaniu i opublikowaniu. Wypłat Debianie pochodnych polecenia zastosowanie takich jak
sudo apt update
,sudo apt list-upgradable
isudo apt upgrade
.Aktualizacja: nie wierz mi na słowo. Alan Cox mówi to samo:
źródło
Fakt, że można to wykorzystać przy użyciu JavaScript, nie jest głównym punktem i nie powinien być głównym problemem (chociaż jest to główny problem, ponieważ w ten sposób można łatwo wykonać zdalny kod w systemie, ale to nie jedyny sposób może się to zdarzyć).
Twoja uwaga nie powinna skupiać się na Javascript i / lub przeglądarce. Idealnie, twój procesor powinien zostać załatany. Niestety, dla większości obecnej fali błędów nie wydaje się to możliwe. Debian wraz ze wszystkimi innymi stronami dostarczającymi system operacyjny pójdzie w ten sposób jedyną możliwą drogą poza poleceniem procesora, który nie jest wadliwy: zmusza system do obejścia błędu w CPU. Te łatki nie naprawiają problemów. Zamiast tego system operacyjny ukrywa je najlepiej, jak to możliwe, w każdym programie uruchomionym na komputerze (a więc także w przeglądarce).
To ukrywanie jest dodatkową pracą obliczeniową, dlatego ogólna wydajność systemu będzie niższa niż bez niego. Ile mniej zależy prawdopodobnie w dużej mierze od tego, co dokładnie robią te programy.
Mając to na uwadze, wróć do pytania: co możesz zrobić, aby chronić swój system Debian, to zainstalować aktualizacje bezpieczeństwa. Ufam, że Debian zrobi wszystko, co możliwe w świetle tych błędów, aby uruchomić Debiana tak bezpiecznie, jak to możliwe, pomimo nieodłącznych wad procesora.
Nad tym problemem pracują już wszelkiego rodzaju duże firmy, podobnie jak liczni guru sprzętu i Linuksa. Nie chcę absolutnie powstrzymywać cię przed próbowaniem czegoś samemu lub próbowaniem pomocy w ogólnym wysiłku. Jeśli jednak interesuje Cię własne bezpieczeństwo i poprawka na czas, najprawdopodobniej znajdą lepsze rozwiązanie w krótszym czasie niż Ty, zaczynając od teraz, aby przyjrzeć się temu samemu.
źródło