Наука и технологии

Дыра в процессоре: всё об ошибке, позволяющей украсть пароли почти с любого компьютера и смартфона

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

rotator

Откуда взялись эти уязвимости?

Главный источник проблемы — так называемое спекулятивное исполнение. Два десятка лет назад инженеры, разрабатывающие процессоры, придумали хитрый приём: процессор может заранее выполнять какие-то операции (кусочки программы), результат которых может потребоваться позже. То есть он предугадывает, по какому пути программа пойдёт дальше, и выполняет инструкции наперёд. Угадает — отлично, есть прирост скорости, промахнётся — просто откатываемся до «верного» состояния, однако если по ходу пьесы он обращался к памяти, данные из неё останутся в кэше процессора.

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

Что такое Meltdown?

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

Что такое Spectre?

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

Атаку через Spectre сложнее произвести, но от неё и намного сложнее надёжно защититься — в этом второе значение названия: уязвимость, как призрак, будет преследовать нас ещё долгое время.

Какую информацию хакеры могут получить через Meltdown и Spectre?

Meltdown даёт доступ ко всему компьютеру, к данным всех приложений. На видео ниже показано, как в одной программе пользователь вводит пароль, закрываемый «звёздочками», и одновременно он всплывает в соседнем окошке, в другом приложении.

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

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

В каких процессорах есть эти уязвимости?

Изначально исследователи из Google Project Zero (лаборатория, сделавшая большой вклад в обнаружение этих уязвимостей) говорили, что взлом через Meltdown возможен только на процессорах Intel, выпущенных примерно с 1995 года, за исключением серверных чипов Itanium и неттопно-нетбучных Intel Atom до 2013 года.

Позже Apple подтвердила, что в опасности были все её гаджеты: компьютеры iMac, ноутбуки MacBook (это Intel), смартфоны iPhone, планшеты iPad и даже ТВ-приставки Apple TV (а это — ARM) — всё, кроме часов Apple Watch.

Из ядер ARM уязвимости сейчас подтверждены на Cortex-A15, Cortex-A57, Cortex-A72 и Cortex-A75.

AMD в своём отчёте рассказала, атака Meltdown на её процессорах невозможна, а вот «Призраку» они подвержены наполовину: один способов взлома сработал, а другой, якобы, «маловероятен» в силу неких отличий в архитектуре.

Отечественные Байкал-Т1 (процессоры для компьютеров, сравнимы с Intel Atom) построены на основе ядер MIPS P5600 компании Imagination Technologies и не подвержены и Meltdown, ни Spectre. А вот Байкал-М сделан на базе Cortex-A57 — и он под угрозой.

Как можно заметить, что компьютер взломали через Meltdown или Spectre

Никак.

Что делать?

Рецепт один: устанавливать все обновления. Microsoft уже выпустила патч для Windows 10. Apple закрыла уязвимость Meltdown в декабрьских обновлениях своих операционных систем и обещает выпустить новые версии браузера Safari для macOS и iOS с защитой от Spectre. Для ядра Linux тоже есть патчи. Из андроидофонов быстрее всего исправление получат аппараты Google Pixel. Остальные — в очередь.

От патча компьютер будет тормозить?

Не совсем, всё зависит от конкретных приложений. Игрушки и обычный домашне-офисный софт от патчей не страдает почти никак. Тяжелее всего придётся тем, кто заведует серверами: например, базы данных PostgreSQL показывает снижение производительности свыше 20%.