Security Week 26: Обновленный Spectre, теперь со вкусом записи

    Не хочется писать о 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: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.
    • +23
    • 5.8k
    • 9
    «Лаборатория Касперского»
    319.68
    Ловим вирусы, исследуем угрозы, спасаем мир
    Share post

    Comments 9

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

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

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


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


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

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

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

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

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

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

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

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

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

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

              Only users with full accounts can post comments. Log in, please.