Исследователи описали эффективный метод DoS-атаки на популярные веб-платформы

Исследователи описали новый метод DoS-атаки на популярные веб-платформы

Исследователи описали новый метод DoS-атаки на популярные веб-платформы

На 28 конгрессе Chaos Communication, проходящем в эти дни в немецкой столице, специалисты представили информацию об изъяне, который существует в большинстве программных сред для веб-приложений и позволяет потенциальному злоумышленнику вызывать отказы в обслуживании без применения обширных вредоносных сетей и значительных вычислительных ресурсов.


В процессе работы сетевых программ на языках PHP, Java, Python и JavaScript используется хэширование, которое позволяет ускорять обработку ряда операций. Приложения вычисляют обычные математические хэши (не криптографические), знают, что при их генерации возможны столкновения (т.е. совпадения выходных значений функций хэширования), и надлежащим образом обрабатывают соответствующие коллизии. Процедура надежна, если ею не злоупотреблять. Однако, по данным немецких специалистов, злонамеренное использование ее особенностей может довольно быстро перегрузить сервер.

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

В качестве цели был выбран компьютер с Apache Tomcat; в начале своего доклада специалисты отправили на него несколько особых аргументов хэш-функций, и на всем протяжении их презентации аудитория могла наблюдать, как нагрузка на ЦП сервера не опускалась ниже 100%. В качестве возможного решения исследователи предложили разработчикам вышеупомянутых языков программирования ввести механизм случайной генерации ключей, используемых при вычислении хэшей; это помешает злоумышленнику вычислять специфические входные значения для подобных нападений. Необходимо заметить, что, например, в Perl такой механизм появился еще в сентябре 2003 года.

Firefox 148 первым внедрил встроенную защиту от XSS

Mozilla сделала важный шаг в борьбе с одной из самых живучих веб-уязвимостей — XSS (межсайтовый скриптинг). В Firefox 148 компания первой внедрила стандартизированный Sanitizer API, встроенный инструмент для очистки небезопасного HTML прямо на уровне браузера.

XSS десятилетиями остаётся в топе самых распространённых проблем веб-безопасности.

Суть проста: если сайт позволяет злоумышленнику вставить вредоносный HTML или JavaScript через пользовательский контент, атакующий может перехватывать действия пользователя, красть данные и управлять сессией до тех пор, пока уязвимость не будет закрыта. Несмотря на множество защитных механизмов, XSS стабильно держится в числе лидеров рейтингов вроде CWE-79.

Раньше разработчики полагались, например, на Content Security Policy (CSP), но её внедрение часто требовало серьёзной переработки архитектуры и постоянного контроля со стороны специалистов по безопасности. Для небольших проектов это оказывалось слишком сложно.

Sanitizer API призван упростить задачу. Он позволяет очищать небезопасный HTML перед тем, как вставлять его в DOM. Главная цель — заменить рискованное использование свойства innerHTML, которое «слепо» вставляет и исполняет всё, что ему передали.

Вместо этого предлагается метод setHTML(). Если злоумышленник попытается внедрить что-то вроде <img src=x onerror=alert(1)>, новый механизм автоматически удалит опасный атрибут onerror. В итоге пользователь увидит безопасный HTML без выполнения вредоносного кода.

По умолчанию API работает в безопасной конфигурации, но разработчики могут настраивать его под свои задачи — определять, какие теги и атрибуты разрешены, а какие нужно удалять. Для более строгого контроля Sanitizer API можно использовать вместе с Trusted Types, что позволит централизованно управлять вставкой HTML и блокировать небезопасные методы.

Появление Sanitizer API в Firefox 148 фактически открывает новую главу в браузерной защите от XSS. Ожидается, что другие крупные браузеры тоже внедрят этот стандарт.

Если setHTML() действительно начнёт массово вытеснять innerHTML, у разработчиков наконец появится простой и встроенный инструмент против одной из самых старых и упорных уязвимостей интернета.

RSS: Новости на портале Anti-Malware.ru