Оставленная 16 июня группой инжиниринга из центра безопасности Microsoft (Microsoft Security Response Center, MSRC) запись в блоге поясняет, почему в настоящее время Microsoft не планирует поддерживать API-интерфейс WebGL, уже реализованный в браузерах Firefox и Chrome, в т. ч. в их версиях для Linux, а также в версиях Opera и Safari для разработчиков. Группа пишет: “Мы считаем, что WebGL, вероятно, станет постоянным источником трудно устранимых уязвимостей. Именно поэтому в своем нынешнем виде WebGL не является такой технологией, которую Microsoft может поддерживать”.

Это стало ударом для некоммерческого консорциума Khronos Group, который перенял у фонда Mozilla Foundation разработку WebGL и ранее в этом году выпустил версию 1.0.

Группа характеризует WebGL как “предназначенный для Интернета API-интерфейс трехмерного рендеринга в непосредственном режиме. Он является ответвлением OpenGL ES 2.0 и обеспечивает сходные функции рендеринга, но в контексте HTML”.

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

Но, считает Microsoft, поскольку эта технология предоставляет веб-сайтам прямой доступ к низкоуровневым аппаратным графическим функциям, с ее помощью можно делать некоторые гадости. Корпорация ссылается на продолжающуюся работу лондонской консультативной фирмы Context Information Security. В мае та опубликовала запись в блоге о том, что сумела создать веб-страницы, вызывающие с помощью WebGL аварийное завершение работы компьютеров посетителей.

В записи от 16 июня Context утверждает, что вредоносные веб-сайты могут также использовать WebGL для считывания содержания графической памяти. Как показано на иллюстрации, это позволяет украсть любые данные, которые выводятся на экран пользователя.

Context и Microsoft отмечают, что уязвимости в WebGL не всегда будут проявляться в API-интерфейсе, но будут возникать также в некоторых веб-браузерах или драйверах графических карт, из которых одни защищены больше, другие меньше. Microsoft указывает в своей записи, что “пользователи не привыкли проверять, установлены ли у них новейшие драйверы графических карт, что было бы необходимо для безопасного серфинга в Интернете”.

Context в записи от 16 июня “рекомендует пользователям и системным администраторам отключить WebGL”. В свою очередь, Microsoft формулирует следующие основные претензии:

  • поддержка WebGL браузерами делает аппаратные функции непосредственно доступными через Интернет таким образом, который обеспечивает слишком широкие полномочия;
  • при поддержке браузерами WebGL они слишком сильно зависят от дополнительных программ при обеспечении безопасности серфинга в Интернете;
  • возможны сценарии системных DoS-атак.

В заключение Microsoft пишет: “Мы признаем необходимость разработки решений в данной области. Однако наша цель заключается в том, чтобы все решения такого рода были защищенными на стадии проектирования, защищенными по умолчанию и защищенными в процессе развертывания”.

Реакция Khronos

Отвечая на приведенные утверждения, представитель Khronos Джонатан Хершон сказал, что проблема мошенничества или случайных окон на рабочем столе была связана с ошибкой в реализации WebGL в Firefox, и о ней нельзя говорить как об общей для реализации WebGL в других браузерах. Более того, добавил он, этой проблемой занялись 26 мая, и в Firefox 5, выпуск которого намечен на 21 июня, она решена.

Между тем, отмеченные ранее проблемы с отказом в обслуживании, видимо, сохраняются, поскольку производители браузеров все еще пытаются обеспечить поддержку расширения GL_ARB_robustness. “Ожидается, что выявленные проблемы с отказом в обслуживании будут решены после интеграции данного расширения”, — сказал Хершон.

Подытоживая, Хершон заявил: “Все производители браузеров пока только работают над обеспечением совместимости с WebGL. Лишь после того, как браузеры успешно пройдут проверку на совместимость, они смогут претендовать на поддержку Canvas.getContext(“webgl”) вместо Canvas.getContext(“experimental-webgl”)”.

Наконец, Khronos указывает на запись в блоге Ави Бар-Зеева, главного архитектора подразделения Microsoft Research. В своем личном блоге RealityPrime Бар-Зеев пишет, что разочарован мнением сотрудников MSRC, которое “создает впечатление, будто Microsoft уходит от решения вопросов безопасности, которые требуют небольшой технической работы”.

Бар-Зеев продолжает: “WebGL будет работать и на моем ПК, и на вашем, тем или иным образом. Microsoft придется иметь с ним дело. Кстати, в действительности мы можем помочь сделать его гораздо более надежным, если возьмемся за это вместо того, чтобы демонстративно отворачиваться”.

В своей записи Бар-Зеев отмечает также, что в отличие от плагинов для браузеров (включая элементы управления ActiveX, впервые появившиеся в Microsoft Internet Explorer) WebGL не позволяет получать широкий доступ к низкоуровневым функциям. “Никакой записи на диск, никакого доступа к основной памяти, никакого кода для процессора помимо официально подписанных драйверов. В действительности этот шейдер может затронуть лишь вашу графическую карту и экран”.

В заключение Бар-Зеев пишет: “Совершенно очевидно, что есть только одно направление для продвижения Microsoft и трехмерной графики в Интернете. И это направление связано с WebGL”.