Является ли малина Pi уязвимой для эксплойта Spectre или Meltdown?

Обнаружены два новых серьезных недостатка безопасности, Спектр и Meltdown .

Является ли малина Pi уязвимой для Spectre и /или Meltdown?

56 голосов | спросил Janghou 4 Jpm1000000pmThu, 04 Jan 2018 12:36:49 +030018 2018, 12:36:49

3 ответа


59

Согласно ARM , процессорные ядра Raspberry Pi (для всех версий) не .

  

Большинство процессоров Arm не подвержены влиянию какого-либо изменения этого механизма спекуляции бокового канала. Ниже приводится подробный список небольшого подмножества процессоров, спроектированных с помощью Arm, которые могут быть восприимчивыми. [см. ссылку для таблицы]

Процессорные ядра, используемые Pis:

Ни один из вышеперечисленных ядер не указан как уязвимый для любой версии атаки (они вообще не указаны в списке, потому что не существует известной уязвимости для этих атак).

Обратите внимание, что Варианты 1 и 2 (CVE-2017-5753 и CVE-2017-5715) известны как Spectre и Варианты 3 (CVE-2017-5754) и 3a (связанная атака, исследуемая ARM) называются Meltdown . Поэтому в настоящее время никакие устройства малины Pi не считаются уязвимыми для Spectre или Meltdown.

ответил Aurora0001 4 Jpm1000000pmThu, 04 Jan 2018 14:13:25 +030018 2018, 14:13:25
22

Pi (все версии) не уязвимы.

Призрак и Meltdown оба требуют выполнения вне порядка. Cortex-A7 , используемый в ранних версиях Pi 2 и Cortex A53 , используемый в более поздних версиях Pi 2, а Pi 3 - строго упорядоченная архитектура. ARM11 , используемый в Pi 1, частично не соответствует порядку, но не так, позволяет Spectre или Meltdown работать.

ARM подтверждает это : только очень ограниченное подмножество процессоров ARM имеет аппаратное обеспечение, которое делает они уязвимы для Spectre, еще более ограниченное подмножество уязвимо для Meltdown, и считается, что все они позволяют смягчить угрозу.

ответил Mark 5 Jam1000000amFri, 05 Jan 2018 00:10:27 +030018 2018, 00:10:27
10

Я хотел бы предложить мне другое занятие.

О Meltdown, это очень специфическая уязвимость в некоторых процессорах, поэтому, если ARM говорит, что процессор в малине Pi не уязвим, тогда ему, вероятно, можно доверять.

Однако Spectre является более общей уязвимостью. Пока что были продемонстрированы только два варианта, но я уверен, что есть больше вариантов. Ошибка в ЦП заключается в том, что состояние предсказателя ветвления не сбрасывается при выполнении переключателя контекста, и это состояние предсказателя ветвления индексируется младшими битами адреса команды ветвления и не помечено вообще. Таким образом, у вас могут быть две ветви, разделяющие одно и то же состояние прогноза ветвления, даже через границы процесса.

Я очень уверен, что процессор во всех моделях Raspberry Pi похож на практически все другие процессоры там, в которых предсказатель ветвления представляет собой просто большой массив 2-битных насыщающих счетчиков (сильно принятых, слабо принятых, слабо не взято, сильно не принято). Индекс этого массива представляет собой младшие биты адреса команды ветвления, и нет тега, и это состояние предиктора никогда не сбрасывается.

Теперь, если две ветви разделяют одно и то же состояние предсказателя, вы можете измерить, каким образом определенная ветвь была взята в самом недавнем прошлом. Таким образом, утечка информации Spectre существует! Если вы можете надежно запускать браузер для выполнения какого-либо разветвления кода на вашем пароле с помощью JavaScript и определить, по каким направлениям у вас нет филиалов, вы действительно можете извлечь пароль. Теперь это экстремальный пример: никто не может подключиться к каждому биту вашего пароля таким образом, который может быть запущен из JavaScript, но это демонстрирует проблему.

Не верьте всему, что говорит ARM. Вероятно, ARM означает, что разработанные Google разработчики не работают на этих процессорах ARM. Это не значит, что они будут неуязвимы для Призрака. Может быть использован какой-то другой эксплойт.

Смотрите этот вопрос: https: //безопасность .stackexchange.com /questions /176678 /is-branch-predictor-flush-instruction-a-complete-specter-fix и понять последствия его ответа. Вредоносный код JavaScript, запущенный в вашем браузере, может из-за того, что Specter измеряет, какие пути вступили другие ветви процесса. Даже инструкция флеша предсказания ветвления не устранит эту проблему изгоев JavaScript, если только браузер не будет активно сбрасывать предиктор ветвления перед запуском ненадежного кода.

Спектр будет с нами очень и очень долгое время, поскольку предсказатель ветвления использует 14 бит, поскольку индекс не помечен остальными 18 битами 32-разрядного адресного пространства, потому что тогда потребуется 20 бит (2 бит насыщающего счетчика, тег 18 бит) вместо двух битов. Это умножило бы размер предсказателя ветви на десять! Я ожидаю, что производители процессоров добавят инструкцию флеш-предсказателя ветвления, которая работает даже в пространстве пользователя без особых привилегий, а ядро ​​будет использовать его при переключении контекста и пространстве пользователя, чтобы использовать его при запуске ненадежного кода JIT. Это устранит большинство проблем Спектра на практике, но теоретически не все из них.

ответил juhist 5 Jpm1000000pmFri, 05 Jan 2018 18:48:26 +030018 2018, 18:48:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132