Большинство фреймворков, предназначенных для реализации интерактивного функционала в веб-приложениях, некорректно используют язык JavaScript. Это обстоятельство может привести к утечке данных о пользователях из веб-приложений, утверждают сотрудники американской компании Fortify Software.
Проблема, которую в Fortify Software назвали «взломом яваскрипта», возникает по причине того, что многие утилиты на базе популярного комплекса технологий AJAX используют скриптовый язык как транспортный механизм, не уделяя при этом должного внимания безопасности. Основная угроза при этом исходит от сайтов, применяющих так называемую подделку http-запросов (XSRF). С помощью подобных запросов владельцы вредоносных сайтов воруют данные из AJAX-приложений. Пока эта проблема актуальна для относительно небольшого числа сайтов, однако использование AJAX растет, а вместе с ним будет расти и число уязвимых систем, отмечает ведущий научный специалист Fortify Software Брайан Чесс. "Мы стараемся
донести до разработчиков, что у них появился по крайней мере один повод для размышлений, которого не существовало ранее. Обычно специалисты по информационной безопасности появляются спустя длительное время после того, как что-то случается. Однако на этот раз у нас есть шанс решить проблему до ее реального возникновения", - заявил Чесс.
Если AJAX-атаки используют язык скриптов вполне понятным образом, то «взлом JavaScript» оказывается абсолютно новой угрозой. «Это тот случай, когда даже опытные разработчики не представляли масштаб угрозы, поскольку о ней не подозревали даже члены информационного сообщества», - подчеркивает Чесс. «Взлом яваскрипта» реализует тенденцию, существующую в современных веб-приложениях, — сбор данных через скрипт-структуры. Например, сайты, в которых предусмотрен формат обмена данными JavaScript Object Notation (JSON), обрабатывают информацию, оперируя JavaScript-переменными. Учитывая это, хакер может настроить вредоносную веб-страницу для отправки запросов к атакуемому сайту через
пользовательский браузер.
Уязвимы для взлома приложения, собирающие данные из одного или нескольких внешних источников и включающие в себя при этом функцию обратного вызова. Такая функция, как правило, используется для многократного повторения задачи. Кроме того, уязвимыми являются приложения Microsoft's ASP.NET Atlas, XAJAX, Google's Web Toolkit. Список можно дополнить еще целым рядом созданных веб-программистами фреймворков.
По мнению Fortify Software, представители которой обсудили сложившуюся ситуацию с ведущими разработчиками AJAX-фреймворков, существует два пути решения проблемы. Первый — научиться защищать сайты от подделки http-запросов. В этом случае одновременно будет найдена защита также от «взлома яваскрипта». Наилучшей реализацией данного способа экспертам американской компании представляется встраивание в каждый запрос хорошо замаскированных символов-маркеров. Вторым путем может стать внедрение в JavaScript внешнего кода, который перед обработкой необходимо удалять. В противном случае выполнение скрипта будет приостанавливаться.