Исследователи Unciphered обнаружили новый эксплойт под названием Randstorm, который представляет угрозу для криптокошельков, созданных в период с 2011 по 2015 годы. Этот термин используется для описания набора ошибок, которые привели к созданию кошельков с уязвимыми криптографическими ключами. Оценки исследователей показывают, что суммарный объем крипты на таких кошельках составляет около 1,4 миллиона BTC.
Согласно предположению, только 3-5% всех кошельков, созданных в указанный период времени, подвержены уязвимости. Текущая стоимость монет, находящихся под угрозой, оценивается в диапазоне от 1,2 до 2,1 миллиарда долларов США (при условии, что 1 BTC равен 30 000 долларов).
Проблема была обнаружена в январе 2022 года, когда специалисты занимались заказом клиента, у которого был заблокирован доступ к кошельку Blockchain.com. Однако исследователь с псевдонимом ketamine уже в 2018 году столкнулся с этой проблемой.
Уязвимость связана с использованием пакета BitcoinJS, открытого исходного кода JavaScript, который применяется для разработки браузерных приложений криптовалютных кошельков. Randstorm основан на функции SecureRandom() в библиотеке JavaScript JSBN, которая в сочетании с криптографическими слабостями в функции Math.random(), существовавшими на тот момент, позволяла использовать слабые псевдослучайные числа.
В марте 2014 года разработчики BitcoinJS прекратили использование JSBN, но проблема осталась и может быть использована для атак методом перебора и восстановления закрытых ключей кошелька, сгенерированных с помощью библиотеки BitcoinJS или ее зависимых проектов.
Наиболее уязвимыми оказываются кошельки, созданные до марта 2012 года.
Согласно предположению, только 3-5% всех кошельков, созданных в указанный период времени, подвержены уязвимости. Текущая стоимость монет, находящихся под угрозой, оценивается в диапазоне от 1,2 до 2,1 миллиарда долларов США (при условии, что 1 BTC равен 30 000 долларов).
Проблема была обнаружена в январе 2022 года, когда специалисты занимались заказом клиента, у которого был заблокирован доступ к кошельку Blockchain.com. Однако исследователь с псевдонимом ketamine уже в 2018 году столкнулся с этой проблемой.
Уязвимость связана с использованием пакета BitcoinJS, открытого исходного кода JavaScript, который применяется для разработки браузерных приложений криптовалютных кошельков. Randstorm основан на функции SecureRandom() в библиотеке JavaScript JSBN, которая в сочетании с криптографическими слабостями в функции Math.random(), существовавшими на тот момент, позволяла использовать слабые псевдослучайные числа.
В марте 2014 года разработчики BitcoinJS прекратили использование JSBN, но проблема осталась и может быть использована для атак методом перебора и восстановления закрытых ключей кошелька, сгенерированных с помощью библиотеки BitcoinJS или ее зависимых проектов.
Наиболее уязвимыми оказываются кошельки, созданные до марта 2012 года.
Эти результаты подчеркивают важность безопасности зависимостей в программной инфраструктуре с открытым исходным кодом. Они показывают, как уязвимости в таких фундаментальных библиотеках могут вызывать каскадные риски для цепочки поставок, подобно случаю с Apache Log4j в 2021 году.
Уязвимость уже присутствует в кошельках, созданных с использованием уязвимого ПО, и она останется там навсегда, если средства не будут переведены в новый кошелек, созданный с помощью обновленного ПО.