Уязвимость SWAPGS позволяет локальным программам, в том числе вредоносным приложениям, считывать данные из областей памяти, к которым обычно доступ запрещен, в частности из памяти ядра Windows или Linux.
Данная уязвимость была обнаружена исследователем из компании Bitdefender при изучении внутренних компонентов процессора. Впервые о своей «находке» он сообщил Intel в августе 2018 года.
Компания Intel официально заявила, что после того, как информация об уязвимости была предоставлена, компания решила исправить проблему на программном уровне при сотрудничестве с Microsoft.
Компания Intel вместе с отраслевыми партнерами, определила, что проблему лучше исправить на программном уровне и связалась с Microsoft. Вопрос решается в рамках единой экосистемы совместной защиты продуктов и данных под контролем Microsoft.
Microsoft взяла на себя обязательства проинформировать других вендоров и проконтролировать выпуск патчей, а также спланировала публичное раскрытие уязвимости на конференции Black Hat 2019.
Уязвимость SWAPGS
SWAPGS представляет собой уязвимость побочного канала спекулятивного исполнения, которая позволяет злоумышленникам считывать данные из защищенной памяти.
Технология спекулятивного исполнения позволяет выполнять инструкции заблаговременно для повышения производительности процессоров. Уязвимости, нацеленные на функцию спекулятивного исполнения, называются атаками побочного канала.
В новой атаке побочного канала, раскрытой Bitdefender, злоумышленники «нарушают изоляцию памяти, обеспечиваемую процессором, что позволяет даже пользователю без повышенных прав получить доступ к защищенной памяти ядра».
Эксплуатация происходит с помощью инструкции SWAPGS для 64-битных процессоров. В случае успешной атаки злоумышленник может получить доступ к конфиденциальной информации из памяти ядра. Перехватить приватные данные получиться, даже если вредоносный процесс выполняется с низким уровнем разрешений.
Таким образом, киберпреступники могут украсть информацию любого типа, которая хранится в памяти, включая сообщения чата, электронные письма, учетные данные для входа в систему, информацию об платежах, пароли, ключи шифрования, токены и др. Никакую информацию невозможно сохранить в секрете.
В то время как Microsoft, Intel и Red Hat заявляют, что данная уязвимость затрагивает все современные процессоры, исследователи Bitdefender смогли провести успешную эксплуатацию SWAPGS только на процессорах Intel:
Мы протестировали два процессора AMD (AMD64 Семейство 16 Модель 2 Степпинг 3 AuthenticAMD ~3211 Mhz и AMD64 Семейство 15 Модель 6 Степпинг 1 AuthenticAMD ~2100 Mhz), и ни один из них не продемонстрировал спекулятивное поведение для инструкции SWAPGS.
Поскольку инструкция SWAPGS применима только для систем x86-64, мы не ожидаем, что другие архитектуры процессоров, такие как ARM, MIPS, POWER, SPARC или RISC-V будут уязвимы. Тем не менее, мы не исключаем наличия других чувствительных инструкций, которые могут выполняться спекулятивно.
Более того, так как необходимая инструкция WRGSBASE присутствует только в современных процессорах, начиная с Ivy Bridge, Bitdefender ожидает, что уязвимость будет либо сложнее, либо невозможно эксплуатировать в случае со старыми процессорами.
Более подробная информация SWAPGS доступна на сайте Bitdefender. Вы также можете посмотреть видео Bitdefender, о том, как защитить себя от атак SWAPGS.
Реакция вендоров на SWAPGS
Так как раскрытие уязвимости было заранее спланировано и скоординированно, многие компании, включая Microsoft, Red Hat, Intel и Google, уже выпустили рекомендации по снижению рисков атак.
Ниже представлена дополнительная информация по мерам снижения рисков, рекомендациям и обновлениям от различных вендоров.
Microsoft исправила уязвимость в июльских патчах
Microsoft без дополнительной огласки включила патчи от SWAPGS в июльские обновления безопасности, выпущенные во Вторник патчей (Patch Tuesday). Для исправления проблемы использовались программные средства защиты. Если вы устанавливаете обновления безопасности Windows по мере их выхода, то вы уже защищены от уязвимости SWAPGS.
Microsoft выпустила бюллетень безопасности под названием «Информация о раскрытии уязвимости ядра Windows» как часть скоординированного раскрытия данных.
Согласно Microsoft, исследователь Bitdefender обнаружил в некоторых современных процессорах новую уязвимость, которая позволяет вредоносным программам пользовательского режиме получать доступ и читать содержимое памяти ядра Windows.
В своем бюллетене Microsoft поясняет:
Для успешной эксплуатации уязвимости злоумышленник должен войти в уязвимую систему и запустить специально созданное приложение. Уязвимость не позволяет напрямую повышать права пользователя, но позволяет получить информацию, которая может быть использована для дальнейшей компрометации системы.
Для устранения данной уязвимости Microsoft выпустила обновления безопасности от 9 июля 2019 года, включая в KB4507453 (Build 18362.239), KB4507453 (Build 18362.239) и KB4507435 (Build 17134.885 для последних версий Windows 10, а также KB4507449 для Windows 7 и KB4507448 для Windows 8.1. Обновления вносят программные изменения, которые модифицируют механизмы спекулятивного доступа к памяти. Microsoft также заявляет, что для устранения уязвимости SWAPGS не требуется устанавливать обновление микропрограммы.
Системы с включенным Центром обновления Windows, в которых были установлены обновления безопасности, выпущенные 9 июля 2019 года, защищены автоматически. Дополнительные действия не требуются.
Неизвестно, оказывают ли данные программные изменения влияние на производительность, как предыдущие патчи для уязвимостей побочного канала, или нет.
Microsoft дала официальный комментарий порталу BleepingComputer:
Мы осведомлены об этой общеотраслевой проблеме и тесно сотрудничаем с производителями процессоров и партнерами с целью тестирования систем защиты наших клиентов. В июле мы выпустили обновления безопасности, поэтому системы с включенным Центром обновления Windows автоматически защищены.
Red Hat выпустила обновления ядра
Red Hat также опубликовала рекомендации по защите от нового варианта Spectre под названием: «CVE-2019-1125: уязвимость устройств Spectre SWAPGS».
Пользователи Red Hat могут исправить уязвимость с помощью обновлений ядра и установки последних обновлений микропрограммы.
Red Hat известно о дополнительном векторе атак типа Spectre-V1, требующем обновления ядра Linux в сочетании с обновлениями микропрограммы. Данный вектор атаки основан на существующих исправлениях программного уровня, поставялемых в предыдущих обновлениях ядра и микрокода. Данная уязвимость применима только к для систем x86-64, использующих процессоры Intel или AMD.
Intel выпустила рекомендации по защите
Компания Intel выпустила бюллетень безопасности по уязвимости SWAPGS. Документ, по сути, перефразирует заявления других вендоров.
Оценив проблему с отраслевыми партнерами, было определено, что ее лучше исправить на программном уровне. Компания Microsoft согласилась координировать усилия по устранению уязвимости, проводя совместную работу с исследователями и партнерами по отрасли. Microsoft выпустила обновления программного обеспечения для решения этой проблемы в июле 2019 года и опубликовала свои рекомендации по безопасности.
Некоторые поставщики Linux могут выпускать обновления для своих продуктов. Пожалуйста, свяжитесь с вашим поставщиком Linux для получения дополнительной информации.
Google устранила уязвимость SWAPGS в обновлениях ChromeOS 4.19 и Android 4.19
Компания Google добавила исправления для ChromeOS в обновлении 4.19, релиз которого ожидается в ближайшее время.
В заметках к выпуску ChromeOS 4.19 компания Google объединила патчи SWAPGS и обновила руководство для администраторов по Spectre.
Злоумышленник может настроить предсказатель переходов для спекулятивного пропуска пути swapgs для прерывания или исключения. Затем при инициализации регистра GS со значением пользовательского пространства и спекулятивном пропуске, последующий percpu-доступ будет осуществлен со значением, контролируемым атакующим. Это может привести к утечкам защищенной памяти.
Идентичное исправление было добавлено и в пакет Android 4.19.
AMD убеждена, что их процессоры не затронуты проблемой
На странице безопасности продуктов AMD, компания считает, что ее чипы не подвержены уязвимости SWAPGS.
AMD осведомлена о новом исследовании, в котором утверждается, что новые спекулятивные атаки могут предоставлять доступ к защищенной памяти ядра. На основе внешнего и внутреннего анализа AMD считает, что продукты компании не уязвимы для SWAPGS, поскольку процессоры AMD не предусматривают спекулятивное исполнение по новым значениям GS после спекулятивного исполнения SWAPGS. Для атаки, которая не является вариантом SWAPGS, необходимо следовать существующим рекомендациям для варианта Spectre variant 1.
Обновления ядра Linux
Red Hat выпустила патчи для ядра Linux, устраняющие уязвимость SWAPGS.
Уязвимость Spectre v1 связана не только с проверками границы массива. Она влияет на любые условные проверки. Все обработчики прерываний, исключений и NMI кода ядра имеют условные проверки swapgs. Код ядра может работать спекулятивно с пользовательским регистром GS.
Мы будем обновлять статью по мере выхода новых рекомендаций от вендоров.
Угрозы безопасности
• Уязвимость WinRAR позволяет обходить предупреждения безопасности Mark of the Web в Windows
• Apple устранила более 50 уязвимостей в свежих обновлениях iOS, iPadOS и macOS
• Вирус Triada на поддельных смартфонах крадёт Telegram-аккаунты и криптовалюту
• Атака «Фишинг как услуга» использует DNS-over-HTTPS для обхода обнаружения
• Mozilla предупреждает о критической уязвимости обхода песочницы в Firefox для Windows
• Популярные расширения Chrome взломали. Как защитить себя?