АдминистрированиеНовости

Проблема «синтетических кликов» по-прежнему актуальна для macOS

«Синтетическое» взаимодействие с пользовательским интерфейсом по-прежнему является большой проблемой для устройств на базе macOS, невзирая на все попытки инженеров Apple пресечь подобные злоупотребления.

Выступая на конференции Objective by the Sea, известный ИБ-эксперт и бывший сотрудник АНБ Патрик Вордл (Patrick Wardle) ) сообщил о 0-day уязвимости в устройствах Apple, которые все еще уязвимы перед проблемами «синтетическими» кликами. Перед проблемой уязвимы все macOS-устройства, даже работающие с новейшими версиями ОС.

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

Дело в том, что операционная система сама предлагает использовать такие «виртуальные» клики людям с ограниченными возможностями, хотя инженеры Apple и заложили в этот процесс определенные ограничения для защиты от злоупотребления. К тому же «синтетическими» кликами уже довольно давно злоупотребляет малварь (например,  DevilRobber, FruitFly и Genieo).

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

Новая атака, предложенная Вордлом, связана с системой Transparency Consent and Control (TCC), а именно с базой данных AllowApplications.plist. В этом файле содержится список приложений и их версий, которым разрешается получаться доступ к определенным функциям приватности и безопасности, в том числе и к «синтетическим» событиям. Среди привилегированных приложений в списке: Steam (до 1.6), VLC (до 3.1), версии игр Blizzard Heroes of the Storm, Diablo 3, Starcraft, Starcraft 2, World of Warcraft и различные версии другого ПО.

По словам Уордла, эта скрытая БД TCC содержит ошибку, которую злоумышленник может использовать для получения доступа к «синтетическим» событиям. Дело в том, что macOS проверяет приложение, запрашивающее доступ, по списку TCC: производится верификация подписи приложения и целостности файла. Но Уордл пишет, что фактически выполняется только первая проверка.

В итоге атакующий, имеющий хотя бы минимальный доступ к целевой системе, может загрузить любое приложение из списка  AllowApplications.plist, добавлять к нему код для взаимодействия с «синтетическими» событиями, и запустить его, обойдя запреты Apple.

«Например, в этом списке находится VLC. Теоретически Apple пытается проверить, что приложение с именем VLC, это действительно VLC.app и это исходная (неизмененная) версия. Для этого проверяется как подписан код приложения: подписан ли он разработчиком VLC, и действительна ли подпись.

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

Так что да, вы можете добавлять вредоносный код, вредоносные ресурсы и так далее. Например,  VLC загружает плагины из своего bundle’а. Так что мы можем просто поместить туда новый (вредоносный и неподписанный) плагин. Он загрузится и сможет генерировать “синтетические” клики»», — рассказывает Вордл.

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

Ваш e-mail не будет опубликован. Он потребуется для подтверждения Вашего поста.
Оформление текста Нажмите «Ввод», чтобы отправить ответ.