Аудит безопасности Nym Wallet

Аудит безопасности кошелька Nym

4 мин. Читать

Введение

В декабре 2022 года Nym прошел независимый аудит безопасности, проведенный Oak Security — немецкой консалтинговой фирмой по кибербезопасности, специализирующейся на аудите блокчейнов третьего поколения и децентрализованных протоколов. С обширным опытом работы в экосистемах, таких как Cosmos, Terra, Polkadot и Flow, компания Oak Security получила задание оценить два критических компонента экосистемы Nym: (1) микснет Nym и вестинг-контракты (см. полный отчет) и (2) кошелек Nym (см. полный отчет). Аудит был направлен на оценку безопасности и надежности этих компонентов, выявление потенциальных уязвимостей и обеспечение соблюдения лучших практик в разработке безопасного кода. Чтобы облегчить понимание, мы разбили результаты по каждому компоненту. Ознакомиться с кратким обзором аудита микссети и контрактов вестинга Nym можно здесь.

Резюме аудита кошелька Nym компанией Oak Security

Аудит длился две недели и проводился командой из четырёх экспертов Oak Security. Команда Nym предоставила полный доступ ко всему исходному коду, спецификациям проекта и соответствующей документации. В рамках аудита был рассмотрен репозиторий «nym-wallet».

Аудиторы провели всестороннюю оценку репозитория nym-wallet, проанализировав уязвимости безопасности, механизмы интеграции, криптографическую надёжность и общее соответствие практике безопасной разработки.

Oak Security применила гибридный подход, сочетая автоматический анализ с ручной проверкой кода для выявления слабых мест в системе безопасности.

Обзор результатов

Кошелёк Nym был признан имеющим хорошо структурированную кодовую базу со средней и высокой читаемостью. Аудиторы рекомендовали улучшить покрытие тестами и документацию, чтобы повысить надёжность и удобство сопровождения.

Всего было зафиксировано 17 замечаний по кошельку Nym. Ни одно из них не было классифицировано как критическое: четыре были отнесены к категории серьёзных, а оставшиеся 13 — к незначительным или информационным, представляющим собой возможности для дальнейшего совершенствования реализации кошелька.

Команда Nym оперативно устранила все серьёзные замечания, и Oak Security проверила и одобрила внесённые исправления.

NYM-WALLET-1: Пароль остаётся в памяти после выхода из аккаунта (Серьёзная)

Аудиторы выявили, что в отличие от мнемонической фразы, пароль, используемый для её получения, остаётся доступным в памяти даже после выхода пользователя из аккаунта.

Для устранения этой проблемы команда Nym внедрила решение, при котором окно приложения перезапускается при выходе из аккаунта и создании нового. Эта мера эффективно уничтожает WebView, в котором выполняется среда JavaScript, тем самым очищая память от всех конфиденциальных данных, включая мнемонику и пароль.

NYM-WALLET-2: Мнемоническая фраза остаётся в памяти после создания аккаунта в кошельке (Серьёзная)

Аудиторы обнаружили, что хотя мнемоническая фраза корректно перезаписывается в памяти при выходе пользователя из аккаунта, это не происходит после создания аккаунта. Конкретно, при создании нового аккаунта в кошельке мнемоническая фраза не очищается из памяти даже после выхода пользователя, что потенциально может привести к утечке конфиденциальной информации.

Решение, реализованное в NYM-WALLET-1, также устраняет эту проблему.

NYM-WALLET-3: Ограниченный набор специальных символов в паролях (Серьёзная)

Аудиторы выявили, что компонент PasswordStrength в кошельке использует регулярное выражение для проверки сложности пароля, однако это выражение слишком ограничено и рекомендовалось использовать более гибкий набор символов, чтобы разрешить более широкий диапазон паролей. Мы решили эту проблему, обновив регулярное выражение согласно рекомендациям аудиторов, чтобы позволить использовать более широкий набор символов и повысить безопасность паролей.

Также мы интегрировали пакет Dropbox «zxcvbn» для более точной и надёжной оценки сложности пароля.

NYM-WALLET-4: Пользователь вынужден копировать мнемоническую фразу в буфер обмена (Серьёзная)

При создании аккаунта пользователям показывали мнемоническую фразу и требовали нажать кнопку «Скопировать мнемонику», которая копировала фразу в буфер обмена. Аудиторы указали, что такая практика представляет риск безопасности, так как другие приложения могут получить доступ к буферу обмена и, соответственно, к мнемонической фразе.

Для решения этой проблемы мы реализовали рекомендованное аудиторами исправление — убрали кнопку «Скопировать мнемонику». Вместо этого добавили инструкции по безопасному хранению и использованию мнемонической фразы, а также чекбокс, где пользователь подтверждает, что прочитал и понял предоставленную информацию.

Last Words

Мы хотели бы поблагодарить команду Oak Security за их профессионализм и преданность на протяжении всего процесса аудита. Мы также ценим сотрудничество и профессионализм, проявленные как на этапе планирования, так и на этапе выполнения аудита. Наше постоянное обязательство перед безопасностью остается нашим главным приоритетом, и мы надеемся на дальнейшее сотрудничество с экспертами в области безопасности для поддержания самых высоких стандартов для нашей экосистемы.

Поделиться