Spectre (luka bezpieczeństwa) - Spectre (security vulnerability)

Widmo
Widmo z tekstem.svg
Logo stworzone dla luki, przedstawiające ducha z gałązką
Identyfikator(y) CVE CVE- 2017-5753 (Widmo-V1)
CVE- 2017-5715 (Widmo-V2)
Data odkrycia styczeń 2018 ; 3 lata temu ( 2018-01 )
Sprzęt, którego dotyczy problem Wszystkie mikroprocesory sprzed 2019 r. , które wykorzystują przewidywanie rozgałęzień
Strona internetowa spektreatak .com

Spectre to klasa luk w zabezpieczeniach, które wpływają na nowoczesne mikroprocesory, które wykonują przewidywanie gałęzi i inne formy spekulacji. Na większości procesorów spekulacyjne wykonanie wynikające z błędnego przewidywania gałęzi może pozostawić widoczne efekty uboczne, które mogą ujawnić prywatne dane atakującym. Na przykład, jeśli wzorzec dostępu do pamięci wykonywany przez takie wykonanie spekulacyjne zależy od danych prywatnych, wynikowy stan pamięci podręcznej danych stanowi kanał boczny, przez który atakujący może uzyskać informacje o danych prywatnych przy użyciu ataku czasowego .

Wydano dwa identyfikatory wspólnych luk w zabezpieczeniach i ekspozycji związanych z Spectre, CVE - 2017-5753 (obejście sprawdzania granic, Spectre-V1, Spectre 1.0) i CVE-2017-5715 (wstrzyknięcie celu oddziału, Spectre-V2). Stwierdzono, że silniki JIT używane w JavaScript są podatne na ataki. Strona internetowa może odczytywać dane przechowywane w przeglądarce dla innej strony internetowej lub samą pamięć przeglądarki.

Na początku 2018 r. Intel poinformował, że przeprojektuje swoje procesory, aby pomóc w ochronie przed lukami Spectre i powiązanymi lukami Meltdown (zwłaszcza wariantem Spectre 2 i Meltdown, ale nie wariantem Spectre 1). 8 października 2018 r. Intel poinformował, że dodał do swoich najnowszych procesorów rozwiązania w zakresie sprzętu i oprogramowania układowego dotyczące luk w zabezpieczeniach Spectre i Meltdown. W październiku 2018 r. badacze z MIT zasugerowali nowe podejście do łagodzenia skutków o nazwie DAWG (Dynamically Allocated Way Guard), które może obiecać lepsze bezpieczeństwo bez obniżania wydajności.

Historia

W 2002 i 2003 roku Yukiyasu Tsunoo i koledzy z NEC pokazali, jak atakować odpowiednio szyfry z kluczem symetrycznym MISTY i DES . W 2005 roku Daniel Bernstein z University of Illinois w Chicago poinformował o wydobyciu klucza OpenSSL AES za pomocą ataku na taktowanie pamięci podręcznej, a Colin Percival przeprowadził działający atak na klucz OpenSSL RSA przy użyciu pamięci podręcznej procesora Intela. W 2013 roku Yuval Yarom i Katrina Falkner z University of Adelaide pokazali, jak mierzenie czasu dostępu do danych pozwala nikczemnej aplikacji określić, czy informacje zostały odczytane z pamięci podręcznej, czy nie. Gdyby odczytano je z pamięci podręcznej, czas dostępu byłby bardzo krótki, co oznacza, że ​​odczytane dane mogłyby zawierać klucz prywatny algorytmów szyfrowania.

Technika ta została wykorzystana do skutecznego ataku na GnuPG, AES i inne implementacje kryptograficzne. W styczniu 2017 r. Anders Fogh przedstawił prezentację w Ruhruniversität Bochum na temat automatycznego wyszukiwania ukrytych kanałów, zwłaszcza w procesorach z potokiem używanym przez więcej niż jeden rdzeń procesora.

Spectre właściwa została odkryta niezależnie przez Jann Horn od Google „s projektu Zero i Paul Kocher we współpracy z Danielem Genkina, Mike Hamburgu, Moritz Lipp i Yuval Yarom. Microsoft Vulnerability Research rozszerzył go na silniki JavaScript JIT przeglądarek. Została ona upubliczniona w połączeniu z inną usterką, Meltdown, 3 stycznia 2018 r., po tym, jak producenci sprzętu, których dotyczy problem, zostali poinformowani o problemie już 1 czerwca 2017 r. Luka została nazwana Spectre, ponieważ „oparła się na głównej przyczynie, spekulacyjna egzekucja. Ponieważ nie jest to łatwe do naprawienia, będzie nas prześladować przez dłuższy czas.”

28 stycznia 2018 r. poinformowano, że Intel udostępnił chińskim firmom technologicznym informacje o lukach w zabezpieczeniach Meltdown i Spectre, zanim powiadomił rząd Stanów Zjednoczonych o błędach.

W dniu 29 stycznia 2018 r. Microsoft wydał aktualizację systemu Windows, która wyłączyła problematyczną poprawkę mikrokodu Intela - która w niektórych przypadkach powodowała ponowne uruchomienie, niestabilność systemu oraz utratę lub uszkodzenie danych - wydaną wcześniej przez firmę Intel dla Spectre Variant 2 atak. Woody Leonhard z ComputerWorld wyraził zaniepokojenie instalacją nowej łatki Microsoftu.

Od czasu ujawnienia Spectre i Meltdown w styczniu 2018 r. przeprowadzono wiele badań dotyczących luk związanych ze spekulacyjną egzekucją. 3 maja 2018 r. zgłoszono osiem dodatkowych usterek klasy Spectre, tymczasowo nazwanych Spectre-NG przez c't (niemiecki magazyn komputerowy), mających wpływ na procesory Intela i prawdopodobnie AMD oraz ARM. Intel poinformował, że przygotowuje nowe łatki, aby złagodzić te wady. Dotyczy to wszystkich procesorów Core-i i pochodnych Xeon od Nehalem (2010) i procesorów Atom od 2013. Firma Intel przełożyła wydanie aktualizacji mikrokodu na 10 lipca 2018 r.

W dniu 21 maja 2018 r. firma Intel opublikowała informacje o pierwszych dwóch lukach kanału bocznego klasy Spectre-NG, CVE-2018-3640 ( odczyt nieuczciwego rejestru systemu, wariant 3a) i CVE-2018-3639 ( obejście sklepu spekulacyjnego , wariant 4), a także określane odpowiednio jako Intel SA-00115 i HP PSR-2018-0074.

Według Amazon Deutschland , Cyberus Technology, SYSGO i Colina Percivala ( FreeBSD ), 13 czerwca 2018 r. Intel ujawnił szczegóły dotyczące trzeciego wariantu Spectre-NG CVE-2018-3665 ( Lazy FP State Restore , Intel SA-00145). jest również znany jako wyciek stanu Lazy FPU (w skrócie „LazyFP”) i „Spectre-NG 3”.

10 lipca 2018 r. Intel ujawnił szczegóły dotyczące innej luki w zabezpieczeniach klasy Spectre-NG o nazwie „Bounds Check Bypass Store” (BCBS), znanej również jako „Spectre 1.1” ( CVE-2018-3693 ), która była w stanie zarówno zapisywać, jak i odczytywać. miedza. Wspomniano również o innym wariancie o nazwie „Spectre 1.2”.

Pod koniec lipca 2018 r. naukowcy z uniwersytetów w Saarland i Kalifornii ujawnili ret2spec ( znane również jako „Spectre v5”) i SpectreRSB , nowe typy luk w zabezpieczeniach wykonania kodu przy użyciu bufora Return Stack Buffer (RSB).

Pod koniec lipca 2018 r. badacze z Uniwersytetu w Grazu ujawnili „NetSpectre”, nowy rodzaj zdalnego ataku podobny do Spectre V1, który jednak wcale nie wymaga kodu kontrolowanego przez atakującego, aby można go było uruchomić na urządzeniu docelowym.

8 października 2018 r. Intel poinformował, że dodał do swoich najnowszych procesorów rozwiązania w zakresie sprzętu i oprogramowania układowego dotyczące luk w zabezpieczeniach Spectre i Meltdown.

W listopadzie 2018 r. ujawniono pięć nowych wariantów ataków. Badacze próbowali złamać mechanizmy ochrony procesora za pomocą kodu, aby wykorzystać tabelę historii wzorców procesora , bufor docelowy rozgałęzień, bufor stosu powrotnego i tabelę historii rozgałęzień.

W sierpniu 2019 r . zgłoszono powiązaną lukę dotyczącą przejściowego wykonania procesora , Spectre SWAPGS ( CVE-2019-1125 ).

Pod koniec kwietnia 2021 r. odkryto powiązaną lukę, która przebija się przez systemy bezpieczeństwa zaprojektowane w celu łagodzenia skutków Spectre poprzez użycie pamięci podręcznej micro-op. Wiadomo, że luka dotyczy Skylake i późniejszych procesorów firmy Intel i procesorów Zen firmy AMD.

Mechanizm

Spectre to luka, która skłania program do uzyskania dostępu do dowolnych lokalizacji w przestrzeni pamięci programu . Atakujący może odczytać zawartość dostępnej pamięci, a tym samym potencjalnie uzyskać wrażliwe dane.

Zamiast pojedynczej, łatwej do naprawienia luki, w białej księdze Spectre opisano całą klasę potencjalnych luk. Są one oparte na wykorzystaniu efektów ubocznych z spekulacyjnego wykonania , wspólnej drodze ukrywając opóźnienia pamięci i tak przyspiesza wykonanie w nowoczesnych mikroprocesorów . W szczególności Spectre koncentruje się na przewidywaniu gałęzi , co jest szczególnym przypadkiem wykonania spekulacyjnego. W przeciwieństwie do powiązanej luki Meltdown ujawnionej w tym samym czasie, Spectre nie opiera się na konkretnej funkcji systemu zarządzania pamięcią i ochrony pojedynczego procesora , ale jest bardziej uogólnioną ideą.

Punktem wyjścia białej księgi jest atak taktowania kanału bocznego zastosowany do maszynerii przewidywania gałęzi nowoczesnych mikroprocesorów wykonujących awarie. Chociaż na poziomie architektury udokumentowanym w książkach danych procesora, wszelkie wyniki błędnego przewidywania są określone do odrzucenia po fakcie, wynikowe wykonanie spekulacyjne może nadal pozostawiać efekty uboczne, takie jak załadowane wiersze pamięci podręcznej . Mogą one później wpływać na tak zwane niefunkcjonalne aspekty środowiska komputerowego. Jeśli takie skutki uboczne – w tym, ale nie tylko, czas dostępu do pamięci – są widoczne dla szkodliwego programu i mogą być zaprojektowane tak, aby były zależne od poufnych danych przechowywanych przez proces ofiary , wówczas te skutki uboczne mogą spowodować, że te wrażliwe dane staną się dostrzegalne. Może się to zdarzyć, mimo że formalne zabezpieczenia na poziomie architektury działają zgodnie z założeniami; w tym przypadku niższa , mikroarchitektury -level optymalizacje wykonanie kodu może wyciekać informacje nie są niezbędne do poprawności normalnego wykonywania programu.

Dokument Spectre przedstawia atak w czterech podstawowych krokach:

  1. Po pierwsze, pokazuje, że logika przewidywania rozgałęzień w nowoczesnych procesorach może być wytrenowana w celu niezawodnego trafienia lub chybienia w oparciu o wewnętrzne działanie szkodliwego programu.
  2. Następnie pokazuje, że późniejszą różnicę między trafieniami i chybieniem w pamięci podręcznej można niezawodnie określić w czasie, tak że to, co powinno być prostą niefunkcjonalną różnicą, może w rzeczywistości zostać zmienione w ukryty kanał, który wydobywa informacje z wewnętrznego działania niepowiązanego procesu. .
  3. Po trzecie, artykuł syntetyzuje wyniki za pomocą exploitów programowania zorientowanego na zwrot i innych zasad z prostym programem przykładowym i fragmentem kodu JavaScript uruchamianym w przeglądarce piaskownicy ; w obu przypadkach okazuje się, że cała przestrzeń adresowa procesu ofiary (tj. zawartość uruchomionego programu) jest czytelna, po prostu wykorzystując spekulacyjne wykonanie gałęzi warunkowych w kodzie wygenerowanym przez kompilator giełdowy lub maszynę JavaScript obecną w istniejącej przeglądarce . Podstawową ideą jest przeszukanie istniejącego kodu w poszukiwaniu miejsc, w których spekulacje dotykają niedostępnych w inny sposób danych, manipulowanie procesorem do stanu, w którym spekulacyjne wykonanie musi dotknąć tych danych, a następnie zmierzenie efektu ubocznego szybszego procesora, jeśli to już jest -przygotowana maszyna do pobierania wstępnego rzeczywiście ładowała linię pamięci podręcznej.
  4. Wreszcie artykuł kończy się uogólnieniem ataku na dowolny niefunkcjonalny stan procesu ofiary. Pokrótce omówiono nawet tak bardzo nieoczywiste efekty niefunkcjonalne, jak opóźnienie arbitrażu magistrali .

Podstawowa różnica między Spectre i Meltdown polega na tym, że Spectre można wykorzystać do manipulowania procesem w celu ujawnienia własnych danych. Z drugiej strony Meltdown może być używany do odczytywania uprzywilejowanej pamięci w przestrzeni adresowej procesu, do której normalnie nawet sam proces nie byłby w stanie uzyskać dostępu (w niektórych niechronionych systemach operacyjnych obejmuje to dane należące do jądra lub innych procesów).

Dokument Meltdown rozróżnia te dwie luki w ten sposób: „Meltdown różni się od ataków Spectre na kilka sposobów, zwłaszcza że Spectre wymaga dostosowania do środowiska oprogramowania procesu ofiary, ale dotyczy szerzej procesorów i nie jest łagodzony przez KAISER ”.

Zdalna eksploatacja

Podczas gdy Spectre jest prostszy do wykorzystania w skompilowanym języku, takim jak C lub C++, przez lokalne wykonanie kodu maszynowego , można go również zdalnie wykorzystać za pomocą kodu hostowanego na zdalnych złośliwych stronach internetowych , na przykład w językach interpretowanych, takich jak JavaScript , które są uruchamiane lokalnie za pomocą przeglądarki internetowej. . Skryptowane złośliwe oprogramowanie miałoby wówczas dostęp do całej pamięci zmapowanej do przestrzeni adresowej uruchomionej przeglądarki.

Exploit korzystający ze zdalnego JavaScriptu przebiega podobnie jak exploit w lokalnym kodzie maszynowym: Flush Cache → Mistrain Branch Predictor → Timed Reads (śledzenie trafień/chybień).

Brak możliwości użycia clflushinstrukcji ( cache-line flush) w JavaScript wymaga alternatywnego podejścia. Istnieje kilka zasad automatycznego wykluczania pamięci podręcznej , które może wybrać procesor, a atak polega na możliwości wymuszenia takiego wykluczenia, aby exploit zadziałał. Stwierdzono, że użycie drugiego indeksu w dużej tablicy, który był utrzymywany kilka iteracji za pierwszym indeksem, spowodowałoby użycie zasady LRU. Pozwala to exploitowi na skuteczne wyczyszczenie pamięci podręcznej poprzez wykonywanie odczytów przyrostowych na dużym zbiorze danych.

Predyktor rozgałęzień byłby wtedy błędnie przeszkolony przez iterację po bardzo dużym zbiorze danych przy użyciu operacji bitowych w celu ustawienia indeksu na wartości z zakresu, a następnie użycie adresu poza granicami w końcowej iteracji.

W takim przypadku wymagany byłby bardzo precyzyjny zegar w celu określenia, czy zestaw odczytów doprowadził do trafienia w pamięć podręczną, czy do chybienia w pamięci podręcznej. Podczas gdy przeglądarki takie jak Chrome , Firefox i Tor (oparte na Firefoksie) nałożyły ograniczenia na rozdzielczość liczników czasu (wymagane w exploitie Spectre do określenia, czy pamięć podręczna jest trafiona/chybiona), w czasie tworzenia białej księgi autor Spectre był w stanie stworzyć czasomierz wysokiej precyzji przy użyciu pracownik internetowej cechą HTML5 .

Uważne kodowanie i analiza kodu maszynowego wykonywanego przez kompilator kompilacji just -in-time (JIT) były wymagane, aby upewnić się, że czyszczenie pamięci podręcznej i odczyty wykorzystujące luki w zabezpieczeniach nie zostały zoptymalizowane.

Uderzenie

Od 2018 r. Spectre ma wpływ na prawie każdy system komputerowy, w tym komputery stacjonarne, laptopy i urządzenia mobilne. W szczególności wykazano, że Spectre działa na procesorach Intel , AMD , ARM i IBM . Intel odpowiedział na zgłoszone luki w zabezpieczeniach oficjalnym oświadczeniem. Firma AMD początkowo przyznała się do podatności na jeden z wariantów Spectre ( wariant GPZ 1), ale stwierdziła, że ​​podatność na inny (wariant GPZ 2) nie została wykazana na procesorach AMD, twierdząc, że stwarza ona „prawie zerowe ryzyko wykorzystania” ze względu na różnice w Architektura AMD. W aktualizacji dziewięć dni później AMD stwierdziło, że „GPZ Variant 2… dotyczy procesorów AMD” i zdefiniowało nadchodzące kroki w celu złagodzenia zagrożenia. Kilka źródeł uznało wiadomość AMD o podatności na wariant 2 GPZ jako zmianę w stosunku do wcześniejszych twierdzeń AMD, chociaż AMD utrzymywało, że ich stanowisko się nie zmieniło.

Badacze wskazali, że luka Spectre może mieć wpływ na niektóre procesory Intel , AMD i ARM . W szczególności te luki dotyczą procesorów z wykonaniem spekulacyjnym .

Firma ARM poinformowała, że ​​większość ich procesorów nie jest podatna i opublikowała listę konkretnych procesorów, na które ma wpływ luka Spectre: Cortex-R7 , Cortex-R8 , Cortex-A8 , Cortex-A9 , Cortex-A15 , Cortex - Rdzenie A17 , Cortex-A57 , Cortex-A72 , Cortex-A73 i ARM Cortex-A75 . Niestandardowe rdzenie procesorów innych producentów implementujące zestaw instrukcji ARM, takie jak te znajdujące się w nowszych procesorach z serii Apple A , również zostały zgłoszone jako podatne na ataki. Ogólnie rzecz biorąc, procesory o wyższej wydajności mają tendencję do intensywnego wykonywania spekulacji, co czyni je podatnymi na Spectre.

Spectre może mieć większy wpływ na dostawców chmury niż Meltdown. Podczas gdy Meltdown umożliwia nieautoryzowanym aplikacjom odczytywanie z uprzywilejowanej pamięci w celu uzyskania poufnych danych z procesów działających na tym samym serwerze w chmurze, Spectre może pozwolić złośliwym programom na nakłonienie hipernadzorcy do przesłania danych do działającego na nim systemu gościa.

Łagodzenie

Ponieważ Spectre reprezentuje całą klasę ataków, najprawdopodobniej nie może być dla niego jednej łatki. Chociaż trwają już prace nad rozwiązaniem szczególnych przypadków luki, oryginalna strona internetowa poświęcona Spectre i Meltdown stwierdza: „Ponieważ [Spectre] nie jest łatwe do naprawienia, będzie nas prześladować przez długi czas”. Jednocześnie, według Della : „Do tej pory [7 lutego 2018 r.] nie zgłoszono żadnych eksploitów tych luk w „prawdziwym świecie” [tj. Meltdown i Spectre], chociaż badacze przedstawili dowody słuszności koncepcji”.

Opublikowano kilka procedur pomagających chronić komputery domowe i powiązane urządzenia przed usterką. Zgłaszano, że łatki Spectre znacznie spowalniają wydajność, szczególnie na starszych komputerach; na nowszych platformach Core ósmej generacji zmierzono spadki wydajności w testach porównawczych o 2–14 procent. 18 stycznia 2018 r. zgłoszono niechciane restarty, nawet nowszych chipów Intela, z powodu łatek Meltdown i Spectre.

Zasugerowano, że koszt łagodzenia może zostać złagodzony przez procesory, które obsługują opróżnianie bufora selektywnej translacji (TLB), która w architekturze Intel 64 nazywa się identyfikatorem kontekstu procesu (PCID) , a w wersji Alpha jest to numer przestrzeni adresowej. (ASN). Dzieje się tak, ponieważ selektywne opróżnianie umożliwia izolację zachowania TLB kluczowego dla exploita w różnych procesach, bez ciągłego opróżniania całego TLB – głównego powodu kosztów ograniczenia.

W marcu 2018 r. Intel ogłosił, że opracował poprawki sprzętowe tylko dla Meltdown i Spectre-V2, ale nie Spectre-V1. Luki zostały złagodzone przez nowy system partycjonowania, który usprawnia separację procesów i poziomów uprawnień.

8 października 2018 r. Intel poinformował, że dodał rozwiązania sprzętowe i oprogramowania układowego dotyczące luk w zabezpieczeniach Spectre i Meltdown do swoich procesorów Coffee Lake-R i nowszych.

W dniu 2 marca 2019 r. Microsoft wydał ważne oprogramowanie łagodzące lukę w zabezpieczeniach procesora Spectre v2.

Podsumowanie działań łagodzących w systemie Microsoft Windows
Słaby punkt CVE Exploit nazwa Publiczna nazwa luki Zmiany w systemie Windows Zmiany oprogramowania Źródło
Widmo 2017-5753 Wariant 1 Obejście kontroli granic (BCB) Ponowna kompilacja z nowym kompilatorem
Wzmocniona przeglądarka, aby zapobiec exploitowi z JavaScript
Nie
Widmo 2017-5715 Wariant 2 Wstrzyknięcie celu oddziału (WIT) Nowe instrukcje CPU eliminujące spekulacje oddziałów tak
Topnienie 2017-5754 Wariant 3 Nieuczciwe ładowanie pamięci podręcznej danych (RDCL) Izoluj tabele stron trybu jądra i trybu użytkownika Nie
Widmo-NG 2018-3640 Wariant 3a Odczyt rejestru nieuczciwego systemu (RSRR) tak
Widmo-NG 2018-3639 Wariant 4 Spekulacyjne obejście sklepu (SSB) tak
Widmo-NG 2018-3665 Leniwe przywracanie stanu FP
Widmo-NG 2018-3693 Wariant 1.1 Bounds Check Bypass Store (BCBS)
Widmo Wariant 1.2 Obejście ochrony tylko do odczytu (RPB)
WidmoRSB Błędne przewidywanie zwrotu

Szczególne oprogramowanie

Opublikowano kilka procedur pomagających chronić komputery domowe i powiązane urządzenia przed usterką.

Początkowe działania łagodzące nie były całkowicie pozbawione incydentów. Początkowo zgłoszono, że łatki Spectre znacznie spowalniają wydajność, zwłaszcza na starszych komputerach. Na nowszych platformach Core ósmej generacji zmierzono spadki wydajności w testach porównawczych o 2–14 procent. 18 stycznia 2018 r. zgłoszono niechciane ponowne uruchomienie nawet nowszych chipów Intela.

Ponieważ możliwe jest wykorzystanie Spectre przez JavaScript osadzony na stronach internetowych, zaplanowano domyślnie uwzględnienie łagodzenia ataku w przeglądarce Chrome 64. Użytkownicy przeglądarki Chrome 63 mogli ręcznie złagodzić atak, włączając funkcję Site Isolation ( chrome://flags#enable-site-per-process).

W Firefoksie 57.0.4 Mozilla zmniejszała rozdzielczość timerów JavaScript, aby zapobiec atakom na czas, z dodatkowymi pracami nad technikami rozmycia czasu planowanymi w przyszłych wydaniach.

15 stycznia 2018 r. firma Microsoft wprowadziła łagodzenie skutków SPECTER w programie Visual Studio. Można to zastosować za pomocą przełącznika /Qspectre. Jako programista będziesz musiał pobrać odpowiednie biblioteki, które można zainstalować za pomocą instalatora Visual Studio.

Ogólne podejścia

4 stycznia 2018 r. Google szczegółowo opisał nową technikę na swoim blogu o bezpieczeństwie o nazwie „Retpoline” ( trampolina powrotna ), która może pokonać lukę w zabezpieczeniach Spectre przy znikomym obciążeniu procesora. Polega ona na kierowaniu gałęzi pośrednich na poziomie kompilatora w kierunku innego celu, co nie skutkuje podatnym na ataki spekulatywnym wykonaniem poza kolejnością. Chociaż została opracowana dla zestawu instrukcji x86 , inżynierowie Google uważają, że technikę tę można również przenieść na inne procesory.

W dniu 25 stycznia 2018 r. przedstawiono aktualny stan oraz możliwe przyszłe rozważania dotyczące rozwiązania luk Meltdown i Spectre.

18 października 2018 r. badacze z MIT zasugerowali nowe podejście do łagodzenia skutków o nazwie DAWG (Dynamically Allocated Way Guard), które może obiecać lepsze bezpieczeństwo bez obniżania wydajności.

16 kwietnia 2019 r. naukowcy z UC San Diego i University of Virginia zaproponowali Context-Sensitive Fencing , mechanizm obronny oparty na mikrokodzie, który chirurgicznie wstrzykuje ogrodzenia do dynamicznego strumienia wykonania, chroniąc przed wieloma wariantami Spectre przy zaledwie 8% spadku wydajności .

Spór

Kiedy Intel ogłosił, że łagodzenie skutków Spectre może zostać włączone jako „funkcja bezpieczeństwa”, a nie jako stała poprawka błędów, twórca Linuksa Linus Torvalds nazwał łatki „kompletnymi i kompletnymi śmieciami”. Ingo Molnár następnie zasugerował użycie maszyn do śledzenia funkcji w jądrze Linuksa, aby naprawić Spectre bez obsługi mikrokodu Indirect Branch Restricted Speculation (IBRS). W rezultacie miałoby to wpływ tylko na wydajność procesorów opartych na architekturze Intel Skylake i nowszej. Ta maszyna oparta na ftrace i retpoline została włączona do systemu Linux 4.15 w styczniu 2018 roku.

Sprzęt odporny

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki