HTML5: проблемы с безопасностью?

Автор: Анна Лысак Дата публикации: 03.09.2010

Обновленный набор стандартов открывает новые возможности не только для рядовых разработчиков, но и для «недоброжелателей». Как обстоят дела с безопасностью у детища W3C от которого так много ожидают?

В чем, собственно, проблема

уязвимости HTML5С приходом HTML5 веб-приложения становятся невероятно богаты и разнообразны — теперь браузер не просто дает возможность просматривать страницы, а предлагает полное управление различными приложениямиСид Стэмм (Sid Stamm), специалист по вопросам безопасности Firefox для Mozilla Foundation. Существует много возможностей для атак и мы должны о них помнить.

В то время, пока Стэмм выражал свое беспокойство по поводу HTML5, разработчики Opera были заняты устранением уязвимости переполнения буфера, которая могла быть использована взломщиком при помощи функции рендеринга HTML5 canvas. По уверениям разработчиков Opera, в большинстве случаев при переполнении буфера браузер просто завершит свою работу, но в некоторых случаях такая проблема может привести к «катастрофическому отказу» и делает браузер уязвимым. В версии браузера 10.61 проблема уже устранена.

Действительно ли предоставленный World Wide Web Consortium's (W3C) новый набор стандартов. известный под общим названием HTML5, приносит с собой совершенно новый пакет уязвимостей? Некоторые эксперты в области веб-безопасности считают, что это действительно так.

HTML5 дает много возможностей и хакерам тоже. Вы можете сделать намного больше [речь идет о вредоносном коде], используя простой HTML5 и Javascript, чем когда либо прежде — исследователь в области безопасности Лавакумар Куппан (Lavakumar Kuppan).

Термин «HTML5» часто используют также чтобы описать слабо взаимосвязанный набор стандартов, которые в комплекте можно использовать для создания полноценных веб-приложений. Такие стандарты предполагают возможности форматирования страниц, офлайновое хранение данных, передачи изображений и другое. Также, хоть это и не область компетенции W3C, Javascript также часто добавляется к этим стандартам, так как широко используется в создании веб-приложений.

Все новые функции и возможности начинают исследоваться специалистами в области безопасности.

Ранее, этим летом, Куппан в компании с другими исследователями опубликовал описание метода взлома при помощи HTML5 Offline Application Cache. Google Chrome, Safari, Firefox и бета-версия Opera уже реализовали эту функцию в своих сборках и будут, согласно опубликованным данным, уязвимы для атак.

Лавакумар Куппан утверждает, что для любого веб-сайта можно создать кэш-версию на компьютере пользователя и в некоторых браузерах это можно сделать без разрешения пользователя. То есть, злоумышленник может создать фальшивые страницы входа на сайт, особенно это касается таких ресурсов как социальные сети или сайты электронной коммерции — наиболее популярные у взломщиков. Соответственно, так могут быть украдены данные учетных записей пользователя. В первую очередь опасность существует для некоторых, особенно активных пользователей, любящих указывать в профайлах прямо-таки всю информацию о себе.

Мнения разных гуру в вопросах безопасности все-таки разделились относительно данного метода.

Многие считают, что это все конечно интересно, но не предоставляет никаких дополнительных возможностей для атак, помимо уже существующих. В частности такого мнения придерживается Крис Эванс (Chris Evans), создатель Very Secure File Transfer Protocol (vsftp).

Критики соглашаются, что такая атака реальна на сайте, где не используется Secure Sockets Layer (SSL) для шифрования при передаче данных между браузером и веб-страницей сервера, как это обычно практикуется. Но даже если исследование Лавакумара не открывает новую уязвимость, то оно показывает, что старые методы атак действенны и в новой среде.

И все же, критики спецификации настаивают, что с приходом HTML5 многие из новых возможностей представляют угрозу сами по себе из-за того, что они увеличивают количество возможностей для злоумышленника нанести вред пользователю, используя браузер. За годы развития сферы веб-безопасности большинство взглядов было сосредоточено на таких проблемах, как переполнение буфера, атаки с использованием кода на SQL. Эти уязвимости успешно исправляются, фиксируются и контролируются. Но в случае с HTML5 существуют опасения, что некоторые особенности спецификации могут использованы для атак.

В качестве примера Кевин Джонсон (Kevin Johnson, консалтинговая компания Secure Ideas) указывает на Gmail Google — один из первых сервисов, где начали использоваться возможности HTML5 для локального хранения данных. Раньше взломщику нужно было получить cookie с машины пользователя и декодировать их, чтобы получит пароль для онлайновой службы электронной почты. Теперь же ему достаточно получить доступ к браузеру пользователя, где хранятся копии записей ящика.

По словам Джонсона, такие возможности его пугают: получается, что если взломщик находит брешь в твоем веб-приложении и внедряет HTML5 код, то он получает возможность изменить твой сайт и скрыть от глаз вещи, которые он не хочет, чтобы ты видел.

При помощи локального хранилища данных (local storage) есть возможность считать данные браузера пользователя или внести любые другие данные без его ведома. С помощью функции геолокации возможно также определить местоположение пользователя, когда он об этом и не подозревает.

борьба с уязвимостями HTML5Наличие проблем не означает, конечно, что разработчики браузеров не работают над их решением. Даже когда речь заходит о добавлении поддержки новых стандартов всегда разрабатываются решения для предотвращения их «неправильного» использования. В ходе симпозиума Usenix, Стэмм заявил, что команда Firefox исследует некоторые методы, призванные смягчить вероятные «побочные эффекты» новых технологий.

Например, Mozilla работают над альтернативной платформой для создания плагинов (JetPack), которая позволит более жестко контролировать, какие действия может выполнить плагин.

JetPack может использовать декларативную модель обеспечения безопасности, когда плагин будет сообщать браузеру о каждом планируемом действии. И браузер сможет контролировать плагин, чтобы гарантировать, что все действия выполняются в рамках заявленных параметров.

Тем не менее, нам только предстоит увидеть, смогут ли разработчики браузеров сделать достаточно для безопасного использования HTML5.

Как сказал Кевин Джонсон: Командам [работающим над браузерами] еще следует хорошо подумать, вводить ли эти функции в своих новых браузерах. Это один из немногих случаев, когда есть вероятность услышать, что Internet Explorer 6 был лучше .

Таким будущее веб-разработки точно не хочется видеть. Хочется верить, что существующие и предполагаемые «дыры» в браузерах в большинстве своем будут устранены до того, как до них доберутся ловкие руки недоброжелателей и в данном случае мистер Джонсон просто перестраховывается, что тоже иногда совсем не лишнее.

Материалы