Уязвимость Spectre особенно опасна для онлайн-служб, где много пользователей делят общие аппаратные ресурсы. Ведь с ней злоумышленник может получить данные других пользователей и не оставить никаких следов. Google говорит, что ее сервис Gmail уже защитили от этой самой процессорной уязвимости. Компания также рассказала, как именно это удалось.
«Дыру» Spectre называют наибольшей уязвимостью потому, что она касается базовых систем функционирования почти всех процессоров последних полтора десятилетия. Ее исправят на аппаратном уровне лишь через несколько лет, к тому времени даже новые процессоры будут с ней. Тем временем защищаться от нее предлагается программными решениями, за достаточно высокую цену производительности. Компьютеры, смартфоны, планшеты и ноутбуки в различных задачах могут терять 30-50% производительности. В некоторых случаях патч против Spectre также выводит из строя ОС (Ubuntu 16.04 Xenial) приводит к их циклической перезагрузке (пострадали машины на чипах Intel).
В Google говорят, что для своих продуктов защиту от Spectre и похожей на нее Meltdown уже развернули. Для этого компании пришлось привлечь сотни своих инженеров, которые искали решение в течение нескольких месяцев. Так, хотя публика узнала о Spectre и Meltdown недавно, в индустрии о ней знали по крайней мере с лета 2017 года.
Защиту от этих «дыр» в Google начали разворачивать уже в сентябре. Сотрудники Google говорят, что эти уязвимости были самыми сложными и трудными для закрытия за последнее десятилетие.
У Spectre есть две разновидности атаки, и вторую закрыть программным способом оказалось довольно сложно. Простое решение – отключить уязвимые блоки процессора – приводило к слишком большому падению производительности.
Помогла техника Retpoline, которую придумал старший инженер Пол Тернер. Придуманное им решение модифицирует программу так, чтобы злоумышленник не мог повлиять на их выполнение. Retpoline расшифровывается как трамплин для операций возврата. Этот программный код изолирует косвенные ветви от спекулятивного выполнения. С Retpoline вредоносный код, который эксплуатирует спекулятивное выполнение в Spectre, будет отскакивать бескінечно, не получая желаемого результата. Специалисты Google сравнивают спекулятивное исполнение с очень энергичной 7-летней дитиноюю. Она не будет сидеть в пределах указанного помещения, а начнет заглядывать в соседние. Обставив ребенка трамплинами ее удастся не пустить куда нельзя — ребенок натикатиметься на трамплин и відскакуватиме назад.
После этого поисковый гигант поделился особенностью выполнения этой техники с другими компаниями.