Технологии

Современные веб-приложения активно используют динамические интерфейсы, построенные на 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 — такие как appendChildsetAttributeeval — и выявляем отклонения от легитимных шаблонов поведения. Это позволяет обнаруживать подозрительные изменения структуры страницы на раннем этапе, до того как они успеют повлиять на пользователя.

Поведенческое определение (анализ сессий)

DOM-инъекции не существуют в вакууме. Data-science инструменты позволяют провести детальный анализ поведение всей сессии:

  • Нарушение целостности браузерных API;
  • Поведение связанное с высоким итоговым риском сессии;
  • Многократные перезагрузки страниц;
  • Анормальное поведение виртуального пользователя или искусственное замедление интернет сессии и т.д.

Выявление корреляций подобного типа позволяет находить дополнительные угрозы и формы атак на уровне DOM объектов.

Первые результаты

  • Сессии с единичными инъекциями реальных пользователей: примерно в 1 % сессий по всему миру фиксируется не менее одной инъекции с повышенным риском (обычно от сторонних виджетов), которые автоматически обрабатываются;
  • Сессии с множественными инъекциями реальных пользователей: менее 0,2 % сессий содержат сразу несколько инъекций, что требует немедленного реагирования с высоким приоритетом.
  • Выявление рисков: наш новый DataScience-подход обнаруживает более 40 % сессий с рискованными инъекциями, которые раньше не попадали в поле зрения в рамках существующих подходов.
  • Скорость и точность: благодаря DTS скорость и точность обнаружения угроз выросли более чем в 10 раз, а время ручного анализа сократилось более чем на 80 %.

Что дальше?

В предстоящем релизе API17+ мы представим:

  • Расширенную серверную телеметрию по выявлению опасных инъекций;
  • Улучшенные алгоритмы оценки риска;
  • Возможность блокировать DOM-инъекции до их проявления и влияния на итоговых пользователей — в момент их появления в DOM.

Как защититься уже сейчас

DOM-инъекции — это форма атак значительная часть которых остаются незаметными для традиционных средств защиты. JuicyScore предлагает иной подход: динамический поведенческий анализ в сочетании с глубоким анализом клиентской среды. Такой метод позволяет выявлять атаки на ранней стадии и предотвращать ущерб, прежде чем он возникнет.

Если вы работаете с веб-приложениями, использующими сторонние скрипты, — сейчас самое время расширить стратегию защиты Ваших веб ресурсов.