Стало відомо, як захистили Gmail від найбільшої процесорної вразливості

Допомогла техніка Retpoline, яку придумав старший інженер Пол Тьорнер

Вразливість Spectre особливо небезпечна для онлайн-служб, де багато користувачів ділять спільні апаратні ресурси. Адже з нею зловмисник може отримати дані інших користувачів та не залишити жодних слідів. Google каже, що її сервіс Gmail вже захистили від цієї найбільшої процесорної вразливості. Компанія також розповіла, як саме це вдалося.Retpoline«Діру» Spectre називають найбільшою вразливістю тому, що вона торкається базових систем функціонування майже всіх процесорів останніх півтора десятиліття. Її виправлять на апаратному рівні лише за кілька років, до того часу навіть нові процесори будуть з нею. Тим часом захищатися від неї пропонується програмними рішеннями, за досить високу ціну продуктивності. Комп’ютери, смартфони, планшети та ноутбуки у різних завданнях можуть втрачати 30-50% продуктивності. У деяких випадках патч проти Spectre також виводить з ладу ОС (Ubuntu Xenial 16.04) чи призводить до їхнього циклічного перезавантаження (постраждали машини на чіпах Intel).

У Google кажуть, що для своїх продуктів захист від Spectre та схожої на неї Meltdown вже розгорнули. Для цього компанії довелося залучити сотні своїх інженерів, які шукали рішення протягом кількох місяців. Так, хоча публіка дізналася про Spectre та Meltdown нещодавно, в індустрії про неї знали принаймні з літа 2017 року.

Захист від цих «дір» у Google почали розгортати вже у вересні. Працівники Google кажуть, що ці вразливості були найскладнішими та найважчими для закриття за останнє десятиліття.

У Spectre є два різновиди атаки, і другий закрити програмним способом виявилося досить складно. Просте рішення – вимкнути вразливі блоки процесора – призводило до надто великого падіння продуктивності.

Допомогла техніка Retpoline, яку придумав старший інженер Пол Тьорнер. Придумане ним рішення модифікує програми так, щоб зловмисник не міг вплинути на їхнє виконання. Retpoline розшифровується як трамплін для операцій повернення. Цей програмний код ізолює непрямі гілки від спекулятивного виконання. З Retpoline зловмисний код, який експлуатує спекулятивне виконання у Spectre, буде відскакувати бескінечно, не отримуючи бажаного результату. Фахівці Google порівнюють спекулятивне виконання з дуже енергійною 7-річною дитиноюю. Вона не буде сидіти у межах вказаного приміщення, а почне зазирати в сусідні. Обставивши дитину трамплінами її вдасться не пустити куди не можна – дитина натикатиметься на трамплін та відскакуватиме назад.

Після цього пошуковий гігант поділився особливістю виконання цієї техніки з іншими компаніями.