Группа исследователей из Сеульского университета и компании Samsung выявила уязвимость в процессорах ARM, получившую кодовое имя TikTag, которую можно использовать для обхода аппаратного механизма защиты MemTag (MTE, Memory Tagging Extension), присутствующего в чипах на базе архитектуры ARMv8.5-A. Уязвимость позволяет определить содержимое тегов TikTag для произвольных адресов памяти из-за утечек данных, возникающих в результате спекулятивного выполнения инструкций CPU...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61389
Защищён ли OpenBSD из коробки за 10 лет до открытия этой уязвимости?
Конечно, нет, но это не помешает им заявить что-нибудь подобное. [картинкаслинусом]
Из этого следует, что NetBSD защищена от этой уязвимости.
Справедливости ради, ограничение hyper-threading позволило ослабить воздействие meltdown/spectre на OpenBSD. Сделано это было задолго до появления этих уязвимостей. Разработчики заранее подозревали.
Да, защищён. Он просто не запустится на данных процессорах.
Давно про уязвимости процессоров не было новостей. Особенно про ARM.
Значит скоро ждём очередной "ковид"
Держали компромат до выхода армовых ноутбуков на швинде. Тут к гадалке на ходи.
Теоретическая теория в сферическом ящике Шредингира.
Ну спасибо, что выложили в открытый доступ описание уязвимости. Теперь любой Васян может удалённо взломать любой планшет/смартфон, украсть все данные и напичкать майнерами. Здравствуй кибер-анархия!
Вы же специалист и сейчас патчей накидаете. Эпла подвержена?
Товарищи, подскажите, в чём нарисованы иллюстрации к статье?
Статья в арксиве написана в латехе.
Нет уж, или трусы, или крестик! «X» в «LaTeX» и в «arXiv» — это одна и та же греческая буква.Так что либо «в латексе», либо «в архиве».
> Нет уж, или трусы, или крестик! «X» в «LaTeX» и в «arXiv» — это одна и та же греческая буква.
> Так что либо «в латексе», либо «в архиве».Звучание может зависеть от положения в слове.
Есть даже классная шутка про англ язык
Why is every 'C' in Pacific Ocean pronounced differently?ps но фраза "я отправил вам свою курсовую в латексе" звучит шикарно))
Ну и где теперь эти свидетели чудовищной ошибки?
Запустите вы браузер там где научились подставлять свой объект со своим кодом вместо существующего. Посмотрим насколько оно чудовищно.
TikTag. У них скоро закончатся названия для этих атаг! :-)
Предлагаю выпустить фикс с понижением производительности :)
В другой новости есть такое предложение:> Уязвимость устранена в выпуске GrapheneOS 2024030900 и затрагивает сборки для смартфонов, в которых не включена дополнительная аппаратная защита на основе расширения MTE (MTE пока включён только для устройств Pixel 8 и Pixel 8 Pro).
Не люблю когда нужно переходить по множеству ссылок чтобы понять в чем суть. Достаточно не включать эту возможность для ОС, а для программ на кристалле в общем-то приходится. Там вируса не будет.
> Команда, отвечающая за безопасность платформы Android, признала возможность совершения атаки […] и выразила готовность выплатить вознаграждение за найденную уязвимость.Пример людей не забывших, что такое честь. Похвально!
Уже удалили. Товарищ майор не понимает элементарных вещей. Все начинается с физиков, благодаря которым у нас есть возможность иметь базовую элементную базу. Потом есть архитекторы процессоров, которые собирают эту элементную базу в одну большую единую схему. Например есть такая иностранная архитектура ARM, в которой, как говорится, найдена ошибка. Потом благодаря аппаратуре созданной другими физиками мы получаем процессор в железе и пластмассе на определенной архитектуре. Потом этот процессор вставляется или припаевается к микросхеме. Насколько я помню ARM - программируемый контроллер, т.е. до пайки или после его программируют. Программа может иметь операционную систему (ОС), а может и не иметь, а может считывать ОС из внешнего носителя через интерфейс микросхемы, такие как i2c, uart, usb, sata, nvme и др. И уже на операционной системе выполняются программы. Они могут напрямую получать доступ к процессору, а могут использовать интерфейсы обращения к ОС. И вот конечные программы в конечном железе пользователя это то ради чего все это делается и планируется. Имейте это в виду перед тем как задать вопрос о том, кто вам мешает делать свои операционные системы?
И всё-равно не полно рассказал. Нужно и про американские процессы разработки добавить и как оно связано с финансированием и про то сколько нужно затратить сил и времени чтобы научиться и разработать. "Бесплатное" ПО не на коленке и не от балды делается. Вот именно поэтому у господ с высоким ЧСВ из-за синьцорности вообще нет открытого кода, зато много громогласных заявлений что это можно делать просто, ну или есть незначительное участие в готовых проектах. Делать что-то с нуля и заявлять как это просто не одно и то же. Вот вам и "кто мешает"?
Вот если вы бы знали элементарно процессы, то таких новостей как очередной директор очередного предприятия уехал в неизвестном направлении с кучей денег не было. А такие новости четко говорят о том что процессы либо не известны, либо применяемые не эффективны. Но об этом вам никто не расскажет - вроде как не совсем инженерное это дело, хоть и на прямую и существенно влияет на результат.
Ну и когда уже запретят чтение сегмента кода? Чтобы гаджеты невозможно было найти.
Так это ж данные, а не код. Можете уточнить, вы имеете в виду что они хранятся в одном и том же месте, где-то в оперативной памяти?
Если кому интересно глянуть на отрывок кода, тут нашел: https://www.msn.com/en-us/news/technology/arms-tiktag-attack...
Или даже тут немного лучше: https://www.bleepingcomputer.com/news/security/new-arm-tikta.../
лол, это про чтение памяти в рамках одного процесса?
Даже и не знал, что такое чтение защищено каким-то тэгированием. Век живи, век учись.
Implications and industry responseThe leakage of MTE tags is not tied to the leakage of passwords, encryption keys, etc.
расходимся
А это тегирование не на каждом процессоре есть. Вы бы перечитали как оно работает.
> А это тегирование не на каждом процессоре есть. Вы бы перечитали как
> оно работает.раскройте тему. "А это тегирование не на каждом процессоре есть." и?
Я другой аноним, но попробую ответить. Оно аппаратное и работает на определенных процессорах. Выставляете тег безопасности и как только выполняется переполнение буфера - согласно информации в теге (а это некий объект) выполняется код указанный по ссылке на аварийный, как-раз на этот случай. Так вот этот тег не является секретом для всех приложений и его использование фактически потенциальная утечка информации потому что вредоносная программа попав на эту машину поменяет тег где нужный код. Вот поэтому и придумано решение компилировать Линукс (или Андроид) без поддержки данного тега. Впрочем при программировании без ОС эта возможность удобна на самом деле.
https://community.arm.com/arm-community-blogs/b/architecture...А, ну не совсем так - оно лочит часть занятой памяти ключём. Когда программа в будущем будет использовать этот указатель, ссылаясь на какую-то часть блока, все будет хорошо. Указатель по-прежнему содержит правильный ключ. Но если блок освобожден и его ключ изменен, последующее использование этого устаревшего указателя вызовет неисправность процессора из-за несоответствия ключа, что указывает на ошибку программирования или попытку эксплойта уязвимости, которые вы хотите поймать.
https://www.theregister.com/2024/06/18/arm_memory_tag_extens.../
В общем исследователи обнаружили что при определенных условиях за 4 секунды можно в 95% случаев угадать ключ. Используя гаджеты – шаблонов машинных инструкций в памяти –, ученые обнаружили, что могут наблюдать шаблоны доступа к памяти, чтобы определить тег MTE данного адреса памяти. По их словам, коренные причины связаны с тем, как результаты проверки тегов влияют на предварительную выборку данных ЦП, а также с тем, как ядро ЦП предотвращает пересылку с сохранением и загрузкой при ошибке проверки тегов.
Они короче код на гитхаб выложили: https://github.com/compsec-snu/tiktag
И если почитать что такое спекулятивное исполнение: https://www.intel.com/content/www/us/en/developer/articles/t...
То можно сделать вывод что торопясь побыстрее обеспечить безопасность, получили уязвимость. А значит аллокация с помощью mte не гарантирует что кто-то ещё получит доступ к аллоцированной памяти. Ну и это означает что отпечаток памяти можно считать и изменить. Я подумал сначала что оно совсем по другому работает
Понимаете? Архитектура процессора это тоже в некотором смысле программа, хоть и электроника. Там тоже бывают ошибки характерные программированию.
> результат спекулятивного выполнения отбрасывается, но полученные данные остаются в кэше
> для каждых 16 байт физической памяти создаётся 4-битовый тег, который выступает подобием ключа для доступа к этой памятиМы будем городить усложнения на усложнения, лепить заплатки на заплатки, будем заворачивать левую ногу за правое ухо и правую - за левое, но никогда, никогда, слышите вы, никогда не будем обнулять память с результатами спекулятивного выполнения после неверно угаданного перехода.