Гаманець Electrum виправив уразливість після крадіжки біткоїнів хакерами

BTC
біткоїн-гаманецьпатч безпекивразливістьвкрадені коштиElectrumЕксплойтRBF
2 години томуДжерело: crypto.news
Гаманець Electrum виправив уразливість після крадіжки біткоїнів хакерами

Electrum випустив версію 4.8.3, щоб виправити критичну вразливість Bitcoin-гаманця, яку зловмисні сервери використовували для перенаправлення платежів користувачів, і розробники підтвердили щонайменше один випадок викрадення коштів.

Короткий огляд

  • Electrum випустив версію 4.8.3 після підтвердження того, що зловмисні сервери використовували критичну вразливість.
  • Зловмисники замінювали незавершені Bitcoin-платежі шахрайськими транзакціями, які користувачі могли помилково авторизувати через підвищення комісії.
  • Двоє користувачів повідомили про інциденти, зокрема один втратив Bitcoin після збільшення комісії за транзакцію.
  • Вразливість впливала на всі версії Electrum до 4.8.3; розробники не розкрили загальні втрати.
  • Патч безпеки перевіряє підписи на непідтверджених транзакціях, що витрачають монети, які контролює гаманець.

Згідно з повідомленням про безпеку гаманця від 24 жовтня, зловмисники використали те, як Electrum обробляв непідтверджені Bitcoin-транзакції, замінюючи легітимні вихідні платежі шахрайськими, які користувачі могли випадково авторизувати під час підвищення комісії за транзакцію.

Electrum — це легкий Bitcoin-гаманець, який підключається до зовнішніх серверів для отримання історії транзакцій, трансляції та іншої мережевої інформації. На відміну від повного вузла Bitcoin, це програмне забезпечення не обробляє самостійно кожен аспект активності блокчейну.

У його документації пояснюється, що Electrum перевіряє підтверджені транзакції за допомогою спрощеної перевірки платежів, але історично довіряв своєму головному серверу під час відображення незавершених транзакцій.

Зловмисники використали цю відмінність, перехоплюючи транзакції, надіслані через зловмисні сервери, перш ніж вони досягали мережі Bitcoin.

Після запобігання трансляції легітимної транзакції зловмисник міг надіслати гаманцю заміну транзакції, яка змінювала адресу отримувача на ту, що контролював зловмисник.

Хоча заміна містила недійсні підписи, уразливі версії Electrum не перевіряли їх перед відображенням транзакції в історії гаманця.

Обман ставав небезпечним, коли користувачі намагалися збільшити комісію за транзакцію через Replace-by-Fee, або RBF — функцію Bitcoin, яка дозволяє замінити непідтверджений платіж іншим із вищою комісією.

Схвалюючи коригування комісії, користувачі могли несвідомо підписати дійсну транзакцію, що сплачувала зловмиснику.

Electrum підтверджує реальне використання та втрати Bitcoin

Розробники розкрили два приватно повідомлені інциденти, встановивши, що вразливість вийшла за межі теоретичної атаки.

11 жовтня користувач під іменем dannydeezy повідомив, що транзакція, відображена в історії Electrum, не відповідала платежу, який було спочатку надіслано.

Згідно з повідомленням, в обох інцидентах використовувалися адреси отримувача, контрольовані зловмисником, розроблені так, щоб збігатися з останніми чотирма символами Bitcoin-адреси передбачуваного отримувача.

У другому випадку шахрайська транзакція мала нульову комісію, і розробники підозрювали, що це було зроблено, щоб спонукати жертву ініціювати підвищення комісії.

Перше повідомлення стосувалося гаманця з мультипідписом два з трьох, який використовував два пристрої Trezor. Його легітимна транзакція містила 31 вхід і один вихід.

Слідчі виявили, що всі 62 підписи були дійсними для оригінального платежу, але недійсними для заміненої транзакції. Фальшивка перенаправляла майже весь Bitcoin на схожу адресу та повертала невелику суму до гаманця.

Оригінальна транзакція залишалася дійсною, але ніколи не досягла публічної мережі Bitcoin.

Electrum визнав, що деякі сервери здійснювали атаку в реальних умовах. Однак розробники не розкрили, скільки серверів брали участь, яку суму було викрадено або чи було виявлено додаткових жертв.

Electrum 4.8.3 блокує шкідливі транзакції з підвищенням комісії

Виправлення було включено у версію 4.8.3 23 жовтня, а бінарні файли для завантаження були випущені 24 жовтня.

Через коміт 90fe308 розробники запровадили перевірку підписів для непідтверджених транзакцій, які витрачають входи, що належать гаманцю користувача.

Тепер Electrum перевіряє ці підписи перед прийняттям транзакцій до своєї локальної історії, запобігаючи тому, щоб шахрайські вихідні платежі, описані в повідомленні, відображалися як легітимні транзакції.

Оновлення не робить Electrum повним вузлом Bitcoin. Розробники уточнили, що вхідні непідтверджені транзакції залишаються поза новими перевірками підписів, тоді як підтверджені платежі продовжують проходити існуючі процедури перевірки.

Користувачам, які використовують версії до 4.8.3, рекомендується завантажити оновлення з офіційного веб-сайту Electrum.

Тим, хто не може оновитися негайно, розробники радять перевіряти повні адреси отримання та суми перед підписанням транзакцій, включаючи заміни комісії.

Згідно з повідомленням, користувачі, які підключаються виключно до довірених серверів, включаючи власні, не піддаються цій конкретній атаці зловмисного сервера.

Попередні атаки на Electrum виявляють повторювані ризики серверів

Інцидент стався після попередніх спроб використати залежність Electrum від зовнішніх серверів.

У грудні 2018 року crypto.news повідомив, що зловмисні сервери відображали користувачам шахрайські інструкції щодо оновлення програмного забезпечення. Тодішні звіти оцінювали втрати близько 1 мільйона доларів.

Інша кампанія зловмисних серверів у 2019 році використовувала фальшиві оновлення гаманця та атаки типу відмови в обслуговуванні, щоб перенаправити користувачів до скомпрометованого програмного забезпечення.

Ті атаки покладалися на оманливі завантаження, тоді як нещодавно виправлена вразливість маніпулювала інформацією про незавершені транзакції всередині інакше легітимного гаманця.

Опубліковане у 2020 році інтерв'ю про сервери Electrum розглядало компроміси легких гаманців, включаючи їхню залежність від зовнішньої інфраструктури для історії транзакцій.

Власна документація Electrum зазначає, що його клієнт зазвичай підключається приблизно до 10 серверів, але вибирає один головний сервер для отримання історії гаманця та трансляції транзакцій. У документації зазначено, що цей головний сервер вважається довіреним щодо непідтверджених транзакцій.