Informatyczne egzorcyzmy: nowy model przepędza widmo Spectre z procesorów Strona główna Aktualności18.06.2018 11:05 Udostępnij: O autorze Adam Golański @eimi Za luki Spectre i Meltdown przyszło sporo zapłacić, mimo że z tego co wiemy, żadnego realnego ataku za ich pomocą jeszcze nie przeprowadzono. Wprowadzone w pospiechu do systemów operacyjnych łatki ograniczające spekulatywne wykonywanie instrukcji procesora znacząco ograniczyły wydajność komputerów. Nie jest to zaskakujące: spekulatywne wykonywanie jest standardową częścią architektury komputerowej od niemal 70 lat. Agresywne wykonywanie instrukcji poza kolejnością, wspierane przez zaawansowane mechanizmy przewidywania rozgałęzień pozwoliło wielokrotnie przyspieszyć uruchamianie kodu bez szkody dla poprawności działania programu. Czy z tym wszystkim trzeba się będzie rozstać ze względu na zagrożenia dla bezpieczeństwa? Najwyraźniej nie. Pojawił się nowy model spekulatywnego wykonywania, który w teorii i praktyce kończy z całą klasą zagrożeń Spectre. Amerykańscy informatycy Khaled N. Khasawneh, Esmaeil Koruyeh, Chengyu Song, Dmitrij Jewtjiuszkin, Dmitrij Ponomarew i Nael Abu-Ghazaleh opublikowali artykuł pt. SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation, w którym opisują nowy model spekulatywnego wykonywania o nazwie SafeSpec. Znaleźli oni sposób na izolowanie artefaktów pozostawianych w pamięci cache procesora po spekulatywnym wykonywaniu w taki sposób, by nie można było ich wykorzystać do odczytania wrażliwych danych z pamięci innych procesów czy obszaru zarezerwowanego dla kernela. SafeSpec jest wzorcem projektowym dla procesorów, który wymaga, by spekulatywne stany były przechowywane w tymczasowych strukturach (tzw. shadow states), niedostępnych dla przyjętych do wykonania instrukcji. Zmienia to całą hierarchię pamięci: jak wyjaśniają naukowcy, rozszerzone zostają kolejki load-store tak, by przechowywać wskaźnik do powiązanych z nimi tymczasowych struktur, przechowujących spekulatywnie wykonane linie cache. Nowa hierarchia cache jest odporna na wszystkie znane warianty wycieku informacji. Przy okazji jednak wykryto nową metodę ataku, Transient Speculation Attacks, będącą efektem ubocznym SafeSpec – wynika ona z tego, że wiele instrukcji startuje jako spekulatywnie wykonane przed ich popełnieniem. Zachodzi dla nich okres współdzielenia takiej tymczasowej struktury z instrukcjami, które zostaną odrzucone – i w tym okresie można wydobyć informację. By temu zapobiec, konieczne są dalsze modyfikacje spekulatywnie uaktualnianych struktur, w tym predyktora rozgałęzień i buforów DRAM. Niemniej jednak wskazano, co należy w tej kwestii zrobić. Należy podkreślić, że model SafeSpec został stworzony dla jednowątkowych obciążeń roboczych. Wielowątkowe obciążenia wprowadzają swoje własne problemy z koherencją buforów i spójnością pamięci, otwierające drogę do swoich własnych specyficznych ataków. I w tym jednak wypadku problemy te są ostatecznie rozwiązywalne. O SafeSpec należy myśleć jako o prototypie, mającym służyć do ustalenia praktyczności takiego rozwiązania. Rozwiązanie to zostało przeanalizowane pod kątem złożoności i narzutu na wydajność z wykorzystaniem software’owego symulatora rdzeni x86 – MarSSx86. Udało się wykazać, że nie tylko ocalony zostaje wzrost wydajności ze spekulatywnego wykonywania, ale nawet wydajność nieco wzrasta – pomagają dodatkowe bufory w shadow state. Zainteresowanych szczegółami działania tego wolnego od wycieków spekulatywnego wykonywania zapraszamy do lektury artykułu. Pozostałych musimy rozczarować – to nie jest coś, co pojawi się w najbliższych miesiącach dzięki nowym wersjom mikrokodu. To raczej wskazanie kierunku, który producenci procesorów powinni obrać, by nowe generacje czipów stały się wreszcie same z siebie odporne na próby wydobycia informacji przez nieuprawnione procesy. Możemy być pewni, że Intel, AMD, ARM i inni już się z pracą zapoznali i zapewne ich inżynierowie już zastanawiają się, jak to wdrożyć. Nie będzie to łatwe, sami badacze przyznają, że wymaga to głębokiego przeprojektowania CPU, by oddzielić stan spekulatywny od permanentnego. Od strony sprzętowej, z tego co zrozumieliśmy, na pewno konieczne będzie zaś powiększenie cache L1 w procesorach. Czy jest to za duża cena za wyegzorcyzmowanie widma Spectre? Tutaj możemy liczyć tylko na presję konkurencji – głupio byłoby jednemu z wiodących producentów przyznać, że nie wprowadził formalnie bezpiecznej architektury, podczas gdy zrobili to jego rywale. Sprzęt Bezpieczeństwo Udostępnij: Meltdown i Spectre – sprzętowe błędy w niemal wszystkich procesorach Poprzedni Wycieków danych c.d.: podsłuchaj koprocesor Intela, poznasz klucze szyfrowania Następny Najbezpieczniejszy z systemów wyłącza wielowątkowość w procesorach Intela © dobreprogramy Zgłoś błąd w publikacji Zobacz także Architektura graficzna AMD CDNA jeszcze w tym roku. I nie, tu nie ma literówki 21 cze 2020 Piotr Urbaniak Sprzęt 15 Kolejna dziura w układach Intela? Producenci po cichu aktualizują UEFI 25 maj 2020 Kamil J. Dudek Oprogramowanie Sprzęt Bezpieczeństwo IT.Pro 58 Google eksperymentuje z Chrome. Przeglądarka przestanie znęcać się nad akumulatorami 17 sie 2020 Arkadiusz Stando Oprogramowanie Internet 13 Były inżynier Intela twierdzi, że zna powód rozstania z Apple. Wiesza psy na jakości układów 26 cze 2020 Piotr Urbaniak Sprzęt Biznes 81
Udostępnij: O autorze Adam Golański @eimi Za luki Spectre i Meltdown przyszło sporo zapłacić, mimo że z tego co wiemy, żadnego realnego ataku za ich pomocą jeszcze nie przeprowadzono. Wprowadzone w pospiechu do systemów operacyjnych łatki ograniczające spekulatywne wykonywanie instrukcji procesora znacząco ograniczyły wydajność komputerów. Nie jest to zaskakujące: spekulatywne wykonywanie jest standardową częścią architektury komputerowej od niemal 70 lat. Agresywne wykonywanie instrukcji poza kolejnością, wspierane przez zaawansowane mechanizmy przewidywania rozgałęzień pozwoliło wielokrotnie przyspieszyć uruchamianie kodu bez szkody dla poprawności działania programu. Czy z tym wszystkim trzeba się będzie rozstać ze względu na zagrożenia dla bezpieczeństwa? Najwyraźniej nie. Pojawił się nowy model spekulatywnego wykonywania, który w teorii i praktyce kończy z całą klasą zagrożeń Spectre. Amerykańscy informatycy Khaled N. Khasawneh, Esmaeil Koruyeh, Chengyu Song, Dmitrij Jewtjiuszkin, Dmitrij Ponomarew i Nael Abu-Ghazaleh opublikowali artykuł pt. SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation, w którym opisują nowy model spekulatywnego wykonywania o nazwie SafeSpec. Znaleźli oni sposób na izolowanie artefaktów pozostawianych w pamięci cache procesora po spekulatywnym wykonywaniu w taki sposób, by nie można było ich wykorzystać do odczytania wrażliwych danych z pamięci innych procesów czy obszaru zarezerwowanego dla kernela. SafeSpec jest wzorcem projektowym dla procesorów, który wymaga, by spekulatywne stany były przechowywane w tymczasowych strukturach (tzw. shadow states), niedostępnych dla przyjętych do wykonania instrukcji. Zmienia to całą hierarchię pamięci: jak wyjaśniają naukowcy, rozszerzone zostają kolejki load-store tak, by przechowywać wskaźnik do powiązanych z nimi tymczasowych struktur, przechowujących spekulatywnie wykonane linie cache. Nowa hierarchia cache jest odporna na wszystkie znane warianty wycieku informacji. Przy okazji jednak wykryto nową metodę ataku, Transient Speculation Attacks, będącą efektem ubocznym SafeSpec – wynika ona z tego, że wiele instrukcji startuje jako spekulatywnie wykonane przed ich popełnieniem. Zachodzi dla nich okres współdzielenia takiej tymczasowej struktury z instrukcjami, które zostaną odrzucone – i w tym okresie można wydobyć informację. By temu zapobiec, konieczne są dalsze modyfikacje spekulatywnie uaktualnianych struktur, w tym predyktora rozgałęzień i buforów DRAM. Niemniej jednak wskazano, co należy w tej kwestii zrobić. Należy podkreślić, że model SafeSpec został stworzony dla jednowątkowych obciążeń roboczych. Wielowątkowe obciążenia wprowadzają swoje własne problemy z koherencją buforów i spójnością pamięci, otwierające drogę do swoich własnych specyficznych ataków. I w tym jednak wypadku problemy te są ostatecznie rozwiązywalne. O SafeSpec należy myśleć jako o prototypie, mającym służyć do ustalenia praktyczności takiego rozwiązania. Rozwiązanie to zostało przeanalizowane pod kątem złożoności i narzutu na wydajność z wykorzystaniem software’owego symulatora rdzeni x86 – MarSSx86. Udało się wykazać, że nie tylko ocalony zostaje wzrost wydajności ze spekulatywnego wykonywania, ale nawet wydajność nieco wzrasta – pomagają dodatkowe bufory w shadow state. Zainteresowanych szczegółami działania tego wolnego od wycieków spekulatywnego wykonywania zapraszamy do lektury artykułu. Pozostałych musimy rozczarować – to nie jest coś, co pojawi się w najbliższych miesiącach dzięki nowym wersjom mikrokodu. To raczej wskazanie kierunku, który producenci procesorów powinni obrać, by nowe generacje czipów stały się wreszcie same z siebie odporne na próby wydobycia informacji przez nieuprawnione procesy. Możemy być pewni, że Intel, AMD, ARM i inni już się z pracą zapoznali i zapewne ich inżynierowie już zastanawiają się, jak to wdrożyć. Nie będzie to łatwe, sami badacze przyznają, że wymaga to głębokiego przeprojektowania CPU, by oddzielić stan spekulatywny od permanentnego. Od strony sprzętowej, z tego co zrozumieliśmy, na pewno konieczne będzie zaś powiększenie cache L1 w procesorach. Czy jest to za duża cena za wyegzorcyzmowanie widma Spectre? Tutaj możemy liczyć tylko na presję konkurencji – głupio byłoby jednemu z wiodących producentów przyznać, że nie wprowadził formalnie bezpiecznej architektury, podczas gdy zrobili to jego rywale. Sprzęt Bezpieczeństwo Udostępnij: Meltdown i Spectre – sprzętowe błędy w niemal wszystkich procesorach Poprzedni Wycieków danych c.d.: podsłuchaj koprocesor Intela, poznasz klucze szyfrowania Następny Najbezpieczniejszy z systemów wyłącza wielowątkowość w procesorach Intela © dobreprogramy Zgłoś błąd w publikacji