iPhone, iPad и MacBook отправляются в перезагрузку простым кодом, который можно внедрить куда угодно

Безопасность Стратегия безопасности Пользователю Интернет Интернет-ПО Техника
мобильная версия
, Текст: Роман Георгиев
Недочеты с интерпретацией свойств CSS в движке WebKit приводят к зависаниям и перезагрузке устройств, использующих браузеры на базе этого движка. В первую очередь, речь идет о гаджетах под управлением iOS и macOS.

15 строк кода достаточно

15 строк кода на CSS оказались в состоянии вывести из строя устройства на базе iOS и macOS. В минувшие выходные эксперт по безопасности Сабри Хаддуш (Sabri Haddouche) опубликовал код экспериментального эксплойта, который вызывал перезагрузку устройств на iOS.

Хаддуш, изучавший возможность DoS-атак на браузеры, обнаружил, что специально отформатированная ссылка, открытая через любой браузер на iOS-устройствах или через браузер Safari на macOS, вызывает перезагрузку устройств.

Причиной такого поведения оказывается ошибка в популярном открытом движке WebKit, на базе которого функционирует не только браузер Safari, но и некоторые браузеры под Linux.

Как оказалось, WebKit некорректно обрабатывает некоторые элементы CSS.

Тяжелая экспериментальная функция

В порядке эксперимента Хаддуш присвоил элементу <div> свойство CSS backdrop-filter (позволяющему применять графические фильтры к фону веб-страницы или элемента; сравнительно новая и ресурсоемкая функция CSS).

Хаддуш опубликовал образец кода на Github.

В его коде элемент <div>повторяется несколько тысяч раз, то есть, несколько тысяч раз вызывается функция backdrop-filter. Webkit не справляется с этим, «вычерпывает» системные ресурсы устройства и в итоге вызывает зависание или «панику ядра» (kernel panic).

iphonecss600.jpg
Опасность нависла над устройствами с движком WebKit в браузерах

Хаддуш указывает, что код можно интегрировать «в любой вебсайт, электронное письмо, QR-код и даже Captive Portals» - сервисы для подключения к бесплатному Wi-Fi. При обращении к ним браузера на базе WebKit, устройство на котором он запущен, через некоторое время подвисает или перезагружается.

Фильтрация фона

Есть сведения, что код эксплойта также вызвал падение браузера Internet Explorer 11 на Windows 7. на Google Chrome эксплойт не срабатывает, если в нем выключены «экспериментальные функции», к коим относится backdrop-filter. При их активации Chrome также подвисает или «падает».

Эксплойт не работает на iOS 8.4, поскольку функция backdrop-filter там еще не поддерживалась.

Компания Apple - один из разработчиков WebKit - уведомлена о наличие проблемы. Ее специалисты в настоящее время изучают проблему.

«Причинить какой-либо реальный вред с помощью этого пробного эксплойта будет сложновато, однако с небольшими модификациями его вполне можно превратить в источник серьезной угрозы, - считает Тарас Татаринов, эксперт по информационной безопасности компании «Информационные технологии будущего». - Остается надеяться, что разработчики WebKit не будут тянуть время и оперативно исправят ошибку с интерпретацией backdrop-filter - или аннулируют поддержку этого свойства до лучших времен».