Нуль днів без інцидентів у сфері DeFi. Цього разу вразливість була виявлена в широко використовуваній «еліптичній бібліотеці».
Що ще більше ускладнює ситуацію – його експлуатація може призвести до того, що зловмисники отримають контроль над приватними ключами користувачів і висмокчуть кошти з гаманців.
Все через просте шахрайське повідомлення, підписане користувачем. Це критична проблема?
Першим, що слід врахувати, є те, що бібліотеки, такі як elliptic, надають розробникам готові компоненти коду.
Це означає, що замість того, щоб писати код з нуля і перевіряти його в процесі, розробники просто запозичують необхідні елементи.
Хоча це вважається безпечнішою практикою, оскільки бібліотеки постійно використовуються та тестуються, це також збільшує ризики, якщо одна вразливість пройде.
Бібліотека Elliptic широко використовується в екосистемі JavaScript. Вона забезпечує криптографічні функції в багатьох відомих блокчейн-проектах, веб-додатках та системах безпеки.
Згідно зі статистикою NPM, пакет, що містить помилку, завантажується приблизно 12–13 мільйонів разів на тиждень, з понад 3000 проектами, які безпосередньо вказують його як залежність.
Це широке використання означає, що вразливість потенційно впливає на величезну кількість додатків – особливо криптовалютні гаманці, вузли блокчейну та системи електронного підпису – а також на будь-яку службу, що покладається на підписи ECDSA через еліптичні, особливо при обробці зовнішньо наданого вводу.
Ця уразливість дозволяє віддаленим зловмисникам повністю скомпрометувати чутливі дані без належної авторизації.
Саме тому проблема отримала надзвичайно високий рейтинг серйозності – приблизно дев'ять з десяти за шкалою CVSS.
Важливо зазначити, що використання цієї вразливості вимагає дуже специфічної послідовності дій, і жертва повинна підписати довільні дані, надані зловмисником.
Це означає, що деякі проекти можуть залишатися безпечними, наприклад, якщо застосунок підписує лише заздалегідь визначені внутрішні повідомлення.
Проте багато користувачів не приділяють стільки ж уваги, підписуючи повідомлення через криптогаманці, як коли підписують транзакцію.
Коли сайт Web 3.0 просить користувачів підписати умови обслуговування, користувачі часто ігнорують їх читання.
Аналогічно, користувачі можуть швидко підписати повідомлення для аірдропу, не повністю усвідомлюючи наслідки.
Технічні деталі
Проблема виникає через неналежне оброблення помилок під час створення підписів ECDSA ( Алгоритму цифрового підпису на еліптичних кривих ).
ECDSA зазвичай використовується для підтвердження того, що повідомлення, такі як блокчейн-транзакції, є справжніми.
Щоб створити підпис, вам потрібен секретний ключ – тільки власник його знає – і унікальний випадковий номер, який називається «nonce».
Якщо один і той же нонс використовується більше ніж один раз для різних повідомлень, хтось може виявити секретний ключ за допомогою математики.
Зазвичай, зловмисники не можуть визначити приватний ключ за одним або двома підписами, оскільки кожен з них використовує унікальний випадковий номер (nonce).
Але в еліптичній бібліотеці є недолік – якщо вона отримує незвичний тип вхідних даних (, наприклад, спеціальний рядок замість очікуваного формату ), це може призвести до створення двох підписів з однаковим nonce для різних повідомлень.
Ця помилка може розкрити приватний ключ, що ніколи не повинно траплятися при правильному використанні ECDSA.
Щоб експлуатувати цю вразливість, зловмиснику потрібно дві речі.
Дійсне повідомлення та його підпис від користувача – наприклад, з будь-яких попередніх взаємодій
Користувач має підписати друге повідомлення, явно створене для експлуатації вразливості
З цими двома підписами зловмисник може обчислити приватний ключ користувача, отримуючи повний доступ до фондів та дій, пов'язаних із ним. Детальна інформація доступна в GitHub Security Advisory.
Сценарії експлуатації
Зловмисники можуть використовувати цю вразливість різними способами, зокрема наступними.
Фішингові атаки, які перенаправляють користувачів на фальшиві веб-сайти та запитують підписи до повідомлень
Зловмисні DApps ( децентралізовані додатки ), замасковані під безпечні сервіси, такі як підписання умов використання або участь в аірдропах
Соціальна інженерія, що переконує користувачів підписувати, здавалося б, безневинні повідомлення
Компрометація приватних ключів серверів, які підписують повідомлення від користувачів
Особливо тривожним аспектом є загально мляве ставлення користувачів до підписування повідомлень у порівнянні з транзакціями.
Криптовалютні проекти часто просять користувачів підписувати умови обслуговування або повідомлення про участь в аірдропах, що може полегшити експлуатацію.
Отже, подумайте про це – чи підпишете ви повідомлення, щоб отримати безкоштовні токени? А що, якщо цей підпис може коштувати вам вашого всього криптобалансу?
Рекомендації
Користувачі повинні своєчасно оновити всі додатки та гаманці, які використовують бібліотеку elliptic для підписів, до останньої безпечної версії.
Будьте обережні при підписанні повідомлень, особливо з незнайомих або підозрілих джерел.
Розробники гаманців та додатків повинні перевірити версію своєї бібліотеки еліптичних кривих.
Якщо будь-які користувачі можуть бути під загрозою через вразливу версію, розробники повинні повідомити їх про термінову необхідність оновлення.
Глеб Зиков є співзасновником та технічним директором HashEx Blockchain Security. Він має більше 14 років досвіду в ІТ-індустрії та понад вісім років у сфері безпеки в Інтернеті, а також міцний технічний досвід у технології блокчейн (Bitcoin, Ethereum та блокчейнах на основі EVM).
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
HashEx Сигналізація Безпеки – Один Підпис Може Витягнути Ваш Гаманець - The Daily Hodl
HodlX Гостьовий ПостПодайте Ваш Пост
Нуль днів без інцидентів у сфері DeFi. Цього разу вразливість була виявлена в широко використовуваній «еліптичній бібліотеці».
Що ще більше ускладнює ситуацію – його експлуатація може призвести до того, що зловмисники отримають контроль над приватними ключами користувачів і висмокчуть кошти з гаманців.
Все через просте шахрайське повідомлення, підписане користувачем. Це критична проблема?
Першим, що слід врахувати, є те, що бібліотеки, такі як elliptic, надають розробникам готові компоненти коду.
Це означає, що замість того, щоб писати код з нуля і перевіряти його в процесі, розробники просто запозичують необхідні елементи.
Хоча це вважається безпечнішою практикою, оскільки бібліотеки постійно використовуються та тестуються, це також збільшує ризики, якщо одна вразливість пройде.
Бібліотека Elliptic широко використовується в екосистемі JavaScript. Вона забезпечує криптографічні функції в багатьох відомих блокчейн-проектах, веб-додатках та системах безпеки.
Згідно зі статистикою NPM, пакет, що містить помилку, завантажується приблизно 12–13 мільйонів разів на тиждень, з понад 3000 проектами, які безпосередньо вказують його як залежність.
Це широке використання означає, що вразливість потенційно впливає на величезну кількість додатків – особливо криптовалютні гаманці, вузли блокчейну та системи електронного підпису – а також на будь-яку службу, що покладається на підписи ECDSA через еліптичні, особливо при обробці зовнішньо наданого вводу.
Ця уразливість дозволяє віддаленим зловмисникам повністю скомпрометувати чутливі дані без належної авторизації.
Саме тому проблема отримала надзвичайно високий рейтинг серйозності – приблизно дев'ять з десяти за шкалою CVSS.
Важливо зазначити, що використання цієї вразливості вимагає дуже специфічної послідовності дій, і жертва повинна підписати довільні дані, надані зловмисником.
Це означає, що деякі проекти можуть залишатися безпечними, наприклад, якщо застосунок підписує лише заздалегідь визначені внутрішні повідомлення.
Проте багато користувачів не приділяють стільки ж уваги, підписуючи повідомлення через криптогаманці, як коли підписують транзакцію.
Коли сайт Web 3.0 просить користувачів підписати умови обслуговування, користувачі часто ігнорують їх читання.
Аналогічно, користувачі можуть швидко підписати повідомлення для аірдропу, не повністю усвідомлюючи наслідки.
Технічні деталі
Проблема виникає через неналежне оброблення помилок під час створення підписів ECDSA ( Алгоритму цифрового підпису на еліптичних кривих ).
ECDSA зазвичай використовується для підтвердження того, що повідомлення, такі як блокчейн-транзакції, є справжніми.
Щоб створити підпис, вам потрібен секретний ключ – тільки власник його знає – і унікальний випадковий номер, який називається «nonce».
Якщо один і той же нонс використовується більше ніж один раз для різних повідомлень, хтось може виявити секретний ключ за допомогою математики.
Зазвичай, зловмисники не можуть визначити приватний ключ за одним або двома підписами, оскільки кожен з них використовує унікальний випадковий номер (nonce).
Але в еліптичній бібліотеці є недолік – якщо вона отримує незвичний тип вхідних даних (, наприклад, спеціальний рядок замість очікуваного формату ), це може призвести до створення двох підписів з однаковим nonce для різних повідомлень.
Ця помилка може розкрити приватний ключ, що ніколи не повинно траплятися при правильному використанні ECDSA.
Щоб експлуатувати цю вразливість, зловмиснику потрібно дві речі.
З цими двома підписами зловмисник може обчислити приватний ключ користувача, отримуючи повний доступ до фондів та дій, пов'язаних із ним. Детальна інформація доступна в GitHub Security Advisory.
Сценарії експлуатації
Зловмисники можуть використовувати цю вразливість різними способами, зокрема наступними.
Особливо тривожним аспектом є загально мляве ставлення користувачів до підписування повідомлень у порівнянні з транзакціями.
Криптовалютні проекти часто просять користувачів підписувати умови обслуговування або повідомлення про участь в аірдропах, що може полегшити експлуатацію.
Отже, подумайте про це – чи підпишете ви повідомлення, щоб отримати безкоштовні токени? А що, якщо цей підпис може коштувати вам вашого всього криптобалансу?
Рекомендації
Користувачі повинні своєчасно оновити всі додатки та гаманці, які використовують бібліотеку elliptic для підписів, до останньої безпечної версії.
Будьте обережні при підписанні повідомлень, особливо з незнайомих або підозрілих джерел.
Розробники гаманців та додатків повинні перевірити версію своєї бібліотеки еліптичних кривих.
Якщо будь-які користувачі можуть бути під загрозою через вразливу версію, розробники повинні повідомити їх про термінову необхідність оновлення.
Глеб Зиков є співзасновником та технічним директором HashEx Blockchain Security. Він має більше 14 років досвіду в ІТ-індустрії та понад вісім років у сфері безпеки в Інтернеті, а також міцний технічний досвід у технології блокчейн (Bitcoin, Ethereum та блокчейнах на основі EVM).