В JS-движке V8 обнаружена критическая уязвимость HashWick
Новости
Злоумышленник может использовать уязвимость HashWick для DoS-атаки на сервер либо, в худшем случае, получить доступ к самой системе и ее данным.
1К открытий1К показов
Node.js-разработчик Федор Индутный опубликовал в своем блоге статью, раскрывающую подробности уязвимости HashWick, которая затрагивает все текущие версии V8. Он выяснил, как можно получить seed-значение используемой движком хеш-функции, чтобы провести DoS-атаку на сервер либо, в худшем случае, получить доступ к системе и ее данным.
Специалист отправил информацию об уязвимости разработчикам движка в мае 2018 года и опубликовал статью по прошествии 90 дней с того момента. Как отметила в своем блоге команда Node.js, патча пока нет, но его можно ожидать в течение следующих нескольких недель.
Подробнее об уязвимости
HashWick основана на трех ключевых понятиях:
- хеш-функции и хеш-таблицы;
- flood-атаки (отправка большого количества пакетов с целью заблокировать пропускной канал);
- атаки по времени (тайминг-атаки — сбор и анализ данных о промежутках времени, необходимых на выполнение той или иной операции).
Опытным путем Индутный определил, что отправки 2 ГБ данных на Node.js-сервер хватит для сбора достаточного количества информации, чтобы методом обратной разработки восстановить seed-значение хеш-функции.
Защита
Хотя патча пока нет, Node.js-разработчики могут принять меры, которые если не защитят сервисы от подобной атаки, то максимально усложнят злоумышленнику задачу:
- установить ограничение по скорости;
- установить ограничение на объем входных данных;
- использовать стандартные подходы к балансировке нагрузки.
Что касается патча для V8, сам Индутный предлагает как минимум увеличить размер seed-значения с 32 до 64 бит, а также перейти на использование более надежных хеш-функций — к примеру, на SipHash.
Незадолго до этого группа немецких ученых обнаружила в модулях Node.js 25 новых уязвимостей, открывающих сервисы для ReDos-атаки. Она эксплуатирует недостатки производительности кода при работе с регулярными выражениями и может «заморозить» сервер на период от нескольких секунд до минуты.
1К открытий1К показов