В LLVM/Clang добавлена техника защиты стека SafeStack

В LLVM/Clang добавлена техника защиты стека SafeStack

В компилятор Clang добавлен код подсистемы SafeStack, предназначенной для защиты от типовых ошибок, вызванных повреждением памяти в результате работы со стеком и являющихся причиной большого числа эксплуатируемых уязвимостей (например, в 2014 году в Firefox было выявлено 55 подобных уязвимостей).

SafeStack позволяет предотвратить получение контроля над помещёнными в стек указателями в программах на C/C++ через сохранение указателей (адреса возврата, указатели на функции и т.п.) в отдельной изолированной области памяти, доступ к которой производится только с использованием специальных проверок корректности обращения к памяти. Таким образом, стек приложения разделяется на две части - защищённый стек для хранения указателей, адресов из регистров и локальных переменных, и незащищённый стек, в котором сохраняется всё остальное. В защищённый стек данные добавляются только после статической проверки и доступ к ним ограничен, что существенно усложняет организацию получения контроля над выполнением кода в результате совершения атак, пишет opennet.ru.

Накладные расходы от реализуемых в SafeStack дополнительных проверок несущественны и составляют 0.01-0.05%, что существенно меньше, чем при использовании методов на основе добавления меток в стек (stack cookies). Более того, в некоторых случаях наблюдается даже ускорение работы программы за счёт более эффективного использования кэша. Метод защиты отмечен как стабильный и уже опробованный при сборке Chromium, базовой системы FreeBSD и более 100 пакетов. Для включения SafeStack в clang добавлены новые опции "-fsafe-stack" и "-fno-safe-stack" (по умолчанию новый режим отключен), для отключения режима для отдельных функций реализован атрибут no_safe_stack. 

Новые AirTag всё ещё легко превратить в инструмент скрытой слежки

Исследователь и техноблогер Адриан Кингсли-Хьюз решил проверить, изменила ли Apple что-нибудь в защите AirTag от физического вмешательства. По его словам, новые версии трекеров по-прежнему крайне легко модифицировать, а самую популярную «доработку» — отключение встроенного динамика — можно выполнить буквально за пару минут.

Кингсли-Хьюз признаётся, что сам активно использует AirTag и считает их лучшими Bluetooth-метками на рынке: они не раз спасали его от потерянных ключей и лишних нервов в поездках.

Но у этой медали есть и обратная сторона. Несмотря на меры Apple и Google против слежки, на рынке по-прежнему массово продаются модифицированные трекеры, чаще всего с отключённым динамиком. А «тихий» AirTag гораздо проще использовать для скрытого отслеживания людей.

Чтобы проверить, усложнила ли Apple жизнь таким умельцам, исследователь купил упаковку новых AirTag и вскрыл один из них, причём намеренно без специальных инструментов — только с обычным спуджером.

 

Результат оказался показателен: корпус поддался без особых усилий, динамик был выведен из строя за считаные минуты, а сам трекер затем так же легко собрался обратно. После установки батарейки AirTag «ожил» — полностью рабочий, но уже без звука.

 

Весь процесс, от распаковки до финального теста, занял около двух минут. По словам Кингсли-Хьюза, новые AirTag не только не стали сложнее для вскрытия, но субъективно ощущаются даже более «дружелюбными» к разбору, чем предыдущие версии.

 

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

RSS: Новости на портале Anti-Malware.ru