Уязвимости Spectre и Meltdown

Возможности проведения атаки, характерные особенности некоторых реализаций Spectre и Meltdown во время спекулятивного исполнения доступа к памяти. Механизмы процессора, явившиеся причиной уязвимости. Инструменты для проверки уязвимости браузера.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 03.05.2019
Размер файла 210,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

УЯЗВИМОСТИ SPECTRE И MELTDOWN

З.Д. Смирнова

Белорусский государственный университет

информатики и радиоэлектроники, Минск

В январе этого года разработчики Google Project Zero опубликовали подробный отчет о двух уязвимостях, получивших имена Meltdown и Spectre. Процессоры Intel и ARM64 подвержены обеим проблемам, процессоры AMD только второй уязвимости. Кроме того, уязвимости распространяются на IBM System Z, POWER8 и POWER9. Производителям процессоров сообщили о наличии проблем ещё 1 июня 2017 года. Чтобы продемонстрировать возможные атаки, подготовлены рабочие прототипы эксплойтов, в том числе реализованные на JavaScript и работающие в браузере.

Уязвимость Meltdown (CVE-2017-5754) позволяет приложению читать содержимое любой области памяти компьютера, в том числе память ядра. Она также позволяет получить доступ к памяти приложений других людей, пользующихся системами паравиртуализации (проблема не появляется в режиме полной виртуализации (HVM)) и контейнерной изоляции (включая Docker, LXC, OpenVZ), например, пользователь одной виртуальной машины может получить содержимое системной памяти хоста и других виртуальных машин. Уязвимости касаются процессоров Intel (практически все процессоры, выпущенные с 1995 года, за исключением Intel Itanium и Intel Atom, выпущенные до 2013 года) и ARM64 (Cortex-A15 / A57 / A72 / A75).

Уязвимость Spectre (CVE-2017-5753, CVE-2017-5715) направлена на механизм, обеспечивающий изоляцию памяти приложения, и позволяет злоумышленнику перехватывать данные другого приложения (иключительно приложения, но не памяти ядра). Эта атака может быть осуществлена на процессоры Intel, AMD и ARM64 (Cortex-R7 / R8, Cortex-A8 / A9 / A15 / A17 / A57 / A72 / A73 / A73 / A75). По сравнению с Meltdown эту уязвимость гораздо сложнее использовать, но также ее гораздо сложнее исправить. Примеры использование прототипа Spectre уже можно найти в общедоступных источниках [1].

Возможность проведения атаки создается тремя взаимосвязанными механизмами:

- Глубокое спекулятивное выполнение операций, в том числе чтение данных из оперативно-запоминающего устройства (ОЗУ) без проверки прав доступа процесса к читаемым областям.

- Отсутствие очистки кеша процессора от результатов ошибочного спекулятивного исполнения (такая очистка, вероятно, снизит скорость работы процессора).

- Ядро операционной системы хранит свои данные в адресном пространстве процесса, защищая их от несанкционированного доступа на уровне привилегий. Эта технология позволяет быстро выполнять системные вызовы. При таких вызовах уровень привилегий увеличивается, и при возврате, уровень привилегий снова уменьшается, что не требует перезагрузки таблицы дескриптора страницы [2].

Современные высокопроизводительные микропроцессоры могут выполнять новый код, не дожидаясь завершения предыдущих действий. Например, если инструкция перехода ожидает получения данных из ОЗУ для принятия решения, бездействующий процессор может начать выполнение одного из направлений ветвления, в надежде получить готовый результат вычисления к тому времени, когда результат ветвления станет известен. Этот метод называется спекулятивным исполнением. В случае успешного угадывания спекулятивный исполняемый код изменяет видимые значения регистров, и выполнение продолжится. Если ветка выполнения предположена неверно, команды из нее не изменяют видимое состояние процессора, и фактическое выполнение будет возвращено в точку ветвления [3].

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

Подготовленный прототип эксплойта позволяет читать память ядра со скоростью 2000 байт в секунду на процессорах Intel архитектуры Xeon Haswell. Уже есть несколько подробных примеров использования спекулятивного выполнения процессора при помощи JavaScript (рисунок 1).

уязвимость spectre meltdown

Рисунок 1 - Пример эксплойта

Ожидается, что уязвимость затронет крупнейших в мире поставщиков облачных услуг, в частности Amazon Web Services (AWS), Google Cloud Platform, Microsoft Azure. Поставщики облачных услуг позволяют различным пользователям запускать свои приложения на общих физических серверах. Поскольку программы могут обрабатывать конфиденциальные пользовательские данные, меры защиты и изоляции, предоставляемые процессором, используются для предотвращения несанкционированного доступа к привилегированной памяти (используемой ядром операционной системы (ОС)). Атака Meltdown при использовании в системах, не реализующих защиту программного обеспечения (патчей), позволяет обойти некоторые меры по изоляции памяти и получить доступ к чтению из памяти операционной системы [3].

К концу года ожидается, что компания Intel выпустит процессоры, не имеющие такой уязвимости, однако пока не разглашается информация, в какой именно механизм процессора, явившийся причиной уязвимости, будут внесены изменения.

Существует несколько способов борьбы с описанными выше атаками. Эти способы защиты можно разделить по категориям в зависимости от того механизма процессора, на который они направлены.

Наиболее основательный способ борьбы с атакой был предложен разработчиками ядра Linux. Они ввели набор исправлений, называемых изоляцией страниц Kernel (KPTI, рабочие имена KAISER, UASS, FUCKWIT), которые вошли в версию ядра 4.15 в начале 2018 года и были перенесены в версию ядра 4.14.11. Обновление для блокировки Meltdown уже выпущено для RHEL, CentOS и Fedora. Ядро macOS получил исправление в версии 10.13.2. Суть этого способа борьбы заключается в том, что таблица страниц пользовательских процессов не отображает страницы памяти ядра ОС (за исключением небольшого количества служебных областей памяти ядра). В то же время вызовы с изменением уровня привилегий (в частности, системные вызовы) несколько замедляются, так как они должны переключаться на другую таблицу страниц, которая описывает всю память ядра ОС [2].

Google опубликовала информацию о результатах внедрения методов KPTI и retpoline для блокировки уязвимостей Meltdown и Spectre на своих серверах Linux, включая те, что обслуживают поисковые системы, Gmail, YouTube и облачную платформу Google. Влияние обоих патчей на производительность системы при реальной нагрузке можно считать незначительным, несмотря на то, что некоторые исследователи отметили большую степень снижения производительности во время тестов. Использование патча является обязательным, так как пользователи ежедневно запускают внешний код на своих компьютерах, посещая веб-сайты с JavaScript, тем самым подвергая себя риску атаки с использованием их браузера. Разработчики Google Chrome работают над тем, чтобы интегрировать защиту от атаки через JavaScript непосредственно в браузер.

Компания Mozilla пошла несколько иным путём и предложила более поверхностный способ борьбы с осуществлением атаки, направленный на затруднение вычисления времени доступа в кеш процессора, где хранятся результаты спекулятивного исполнения. В Firеfox 57 были внесены изменения, ограничивающие точность таймера (performance.now) до 20 мкс и отключающие SharedArrayBuffer.

Наконец, каждый пользователь может проверить уязвимость своего браузера, при помощи инструмента Spectre browser vulnerability check. Для браузеров на основе Chrome, таких как Opera и Google Chrome, имеется возможность усилить безопасность с помощью функции Site Isolation. Она позволяет обрабатывать содержимое каждого сайта или приложения, открытого в браузере, отдельно друг от друга [4].

Список литературы

1. Раскрыты подробности двух атак на процессоры Intel, AMD и ARM64 // OpenNET [Электронный ресурс]. - 2018. - Режим доступа: https://www.opennet.ru/opennews/art.shtml?num=47856 - Дата доступа: 13.03.2018.

2. Аппаратная уязвимость - Meltdown // АйТиМед. [Электронный ресурс]. - 2018. - Режим доступа: http://itmed.webrift.ru/2018/02/13/meltdown - Дата доступа: 13.03.2018.

3. Meltdown -- аппаратная CVE-2017-5754 // Andigu.ru [Электронный ресурс]. - 2018. - Режим доступа: http://www.andigu.ru/ligoe-mned96nic/Meltdown - Дата доступа: 13.03.2018.

4. Exploiting Speculative Execution (Meltdown/Spectre) via JavaScript // React, etc. Tech Stack [Электронный ресурс]. - 2018. - Режим доступа: https://react-etc.net/entry/exploiting-speculative-execution-meltdown-spectre-via-javascript. - Дата доступа: 13.03.2018.

Размещено на Allbest.ru

...

Подобные документы

  • Сферы применения и возможности WordPress - CMS с открытым исходным кодом, распространяемой под GNU GPL. Уязвимости WordPress в плагинах Emaily, FeedList, WP Auctions и Old Post Spinner. Межсайтовый скриптинг WordPress в плагине Page Flip Image Gallery.

    реферат [4,1 M], добавлен 12.07.2012

  • Анализ степени уязвимости объекта информационной деятельности. Характеристика опасных каналов утечки информации на предприятии ООО "FitMax", методы и средства ее защиты. Модель нарушителей. Расчет степени защищенности объекта и материального ущерба.

    дипломная работа [4,1 M], добавлен 14.02.2014

  • Исследование уязвимостей алгоритмов аутентификации абонентов в сети GSM. Определение необходимого количества материальных, интеллектуальных и временных ресурсов для осуществления атак, эксплуатирующих эти уязвимости, рекомендации по противодействию им.

    дипломная работа [807,8 K], добавлен 28.08.2014

  • Описание основных уязвимостей технологии передачи информации Wi-Fi: атаки, угрозы криптозащиты, анонимность. Принципы и методы обеспечения безопасности беспроводных сетей. Технологии целостности и конфиденциальности передаваемых через сеть данных.

    контрольная работа [539,3 K], добавлен 25.12.2014

  • Анализ рынка облачных вычислений и средств для обеспечения безопасности в них. Распространение облачных вычислений, негарантированный уровень безопасности обрабатываемой информации как их основная проблема. Расследование инцидентов и криминалистика.

    курсовая работа [4,3 M], добавлен 26.02.2015

  • Анализ модели политики безопасности. Программы сетевого общения (Instant Messengers и чаты). Удаление информации без возможности восстановления. Устройства хранения, файловые системы, уязвимости. Пример защиты ПК методом фильтрации сетевого трафика.

    курсовая работа [97,2 K], добавлен 17.12.2015

  • Защита беспроводных соединений с использованием протоколов WPA, WEP. Контроль за аутентификацией пользователей и кодированием сетевого трафика. Глушение клиентской станции. Угрозы криптозащиты. Анонимность атак. Протоколы безопасности беспроводных сетей.

    контрольная работа [38,3 K], добавлен 23.01.2014

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

    курсовая работа [301,9 K], добавлен 29.10.2017

  • Технические решения по локальным вычислительным сетям. Выбор сетевых коммуникационных устройств, оконечного оборудования. Калькуляция затрат на оборудование и комплектующие ЛВС. Определение форм проявления уязвимости и направлений защиты информации.

    курсовая работа [1,4 M], добавлен 18.01.2015

  • Общие сведения о безопасности, угрозы и уязвимости MS SQL Server. Предопределенные роли базы данных. Изучение компонента резервного копирования и восстановления. Иерархия средств шифрования. Служба хранилищ больших двоичных объектов Windows Azure.

    курсовая работа [425,2 K], добавлен 03.03.2014

  • Проект комплексной системы защиты информации на примере Администрации г. Миасса: объект защиты; модель бизнес-процессов с целью выявления конфиденциальной информации, "Перечень сведений конфиденциального характера", объекты защиты, угрозы, уязвимости.

    курсовая работа [2,6 M], добавлен 16.04.2008

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

    реферат [18,6 K], добавлен 05.04.2010

  • Анализ уязвимостей в многопоточных программах, написанных на языке С++. Создание программного обеспечения, выполняющего анализ многопоточных программ, написанных на С++, на предмет наличия в них ошибок синхронизации типа "гонки" и "заброшенные замки".

    курсовая работа [755,9 K], добавлен 20.09.2016

  • Классификация сетевых атак по уровню модели OSI, по типу, по местоположению злоумышленника и атакуемого объекта. Проблема безопасности IP-сетей. Угрозы и уязвимости беспроводных сетей. Классификация систем обнаружения атак IDS. Концепция XSpider.

    курсовая работа [508,3 K], добавлен 04.11.2014

  • Основные понятия дестабилизирующего воздействия на защищаемую информацию. Причины, вызывающие дестабилизирующее воздействие на информацию со стороны людей. Методы и модели оценки уязвимости информации. Факторы, влияющие на уровень защиты информации.

    реферат [412,2 K], добавлен 19.06.2014

  • Типовые угрозы и уязвимости для сервера резервного копирования сетевой файловой системы. Организационные меры по защите сервера: средства криптографической защиты и контроля целостности; антивирусное программное обеспечение; встроенные средства защиты ОС.

    курсовая работа [489,6 K], добавлен 28.08.2012

  • Последовательность загрузки значений регистров базовых адресов и регистров прав доступа для системного режима. Методы и средства защиты памяти, преобразования логического адреса в физический, реализованных в УУП процессора. Режим работы процессора.

    лабораторная работа [1,5 M], добавлен 23.07.2012

  • Ознакомление с языком ассемблера процессора Neuro Matrix NM 6403, его возможности, особенности работы, содержание операций в регистрах, архитектура. Разработка программы для заполнения блока памяти, компилирование и отладка файла, фиксирование его адреса.

    лабораторная работа [48,2 K], добавлен 18.10.2012

  • Обеспечение непосредственной связи контроллера прямого доступа к памяти (ПДП) и памяти микроЭВМ. Совместное использование шин системного интерфейса процессором и контроллером. Последовательность и алгоритм программирования контроллера прямого доступа.

    реферат [122,6 K], добавлен 13.11.2009

  • Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.

    реферат [28,1 K], добавлен 13.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.