د وریج پوهنتون امسترډم د څیړونکو یوې ډلې د کاسپر اوزار کټ خپور کړی، چې د کرنل کشفولو لپاره ډیزاین شوی Linux отрывков кода, которые можно использовать для эксплуатации уязвимостей класса Spectre, вызванных спекулятивным выполнением кода процессором. Исходные тексты инструментария распространяются под лицензией Apache 2.0.
راځئ چې په یاد ولرو چې د سپیکٹر v1 په څیر بریدونو ترسره کولو لپاره ، کوم چې د حافظې مینځپانګې مشخص کول امکان لري ، د امرونو د ځانګړي ترتیب (ګاجټونو) په امتیازي کوډ کې شتون اړین دی ، چې د لارښوونو قیاس پلي کیدو لامل کیږي. . د اصلاح کولو موخو لپاره، پروسیسر په قیاس موډ کې د داسې وسایلو اجرا کول پیل کوي، بیا معلومه کوي چې د څانګې وړاندوینه توجیه شوې نه وه او عملیات بیرته خپل اصلي حالت ته راولي، مګر د قیاس اجرا کولو په جریان کې پروسس شوي ډاټا په کیچ او مایکرو آرکیټیکچر بفرونو کې پای ته رسیږي. د دریمې ډلې چینلونو له لارې د پاتې ډیټا ټاکلو مختلف میتودونو په کارولو سره له دوی څخه د ترلاسه کولو لپاره شتون لري.
د سپیکټر زیانمننې لپاره د ګیجټونو سکین کولو لپاره دمخه موجود وسیلې ، د ځانګړي نمونو لټون کولو پراساس ، د غلط مثبتونو خورا لوړه کچه ښودلې ، پداسې حال کې چې ډیری ریښتیني ګیجټونه ورک شوي (تجربو ښودلې چې د ورته وسیلو لخوا پیژندل شوي 99٪ ګیجټونه د بریدونو لپاره نشي کارول کیدی. ، او 33٪ کاري ګیجټونه چې د برید لامل کیدی شي پام نه و شوی).
د ستونزې لرونکي ګیجټونو پیژندلو کیفیت ښه کولو لپاره ، کاسپر هغه زیانونه ماډل کوي چې برید کونکی کولی شي د سپیکٹر کلاس بریدونو ترسره کولو په هر مرحله کې ګټه پورته کړي - هغه ستونزې چې د معلوماتو کنټرول ته اجازه ورکوي ماډل شوي (د مثال په توګه ، د برید کونکي ډیټا په مایکرو آرکیټیکچرل جوړښتونو کې ځای په ځای کول ترڅو د تعقیبي قیاس اجرا کولو اغیزه وکړي. د LVI ټولګي بریدونه)، محرم معلوماتو ته لاس رسی ترلاسه کړئ (د مثال په توګه، کله چې د بفر حدود څخه بهر ځي یا د حافظې څخه د خلاصیدو وروسته کارول کیږي) او محرم معلومات لیکي (د مثال په توګه، د پروسیسر کیچ حالت تحلیل کول یا د MDS میتود په کارولو سره).

При тестировании ядро связывается с runtime-библиотеками Kasper и проверками, работающими на уровне LLVM. В процессе проверки производится эмуляция спекулятивного выполнения кода, реализованная при помощи механизма checkpoint-restore, который специально выполняет неверно предсказанную ветвь кода, после чего откатывается к исходному состоянию до начала ветвления. Kasper также пытается моделировать различные программные и аппаратные уязвимости, анализирует влияние архитектурных и микроархитектурных эффектов, и выполняет fuzzing-тестирование возможных действия атакующего. Для анализа потоков исполнения используется порт DataFlowSanitizer для ядра Linux, а для fuzzing-тестирования модифицированная версия пакета syzkaller.

В ходе сканирования ядра Linux при помощи Kasper выявлено 1379 ранее неизвестных гаджетов, потенциально приводящих к утечке данных в ходе спекулятивного выполнения инструкций. Отмечается, что возможно лишь часть из них может представлять реальные проблемы, но для демонстрации того, что имеется и реальная опасность, а не только теоретическая, для одного из проблемных отрывков кода был разработан рабочий прототип эксплоита, приводящий к утечке информации из памяти ядра.
سرچینه: opennet.ru
