Не хочется писать о Spectre, а надо: на прошлой неделе это однозначно самая важная новость. Новые варианты уязвимости Spectre, как и исходные, показаны представителями академического сообщества. Научный сотрудник Массачусетского технологического института Владимир Кирьянский и независимый эксперт Карл Вальдспургер показали две новые модификации Spectre, названные, без затей и логотипов, Spectre 1.1 и Spectre 1.2 (новость, оригинальная научная работа).

Важные отличия от исходной уязвимости Spectre в обоих случаях заключаются в использовании механизма спекулятивной записи. В случае Spectre 1.1 атака теоретически позволяет вызвать (тоже спекулятивное) переполнение буфера и прочитать «запрещенный» участок памяти. Spectre 1.2 обеспечивает возможность перезаписи доступной только для чтения информации и теоретически позволяет провести атаку типа sanbox escape, обойдя аппаратные системы защиты. За обнаружение уязвимости исследователи получили сто тысяч долларов в рамках программы bug bounty компании Intel, и на сегодняшний день это одна из самых крупных выплат. Уязвимости подвержены процессоры Intel, ARM и, вероятно, процессоры AMD.

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

Ключевая иллюстрация идеи: обходим защиту (bounds check) не с помощью операции чтения, как в оригинальном Spectre, а с помощью операции записи.

Список условий, при которых одна из новых уязвимостей может быть реализована на практике, занимает чуть ли не больше места, чем описание механизма атаки. В этом и заключается сложность аппаратных уязвимостей этого класса: слишком многое должно совпасть, чтобы атака была успешной. Но когда атака происходит, в худшем случае она позволяет украсть ценную информацию, зачастую без возможности даже пост-фактум понять, что именно произошло. Самое важное: условия для Spectre 1.x могут быть созданы даже в тех случаях, когда атака Spectre 1.0 невозможна.

Исследователи утверждают, что способов детектирования уязвимостей типа Spectre 1.1 с помощью анализа кода или инструментов компиляции не существует. При этом данная уязвимость может быть закрыта на уровне железа. Также отмечается, что ответственность за снижение рисков успешной атаки типа Spectre зачастую возлагается на разработчиков ПО. Учитывая, что за 30 лет, прошедшие с первой публичной демонстрации атаки с переполнением буфера, уязвимостей в ПО намного меньше не стало, авторы предрекают атакам на механизм спекулятивного выполнения кода «десятилетия» релевантности.

Несмотря на вышесказанное, авторы верят, что комбинация безопасного софта и железа с преимуществами защиты от механизмов speculative execution теоретически возможна. Осталось реализовать это на практике, что в случае класса уязвимостей, затрагивающих железо, может занять то ли годы, то ли десятилетия. Интересно, не станет ли история Spectre/Meltdown и их производных шагом к какому-то серьезному изменению в практиках разработки программ и аппаратного обеспечения?

Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.

Комментарии (9)


  1. old_bear
    16.07.2018 21:12

    авторы верят, что комбинация безопасного софта и железа с преимуществами защиты от механизмов speculative execution теоретически возможна

    IMHO, никуда нам не деться от «безопасной аппаратной среды» из «Конца радуг» Вернона Винджа.


    1. immaculate
      17.07.2018 03:46

      Я, к сожалению, очень мало что знаю об архитектуре современных процессоров. Но на Hacker News прочитал комментарий (без пруфов), что в Itanium эти атаки были бы невозможны.


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


      Если нас забанил Google, то это для некоторых людей может быть почти тем же самым, что и быть забаненым в Интернет.


      1. old_bear
        17.07.2018 11:13

        Но на Hacker News прочитал комментарий (без пруфов), что в Itanium эти атаки были бы невозможны.

        Невозможны одни — возможны другие. Даже если допустить, что полная защищённость теоретически возможна (в комплекте со всеми оптимизациями, из которых современные процессоры состоят чуть менее, чем полностью), на практике всё равно будут ошибки, в силу естественной человеческой предрасположенности к ошибкам. Так что, подозреваю, что будь Итаниум так же распространён, как х86/64, и в нём бы нашлось что-то подобное.

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

        Тут скорее проблема в нежелании большей части потребителей жертвовать ради безопасности производительностью или просто предпринимать минимальные усилия со своей стороны. О чём ясно говорят все эти домашние роутеры с дефолтным паролем, ip-камеры, которые сливают видео в незащищённые облака и прочие тостеры с интернетом.


        1. springimport
          17.07.2018 16:05
          -1

          Ладно еще когда с 8700 срезают 10%, но как быть тем у кого i3 или вообще dual core какой-нибудь? Где каждые 10% очень критичны.
          Если зайти с другой стороны, 10% для сервера это значит только удорожание на 10% этого самого сервера.

          Поэтому нет, безопасность не должна забирать производительность если это возможно.


  1. Error1024
    17.07.2018 05:28

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


  1. DenMMM
    17.07.2018 08:13

    «Если бы автомобилестроение развивалось так же быстро как Windows, то сегодня мы бы уже летали.»
    Вспомнилось в ответ на все эти процессорные баги.


  1. vikarti
    17.07.2018 14:17

    Безопасная аппаратная среда?
    Вот вспоминается InterstellarNet Дэвида Лернера
    Там встала серьезная необходимость разработать архитектуру песочницы из которой код не сможет вылезти кроме как предусмотренными способами (но анонимный доступ в интернет — предусмотрен — через Tor(он не назван но по сути описан)) И лица имеющие физический доступ к железу — не смогу влезть вмешаться в работу (просто стартующий код делает кучу проверок и либо стартует нормально либо нет).
    Цена — не имеет особого значения. (в Солнечной Системе один такой рабочий комплекс официально). Цель — межзвездная торговля. В условия когда нет сверхсвета, связь — радио/лазеры.

    Архитектуру разработали (на Земле кстати).
    Железо сделали (и не в одном экземпляре), железо потом меняли…
    и все равно — нашелся способ вида 'вот мы предлагаем новый принцип построения процессоров' и те кто предложили новый способ — 'забыли' сказать что знают как в нем реализовать побег из песочницы. А способ — очень полезный и много где уже к тому моменту на Земле использованный. И пошел шантаж.


  1. VBKesha
    17.07.2018 15:21
    -1

    Уязвимости подвержены процессоры Intel, ARM и, вероятно, процессоры AMD.

    Блин я одного не пойму не ужели у них нет AMD процессоров, чтобы просто проверить работает или нет. А то прям надежда из разряда может на AMD нет но это не точно.


    1. geher
      17.07.2018 21:07
      +1

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