Какой бы вы выбрали процессор?, Intel Core i5-760 или AMD Phenom II X6 Black
25 проголосовавших
У вас нет разрешения голосовать в этом опросе или просматривать его результаты. Пожалуйста, войдите или зарегистрируйтесь для возможности голосования в этом опросе.
-
Похожий контент
-
От KL FC Bot
14 ноября компания Google выпустила бюллетень, в котором сообщила о серьезной уязвимости в ряде процессоров компании Intel, начиная с поколения Ice Lake, выпущенного в 2019 году. Потенциально, эта уязвимость может приводить к отказу в обслуживании, эскалации привилегий или раскрытию чувствительной информации. На момент подготовки статьи обновления микрокода, закрывающие проблему, были выпущены для 12-го и 13-го поколений процессоров Intel (соответственно, Alder Lake и Raptor Lake). Патчи для процессоров 10-го и 11-го поколений (Ice Lake и Tiger Lake) готовятся. Полный список подверженных процессоров представлен на сайте Intel в виде огромной таблицы.
По словам представителей Intel, о нестандартном поведении процессоров инженеры компании знали, но проблема считалась некритичной, и ее решение отложили на первую половину 2024 года. Но ситуация изменилась, когда исследователи из компании Google, независимо от Intel, обнаружили проблему. Собственно, все детали уязвимости мы знаем от специалистов Google, а конкретно из статьи Тависа Орманди.
Фаззинг процессоров
Тавис Орманди имеет на своем счету множество обнаружений серьезных уязвимостей в различных программах и устройствах. Совсем недавно мы писали о его предыдущем исследовании, в ходе которого была обнаружена уязвимость Zenbleed в процессорах AMD. Тогда Тавис говорил о развитии применения фаззинга для поиска аппаратных проблем.
Фаззинг — это метод, который подразумевает подачу случайной информации на ввод тестируемой информационной системы. Как правило, ее применяют для автоматизированного поиска уязвимостей в софте: создается специальная «оснастка», позволяющая взаимодействовать с программой и отслеживать ее состояние. Дальше происходят десятки и сотни тысяч тестов, в ходе которых можно обнаружить нестандартное поведение тестируемого кода.
В случае испытания процессоров все несколько сложнее. Мы должны генерировать случайные программы, которые при этом работают без собственных сбоев, и выполнять их на процессоре. Как в таком случае отделить штатное поведение процессора от аномального? Ведь далеко не всегда ошибка в процессе выполнения ПО приводит к сбою. Орманди предложил методику, в рамках которой одинаковый «случайный» код одновременно выполняется на разных процессорах. По идее, результат работы одной и той же программы должен быть одинаковый, а вот если результат отличается, то возможно это признак проблемы. Именно такой подход выявил проблему в процессорах Intel.
Посмотреть статью полностью
-
От KL FC Bot
Исследователи из американского Университета штата Мэриленд и китайского Университета Циньхуа опубликовали научную работу, в которой описан новый метод атаки по сторонним каналам (side-channel attack), использующий ранее неизвестную аппаратную уязвимость в процессорах Intel. Хотя уязвимость предположительно затрагивает и самые свежие процессоры этой компании, наиболее эффективно она позволяет атаковать более старые модели, подверженные также и уязвимости Meltdown. Данное исследование, возможно, представляло бы чисто научный интерес, если бы не одна особенность: кража секретной информации в ходе атаки происходит через изменение данных в регистре флагов.
Можно попроще?
Активное исследование аппаратных процессорных уязвимостей, связанных со спекулятивным выполнением инструкций, ведется уже больше пяти лет. Максимально упрощая, все предложенные атаки можно описать следующим образом: мы каким-то образом заставляем процессор считать данные, к которым не имеем доступа. Представьте себе такой теоретический сценарий. У программы атакующего нет доступа к ключу шифрования, с помощью которого защищены важные данные. Если дать процессору инструкцию «считай ключ шифрования по такому-то адресу», она не будет выполнена. На помощь приходит технология спекулятивного выполнения инструкций: одна из важных функций современных процессоров, используемая почти три десятилетия. Для ускорения работы процессор не ждет окончания выполнения одной инструкции, а параллельно выполняет следующую.
Если первая инструкция проверяет права доступа к секретной информации, она, по идее, не должна позволить выполнять следующую команду на считывание этой информации. Но уже поздно: следующая инструкция выполнена спекулятивно. Важный момент: мы все еще не имеем доступа к этим данным, но процессор уже имеет. В известных уязвимостях типа Spectre данные временно загружаются в кэш-память процессора, считать информацию из которой просто так нельзя. Но можно делать это по сторонним каналам. Например: много раз выполнять какую-то инструкцию, время обработки которой меняется в зависимости от данных в кэш-памяти. Если повторить такую операцию много (тысяч!) раз, можно восстановить данные, просто наблюдая за тем, как быстро или медленно выполняется какая-то вроде бы безобидная команда.
Мы понимаем, что это так называемое «простое» описание уже звучит достаточно сложно. Новая работа еще сложнее: авторы решили не тратить время на подробное описание атаки. В целом она вся показана на этой схеме:
Схема атаки с выводом секретных данных через состояние регистра EFLAGS. Источник
Давайте попробуем разобраться. EFLAGS — это регистр флагов в процессоре Intel, который отслеживает состояние работы процессора. В нем может сохраняться результат вычислений, в частности если он равен нулю (так называемый Zero Flag или ZF). Дальше происходит магия: представьте, что ваш коллега загадал число от 1 до 10. Вы по очереди называете ему все числа от 1 до 10, но он не хочет делиться с вами правильным ответом и на каждый из вариантов говорит слово «хризантема». Но когда вы называете правильное число, он говорит «хризантема» чуть позже, чем в других случаях!
Примерно так и происходит в процессе новой атаки: мы проводим множество вычислений с секретными данными. Все эти вычисления выполняются спекулятивно. Результат записывается в флаг ZF (равен или не равен нулю). Мы даже не можем напрямую узнать состояние этого флага. Но затем мы выполняем, в общем, довольно бесполезную команду из состава инструкций JCC (а именно команду JZ: «переход, если результат равен нулю»), которая выполняется чуть медленнее, если мы угадали! Именно это промедление, задержка с ответом, которую можно измерить, и является уязвимостью.
View the full article
-
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти