❝[Консенсус Тьюринга]❞

Post

This post by its id.

https://api.web3aggregator.io/api/v1/posts/16805
curl -H "Authorization: Bearer $W3A_API_KEY" 'https://api.web3aggregator.io/api/v1/posts/16805'

Needs a key: W3A_API_KEY in your environment.

The API gives this message alone: an album's other parts are posts of their own there, linked by album.

API docs
💀 Ключи утащил не вирус, а слабый генератор в самом кошельке

18 октября из сети Qubic за 104 минуты опустошили 1404 кошелька — около 2,94 трлн токенов QU, примерно на $1,3 млн. Сам блокчейн при этом не ломали. Сеть успели остановить: 87% украденного заморозили прямо в ончейне, ещё 13% застряли на бирже MEXC и были заблокированы.

Дыра оказалась в самом банальном месте — в том, как кошелёк генерировал сид-фразу.

🖥 Где была дыра

Чтобы создать кошелёк, программе нужна случайность — из неё рождаются приватный ключ и те самые 12–24 слова. Qubic брал эту случайность функцией Math.random() — это встроенный в браузер генератор случайных чисел: быстрый, но не криптостойкий. Числа он считает по фиксированной формуле, поэтому по нескольким его значениям можно вычислить оставшиеся.

А значит, атакующему не нужен ни твой телефон, ни троян, ни «эксплойт» в железе. Достаточно достроить ту же последовательность, которую выдаёт генератор, — и чужие фразы восстанавливаются удалённо, пачками.

❗️ Кого это касается и что делать

Под удар попали фразы, созданные:
➡️ на iPhone и iPad в любом браузере;
➡️ в Safari на Mac;
➡️ в старом iOS-приложении Qubic (до июля 2025).

Почему именно техника 🍏Apple? На iPhone и iPad любой браузер обязан работать на одном движке — том же, что и у Safari. Слабый генератор сидел как раз в нём, поэтому «безопасного» браузера на айфоне не было в принципе: случайность везде бралась из одного уязвимого места.
На Mac этот же движок работает аналогично — внутри Safari.

Генератор уже починили в версии 4.26.4.
Но есть нюанс: обновление защищает только новые кошельки. Старая фраза, созданная слабым генератором, остаётся уязвимой — команда прямо признаёт, что не может гарантировать её безопасность.

Поэтому «обновить приложение» — это полдела. Если кошелёк создавался в браузере или на телефоне, нужно завести новую фразу на криптостойком генераторе (аппаратный кошелёк, оффлайн) и перевести туда средства.

⌛ Мы это уже проходили

Та же ошибка — Math.random() в основе ключей — всплывала уже не раз. Самый громкий эпизод: Randstorm, кошельки 2011–2015 годов на библиотеке BitcoinJS. По оценке исследователей под угрозой тогда оказались миллионы кошельков и активы примерно на $2,1 млрд.
Одна и та же грабли — и за пятнадцать лет индустрия так и не перестала на неё наступать 🫣.

-----
Всю прошлую неделю ключи «жили» то в железе Ledger, то в легитимном контуре ЦБ — а слабым оказалось самое простое звено: программа, которая тянула случайности в момент создания кошелька.

И отдельная ирония от Qubic.
Проект, который год назад демонстративно «атаковал» Monero, доказывая силу децентрализации, спас своих же пользователей ручной остановкой сети силами... ~676 валидаторов.
Деньги вернули и «this is horosho», но заодно показали: заморозить любой адрес здесь можно решением небольшой группы. Для сети, которая зовёт себя децентрализованной, это такой себе комплимент🤔.

🔔
ПОДПИСАТЬСЯ НА КАНАЛ

💱 Проверенная обменка
💀 Ключи утащил не вирус, а слабый генератор в самом кошельке
This channelRUOpen in TelegramChannel