
Есть более сдержанное описание работы Райана: он построил достаточно сложную, но вполне реалистичную атаку, воспользовавшись рядом уязвимостей (скорее даже логических ошибок) в MacOS. Главным элементом атаки является особенность формата для хранения копий веб-страниц, известного как Web Archive. При отображении такой сохраненной страницы браузер Safari по умолчанию наделяет копию правами оригинала. Модификация архива, соответственно, позволяет получить доступ к секретным данным или воспользоваться разрешениями сайта, например для доступа к веб-камере.
Это штатная фича архивов страниц, сомнительная сама по себе с точки зрения безопасности. Впрочем, заставить пользователя скачать и открыть модифицированный файл .webarchive достаточно сложно, в том числе благодаря встроенным средствам защиты. Обход этой защиты и представляет собой самую интересную часть исследования.
Пикрен последовательно рассказывает о поиске уязвимостей — как он по очереди натыкался на механизмы защиты в MacOS и обходил их. Смоделировав атаку с помощью копии в формате .webarchive, он начал искать способы передать такой файл удаленно и заставить пользователя открыть его. Это нелегко из-за настроек безопасности по умолчанию, которые прямо запрещают открывать «чужие» копии веб-страниц, считая их вредоносными. Тут на помощь приходит баг во встроенном в MacOS ПО для работы с облачными файлами в «нативном» сервисе iCloud. Сервис ShareBear вызывается по умолчанию, если кликнуть в браузере на ссылку с префиксом icloud-sharing:. Можно расшарить файл и вставить на веб-страницу эту ссылку, по клику на которую пользователь увидит такое окно:

Ошибка обработчика таких ссылок заключалась в том, что подобное разрешение демонстрировалось пользователю один раз. В дальнейшем при переходе по ссылке файл открывался автоматически — даже если его содержимое менялось. Можно подменить безобидную картинку на исполняемый файл, и он будет запущен, хотя пользователь ранее согласился только на картинку. Но и эта проблема не позволяла запустить файл .webarchive напрямую: он по определению проверяется системой Gatekeeper, которая блокирует копии веб-сайтов как вредоносные.

А дальше происходит самая красивая часть атаки. Райан нашел способ избежать проверки с помощью Gatekeeper. Оказалось, что если подсунуть браузеру Safari ссылку на файл в формате .url, то он обработает ее и выполнит файл, на который она указывает, без проверки! Этот формат, во-первых,
В результате получилась хоть и реалистичная, но довольно сложная атака с несколькими «переменами файла» на стороне атакующего и многократным кликанием на ссылку на стороне жертвы. Apple сделала атаку невозможной двумя апдейтами. Во-первых, ShareBear запретили выполнять файлы. Во-вторых, обновление браузерного движка WebKit сделало невозможным открытие файлов «без карантина» при помощи метода со ссылкой .url.
Баг вполне можно квалифицировать как опасную уязвимость типа UXSS (Universal Cross Site Scripting). В итоге открытие копии веб-страницы с правами оригинала позволяет украсть любые данные с сайтов, где пользователь залогинен. Или же можно воспользоваться «унаследованными» разрешениями — например, сделать копию веб-страницы сервиса Zoom, которой позволено запускать веб-камеру. Можно активировать камеру удаленно и передать видеопоток злоумышленнику. По программе bug bounty Райан Пикрен получил 100 500 долларов. По имеющимся открытым данным, это, возможно, рекордная выплата от компании Apple за обнаруженную уязвимость.
В прошлом году Пикрен уже
Что еще произошло
Критические уязвимости, включая три с максимальным рейтингом CVSS в 10 баллов, были обнаружены (
Серьезная уязвимость закрыта в проекте Samba (
Исследователи «Лаборатории Касперского» опубликовали