SWAPGSAttack: уязвимость в процессорах Intel на Windows позволяет обойти защиту от Spectre и Meltdown



    Исследователи компании Bitdefender сообщили о новой аппаратной уязвимости, позволяющей обойти механизмы защиты от Spectre и Meltdown и получить доступ к данным в защищенной памяти ядра. Проблема затрагивает все ноутбуки, сервера и персональные компьютеры с Windows на процессорах от Intel (а возможно и AMD), выпущенных с 2012 года.

    Ссылка на исследование уязвимости

    Атака с эксплуатацией уязвимости (CVE-2019-1125) была названа SWAPGSAttack, поскольку для ее осуществления используется SWAPGS – инструкция для процессоров x86/x64 по переключению системы для начала адресации защищенной памяти, выделенной для ядер операционной системы.

    С помощью SWAPGSAttack злоумышленник может незаметно для жертвы похищать хранящуюся на компьютере\ноутбуке\сервере конфиденциальную информацию, при этом не оставляя никаких следов.

    Атака с использованием уязвимости SWAPGSAttack базируется на механизме спекулятивного выполнения, предназначенного для повышения производительности процессора. Процессор пытается предугадать следующую операцию и загружает соответствующую инструкцию в память процессора до того, как она потребуется.

    Проблема заключается в том, что спекулятивное выполнение оставляет следы в кеше, предоставляя злоумышленнику возможность осуществить атаку по сторонним каналам и получить доступ к данным в защищенных областях памяти.

    Таким образом, атакующий может вывести и собрать воедино информацию о данных, хранящихся в кеше ЦП (следовательно, и в системной памяти тоже), анализируя поведение системы в ответ на тщательно сконфигурированные запросы на загрузку данных.

    Например, злоумышленник может попытаться получить доступ к паролю, загружая различные буквы и цифры и определяя, сколько времени требуется системе на их загрузку.

    Так он может вычислить, присутствуют ли эти буквы и цифры в пароле. При наличии достаточного количества времени злоумышленник может использовать эту технику для сбора огромных объемов конфиденциальных данных.

    Исследователи Bitdefender утверждают, что новая проблема затрагивает только процессоры Intel.

    Но Red Hat и Microsoft придерживаются мнения, что затронуты процессоры и других производителей.

    Microsoft рассматривает новую уязвимость как вариацию Spectre, который распространялся на процессоры Intel, AMD и ARM. Red Hat утверждает, что SWAPGSAttack затрагивает процессоры Intel и AMD.

    Ответ от AMD по поводу уязвимости SWAPGSAttack:



    Уязвимость SWAPGSAttack не опасна для компьютеров под управлением ОС на базе Linux.

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

    Bitdefender уведомила производителей о своей находке и в течение года помогала Intel и Microsoft в подготовке патча.

    Обновление, которое закрывает уязвимость SWAPGSAttack было развернуто Microsoft в июльский «патчевый вторник». Обязательно проверьте корректность установки этих обновлений в своих системах.

    Однако, перед атакой беззащитны системы типа Windows XP, которые больше не поддерживаются Microsoft.

    A practical demonstration of HVI detecting and blocking a SWAPGS attack on Citrix Hypervisor.
    (Protecting against SWAPGS Attack via Hypervisor Introspection):

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 14

      0
      Весь современный ландшафт информационной безопасности усеян дырами и кривыми заплатками в рандомных местах. И никакого выхода из этой глобальной проблемы не просматривается.
        +3
        А потому что мозги рядового программиста и мозги спеца по безопасности по-разному заточены. А для менеджмента вообще — главное скорость, а безопасность потом.

        Вот и получаем в день по две уязвимости — одну от Стима, второю от Интела.
          –2
          А с учетом, что эти новости выходят новые процы АМД для серверов…
          0
          Как минимум для этой «уязвимости» есть решение:
          Уязвимость SWAPGSAttack не опасна для компьютеров под управлением ОС на базе Linux.
          +1
          Мне одному кажется, что в балансе безопасно vs быстро индустрия сворачивает куда-то не туда?

          Давайте шагать дальше, господа! Скажем, есть вектора атаки на чтение памяти по энергопотреблению БП, да, для успешной атаки необходимо 10 000 часов и прямой доступ к железу, но мы же параноики, так что теперь в комплекте с каждой планкой памяти давайте делать неотключаемый встроенный утюг. Есть атака по тональности свиста дросселей? Не вопрос! Добавим в каждый чипсет постояннодействующую сирену на 130 децибел. Можно залезть на шкаф и, пригнувшись, через бинокль в женской бане напротив рассмотреть пароль на экране администратора? Правильно! Сжечь все мониторы, только звуковой ввод/вывод через имплантируемые гарнитуры в массы и на все устройства!

          Правильным, но сложнореализуемым решением было бы разделить на аппаратном и софтверном уровне задачи криптографии+безопасности и общеприкладные. Тогда в первых можно было бы постоянно патчиться и апдейтиться, пусть и с потерей в скорости, но при этом не затрагивая производительности вторых. Но это очень серьезный сдвиг в текущей парадигме архитектуры железа и софта, который практически невыполним.

          Где же проходит граница между стремлением сохранить 100% контроль над сверхсекретными данными и желанием смотреть на котиков в 8к 120fps?
            +1
            чтобы эксплуатировать хардварную уязвимость проца нужно выполнить зловредный код на целевом компьютере. В подавляющем большинстве случаев вас взломали уже на этом этапе
              –1

              Hosting/Cloud/другие примеры разграниченивания прав на одном железном хосте? Причем с увеличениваем производительности на один процессор/сокет — это всё актуальней.


              Песочничный cgi-bin — это зловредный код или нет?

              0
              Какая выгода от того, что отделят безопасность от прикладных задач, когда дыра в том, что прикладная фишка процессора по предсказанию ветвления имеет дыру через которую можно стащить всё?
                +1
                Я бы посмотрел, как «прикладная фишка» стащила бы все из специализированного криптографического сопроцессора, расположенного отдельным чипом на, возможно, отдельной защищенной шине.
                  0
                  Ок! Есть отдельная микросхема с криптографией. Но Спектре использует уязвимость микрокода процессора. Когда данные уже расшифрованы или ещё не зашифрованы. И эти данные лежат «условно» в процессоре. Дело не в наличии специальной аппаратной штуковине связанной с криптографией. А с тем, что безопасность кода нельзя отделить от кода. Если программист использует обычный текстовый файл, в котором хранятся логины и пароли, то наличие или отсутствие некоей аппаратной криптографии не спасёт от просто копирования файла на уровне ОС.
                  И да: криптография <> безопасность.
                    0
                    > И эти данные лежат «условно» в процессоре.

                    Так я же и говорю, что в этом и проблема. Они не должны лежать ни условно, ни буквально в процессоре. И методы соответствующие есть, но для их применения необходима существенная переработка архитектуры как железа, так и софта.

                    Ну и дальше вы пытаетесь спорить с соображениями, полностью противоречащими моему исходному коментарию. Будем вместе спорить с воображаемым оппонентом?

                    Если вы прочитали моё:
                    > Правильным, но сложнореализуемым решением было бы разделить на аппаратном и софтверном уровне задачи криптографии+безопасности и общеприкладные.

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

                      Можно по-подробнее об этих методах? А то я, видимо, не так всё понял из ваших комментариев.
                        0
                        Два примера на поверхности:

                        1. Шифрование.
                        Данные шифруются/дешифруются в физическом анклаве. Ключ не уходит за пределы сопроцессора. Да, остается возможной атака на дешифрованные данные, но их объем существенно больше размера ключа, и все атаки, скорость которых не позволяет поспевать за объемом протекающих в открытом виде данных, обламываются. Кроме того, у злоумышленника нет возможности ретроспективной и перспективной атаки, он может увидеть только то, что дешифровано вот прямо сейчас.

                        2. Аторизация.
                        Банальная токен авторизация. Ключ не уходит за пределы анклава, токен, генерируемый на основе ключа, одноразовый.

                        И это то, что решается прямо вот на коленке, защищенным хранилищем ключей с отдельным от основного процессора специализированным АЛУ. В случае нахождения атаки на данный анклав достаточно пропатчить только его, пусть и с потерей в его производительности. А котики как крутились себе на основном процессоре, так и крутятся на полной производительности.
              0
              Безопасность — это комплексное понятие, но вот такие дыры низводят весь комплекс мер в ничто и требуют принципиально нового подхода к разработке софта — будем считать, что софт работает на изначально скомпроментированном компьютере, ваши действия?

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

              Самое читаемое