Дыра в процессоре: всё об ошибке, позволяющей украсть пароли почти с любого компьютера и смартфона
Исследователи нашли дыру в безопасности, которая содержится в большинстве современных процессоров компьютеров, ноутбуков и даже смартфонов. Рассказываем всё, что известно об уязвимостях Meltdown и Spectre и о том, как с ними жить.
Откуда взялись эти уязвимости?
Главный источник проблемы — так называемое спекулятивное исполнение. Два десятка лет назад инженеры, разрабатывающие процессоры, придумали хитрый приём: процессор может заранее выполнять какие-то операции (кусочки программы), результат которых может потребоваться позже. То есть он предугадывает, по какому пути программа пойдёт дальше, и выполняет инструкции наперёд. Угадает — отлично, есть прирост скорости, промахнётся — просто откатываемся до «верного» состояния, однако если по ходу пьесы он обращался к памяти, данные из неё останутся в кэше процессора.
Допустим, где-то в хвосте приложения есть обращение к области памяти, куда ему доступ не положен. Процессор поторопится заранее сделать эту работу и переложит данные «поближе» — в процессорный кэш. Потом, когда основное выполнение программы упрётся в ограничение доступа, все операции «откатятся», приложению выдадут сигнал ошибки, но данные останутся в кэше, откуда их можно будет забрать (опять-таки не напрямую, а с помощью хитрого, но легитимного приёма).
Что такое 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%.