Современные веб-приложения активно используют динамические интерфейсы, построенные на DOM (Document Object Model). DOM предоставляет разработчикам широкие возможности и гибкие инструменты для управления содержимым страниц в реальном времени. Однако эта же гибкость оборачивается уязвимостью — интерфейс можно использовать не только по назначению.
Почему DOM-инъекции стали особенно сложными для обнаружения
DOM-инъекции — это тип клиентских атак, при которых вредоносный код внедряется напрямую в структуру страницы на стороне пользователя. Скрипт запускается в браузере, перехватывает действия, получает доступ к данным, изменяет поведение интерфейса — и всё это без взаимодействия с сервером и без срабатывания традиционных мер и инструментов защиты.
Злоумышленники всё активнее совершенствуют методы атак, а традиционные средства защиты теряют эффективность. Вот основные причины:
1. Объем и сложность современных приложений
Большинство веб-продуктов используют десятки внешних скриптов, загружаемых с различных CDN. Это создаёт благоприятную среду для атак: злоумышленники внедряют вредоносный код в малоизвестные зависимости, где он остаётся незамеченным. При этом классические сигнатурные средства не позволяют обнаружить большинство подобных атак.
2. Маскировка и динамические инъекции
Современные инъекции редко используют прямое внедрение <script>
. Вместо этого вредоносный код внедряется в легитимные фреймворки или активируется только при определённых пользовательских действиях. Такие сценарии обходят статические правила и делают шаблонный анализ недостаточно эффективным.
3. Ограничения традиционных средств
Чёрные списки доменов, офлайн-сканеры и статические и большинство динамических правил не способны отследить угрозы, которые формируются в реальном времени. Современные формы атак динамически собирают необходимую кодовую базу уже в браузере. Когда защита её "видит" — инцидент, как правило, уже произошёл.
Основные типы DOM-инъекций
- Перехват систем управления интерфейсом: замена ссылок и элементов управления с перенаправлением на вредоносные ресурсы.
- Скрытый кейлоггинг: слежение за вводом текста, действиями пользователя и отправка данных на сторонние серверы.
- Подмена DOM-элементов: отображение фальшивых форм, всплывающих окон или баннеров с целью кражи данных.
- Обход CSP: использование легитимных загрузчиков, доверенных поддоменов и
data:
ссылок для обхода политики безопасности веб-ресурсов.
Подход JuicyScore: система обнаружения DTS
Для противодействия этим угрозам мы разработали DTS (Direct & Correlated Detection System) — гибридную систему, сочетающую глубокий мониторинг DOM и поведенческий анализ сессий в реальном времени.
Прямая детекция (DOM API-инструментирование)
Мы отслеживаем ключевые вызовы DOM API — такие как appendChild
, setAttribute
, eval
— и выявляем отклонения от легитимных шаблонов поведения. Это позволяет обнаруживать подозрительные изменения структуры страницы на раннем этапе, до того как они успеют повлиять на пользователя.
Поведенческое определение (анализ сессий)
DOM-инъекции не существуют в вакууме. Data-science инструменты позволяют провести детальный анализ поведение всей сессии:
- Нарушение целостности браузерных API;
- Поведение связанное с высоким итоговым риском сессии;
- Многократные перезагрузки страниц;
- Анормальное поведение виртуального пользователя или искусственное замедление интернет сессии и т.д.
Выявление корреляций подобного типа позволяет находить дополнительные угрозы и формы атак на уровне DOM объектов.
Первые результаты
- Сессии с единичными инъекциями реальных пользователей: примерно в 1 % сессий по всему миру фиксируется не менее одной инъекции с повышенным риском (обычно от сторонних виджетов), которые автоматически обрабатываются;
- Сессии с множественными инъекциями реальных пользователей: менее 0,2 % сессий содержат сразу несколько инъекций, что требует немедленного реагирования с высоким приоритетом.
- Выявление рисков: наш новый DataScience-подход обнаруживает более 40 % сессий с рискованными инъекциями, которые раньше не попадали в поле зрения в рамках существующих подходов.
- Скорость и точность: благодаря DTS скорость и точность обнаружения угроз выросли более чем в 10 раз, а время ручного анализа сократилось более чем на 80 %.
Что дальше?
В предстоящем релизе API17+ мы представим:
- Расширенную серверную телеметрию по выявлению опасных инъекций;
- Улучшенные алгоритмы оценки риска;
- Возможность блокировать DOM-инъекции до их проявления и влияния на итоговых пользователей — в момент их появления в DOM.
Как защититься уже сейчас
DOM-инъекции — это форма атак значительная часть которых остаются незаметными для традиционных средств защиты. JuicyScore предлагает иной подход: динамический поведенческий анализ в сочетании с глубоким анализом клиентской среды. Такой метод позволяет выявлять атаки на ранней стадии и предотвращать ущерб, прежде чем он возникнет.
Если вы работаете с веб-приложениями, использующими сторонние скрипты, — сейчас самое время расширить стратегию защиты Ваших веб ресурсов.