Security Week 2206: нетривиальный взлом браузера Safari

Security Week 2206: нетривиальный взлом браузера Safari
Исследователь Райан Пикрен (Ryan Pickren) на прошлой неделе опубликовал подробную историю обнаружения цепочки уязвимостей в браузере Safari и в других компонентах операционной системы MacOS. Всего речь идет о четырех уязвимостях, которые в теории могли привести к удаленному перехвату доступа к веб-камере или, как красиво выразился автор работы, «к краже всех данных доступа ко всем сайтам, которые вы когда-либо посещали через Safari».



Есть более сдержанное описание работы Райана: он построил достаточно сложную, но вполне реалистичную атаку, воспользовавшись рядом уязвимостей (скорее даже логических ошибок) в MacOS. Главным элементом атаки является особенность формата для хранения копий веб-страниц, известного как Web Archive. При отображении такой сохраненной страницы браузер Safari по умолчанию наделяет копию правами оригинала. Модификация архива, соответственно, позволяет получить доступ к секретным данным или воспользоваться разрешениями сайта, например для доступа к веб-камере.

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

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



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



А дальше происходит самая красивая часть атаки. Райан нашел способ избежать проверки с помощью Gatekeeper. Оказалось, что если подсунуть браузеру Safari ссылку на файл в формате .url, то он обработает ее и выполнит файл, на который она указывает, без проверки! Этот формат, во-первых, древний , а во-вторых, был придуман вообще-то для Windows — Safari парсит его для совместимости. Осталось решить одну маленькую проблему: по умолчанию файл из iCloud сохраняется в папку с именем пользователя в пути, что усложняет его открытие с помощью ссылки .url. Райан добавил еще один этап: загрузку и выполнение дистрибутива в формате .dmg, который кладет файл .webarchive в папку с фиксированным путем.

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

Баг вполне можно квалифицировать как опасную уязвимость типа UXSS (Universal Cross Site Scripting). В итоге открытие копии веб-страницы с правами оригинала позволяет украсть любые данные с сайтов, где пользователь залогинен. Или же можно воспользоваться «унаследованными» разрешениями — например, сделать копию веб-страницы сервиса Zoom, которой позволено запускать веб-камеру. Можно активировать камеру удаленно и передать видеопоток злоумышленнику. По программе bug bounty Райан Пикрен получил 100 500 долларов. По имеющимся открытым данным, это, возможно, рекордная выплата от компании Apple за обнаруженную уязвимость.

В прошлом году Пикрен уже ломал Safari для получения доступа к веб-камере (и не только). Тогда он также нашел красивый баг: если обратиться из браузера к файлу с именем сайта (например, skype.com), то он унаследует разрешения и права реального сайта с таким URL.

Что еще произошло

Критические уязвимости, включая три с максимальным рейтингом CVSS в 10 баллов, были обнаружены ( новость , бюллетень ) в роутерах Cisco для малого бизнеса RV160, 260, 340 и 345.

Серьезная уязвимость закрыта в проекте Samba ( новость , бюллетень ). При наличии доступа к серверу с правами записи атакующий может вызвать выполнение произвольного кода.

Исследователи «Лаборатории Касперского» опубликовали обзор потенциальных угроз в телемедицине, включая медицинские IoT-устройства. Важный элемент исследования — статистика по уязвимостям в протоколе MQTT, который используется в носимых медицинских устройствах и сенсорах.
CVE-2021-30861 safari uxss
Alt text

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!