Аппаратная уязвимость — Spectre

Аппаратная уязвимость, ошибка в большинстве современных процессоров, имеющих спекулятивное выполнение команд (англ.)русск. и развитое предсказание ветвлений, позволяющая проводить чтение данных через сторонний канал в виде общей иерархии кэш-памяти. Затрагивает большинство современных микропроцессоров, в частности, архитектур х86/x86_64 (Intel и AMD) и некоторые процессорные ядра ARM[1]. Уязвимость потенциально позволяет локальным приложениям (локальному атакующему, при запуске специальной программы) получить доступ к содержимому виртуальной памяти текущего приложения или других программ[2][3][4]. Угрозе присвоены два CVE-идентификатора: CVE-2017-5753 и CVE-2017-5715.

Ошибка Spectre позволяет злонамеренным пользовательским приложениям, работающим на данном компьютере, получить доступ на чтение к произвольным местам компьютерной памяти (англ.)русск., в том числе к памяти, используемой другими приложениями (то есть нарушить изоляцию памяти между программами). Атаке Spectre подвержены большинство компьютерных систем, использующих высокопроизводительные микропроцессоры, в том числе персональные компьютеры, серверы, ноутбуки и ряд мобильных устройств[7]. В частности, атака Spectre была продемонстрирована на процессорах производства корпораций Intel, AMD и на чипах, использующих процессорные ядра ARM.

Имеется вариант атаки Spectre, использующей JavaScript программы для получения доступа к памяти браузеров (чтение данных других сайтов или данных, сохраненных в браузере).[8]

В настоящее время не существует готовых программных технологий защиты от атаки Spectre, хотя ведется определённая работа[10]. По данным веб-сайта, посвященному продвижению атаки, «Это не так легко исправить, и она (ошибка) будет преследовать нас в течение длительного времени.»

Программное исправление может включать в себя перекомпиляцию ПО при помощи новых компиляторов с заменой уязвимых последовательностей машинного кода (т. н. механизм «retpoline», реализован в GCC и Clang/LLVM)[11].

Производителями процессоров предложено несколько вариантов исправлений, некоторые из которых требуют обновлений микрокода процессора, другие — добавления новых инструкций в будущие процессоры. Исправления должны сочетаться с перекомпиляцией ПО[12].

В ранних версиях уведомления CVE по Spectre организация CERT предлагала в качестве борьбы с уязвимостью замену процессоров: «Уязвимость вызвана выборами при проектировании микропроцессоров. Полное удаление уязвимости требует замены уязвимых микропроцессоров.» Однако в последующих текстах этот вариант исправления более не упоминался[13].

0 Comments

Leave a Reply

You must be logged in to post a comment.