Аудит безопасности Nym Wallet
Аудит безопасности кошелька Nym
Введение
В декабре 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 за их профессионализм и преданность на протяжении всего процесса аудита. Мы также ценим сотрудничество и профессионализм, проявленные как на этапе планирования, так и на этапе выполнения аудита. Наше постоянное обязательство перед безопасностью остается нашим главным приоритетом, и мы надеемся на дальнейшее сотрудничество с экспертами в области безопасности для поддержания самых высоких стандартов для нашей экосистемы.