Dostępny jest Kasper, skaner problemów związanych z spekulacyjnym wykonaniem kodu w jądrze Linux

Zespół naukowców z Uniwersytetu Vrije w Amsterdamie opublikował narzędzie Kasper, które ma na celu identyfikację fragmentów kodu w jądrze Linux, które mogą być wykorzystane do eksploatacji podatności klasy Spectre, spowodowanej spekulacyjnym wykonaniem kodu przez procesor. Oryginalne kody źródłowe narzędzia są rozpowszechniane na licencji Apache 2.0.

Przypomnijmy, że do przeprowadzania takich ataków jak Spectre v1, umożliwiających określenie zawartości pamięci, konieczne jest posiadanie w kodzie z uprawnieniami odpowiedniej sekwencji poleceń (gadżetów), prowadzącej do spekulacyjnego wykonania instrukcji. W celu optymalizacji procesor zaczyna wykonywać tego rodzaju gadżety w trybie spekulacyjnym, a następnie ustala, że przewidywanie rozgałęziania się nie powiodło i cofa operacje do stanu początkowego, ale dane przetwarzane w trakcie spekulacyjnego wykonania osiadają w cache i buforach mikroarchitektury i są dostępne do wydobycia z nich za pomocą różnych metod określania danych resztkowych przez zewnętrzne kanały.

Wcześniej dostępne narzędzia do skanowania gadżetów dla podatności Spectre, oparte na wyszukiwaniu szablonów, wykazywały bardzo wysoki poziom fałszywych alarmów, jednocześnie pomijając wiele rzeczywistych gadżetów (doświadczenia wykazały, że 99% gadżetów wykrywanych przez tego typu narzędzia nie mogło być wykorzystanych do ataków, a 33% aktywnych gadżetów, mogących prowadzić do ataku, nie zostało zauważonych).

Aby zwiększyć jakość identyfikacji problematycznych gadżetów, Kasper modeluje podatności, które atakujący może wykorzystać na każdym etapie przeprowadzania ataków klasy Spectre — modelowane są problemy, które pozwalają kontrolować dane (np. podstawienie danych atakującego w struktury mikroarchitektury w celu wpływania na późniejsze spekulacyjne wykonanie za pomocą ataków klasy LVI), uzyskiwać dostęp do poufnych informacji (np. podczas wychodzenia poza granice bufora lub używania pamięci po jej zwolnieniu) i organizować wyciek poufnych informacji (np. analizując stan cache procesora lub wykorzystując metodę MDS).

Dostępny jest Kasper, skaner problemów związanych z spekulacyjnym wykonaniem kodu w jądrze Linux

Podczas testowania jądro łączy się z bibliotekami runtime Kasper oraz z kontrolkami działającymi na poziomie LLVM. W trakcie weryfikacji następuje emulacja spekulacyjnego wykonywania kodu, realizowana za pomocą mechanizmu checkpoint-restore, który specjalnie wykonuje źle przewidzianą gałąź kodu, a następnie cofa się do pierwotnego stanu sprzed rozwidlenia. Kasper próbuje również modelować różne programowe i sprzętowe luki bezpieczeństwa, analizując wpływ efektów architektonicznych i mikroarchitektonicznych oraz przeprowadza testy fuzzingowe możliwych działań atakującego. Do analizy strumieni wykonania wykorzystuje się port DataFlowSanitizer dla jądra Linux, a do testowania fuzzingowego zmodyfikowaną wersję pakietu syzkaller.

Dostępny jest Kasper, skaner problemów związanych z spekulacyjnym wykonaniem kodu w jądrze Linux

W trakcie skanowania jądra Linux za pomocą Kasper zidentyfikowano 1379 wcześniej nieznanych gadżetów, potencjalnie prowadzących do wycieków danych podczas spekulacyjnego wykonywania instrukcji. Zauważono, że tylko część z nich może stanowić rzeczywiste zagrożenia, ale dla pokazania, że istnieje rzeczywiste niebezpieczeństwo, a nie tylko teoretyczne, dla jednego z problematycznych fragmentów kodu opracowano działający prototyp exploit-u, prowadzącego do wycieku informacji z pamięci jądra.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster