Разработчики Mozilla укрепили защиту Firefox от атак внедрением кода, запретив использование встроенных скриптов (inline scripts) и функций eval() на служебных страницах браузера. Нововведения не позволят злоумышленникам выполнить вредоносную команду, изменить настройки браузера и похитить важные данные.

Обе опции, которые устранили специалисты, позволяют исполнять код в контексте приложения с его уровнем привилегий. Как отметил технический руководитель Mozilla по безопасности контента Кристоф Кершбаумер (Christoph Kerschbaumer), новые меры направлены на сокращение площади возможной атаки — теперь у злоумышленников будет меньше возможностей для злоупотребления возможностями браузера.

В Firefox встроено 45 служебных страниц about:, многие из которых открывают доступ к важным техническим данным. Например, about:config позволяет пользователю менять ключевые настройки браузера, на about:memory он может отслеживать потребление памяти, about:networking отображает информацию о сети.

Все эти страницы написаны на HTML и JavaScript. Поэтому взломщик может попытаться внедрить в них собственный код, который затем будет выполнен с теми же правами, с которыми работает Firefox. Исключение встроенных скриптов и eval-функций блокирует такую угрозу.

Теперь весь JavaScript-код будет исполняться, только если он был загружен через внутренний протокол браузера. Для этого разработчики Mozilla переписали все обработчики событий и перенесли встроенные JavaScript-сценарии в упакованные файлы для всех служебных страниц. Кроме того, была исключена возможность выполнения eval и подобных ей функций в контексте любого процесса, запущенного с системными привилегиями.

Специалисты также предусмотрели некоторые исключения из новых правил. Как пояснил Кершбаумер, некоторые пользователи используют вызов внешней eval-функции для кастомной настройки Firefox при запуске браузера. Это заменяет им компонент userChrome.js, который был заблокирован какое-то время назад из соображений безопасности. Эксперт Mozilla отметил, что в этом случае новый блокировщик будет разрешать выполнение eval().

Изменения не коснутся отображения интернет-сайтов в Firefox. В то же время разработчики намерены следить за тем, как потенциально опасные функции используются в сторонних расширениях и встраиваемых модулях. Если злоумышленники найдут новый способ применения этих команд, браузер будет отправлять уведомления команде безопасности Mozilla.

Категории: Кибероборона, Уязвимости