Исследователь Райан Пикрен (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, который используется в носимых медицинских устройствах и сенсорах.
![](https://habrastorage.org/webt/q9/wn/7p/q9wn7p51n7s2ild20anz5e1xpx8.jpeg)
Есть более сдержанное описание работы Райана: он построил достаточно сложную, но вполне реалистичную атаку, воспользовавшись рядом уязвимостей (скорее даже логических ошибок) в MacOS. Главным элементом атаки является особенность формата для хранения копий веб-страниц, известного как Web Archive. При отображении такой сохраненной страницы браузер Safari по умолчанию наделяет копию правами оригинала. Модификация архива, соответственно, позволяет получить доступ к секретным данным или воспользоваться разрешениями сайта, например для доступа к веб-камере.
Это штатная фича архивов страниц, сомнительная сама по себе с точки зрения безопасности. Впрочем, заставить пользователя скачать и открыть модифицированный файл .webarchive достаточно сложно, в том числе благодаря встроенным средствам защиты. Обход этой защиты и представляет собой самую интересную часть исследования.
Пикрен последовательно рассказывает о поиске уязвимостей — как он по очереди натыкался на механизмы защиты в MacOS и обходил их. Смоделировав атаку с помощью копии в формате .webarchive, он начал искать способы передать такой файл удаленно и заставить пользователя открыть его. Это нелегко из-за настроек безопасности по умолчанию, которые прямо запрещают открывать «чужие» копии веб-страниц, считая их вредоносными. Тут на помощь приходит баг во встроенном в MacOS ПО для работы с облачными файлами в «нативном» сервисе iCloud. Сервис ShareBear вызывается по умолчанию, если кликнуть в браузере на ссылку с префиксом icloud-sharing:. Можно расшарить файл и вставить на веб-страницу эту ссылку, по клику на которую пользователь увидит такое окно:
![](https://habrastorage.org/webt/uo/dq/ob/uodqobxd5tq1amgeq_xsiyesk44.png)
Ошибка обработчика таких ссылок заключалась в том, что подобное разрешение демонстрировалось пользователю один раз. В дальнейшем при переходе по ссылке файл открывался автоматически — даже если его содержимое менялось. Можно подменить безобидную картинку на исполняемый файл, и он будет запущен, хотя пользователь ранее согласился только на картинку. Но и эта проблема не позволяла запустить файл .webarchive напрямую: он по определению проверяется системой Gatekeeper, которая блокирует копии веб-сайтов как вредоносные.
![](https://habrastorage.org/webt/ev/9s/wu/ev9swunkvcrt9eswxvtfvqrsh3i.png)
А дальше происходит самая красивая часть атаки. Райан нашел способ избежать проверки с помощью 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, который используется в носимых медицинских устройствах и сенсорах.
petropavel
Вначале не поверил, что Apple действительно заплатил не сколько-нибудь, а именно стопицот долларов. Но ведь действительно.