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

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

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

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


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

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

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

ИИ написал эмулятор NES: Donkey Kong запустили прямо в браузере

Разработчик-энтузиаст Родриго Делдука решил проверить, на что на самом деле способен ИИ в «настоящем» программировании — и добился неожиданного результата. Он сумел заставить Claude сгенерировать рабочий эмулятор NES, пусть и с оговорками. Причём не просто абстрактный код, а вполне функциональный проект, на котором можно запустить, например, Donkey Kong прямо в браузере.

Эмулятор был создан в виде набора Lua-скриптов, которые работают поверх собственного 2D-движка Делдуки — Carimbo.

ИИ сгенерировал отдельные модули для процессора NES, графического чипа (PPU), ввода, шины данных и других компонентов. Всё это действительно «оживает» и взаимодействует между собой так, как должен работать настоящий эмулятор.

NES — одна из самых популярных платформ для эмуляции — консоль старая, картриджная и относительно простая по архитектуре, поэтому её часто используют как учебный пример или тестовую площадку для новых технологий. Но даже на этом фоне задача написать эмулятор — это уже не «крестики-нолики» и не Minesweeper. Тут важны точный тайминг, синхронизация компонентов и корректная эмуляция железа.

 

Исходники проекта Делдука выложил на GitHub, и по ним хорошо видно, насколько всё это сложно даже в минимальной реализации. Названия файлов говорят сами за себя: CPU, PPU, Input, Bus — каждый элемент NES вынесен в отдельный скрипт, и все они должны работать как единый механизм.

Важную роль здесь играет Lua — лёгкий, быстрый и встраиваемый язык с открытой лицензией MIT, который Claude умеет генерировать без особых проблем. А движок Carimbo, написанный на C++23 и использующий SDL, изначально поддерживает Lua-скрипты и умеет работать не только на десктопе, но и на мобильных платформах и в браузере через WebAssembly.

Правда, без ложки дёгтя не обошлось. По словам самого автора и отзывам пользователей, эмулятор получился медленным. В комментариях кто-то иронично заметил, что «цена ИИ-кода» — это падение производительности в 40 раз по сравнению с другими браузерными NES-эмуляторами, да ещё и без звука. Для контраста Делдука вспоминает, как в конце 1990-х играл в NESticle на Pentium 120 — и всё летало.

Тем не менее сам факт остаётся впечатляющим: ИИ смог собрать сложную систему, а не просто игрушечный пример. Да, это не замена ручной разработке и не промышленное качество, но как эксперимент — результат более чем показательный.

Протестировать всё это добро можно здесь, поиграв в Donkey Kong.

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