Cel pola „błędów” w /proc/cpuinfo
opisanym w komunikacie zatwierdzenia, który go wprowadził :
x86/cpufeature
: Dodaj flagi błędów do /proc/cpuinfo
Zrzuć flagi, które wskazują, że wykryliśmy i / lub zastosowaliśmy obejścia błędów dla procesora, na którym wykonujemy, w podobny sposób jak flagi funkcji.
Zaletą jest to, że nie kumulują się one z czasem, podobnie jak funkcje procesora.
Wcześniej błędy sprzętowe wykryte przez jądro były wymienione jako osobne funkcje ( np . Niesławny błąd F00F, który ma swój własny f00f_bug
wpis w /proc/cpuinfo
32-bitowych systemach x86). Wpis „błędy” został wprowadzony, aby utrzymać je w jednej funkcji idącej naprzód, w tym samym stylu co flagi procesora x86 .
O ile wpisy w praktyce oznaczają, jak widać w komunikacie, wszystko, co gwarantuje, to że jądro wykryło błąd sprzętowy. Musisz szukać gdzie indziej (komunikaty rozruchowe lub określone /proc
wpisy lub /sys
wpisy, takie jak pliki w /sys/devices/system/cpu/vulnerabilities/
), aby ustalić, czy problemy zostały rozwiązane.
Przydatność wpisów „błędów” jest ograniczona na dwa sposoby. Po pierwsze, prawdziwych negatywów nie można odróżnić od nieznanych: jeśli pole nie określa „cpu_meltdown”, nie możesz (tylko z pola) wiedzieć, czy to oznacza, że jądro nie wie o Meltdown lub że na procesor nie ma wpływu Meltdown. Po drugie, wykrywanie może być zbyt uproszczone; zachowuje ostrożność, więc może zgłosić, że twój procesor jest podatny na zagrożenia, gdy nie jest. Ponieważ „wykrywanie” zależy od tabeli, jego dokładność zależy od używanej wersji jądra.
W przypadku błędów Meltdown i Spectre proces wykrywania, który podaje wartości w /proc/cpuinfo
następujący sposób , działa na x86:
- jeśli procesor nie wykonuje żadnych spekulacji (klasa 486, niektóre klasy Pentium, niektóre atomy), nie jest oznaczany jako zmieniony przez Meltdown lub Spectre;
- wszystkie pozostałe procesory są oznaczone jako warianty Spectre 1 i 2 (niezależnie od wersji mikrokodu itp.);
- jeśli CPU nie jest wymieniony jako niewrażliwy na spekulacyjne obejście sklepu , jeśli jego mikrokod nie twierdzi, że ogranicza SSB, a jeśli CPU nie twierdzi, że ogranicza SSB, oznacza to, że ma wpływ SSB;
- jeśli procesor nie jest wymieniony jako niewrażliwy na Meltdown (AMD) i jeśli jego mikrokod nie twierdzi, że łagodzi Meltdown, oznacza to, że ma wpływ na Meltdown.
Luki w zabezpieczeniach Meltdown / Spectre dotyczą projektowania / architektury chipsetu procesora, a wkrótce po zakupie nowego sprzętu w przyszłości łatki stanowią niezłą iluzję bezpieczeństwa w perspektywie długoterminowej . Z czasem mogą pojawić się nowe metody wykorzystywania wad, które mogą ominąć obecne łatki.
Krótko mówiąc, obecne łatki / mikrokody oprogramowania łagodzą problemy w stosunku do znanych metod exploitów z rodziny Spectre / Meltdown, ale nie rozwiązują podstawowych problemów projektowych procesorów, które na to pozwalają. Dotknięte (kilka generacji) procesorów nie przestały być podatne na zagrożenia w dłuższej perspektywie (i najprawdopodobniej nigdy nie będą).
Jednak, jak słusznie stwierdza @Gilles, posiadanie tego ostrzeżenia nie oznacza, że obecne znane exploity będą działać metody Spectre / Meltdown; nie będą działać, jeśli łatki są zainstalowane.
W przypadku wspomnianym w pytaniu jądro sprawdza tylko modele procesorów, o których wiadomo, że mają na nie wpływ Spectre / Meltdown (na razie wszystkie procesory x86, jeśli mówimy tylko o x86), a zatem
cpu-insecure
nadal są wymienione w sekcji błędów / line in/proc/cpuinfo
.PS. Wprowadzono już serię aktualizacji nowej metody wykorzystywania „błędów” Spectre / Meltdown. To chyba nie ostatni raz.
źródło
/proc/cpuinfo
nawet jeśli zostały w pełni wyeliminowane przez łatkę oprogramowania. Ich obecność nie oznacza, że twój system jest podatny na ten konkretny błąd.bugs
seriali i to po prostu źle. Większość błędów w projektowaniu procesorów ma pełne obejście programowe, które kosztuje tylko niewielką wydajność. Jeśli jądro zastosuje obejście, błąd jest nieszkodliwy.