среда, ноября 14, 2007

Уязвимость Cross Server Scripting (XSS) в Macromedia Flash Player

Macromedia стало известно о уязвимости в безопасности. Когда содержимое Macromedia Flash (SWF) загружаеться с другого, отличного от текущего домена, создаеться возможность чтения и передачи данных, таких как куки и html.

Важным моментом безопасности на стороне клиента являеться то, что скрипту не разрешается проверять, изменять или иным образом взаимодействать с данными, которые поступают из web, кроме текущего домена. Когда Flash анимация находиться внутри HTML страниц они могут определять свой собственный код и подключать сторонние сценарии используя функцию ActionScript getURL() . Когда это происходит, нарушаеться кросс-доменная безопасность в отношении flash роликов и HTML страниц на которых они располагаються. Это означает что у авторов flash роликов появляется возможность взаимодействовать с HTML кодом текущей страницы через ролик, используя скрипты расположенные на других доменах. Эта проблема возникает с ActiveX версией Macromedia Flash Player для Internet Explorer и Netscape плагином для Netscape Navigator. Эта проблема может повлиять только сайты, содержащие страницы с flash роликами, подгружаемыми с других доменов и/или могут быть написаны лицами, не обладающими доверием владельцем веб-сайта. Такими сайтами могут являться каталоги flash роликов сторонних разработчиков или форумы с "подписями" / аватарами на основе Macromedia Flash.

Простое решение - хранить загруженные сторонними авторами ролики на отдельном хосте с отдельным доменным именем и размещать их на странице внутри обвертки (отдельное окно или iframe). Такой вариант хорош тем что flash ролик будет иметь доступ к телу iframe через который он загрузился. То есть имеется в виду что он будет находится как бы в песочнице, из которой на главный сайт он не как не выберется. Например, если ролик распологаеться на главной странице www.macromedia.com, песочницу следует разместить на external.macromedia.com и это предотвратило бы любой доступ к даным основной страницы www.macromedia. com. Это не очень удобно так как есть браузеры не поддерживающие этот тэг, либо тэг может блокироваться файрволом (например Outpost Firewall).

Второй способ заключаеться в том что Macromedia выпустила обновленный Macromedia Flash Player, который поддерживает простой способ контроля содержимого. Веб-страницы с flash анимацие могут принимать новый параметр HTML кода (тег PARAM Internet Explorer, тег EMBED для Netscape Navigator). Этот параметр называется "AllowScriptAccess". Он может иметь два возможных значения: "always" и "never".
  • AllowScriptAccess - "never", функция ActionScript getURL не сможет выполниться.
  • AllowScriptAccess - "always", функция ActionScript getURL сможет выполниться..
  • AllowScriptAccess не указана в HTML страницы, то значение по умолчанию "always".
За дополнительной информацией по вопросам безопасности в Macromedia посетите: http://www.macromedia.com/security.