Перейти к содержимому

Отчёт о безопасности в крипто: май 2022

Реализации import.meta и __dirname от Endo для совместимости модулей MetaMask, прототип snap для распределённой генерации ключей с использованием MPC для MetaMask Flask, и запуск программы bug bounty MetaMask на HackerOne.

4 минуты
Отчёт о безопасности в крипто: май 2022

Каждый месяц директор по безопасности MetaMask Лукер публикует отчёт о последних атаках в сфере криптовалют и новых угрозах, о которых вам необходимо знать.

Выпуск за май 2022 года посвящён запуску программы bug bounty MetaMask на HackerOne, реализации в Endo поддержки import.meta и __dirname для повышения совместимости зависимостей MetaMask, а также прототипу snap для распределённой генерации ключей, демонстрирующему подписание с использованием многостороннего вычисления в MetaMask Flask. Подробности — ниже, но сначала...

Выдающийся пионер STEM: Ади Шамир — соавтор RSA и создатель схемы разделения секрета

Ади Шамир — израильский криптограф, который в 1977 году совместно с Роном Ривестом и Леонардом Адлеманом разработал алгоритм RSA — первую практическую криптосистему с открытым ключом. За это достижение трио было удостоено премии Тьюринга в 2002 году. В 1979 году он опубликовал работу «Как поделиться секретом», в которой представил схему разделения секрета Шамира: метод, при котором секрет разбивается на части, и для восстановления исходного значения достаточно лишь порогового количества этих частей. Это свойство лежит в основе работы по распределённой генерации ключей, описанной в данном отчёте.

MetaMask запускает программу bug bounty на HackerOne

В июне 2022 года MetaMask запустил программу bug bounty на платформе HackerOne, открыв официальный канал для исследователей безопасности, через который они могут сообщать об уязвимостях в продуктах MetaMask.

Endo реализует поддержку import.meta и __dirname, повышая совместимость зависимостей MetaMask

По итогам работы над поддержкой CommonJS в Endo в апреле 2022 года сквозное тестирование показало, что главными оставшимися препятствиями для запуска популярных модулей являются отсутствие поддержки import.meta.url и __dirname.

На встрече представителей Agoric, MetaMask и Moddable 3 мая 2022 года было достигнуто соглашение о том, на каком этапе процесса импорта модулей должна обрабатываться конструкция import.meta. В спецификацию Compartment была введена концепция importMetaHook. Хук вызывается только в том случае, если статический анализ показывает, что модуль обращается к import.meta — поскольку Node.js прикрепляет туда функцию resolve, создание которой является ресурсоёмкой операцией, хук целесообразно вызывать лишь тогда, когда его результаты могут быть использованы.

Реализация import.meta завершена (issue в спецификации, PR с реализацией). Остаётся реализовать передачу import.meta.url в модули Endo по умолчанию. Реализация __dirname также завершена (PR) — после нескольких итераций для обеспечения корректности и поддержки путей Windows.

Кроме того, была добавлена поддержка вложенных файлов package.json, изменяющих предполагаемый тип модуля по умолчанию для файлов .js, что позволяет compartment-mapper обрабатывать пакеты со сложной структурой, предназначенные для поддержки как CommonJS, так и спецификации ES-модулей (источник).

Поддержка поведения __esModule приостановлена. Оба варианта реализации привели к ухудшению результатов сквозного тестирования. Третий подход — размещение логики поддержки в ThirdPartyModuleInstance внутри SES — считается спорным. Работа над функцией отслеживается в issue #927.

Прототип snap для распределённой генерации ключей демонстрирует подписание с использованием MPC в MetaMask Flask

Достигнут прогресс в развитии возможностей многостороннего вычисления (MPC). Наша команда взяла ранее созданные экспериментальные привязки WebAssembly (WASM) и разработала прототип snap, доступный в MetaMask Flask, который демонстрирует распределённую генерацию ключей (DKG) и подписание сообщений. Snap поддерживает экспорт и импорт долей ключей, а также генерацию ключей и сохранение доказательств для подписания сообщений.

Под капотом пакет использует реализацию протокола GG2020 (Gennaro и Goldfeder 2020, статья) — протокола, поддерживающего неинтерактивную онлайн-фазу, позволяющую участникам асинхронно взаимодействовать без необходимости одновременного присутствия в сети, а также обеспечивающего эффективное обнаружение прерывающих участников.

Следующие шаги включают добавление поддержки шифрования для snap_manageState с целью устранения необходимости ручного шифрования долей ключей в коде snap, а затем — добавление поддержки подписания транзакций. Прототип отслеживается в репозитории tss-snap (первоначально опубликован под названием ecdsa-wasm).


Отчёт MetaMask о криптобезопасности за май 2022 года охватывает реализацию в Endo поддержки import.meta и __dirname для цепочки совместимости модулей MetaMask, а также прототип snap для распределённой генерации ключей, демонстрирующий подписание с использованием многостороннего вычисления в MetaMask Flask. Просматривайте предыдущие выпуски отчёта MetaMask о криптобезопасности, чтобы быть в курсе угроз, тенденций и советов по безопасности в экосистеме.

Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.

Оцените перевод

Автор статьи:

  • Luker

      Джен Лукер, известная большинству просто как Лукер, является директором по безопасности продуктов в Consensys, где она руководит командой специалистов первой линии защиты, оберегающих миллионы пользователей от уязвимостей, новых угроз и злоумышленников в сфере децентрализованных технологий. Активный участник экосистемы Ethereum с 2017 года, она занимала ключевые должности, в том числе редактора в ETHNews и менеджера проектов в MyCrypto. Лукер регулярно выступает на отраслевых конференциях, является автором ежемесячного отчёта MetaMask по криптобезопасности (Crypto Security Report) и официальным обладателем значка ETH Security Badge, присвоенного организацией The DAO. Она также является страстным сторонником непрерывного обучения и повышения осведомлённости в области безопасности как ключевых основ будущего Ethereum и технологии блокчейн.

      Читать все статьи