0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

FAQ по Meltdown и Spectre для чайников: обновитесь и молитесь!

Содержание

Как решить замедление ПК после патчей от Meltdown и Spectre

П атчи Windows для Meltdown и Spectre замедлят Ваш компьютер. На новом ПК под управлением Windows 10 Вы, вероятно, не заметите этого. Но на ПК с более старым процессором, особенно если он работает под управлением Windows 7 или 8, Вы можете заметить заметное замедление. Вот как убедиться, что Ваш компьютер работает быстро после его защиты.

Независимо от того, что Вы делаете, не избегайте установки патчей. Атаки Meltdown и Spectre плохие, очень плохие. Windows, MacOS, Linux, Android, iOS и Chrome OS все выпустили патчи, чтобы исправить проблему. Intel также пообещала, что они будут работать с компаниями-разработчиками программного обеспечения для снижения влияния производительности с течением времени. Но это большие дыры в безопасности, которые Вы должны исправлять.

Это не значит, что Вам приходится иметь дело с замедлением.

Обновление до Windows 10 (если Вы используете Windows 7 или 8)

Патч работает лучше, если Вы используете Windows 10. Как полагает Microsoft, на компьютерах с «2015 года» с Haswell или более старым процессором «они ожидают, что некоторые пользователи заметят снижение производительность системы «. Но с Windows 7 или 8 на прежнем старом оборудовании они «ожидают, что большинство пользователей заметят снижение производительности системы».

Другими словами, на том же аппаратном обеспечении Microsoft заявляет, что большинство людей заметят замедление в Windows 7 или 8, в то время как большинство людей не заметят замедление в Windows 10. Поскольку Microsoft объясняет: «Старые версии Windows имеют большее влияние на производительность, поскольку Windows 7 и Windows 8 имеет больше переходов с ядром пользователя из-за устаревших решений по дизайну, таких как рендеринг шрифтов, происходящих в ядре». Windows 10 — это гораздо более новое программное обеспечение и имеет множество оптимизаций, которые старые Windows 7 и 8 просто не имеют.

Microsoft говорит о процессорах Intel, но при использовании процессоров AMD также может наблюдаться некоторое замедление. Исправление Meltdown не относится к системам AMD, но исправление Spectre относится. Мы еще не видели тестов производительности от систем AMD, поэтому мы не знаем, как изменилась производительность.

Вместо того, чтобы избегать или отключать патч, просто обновите систему до Windows 10.

Обновите свое оборудование

Современные ПК, то есть «компьютеры с 2016 года с Skylake, Kabylake или с более новыми процессорами», лучше работают с патчем, чем старые ПК. Фактически, Microsoft говорит, что «тесты показывают однозначное замедление, но мы не ожидаем, что большинство пользователей заметят изменения, потому что эти проценты отражаются в миллисекундах». Это потому, что у этих процессоров Intel есть идентификатор PCID (Process-Context Identifiers) которые помогают патчу работать лучше. Без этой функции больше работы должно выполняться в программном обеспечении, и это замедляет работу.

Если Вам интересно, имеет ли Ваша система функцию ускорения патча, мы рекомендуем загрузить и запустить инструмент InSpectre от Gibson Research Corporation. Он также расскажет Вам, защищен ли Ваш компьютер от Meltdown и Spectre или нет.

Если Вы видите «Performance: GOOD», у Вас есть современный ПК с соответствующими аппаратными функциями, и Вы не должны видеть заметного замедления. Если Вы этого не видите, у Вас более старый компьютер, и Вы можете увидеть некоторое отставание. (Хотя помните, что Вы можете значительно ускорить работу, обновившись до Windows 10, если Вы этого еще не сделали.)

Если Ваш компьютер не имеет подходящих аппаратных средств, и Вы чувствуете, что он работает медленно, единственный способ оставаться в безопасности и ускорить работу — это перейти на более новое оборудование. Современные процессоры видят гораздо меньший спад.

Отключите защиту в реестре Windows, если хотите

Windows позволяет отключить защиту от Meltdown и Spectre после установки патча, что делает Вашу систему уязвимой для этих опасных атак, но устраняет ограничение производительности, которое исходит от исправления.

ПРЕДУПРЕЖДЕНИЕ: Мы настоятельно рекомендуем не делать этого. Особенно, если Вы используете Windows 10 на современном оборудовании, Вы не должны замечать замедление. Даже если Вы используете Windows 10 с более старым процессором, замедление должно быть минимальным для большинства людей. И, если Вы чувствуете, что Ваша система Windows 7 или 8 заметно медленнее, самое лучшее, что Вы можете сделать, это перейти на Windows 10. Meltdown и Spectre — очень серьезные недостатки безопасности, которые потенциально могут быть использованы кодом, запущенным на веб-странице в Вашем веб-браузер. Вы не должны использовать уязвимую систему.

Тем не менее, Microsoft сделала эти настройки реестра доступными по какой-то причине. По их словам, замедление может быть плохо совместимо с приложениями ввода-вывода (IO) в системе Windows Server. В системах Windows Server Microsoft говорит: «Вы должны быть осторожным, чтобы оценить риск ненадежного кода для каждого экземпляра Windows Server и сбалансировать соотношение «безопасность и производительность» для Вашей среды». Другими словами, Вы можете отключить патч на некоторых серверных системах, если Вы уверены, что они не будут запускать ненадежный код. Имейте в виду, что даже код JavaScript, запущенный в веб-браузере или в коде, запущенном внутри виртуальной машины, может использовать эти ошибки. Обычные песочницы, которые ограничивают выполнение этого кода, не полностью защитят Ваш компьютер.

Вы можете отключить защиту Meltdown или Spectre с помощью инструмента InSpectre, о котором мы упоминали выше. Чтобы отключить защиту от Meltdown или Spectre, щелкните правой кнопкой мыши файл InSpectre.exe и выберите «Запуск от имени администратора». Затем Вы можете нажать на кнопки «Disable Meltdown Protection» и «Disable Spectre Protection» для включения или выключения защиты. Перезагрузите компьютер после внесения изменений. Если Вы повторно запустите инструмент InSpectre и прокрутите текст в поле, Вы увидите сообщение о том, что защита была отключена в реестре. Вы можете использовать те же кнопки для повторного включения защиты в будущем, если Вы передумаете.

Вы также можете отключить защиту в реестре самостоятельно, если хотите. Запустите команды в разделе «Чтобы отключить данное исправление» на этой странице поддержки Microsoft. Хотя инструкции для Windows Server, они также отключат исправление в других версиях Windows. Перезагрузите компьютер после изменения параметров реестра. Вы можете проверить, что исправление включено, запустив скрипт Get-SpeculationControlSettings PowerShell. Если Вы передумаете и захотите снова включить защиту в будущем, запустите инструкции в разделе «Чтобы включить исправление» на веб-странице Microsoft.

InSpectre или как отключить защиту от Meltdown и Spectre

В январе 2018-го года Google опубликовал сенсационные отчеты об уязвимостях Meltdown и Spectre, а разработчики процессоров и «операционок» бросились выпускать соответствующие патчи. Эффект был обратный, патчи приводили к перегрузкам ПК и потере данных, однако благодаря им появились утилиты, блокирующие сии «безобразия». Об одной из таких программ, InSpectre, я расскажу прямо сейчас.

Уязвимости Meltdown и Spectre: что это ?

Из исследований Янна Хорна (Jann Horn) мир узнал о Meltdown и Spectre, которые могут использоваться для кражи логинов и паролей, переписки в мессенджерах, личных фото и документов. Уязвимостям подвержены не только процессоры (чипсеты) Intel, AMD, ARM и популярные ОС, но и провайдеры облачных услуг и разрабатываемое ПО. В категорию «ущербных» попали все процессоры, выпущенные с 1995-го по 2013-ый год, кроме Intel Itanium и Atom.

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

Итак, уязвимость Meltdown связана с особенностями внеочередного исполнения. Благодаря ему злоумышленник получает доступ к изолированной части процессорной памяти и извлекает из кэша шифрованную информацию и пароли. В свою очередь, Spectre затрагивает алгоритм спекулятивного исполнения и заставляет ЦП прогнозировать и исполнять «левые» команды, делая кэш доступным для чтения. Причем атаки Meltdown и Spectre могут использоваться одновременно, а обнаружить кражу данных практически невозможно.

После получения отчетов Хорна большинство разработчиков ОС и производителей процессоров выпустили патчи, «латающие дыры» в защите. Однако жалобы пользователей на зависания и спад производительности компьютеров приостановили массовый апдейтинг. Более того, Microsoft выложил «заплатку» KB4078130 для Windows 7 / 8.1 / 10, отключающую проблемный патч Intel, который поставлялся с одним из обновлений «операционки». По свидетельству TechCrunch.com, уменьшение производительности десктопов (ноутбуков) колеблется в пределах 5-30%, и больше всего повезло владельцам последних моделей процессоров.

Как пользоваться утилитой InSpectre

Портативная софтина создана американцем Стивом Гибсоном (Steve Gibson), дабы прояснить текущую ситуацию в системе. Она показывает информацию о защите от Meltdown и Spectre и, в случае необходимости, отключает ее через реестр Windows. Заинтересованные могут протестировать производительность ПК «до» и «после» силами AIDA64.

Читать еще:  Shadow of the Beast — чудовище без красавицы. Рецензия

Как пользоваться InSpectre? Все просто: скачав героиню обзора по ссылке ниже, с правами администратора запустим ее. Если патчи безопасности установлены, в окне вы увидите «System is Meltdown protected: YES» и (или) «System is Spectre protected: YES». Для отключения защиты от уязвимостей нажмите «Disable Meltdown Protection» («Disable Spectre Protection«), засим перезагрузите устройство. Повторно открытое приложение подтвердит, что «System is Meltdown (Spectre) protected: NO!«, а «Performance» («Производительность») не «SLOWER» («Низкая»), а «GOOD» («Хорошая»).

И о приятном бонусе, появившемся в свежей 8-ой версии InSpectre. В начале апреля Intel выложил в открытый доступ список процессоров , где определено, какие CPU (ЦП) имеют обновления прошивки, а какие их никогда не получат. Сверившись с документом, автор узнал: его ноутбучный «проц» – семейства Core i7 Kaby Lake и защищающий от Spectre патч присутствует (см. идентификатор «CPUID: 906E9»).

Бесплатно скачать InSpectre с официального сайта здесь .

Important!

Гендиректор Intel Брайан Кржанич (Brian Krzanich) пообещал выпустить чипы с защитой от Spectre и Meltdown до конца текущего года.

Дмитрий dmitry_spb Евдокимов

FAQ по Meltdown и Spectre для чайников: обновитесь и молитесь!

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

⇡#Коротко о главном

Да, Meltdown и Spectre — это действительно серьёзные аппаратные уязвимости. Нет, стопроцентной защиты от них нет. Лучше всего установить обновления для всех-всех программ, прошивок, ОС и драйверов и надеяться, что вас эти уязвимости не коснутся. В общем, обновитесь и молитесь!

⇡#Что такое Meltdown и Spectre?

Meltdown и Spectre или, говоря «по-научному», CVE-2017-5754, CVE-2017-5753 и CVE-2017-5715, — это легко запоминающиеся имена близких по своим особенностям аппаратных (подчеркнём этот момент) уязвимостей в очень и очень многих современных процессорах. Да, это действительно настолько серьёзные уязвимости, что для них пришлось придумать собственные «бренды» для облегчения продвижения и распространения информации о них. На текущий момент это, пожалуй, самые серьёзные проблемы в сфере информационных технологий если не за всю историю IT, то уж в XXI веке точно.

⇡#Что подвержено этим уязвимостям?

Исследователи заявляют, что уязвимости в том или ином виде присутствуют во многих процессорах, выпущенных с 1995 года. Необязательно все сразу, но от этого не легче. В частности проблемы имеются у продуктов AMD, ARM, Intel и IBM. Косвенно затронуты и продукты других компаний, например NVIDIA. Исключением являются процессоры Intel Itanium (с ними вы вообще вряд ли когда-либо сталкивались) и старые версии Intel Atom (до 2013 года), а также процессоры «Байкал», « Эльбрус » , MIPS, RISC-V, SPARC. Дело несколько осложняет тот факт, что часть компаний (ARM, например) сами не производят эти процессоры, а продают этакие наборы для их создания другим фирмам, которые могут добавлять или убирать компоненты и блоки по своему желанию. Ну и даже если компания сама производит процессоры, то у неё вполне могут быть различающиеся разновидности одного и того же продукта, часть из которых сделана, к примеру, по спецзаказу.

⇡#Какие устройства в опасности?

Неспециалисту трудно сказать, какие именно устройства уязвимы, так что лучше всего на всякий случай подозревать их все. А вообще, потенциально уязвимы почти все компьютеры, ноутбуки (и их потомки нетбуки, хромбуки, ультрабуки и всякие другие «буки»), планшеты, смартфоны, NAS или DAS, ТВ-приставки и даже современные smart-телевизоры, а также серверы и куча другого оборудования. В общем, уязвимой может оказаться почти вся «умная» техника, которая всё больше нас окружает.

⇡#В чём суть этих уязвимостей?

Если не вдаваться глубоко в технические подробности, то эти уязвимости позволяют одним программам без разрешения и абсолютно незаметно для всех красть информацию у других программ. В случае Meltdown речь идёт о краже данных аж у самого ядра операционной системы, самого защищённого программного компонента, куда никто по идее вторгаться не имеет права. Но так как уязвимости именно что аппаратные, сделать это возможно. В случае Spectre всё на первый взгляд проще, так как дело касается только общения программ между собой, а не с ядром ОС. Но на практике именно Spectre сейчас наиболее опасны, потому что противодействовать им намного сложнее, чем Meltdown.

⇡#Кто виноват?

Все в целом и никто в частности. Все — потому что всем же хочется побольше производительности, и прямо сейчас. Никто — потому что механизм, в реализации которого и нашли уязвимости, является логичным продолжением развития мирового процессоростроения. Благодаря ему (но не только) современные процессоры столь быстры. При этом опасения, что в конкретных воплощениях этой идеи могут быть проблемы, высказывались очень и очень давно. Однако до прошлого года все они были мысленными экспериментами в духе «А что если… Чисто гипотетически можно представить, что… Но вряд ли это можно реализовать не в лабораторных условиях…». Это как головоломка или, скорее, математическая задача, которая с виду очень сложная и даже немного скучная, но для которой есть очень простое и неочевидное решение, после объявления которого все сразу хватаются за голову и причитают: «Как же мы раньше-то сами не догадались?»

⇡#Но спецслужбы-то/хакеры/разработчики/рептилоиды (нужное подчеркнуть) наверняка всё знали и скрывали?

Однозначного ответа на это нет. Даже если напрямую спросить их, то ответ будет стандартный: «Мы не можем ни подтвердить, ни опровергнуть эту информацию». Хотя некоторые божились, что ни сном ни духом. Однако в данном случае, с учетом почтенного по меркам IT возраста уязвимости, вряд ли кто-то действительно осознанно эксплуатировал её ранее. Некоммерческие организации, как правило, не очень хорошо следят за своими секретами, так что за столько лет информация наверняка бы утекла. Разработчики же давно бы уже втихую всё исправили, стараясь избегать огласки.

⇡#Чем опасны эти уязвимости?

Тем, что потенциально могут быть украдены ваши важные данные: пароли, банковская информация, личные данные и так далее. За последний месяц компании, занимающиеся информационной безопасностью, отметили резкий рост числа образцов вредоносных приложений, которые пытаются использовать Meltdown и Spectre. Счёт идёт на сотни! Более того, пользователю даже необязательно что-то скачивать и/или устанавливать — есть варианты атак, которые работают прямо в браузере, то есть достаточно зайти на веб-сайт. Даже на знакомых сайтах могут оказаться вредоносные блоки (рекламные, например). К тому же сейчас есть много приложений, которые мимикрируют под настоящие программы, но на самом деле тоже работают в специально созданном браузере. Так что установить защиту от Meltdown и Spectre всё же стоит, но решать вам.

⇡#Как узнать, есть ли эти уязвимости на моём устройстве?

Неполный список уязвимых процессоров можно посмотреть здесь (там 7 страниц). Обратите внимание, что он постоянно обновляется и там представлены только модели, выпущенные после начала 2000-х. Для определения процессора на устройстве можно использовать утилиту CPU-Z (для Windows и Android). Если у вас Windows, то можно поступить проще: скачать и запустить утилиту InSpectre. Она почти мгновенно протестирует систему и скажет, есть ли уязвимости, а также сообщит о возможном снижении производительности (об этом позже). YES означает, что проблем нет. NO! означает, что проблема есть.

Защита от Meltdown есть, от Spectre нет. Производительность в норме

Защита от Meltdown есть, от Spectre нет. Производительность может быть пониженной

Защита от Meltdown и Spectre есть. Производительность в норме

Заметьте, что полноценной защиты от Spectre для всех-всех устройств пока нет. Но можно проверить ещё один важный компонент — веб-браузер. Для этого надо зайти на специальный веб-сайт и нажать кнопку Click to Check. Если ниже появится надпись Your browser is NOT VULNERABLE to Spectre , то, скорее всего, ваш браузер защищён от Spectre, но это не стопроцентный результат. А вот если результат is VULNERABLE , то уязвимость совершенно точно есть. Этой проверке надо подвергнуть все браузеры на устройстве, даже если каким-то из них вы не пользуетесь.

Проблем со Spectre в браузере нет.

⇡#Как защититься от Meltdown и Spectre в Linux, iOS и Mac OS, Android?

Пользователям продукции Apple повезло больше всего — для обеспечения безопасности им надо обновить операционную систему на всех устройствах до macOS 10.13.2, iOS 11.2 и tvOS 11.2 (или старше), а также обновить Safari как минимум до версии 11.0.2. Увы, старые устройства, которые не получили обновления своих ОС до этих версий, так и останутся уязвимыми. Следуйте инструкциям Apple.

С Android ситуация гораздо печальнее. Исправления для операционной системы выпускают производители устройств. А они и так-то далеко не всегда обновляют ОС на аппаратах вовремя, а уж патчи для устройств старше пары лет появляются совсем редко. Так что они тоже останутся уязвимыми. Проверить наличие обновлений можно, как правило, в настройках, в разделе About: «Об устройстве» или «О телефоне/планшете». Иногда имеется и отдельная встроенная программа, которая называется «Обновление ОС» или как-нибудь ещё в том же духе.

Если же вы пользуетесь Linux, то наверняка и так знаете, что надо обновить ядро до версии 4.14.11 и старше, а заодно обновить и все остальные программы с драйверами.

⇡#Как защититься от Meltdown и Spectre в Windows?

Здесь ситуация сложнее. Обновления выпущены только для Windows 7 SP1, Windows 8.1 и Windows 10, а также для браузеров Internet Explorer и Edge. Обновления можно поставить вручную. На этой странице выложены ссылки на обновления для всех версий ОС и браузеров: Security Update, Monthly Rollup и IE Cumulative. По ссылке на страницу придётся пройти дважды, так как в первый раз надо будет согласиться с условиями работы, поставив галочку Please read and acknowledge our terms of service и затем нажав Accept. Версию ОС можно узнать, кликнув правой кнопкой мыши по значку «Компьютер» в проводнике Windows и выбрав пункт «Свойства».

Читать еще:  Microsoft Office Visio 2007: графическое представление данных

Если обновления ОС включены, то они наверняка уже были установлены. Но на всякий случай можно проверить. В Windows 7 в Панели управления нужно выбрать пункт Центр обновления Windows, в меню слева нажать Поиск обновлений, подождать, выбрать галочками все обновления и установить их. В Windows 10 в меню Пуск в разделе Параметры выбрать пункт Обновления и безопасность и так же проверить наличие патчей. Желательно также включить функцию обновления других продуктов Microsoft, если это не было сделано ранее.

⇡#Что ещё надо сделать для защиты от Meltdown и Spectre?

После всех манипуляций надо снова проверить ОС на уязвимости утилитой inSpectre. Скорее всего, вы увидите, что защиты от Spectre как не было, так и нет. Это связано с тем, что для устранения этой уязвимости мало программной заплатки, нужно ещё и обновление микрокода процессора. А ответственны за это производители оборудования! И вот с этим тоже есть проблема. Для старых версий практически наверняка никаких обновлений прошивки или BIOS/UEFI выпущено не будет. Но всё же стоит поискать информацию на официальных сайтах производителей где-нибудь в разделах News («Новости»), Support («Поддержка») и Downloads («Загрузки»). Увы, простого рецепта нет. Это касается вообще всех ваших «умных» устройств.

Для материнских плат и ноутбуков всех мастей можно начать поиск отсюда (там есть ссылки на соответствующие разделы сайтов некоторых производителей). Что точно не стоит делать, так это самостоятельно пытаться собрать прошивку или BIOS/UEFI, потому что можно попросту загубить оборудование.

Кроме того, вне зависимости от устройства и ОС крайне желательно установить и/или обновить антивирус. Все остальные программы, а в особенности браузеры, так же стоит обновить до самой последней версии. Желательно сделать это до установки обновлений самой ОС — чтобы избежать проблем с совместимостью. Из прочих простых мер защиты можно, как обычно, порекомендовать не посещать незнакомые сайты, установить блокировщик рекламы, а также не скачивать и не запускать файлы от неизвестных людей или из подозрительных источников.

В Google Chrome также есть экспериментальная функция, помогающая в защите от Spectre. Для её включения нужно перейти в раздел настроек (адрес chrome://flags/), включить (Enable) опцию Strict site isolation и перезапустить браузер.

⇡#Каковы последствия установки обновлений для защиты от уязвимостей?

Самое неприятное, что может произойти, — это зависания и невозможность загрузки устройства. В случае Windows Microsoft утверждает, что самые серьёзные проблемы устранены, но на всякий пожарный даёт инструкции по отключению защиты. А вообще, в последние два месяца везде происходит какая-то чехарда: производители выпускают патчи, пользователи жалуются на проблемы, производители убирают старые патчи, выпускают новые — и далее по кругу.

Другая проблема касается программ, которые после обновления перестают работать или работают неправильно. Особенно неприятно, когда к таким относятся антивирусы и прочие средства защиты. Попутно выяснилось, что некоторые такие утилиты используют в своей работе механизмы, в чём-то похожие (но не точно такие же) на те, которые характерны для этих уязвимостей.

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

⇡#Что делать, если у меня старое устройство, которое не получало обновлений?

Сложный вопрос. Очевидно, что его не надо использовать. Не менее очевидно, что это, мягко говоря, далеко не всегда возможный вариант. Изолировать такое устройство от Сети — тоже так себе затея. Покупать вместо него новое сейчас вроде бы и смысла нет, потому что уязвимости в нём всё равно будут, пусть и с частичной защитой от них. При этом ждать новые аппаратные платформы без этих уязвимостей придётся долго. Вряд ли они станут массово доступными в течение хотя бы года.

Meltdown и Spectre. Разбираем фундаментальные уязвимости в процессорах

Содержание статьи

Корень проблемы

Изначально в блоге Google Project Zero сообщалось об успешной реализации трех вариантов атаки на кеш процессора:

  • злонамеренная загрузка данных в кеш;
  • обход границ массива;
  • инъекция целевой ветви.

Формально их описали как две сходные уязвимости — Meltdown (первый вариант атаки) и Spectre (второй и третий варианты). Сценарии их практического использования зависят от микроархитектуры ЦП и операционной системы, в разной степени затрагивая производителей железа, облачных провайдеров и сообщество Linux.

Авторы исследования знали о проблеме давно. 1 июня 2017 года они отправили свои отчеты в Intel, AMD и ARM, пообещав не публиковать детали до тех пор, пока разработчики не выпустят патчи. Однако произошла утечка информации, из-за которой им пришлось обнародовать подробности раньше.

Уязвимости имеют много сходных черт на концептуальном уровне. Обе делают возможным проведение атаки по стороннему каналу, используя недостатки физической реализации процессоров. Впервые данный класс атак подробно описал Пол Кёхер (Paul Köcher) еще в 1996 году применительно к популярным криптосистемам. Он также выступил соавтором исследования Meltdown и Spectre.

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

Обрати внимание: зловред не считывает сами данные (он не может читать кеш в произвольном месте). Вместо этого он вычисляет ошибочно закешированные байты уже в своем адресном пространстве, просто измеряя задержки чтения в разных строках заранее созданного массива.

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

Бомба замедленного действия

Сама идея внеочередного исполнения инструкций была предложена IBM в 1963 году. Рядовые пользователи столкнулись с ней только в 1995 году, когда появился первый Pentium Pro. С тех пор линейный конвейер канул в Лету, а все современные процессоры используют архитектуру с внеочередным (out-of-order) и одновременно упреждающим (или спекулятивным — speculative) механизмом исполнения команд.

Как же это работает? Для программиста все выглядит просто. Он отправил очередь инструкций на вход и получил ее исполнение на выходе. Однако внутри процессора творится своя магия. Современное процессорное ядро использует многоуровневый конвейер с нелинейными путями. Все входящие инструкции в нем кешируются и декодируются по нескольку штук за такт. Они дробятся на микрооперации, которые переупорядочиваются в собственном буфере (ROB, Re-Order Buffer). Ни одна из них не работает с реальными адресами памяти и физическими регистрами процессора. Блок управления памятью транслирует виртуальные адреса и определяет параметры доступа к ним.

После ROB микрооперации отправляются в станцию резервации, где обрабатываются параллельно на разных исполнительных блоках. Вдобавок современные процессоры используют разные типы кешей для ускорения обработки данных, изначально загружаемых в не слишком быструю оперативную память. Простейший кеш для инструкций применялся еще в 1982 году, а кеш данных используется с 1985 года. Сейчас они оба относятся к базовому кешу первого уровня (L1), помимо которого появились L2 и L3 общего назначения.

Блоковая диаграмма конвейера Intel Skylake / Kaby Lake (источник: wikichip.org)

Все эти архитектурные навороты создавались для уменьшения времени простоя отдельных исполнительных блоков процессора. Пока один блок ожидает загрузки данных из оперативной памяти для своей инструкции, другой параллельно обрабатывает следующие. В этом ему помогает MMU (Memory Management Unit) и общая архитектура конвейера, который старается работать на упреждение и постоянно подгружает наиболее востребованные данные в кеш.

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

В большей мере задержками в проверке условий и длинным забеганием вперед по ветвям инструкций грешат процессоры Intel с длинным конвейером (кроме Itanium и первых Atom), но AMD и даже ARM это тоже касается — просто в эксплоитах для них потребуется более точный таймер, другие размеры массивов и техники забивания кеша. Если Meltdown для них пока не смогли убедительно воспроизвести, то Spectre — вполне.

Блоковая диаграмма конвейера AMD Zen (источник: wikichip.org)

Целых 27 лет ведущие разработчики считали, что скорость обработки инструкций важнее безопасности, а все проверки можно делать уже после пробного исполнения команд «на выходе» из конвейера. В том или ином виде внеочередное исполнение сегодня реализовано во всех процессорах. Из-за параллельной работы исполнительных блоков задержка в обработке исключения, лаг MMU и очистки кеша тоже есть всегда, просто в случае микроархитектуры Core они заметнее и ими проще воспользоваться.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Читать еще:  Uncharted 3: Drake’s Deception — белое солнце пустыни. Preview

Meltdown и Spectre. Разбираем фундаментальные уязвимости в процессорах

Содержание статьи

Корень проблемы

Изначально в блоге Google Project Zero сообщалось об успешной реализации трех вариантов атаки на кеш процессора:

  • злонамеренная загрузка данных в кеш;
  • обход границ массива;
  • инъекция целевой ветви.

Формально их описали как две сходные уязвимости — Meltdown (первый вариант атаки) и Spectre (второй и третий варианты). Сценарии их практического использования зависят от микроархитектуры ЦП и операционной системы, в разной степени затрагивая производителей железа, облачных провайдеров и сообщество Linux.

Авторы исследования знали о проблеме давно. 1 июня 2017 года они отправили свои отчеты в Intel, AMD и ARM, пообещав не публиковать детали до тех пор, пока разработчики не выпустят патчи. Однако произошла утечка информации, из-за которой им пришлось обнародовать подробности раньше.

Уязвимости имеют много сходных черт на концептуальном уровне. Обе делают возможным проведение атаки по стороннему каналу, используя недостатки физической реализации процессоров. Впервые данный класс атак подробно описал Пол Кёхер (Paul Köcher) еще в 1996 году применительно к популярным криптосистемам. Он также выступил соавтором исследования Meltdown и Spectre.

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

Обрати внимание: зловред не считывает сами данные (он не может читать кеш в произвольном месте). Вместо этого он вычисляет ошибочно закешированные байты уже в своем адресном пространстве, просто измеряя задержки чтения в разных строках заранее созданного массива.

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

Бомба замедленного действия

Сама идея внеочередного исполнения инструкций была предложена IBM в 1963 году. Рядовые пользователи столкнулись с ней только в 1995 году, когда появился первый Pentium Pro. С тех пор линейный конвейер канул в Лету, а все современные процессоры используют архитектуру с внеочередным (out-of-order) и одновременно упреждающим (или спекулятивным — speculative) механизмом исполнения команд.

Как же это работает? Для программиста все выглядит просто. Он отправил очередь инструкций на вход и получил ее исполнение на выходе. Однако внутри процессора творится своя магия. Современное процессорное ядро использует многоуровневый конвейер с нелинейными путями. Все входящие инструкции в нем кешируются и декодируются по нескольку штук за такт. Они дробятся на микрооперации, которые переупорядочиваются в собственном буфере (ROB, Re-Order Buffer). Ни одна из них не работает с реальными адресами памяти и физическими регистрами процессора. Блок управления памятью транслирует виртуальные адреса и определяет параметры доступа к ним.

После ROB микрооперации отправляются в станцию резервации, где обрабатываются параллельно на разных исполнительных блоках. Вдобавок современные процессоры используют разные типы кешей для ускорения обработки данных, изначально загружаемых в не слишком быструю оперативную память. Простейший кеш для инструкций применялся еще в 1982 году, а кеш данных используется с 1985 года. Сейчас они оба относятся к базовому кешу первого уровня (L1), помимо которого появились L2 и L3 общего назначения.

Блоковая диаграмма конвейера Intel Skylake / Kaby Lake (источник: wikichip.org)

Все эти архитектурные навороты создавались для уменьшения времени простоя отдельных исполнительных блоков процессора. Пока один блок ожидает загрузки данных из оперативной памяти для своей инструкции, другой параллельно обрабатывает следующие. В этом ему помогает MMU (Memory Management Unit) и общая архитектура конвейера, который старается работать на упреждение и постоянно подгружает наиболее востребованные данные в кеш.

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

В большей мере задержками в проверке условий и длинным забеганием вперед по ветвям инструкций грешат процессоры Intel с длинным конвейером (кроме Itanium и первых Atom), но AMD и даже ARM это тоже касается — просто в эксплоитах для них потребуется более точный таймер, другие размеры массивов и техники забивания кеша. Если Meltdown для них пока не смогли убедительно воспроизвести, то Spectre — вполне.

Блоковая диаграмма конвейера AMD Zen (источник: wikichip.org)

Целых 27 лет ведущие разработчики считали, что скорость обработки инструкций важнее безопасности, а все проверки можно делать уже после пробного исполнения команд «на выходе» из конвейера. В том или ином виде внеочередное исполнение сегодня реализовано во всех процессорах. Из-за параллельной работы исполнительных блоков задержка в обработке исключения, лаг MMU и очистки кеша тоже есть всегда, просто в случае микроархитектуры Core они заметнее и ими проще воспользоваться.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Как найти уязвимости Meltdown и Spectre в своем Win10-компе

Вы, наверняка, уже слышали, что «свежеобнаруженные» (примерно 20 лет назад) уязвимости, которые теперь именуют Meltdown и Spectre, позволяют злоумышленникам (и вообще всем кому не лень) считывать информацию из памяти любой программы, которая запущена на вашем компе.

…и, соответственно, получать в свое распоряжение буквально всё: пароли, переписку в почте и мессенджерах, фотки, а также данные платёжных карт, криптографические ключи и т.д. и т.п. Разумеется, без вашего ведома.

К слову, что специалисты обнаружили не две, а сразу три разновидности уязвимости в процессорах компов.

Первые две — «bounds check bypass» и «branch target injection» — позже назвали одним названием Spectre, а третьей — «rogue data cache load» — присвоили кличку Meltdown. С подробнейшим описаниям обеих проблем вы можете ознакомиться на специальном сайте Meltdownattack.

В настоящее время уже известно, что данным уязвимостям подвержены компы с процессорами Intel (все чипы начиная с 1995 года выпуска, окромя Intel Itanium и Intel Atom, и до 2013-го), AMD, ARM, операционные системы и прочее программное обеспечение. Проще говоря, Meltdown и Spectre теперь везде, притом давно.

Вчера компания Microsoft выпустила официальный апдейт для ОС Windows 10 с патчем, который якобы позволяет минимизировать влияние уязвимостей. Но, опять же, для защиты от них требуется обновление всего и вся, начиная с аппаратных прошивок и до… В общем, всего.

Потому засуетились не только в Microsoft (кстати, обновления для последних версий Edge и Internet Explorer компания тоже уже успела выпустить) . Патч для Firefox 57 выпустила Mozilla, вышло обновление для macOS 10.13.2 от Apple, к 23 января Google готовит исправленный Chrome 64, есть патч и для Linux.

Однако важно знать пару «нюансов». Во-первых, считается, что с помощью программных решений закрыть можно только Meltdown, защититься от Spectre в виду сложности уязвимости в такой способ нельзя. Во-вторых, меры которые принимаются распространяются только на новые устройства. Масштабы проблемы таковы, что старые компы, смартфоны, планшеты и прочие устройства едва ли кто-то будет защищать, даже от Meltdown.

Впрочем, нельзя сказать, что производители и разработчики никак не заботятся о душевном состоянии пользователей, которые еще не успели накупить себе новых компов.

Например, в дополнение к упомянутому патчу в Microsoft написали также PowerShell, которым юзер Windows 10 может быстренько проверить свой компьютер на предмет наличия в нём Meltdown и Spectre. И сейчас мы вкратце расскажем, как это работает. Значит.

как найти уязвимости Meltdown и Spectre в своем Win10-компе:
  • запускаем PowerShell с правами Администратора (для этого жмем кнопку Windows, строке поиска пишем PowerShell, нажимаем одновременно клавиши Shift+Ctrl и кликаем по строке PowerShell, которая появилась в списке);
  • в синем окне пишем Install-Module SpeculationControl
  • если появится табличка с запросом «NuGet provider is required to continue«, жмем кнопку Y на клавиатуре;
  • если появится табличка с уведомлением, что вы устанавливаете что-то из «untrusted repository«, тоже жмем кнопку Y и идем дальше;
  • вводим команду Import-Module SpeculationControl
  • если отобразится сообщение об ошибке, гласящее, что «running scripts» отключен, то вводим команду Set-ExecutionPolicy RemoteSigned и затем команду Import-Module SpeculationChannel
  • и завершаем мероприятие командой Get-SpeculationControlSettings

Скрипт PowerShell покажет инфу о наличии уязвимостей (или НЕналичии, и тогда вам вообще переживать не о чем, ПОКА), а также данные о наличии доступных и/или уже установленных патчей. Выглядит это примерно так:

Скажем сразу, что без должного навыка разобраться сложновато. Однако на данном этапе достаточно знать, что красненькие строчки с надписью false указывают на «дыры» в защите вашего ПК, а зелененькие с true — это заплатки на ранее обнаруженных «дырах». Если вчерашнюю обнову к Windows 10 вы уже установили, то зелененького будет больше.

Но, как вы уже знаете, это не значит, что ваш компьютер защищен от #Meltdown и #Spectre (хотя какая-то работа в этом направлении уже ведется). Далее понадобится еще как минимум обновление BIOS. Когда оно выйдет (и выйдет ли вообще), где его искать и пр. — это зависит уже от производителя компьютера. Кое какую полезную информацию Microsoft публикует здесь.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector