Ноль дней без инцидентов в пространстве DeFi. На этот раз уязвимость была обнаружена в широко используемой «эллиптической библиотеке».
Что усугубляет ситуацию, так это то, что его эксплуатация может привести к тому, что хакеры получат контроль над закрытыми ключами пользователей и опустошат кошельки.
Все это через простое мошенническое сообщение, подписанное пользователем. Это критическая проблема?
Первое, что следует учитывать, это тот факт, что библиотеки, такие как elliptic, предоставляют разработчикам готовые кодовые компоненты.
Это означает, что вместо того, чтобы писать код с нуля и проверять его по ходу работы, разработчики просто заимствуют необходимые им элементы.
Хотя это считается более безопасной практикой, поскольку библиотеки постоянно используются и тестируются, это также увеличивает риски, если одна уязвимость пройдет.
Библиотека Elliptic широко используется в экосистеме JavaScript. Она обеспечивает криптографические функции во многих известных блокчейн-проектах, веб-приложениях и системах безопасности.
Согласно статистике NPM, пакет, содержащий ошибку, загружается примерно 12–13 миллионов раз в неделю, при этом более 3,000 проектов прямо указывают его в качестве зависимости.
Это широкое использование подразумевает, что уязвимость потенциально затрагивает огромное количество приложений – особенно криптовалютные кошельки, узлы блокчейна и системы электронных подписей – а также любые услуги, полагающиеся на подписи ECDSA через эллиптические кривые, особенно при обработке внешне предоставленного ввода.
Эта уязвимость позволяет удаленным злоумышленникам полностью скомпрометировать конфиденциальные данные без надлежащей авторизации.
Вот почему данная проблема получила чрезвычайно высокую степень серьезности – примерно девять из десяти по шкале CVSS.
Важно отметить, что для эксплуатации этой уязвимости требуется очень специфическая последовательность действий, и жертва должна подписать произвольные данные, предоставленные злоумышленником.
Это означает, что некоторые проекты могут оставаться безопасными, например, если приложение подписывает только предопределенные внутренние сообщения.
Тем не менее, многие пользователи не уделяют столько внимания при подписании сообщений через криптокошельки, сколько они уделяют при подписании транзакции.
Когда сайт Web 3.0 просит пользователей подписать условия обслуживания, пользователи часто не читают их.
Аналогично, пользователи могут быстро подписать сообщение дляairdrop, не полностью понимая последствия.
Технические детали
Проблема возникает из-за неправильной обработки ошибок при создании подписей алгоритма цифровой подписи на эллиптических кривых (ECDSA) (.
ECDSA обычно используется для подтверждения того, что сообщения, такие как транзакции в блокчейне, являются подлинными.
Чтобы создать подпись, вам нужен секретный ключ – только владелец его знает – и уникальный случайный номер, называемый «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 миллионов раз в неделю, при этом более 3,000 проектов прямо указывают его в качестве зависимости.
Это широкое использование подразумевает, что уязвимость потенциально затрагивает огромное количество приложений – особенно криптовалютные кошельки, узлы блокчейна и системы электронных подписей – а также любые услуги, полагающиеся на подписи ECDSA через эллиптические кривые, особенно при обработке внешне предоставленного ввода.
Эта уязвимость позволяет удаленным злоумышленникам полностью скомпрометировать конфиденциальные данные без надлежащей авторизации.
Вот почему данная проблема получила чрезвычайно высокую степень серьезности – примерно девять из десяти по шкале CVSS.
Важно отметить, что для эксплуатации этой уязвимости требуется очень специфическая последовательность действий, и жертва должна подписать произвольные данные, предоставленные злоумышленником.
Это означает, что некоторые проекты могут оставаться безопасными, например, если приложение подписывает только предопределенные внутренние сообщения.
Тем не менее, многие пользователи не уделяют столько внимания при подписании сообщений через криптокошельки, сколько они уделяют при подписании транзакции.
Когда сайт Web 3.0 просит пользователей подписать условия обслуживания, пользователи часто не читают их.
Аналогично, пользователи могут быстро подписать сообщение дляairdrop, не полностью понимая последствия.
Технические детали
Проблема возникает из-за неправильной обработки ошибок при создании подписей алгоритма цифровой подписи на эллиптических кривых (ECDSA) (.
ECDSA обычно используется для подтверждения того, что сообщения, такие как транзакции в блокчейне, являются подлинными.
Чтобы создать подпись, вам нужен секретный ключ – только владелец его знает – и уникальный случайный номер, называемый «nonce».
Если один и тот же нонс используется более одного раза для разных сообщений, кто-то может вычислить секретный ключ с помощью математики.
Обычно злоумышленники не могут определить приватный ключ по одной или двум подписьям, потому что каждая из них использует уникальное случайное число )nonce(.
Но эллиптическая библиотека имеет недостаток – если она получает странный тип ввода ), например, специальную строку вместо ожидаемого формата (, это может привести к созданию двух подписей с одним и тем же нонсом для разных сообщений.
Эта ошибка может раскрыть закрытый ключ, чего никогда не должно происходить при правильном использовании ECDSA.
Чтобы использовать эту уязвимость, злоумышленнику нужно две вещи.
С этими двумя подписями злоумышленник может вычислить приватный ключ пользователя, получив полный доступ к средствам и действиям, связанным с ним. Подробная информация доступна в GitHub Security Advisory.
Сценарии эксплуатации
Злоумышленники могут воспользоваться этой уязвимостью различными способами, включая следующие.
Особенно беспокоит тот факт, что пользователи обычно относятся к подписанию сообщений более расслабленно по сравнению с транзакциями.
Криптопроекты часто просят пользователей подписывать условия обслуживания или сообщения об участии в эирдропах, что потенциально облегчает эксплуатацию.
Итак, подумайте об этом – подписали бы вы сообщение, чтобы получить бесплатные токены? А что, если эта подпись может стоить вам всего вашего криптобаланса?
Рекомендации
Пользователи должны незамедлительно обновить все приложения и кошельки, которые используют библиотеку elliptic для подписей, до последней безопасной версии.
Будьте осторожны при подписывании сообщений, особенно от незнакомых или подозрительных источников.
Разработчикам кошельков и приложений следует проверить версию своей библиотеки эллиптических кривых.
Если какие-либо пользователи могут быть затронуты уязвимой версией, разработчики должны уведомить их о срочной необходимости обновления.
Глеб Зыков является соучредителем и техническим директором HashEx Blockchain Security. У него более 14 лет опыта в ИТ-индустрии и более восьми лет в интернет-безопасности, а также сильный технический фон в области блокчейн-технологий )Bitcoin, Ethereum и EVM-базированные блокчейны(.