Баг в функции JavaScript подвергает адреса Bitcoin риску брутфорса

Баг в функции JavaScript подвергает адреса Bitcoin риску брутфорса

Баг в функции JavaScript подвергает адреса Bitcoin риску брутфорса

Специалисты в области кибербезопасности предупреждают, что старые адреса Bitcoin, сгенерированные в браузере или через приложения на основе JavaScript, могут содержать недостаток, благодаря которому злоумышленники могут провести атаку брутфорс закрытых ключей, завладеть кошельками пользователей и украсть их средства.

Уязвимость существует из-за функции JavaScript SecureRandom(), которая используется для генерации случайного Bitcoin-адреса и его закрытого ключа (некого аналога пароля). Вся проблема заключается в том, что эта функция не генерирует по-настоящему случайные данные.

«Функция будет генерировать ключи, которые, несмотря на их длину, имеют менее 48 бит энтропии. Таким образом, на выходе будет не более тех же 48 бит. Затем SecureRandom() запускает номер, который он получает через устаревший алгоритм RC4, что еще снижает количество бит энтропии. Следовательно, ваш ключ становится более предсказуем», — уточнил обнаруживший брешь эксперт.

Напрашивается вывод — все адреса Bitcoin, созданные с использованием функции SecureRandom(), уязвимы для атак брутфорс, с помощью которых можно угадать закрытый ключ учетной записи.

Специалисты отмечают, что уязвимы все адреса Bitcoin, созданные с использованием BitAddress до 2013 года, а также Bitcoinjs до 2014 года. Wallet-приложения, использующие старые версии jsbn.js, по-прежнему генерируют слабые секретные ключи, которые легко сбрутфорсить.

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