Достъпен е Kasper, скенер за проблеми със спекулативното изпълнение на код в ядрото на Linux

Група изследователи от Свободния университет в Амстердам публикува инструмента Kasper, предназначен за откриването в ядрото на Linux на кодови фрагменти, които могат да се използват за експлоатация на уязвимости от клас Spectre, причинени от спекулативно изпълнение на кода от процесора. Изходните кодове на инструмента се разпространяват под лицензия Apache 2.0.

Напомняме, че за провеждането на такива атаки, каквато е Spectre v1, която позволява определяне на съдържанието на паметта, е необходимо в привилегирования код да има определена последователност от команди (гаджети), водеща до спекулативно изпълнение на инструкции. С цел оптимизация процесорът започва да изпълнява подобни гаджети в спекулативен режим, след което установява, че предсказанието на граничния растеж не е оправдано и отменя операциите до първоначалното състояние, но обработените по време на спекулативното изпълнение данни остават в кеша и микроархитектурните буфери и са достъпни за извличане с помощта на различни методи за определяне на остатъчни данни чрез странични канали.

По-рано наличните инструменти за сканиране на гаджети за уязвимостта Spectre, базирани на търсене на типови шаблони, показваха много висок процент на фалшиви сработвания, пропускайки в същото време много действителни гаджети (експериментите показаха, че 99% от откритите с подобни инструменти гаджети не можеха да се използват за атаки, а 33% от работещите гаджети, способни да предизвикат атака, не бяха забелязани).

За повишаване на качеството на определяне на проблемните гаджети Kasper моделира уязвимости, които атакуващият може да използва на всяка стъпка от извършването на атаки от клас Spectre — моделират се проблеми, позволяващи контрол на данните (например, подмяна на данните на атакуващия в микроархитектурни структури, за да влияние на последващото спекулативно изпълнение с помощта на атаки от клас LVI), получаване на достъп до конфиденциална информация (например, при излизане извън границите на буфера или при използване на памет след нейното освобождаване) и организиране на изтичане на конфиденциална информация (например, анализиране на състоянието на кеша на процесора или използване на метода MDS).

Достъпен е Kasper, скенер за проблеми със спекулативното изпълнение на код в ядрото на Linux

При тестване ядрото се свързва с runtime-библиотеки Kasper и проверки, работещи на ниво LLVM. По време на проверката се извършва емулация на спекулативно изпълнение на код, реализирана чрез механизма checkpoint-restore, който специално изпълнява неправилно предсказаната клонка на кода, след което се възстановява до първоначалното състояние преди започване на клонирането. Kasper също така се опитва да моделира различни софтуерни и хардуерни уязвимости, анализира влиянието на архитектурни и микроархитектурни ефекти и извършва fuzzing-тестове за възможните действия на нападателя. За анализа на потоците на изпълнение се използва порт DataFlowSanitizer за ядрото на Linux, а за fuzzing-тестовете модифицирана версия на пакета syzkaller.

Достъпен е Kasper, скенер за проблеми със спекулативното изпълнение на код в ядрото на Linux

По време на сканирането на ядрото на Linux с помощта на Kasper са открити 1379 преди неизвестни гаджети, потенциално водещи до изтичане на данни по време на спекулативно изпълнение на инструкции. Отбелязва се, че може само част от тях да представляват реални проблеми, но за демонстрация на наличието на реална опасност, а не само теоретична, за един от проблемните участъци от кода е разработен работещ прототип на експлоита, водещ до изтичане на информация от паметта на ядрото.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster