The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

TikTag - атака на механизм спекулятивного выполнения в CPU ARM, позволяющая обойти защиту MemTag

18.06.2024 07:53

Группа исследователей из Сеульского университета и компании Samsung опубликовала технику атаки на процессоры ARM, получившую кодовое имя TikTag, которую можно использовать для обхода аппаратного механизма защиты MemTag (MTE, Memory Tagging Extension), присутствующего в чипах на базе архитектуры ARMv8.5-A. Атака позволяет определить содержимое тегов MemTag для произвольных адресов памяти из-за утечек данных, возникающих в результате спекулятивного выполнения инструкций CPU.

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

Предложенный метод атаки позволяет определить привязанные к блокам памяти теги и обойти защиту MemTag. Исследователями продемонстрирована возможность осуществления атаки TikTag при эксплуатации уязвимостей в ядре Linux и браузере Chrome, используя существующие в данных продуктах последовательности инструкций (гаджеты), приводящие к спекулятивному выполнению кода. Подобные гаджеты при выполнении в спекулятивном режиме кода, работающего с указателями, вызывают чтение метаданных MemTag в зависимости от внешних условий, на которые может влиять атакующий. После определения ошибочного прогноза результат спекулятивного выполнения отбрасывается, но полученные данные остаются в кэше и могут затем быть извлечены при помощи анализа по сторонним каналам. Вероятность успешного обхода защиты MemTag в проведённых тестах оценена в 95% при проведении атаки в течение примерно 4 секунд.

Выявлено два вида гаджетов, приводящих к утечке сведения о тегах MemTag. В первом случае спекулятивное выполнение возникает при неверном предсказании перехода, а условия для выполнения гаджета могут быть созданы через манипуляции с системными вызовами. Во втором случае спекулятивное выполнение возникает из-за ошибки предсказания взаимосвязи между операциями чтения и записи при использовании оптимизации STLF (Store-To-Load-Forwarding), что позволяет подобрать тег, оценивая состояние кэша (если тег совпадает, значение будет напрямую перенаправлено из прошлой команды "store" в операцию "load" и изменит состояние кэша). Первый вид гаджетов подходит для атаки на ядро Linux, а второй на JavaScript-движок V8, используемый в браузерах на базе Chromium. Прототип инструментария для проведения атаки опубликован на GitHub.

Компания ARM подтвердила возможность совершения атаки на системах с процессорами Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 и Cortex-A720, но не намерена вносить изменения в CPU для блокирования проблемы, так как архитектура MemTag подразумевает, что теги не являются секретными данными для приложений. В кодовой базе Chromium проблема также остаётся неисправленной, так как в браузере Chrome защита на основе MemTag пока не применяется по умолчанию. Команда, отвечающая за безопасность платформы Android, признала возможность совершения атаки на устройства Pixel 8, в которых применяется защита MemTag, добавила исправления для блокирования утечек и выразила готовность выплатить вознаграждение за найденную уязвимость.

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

  1. Главная ссылка к новости (https://www.theregister.com/20...)
  2. OpenNews: Уязвимость в Android 14, эксплуатируемая через Bluetooth LE
  3. OpenNews: SLAM - атака на CPU Intel, AMD и ARM, позволяющая определить содержимое памяти
  4. OpenNews: Критическая уязвимость в реализации функции memcpy для ARMv7 из состава Glibc
  5. OpenNews: BHI - новая уязвимость класса Spectre в процессорах Intel и ARM
  6. OpenNews: GhostRace - атака на механизм спекулятивного выполнения в процессорах Intel, AMD, ARM и IBM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61389-arm
Ключевые слова: arm, mte, memory
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 09:34, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Защищён ли OpenBSD из коробки за 10 лет до открытия этой уязвимости?
     
     
  • 2.3, Аноним (3), 09:37, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конечно, нет, но это не помешает им заявить что-нибудь подобное. [картинкаслинусом]
     
     
  • 3.4, Аноним (2), 09:37, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Из этого следует, что NetBSD защищена от этой уязвимости.
     
  • 3.5, Аноним (2), 09:40, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Справедливости ради, ограничение hyper-threading позволило ослабить воздействие meltdown/spectre на OpenBSD. Сделано это было задолго до появления этих уязвимостей. Разработчики заранее подозревали.
     
  • 2.49, Bottle (?), 13:54, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да, защищён. Он просто не запустится на данных процессорах.
     

  • 1.7, ryoken (ok), 09:48, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Давно про уязвимости процессоров не было новостей. Особенно про ARM.
     
     
  • 2.10, Слава Линуксу (?), 10:02, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Значит скоро ждём очередной "ковид"
     
  • 2.25, Аноним (25), 11:13, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Держали компромат до выхода армовых ноутбуков на швинде. Тут к гадалке на ходи.
     

  • 1.12, Аноним (12), 10:05, 18/06/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.13, ИмяХ (ok), 10:14, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Ну спасибо, что выложили в открытый доступ описание уязвимости. Теперь любой Васян может удалённо взломать любой планшет/смартфон, украсть все данные и напичкать майнерами. Здравствуй кибер-анархия!
     
     
  • 2.20, Аноним (20), 10:50, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы же специалист и сейчас патчей накидаете. Эпла подвержена?
     

  • 1.15, Аноним (15), 10:23, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Товарищи, подскажите, в чём нарисованы иллюстрации к статье?
     
     
  • 2.60, 3draven (ok), 16:54, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Статья в арксиве написана в латехе.
     
     
  • 3.79, Аноним (79), 00:56, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет уж, или трусы, или крестик!  «X» в «LaTeX» и в «arXiv» — это одна и та же греческая буква.

    Так что либо «в латексе», либо «в архиве».

     
     
  • 4.82, Аноним (-), 12:10, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет уж, или трусы, или крестик!  «X» в «LaTeX» и в «arXiv» — это одна и та же греческая буква.
    > Так что либо «в латексе», либо «в архиве».

    Звучание может зависеть от положения в слове.
    Есть даже классная шутка про англ язык
    Why is every 'C' in Pacific Ocean pronounced differently?

    ps но фраза "я отправил вам свою курсовую в латексе" звучит шикарно))


     

  • 1.24, Аноним (25), 11:08, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну и где теперь эти свидетели чудовищной ошибки?
     
     
  • 2.76, Аноним (-), 00:41, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Запустите вы браузер там где научились подставлять свой объект со своим кодом вместо существующего. Посмотрим насколько оно чудовищно.
     

  • 1.57, Аноним (57), 15:58, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    TikTag. У них скоро закончатся названия для этих атаг! :-)
     
  • 1.58, Songo (ok), 16:01, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Предлагаю выпустить фикс с понижением производительности :)
     
     
  • 2.75, Аноним (-), 00:35, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В другой новости есть такое предложение:

    > Уязвимость устранена в выпуске GrapheneOS 2024030900 и затрагивает сборки для смартфонов, в которых не включена дополнительная аппаратная защита на основе расширения MTE (MTE пока включён только для устройств Pixel 8 и Pixel 8 Pro).

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

     

  • 1.61, Аноним (61), 17:07, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Команда, отвечающая за безопасность платформы Android, признала возможность совершения атаки […] и выразила готовность выплатить вознаграждение за найденную уязвимость.

    Пример людей не забывших, что такое честь. Похвально!

     
  • 1.62, Аноним (62), 18:16, 18/06/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.63, Аноним (63), 18:46, 18/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну и когда уже запретят чтение сегмента кода? Чтобы гаджеты невозможно было найти.
     
     
  • 2.73, Аноним (-), 23:31, 18/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так это ж данные, а не код. Можете уточнить, вы имеете в виду что они хранятся в одном и том же месте, где-то в оперативной памяти?
     

  • 1.77, Аноним (-), 00:48, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если кому интересно глянуть на отрывок кода, тут нашел: https://www.msn.com/en-us/news/technology/arms-tiktag-attack-affects-google-ch
     
     
  • 2.78, Аноним (-), 00:50, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Или даже тут немного лучше: https://www.bleepingcomputer.com/news/security/new-arm-tiktag-attack-impacts-g
     

  • 1.81, Big Robert TheTables (?), 11:55, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    лол, это про чтение памяти в рамках одного процесса?
    Даже и не знал, что такое чтение защищено каким-то тэгированием. Век живи, век учись.
    Implications and industry response

    The leakage of MTE tags is not tied to the leakage of passwords, encryption keys, etc.

    расходимся

     
     
  • 2.83, Аноним (83), 14:22, 19/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А это тегирование не на каждом процессоре есть. Вы бы перечитали как оно работает.
     
     
  • 3.88, Big Robert TheTables (?), 12:44, 20/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А это тегирование не на каждом процессоре есть. Вы бы перечитали как
    > оно работает.

    раскройте тему. "А это тегирование не на каждом процессоре есть." и?

     
     
  • 4.90, Аноним (90), 02:11, 23/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я другой аноним, но попробую ответить. Оно аппаратное и работает на определенных процессорах. Выставляете тег безопасности и как только выполняется переполнение буфера - согласно информации в теге (а это некий объект) выполняется код указанный по ссылке на аварийный, как-раз на этот случай. Так вот этот тег не является секретом для всех приложений и его использование фактически потенциальная утечка информации потому что вредоносная программа попав на эту машину поменяет тег где нужный код. Вот поэтому и придумано решение компилировать Линукс (или Андроид) без поддержки данного тега. Впрочем при программировании без ОС эта возможность удобна на самом деле.
     
     
  • 5.92, Аноним (92), 04:07, 23/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https community arm com arm-community-blogs b architectures-and-processors-blo... большой текст свёрнут, показать
     
  • 4.91, Аноним (90), 02:13, 23/06/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Понимаете? Архитектура процессора это тоже в некотором смысле программа, хоть и электроника. Там тоже бывают ошибки характерные программированию.
     

  • 1.84, YetAnotherOnanym (ok), 17:34, 19/06/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > результат спекулятивного выполнения отбрасывается, но полученные данные остаются в кэше
    > для каждых 16 байт физической памяти создаётся 4-битовый тег, который выступает подобием ключа для доступа к этой памяти

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру