Live edition loading…

PXke Algorand

Independent daily coverage of the Algorand ecosystem — verified reporting on wallets, DeFi, NFTs and infrastructure, fact-checked on-chain before it publishes.

← Latest stories

Публикация AI-аудитов Biatec Wallet выявила критическую уязвимость в подписи обмена

· · · · · · ·

Публикация AI-аудитов Biatec Wallet выявила критическую уязвимость в подписи обмена

Аудитный след, написанный машинами

В мае 2021 года проект, который теперь называется Biatec Wallet, выпустил свою первую публичную версию: создать кошелёк, защитить его паролем, просмотреть основную информацию о счёте — всё это в вкладке браузера. Через пять лет та же база кода, переименованная и расширенная под брендом Biatec, по-прежнему полностью работает в браузере, и в ней закрепилась необычная для кошелька небольшого сообщества практика: в публичном репозитории GitHub она публикует датированные отчёты по результатам аудита безопасности, написанные моделями ИИ, вместе с живым реестром всех рисков, выявленных в ходе этих аудитов.

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

Кошелек, который никогда не будет касаться ваших ключей

Biatec Wallet — это бесплатный, открытый, непопечительский кошелёк Algorand, созданный Scholtz & Company, jsa. из Братиславы, Словакия (ID компании 51 882 272, НДС SK2120828105) и разработанный под брендом Biatec. Непопечительский означает, что ни одна третьей сторона никогда не будет владеть приватными ключами: нет ни серверного кода, ни формы регистрации, ни KYC, а файл кошелька зашифрован с помощью AES-256 и хранится в собственной IndexedDB браузера. Пароль используется только локально для шифрования и дешифрования — он никогда не передаётся никуда, включая собственную инфраструктуру Biatec, — а кошелёк сам блокируется через пять минут после последней активности, удаляя дешифрованный ключ из памяти. Проект описывает себя как первый открытый кошелёк Algorand; в новостях упоминается, что официальный кошелёк Algorand стал полностью открытым только в июне 2021 года, через месяц после первой публичной версии AWallet.

Для начала потребуется браузер и выбор пароля: откройте wallet.biatec.io — в README проекта указано, что более старый домен a-wallet.net является устаревшим зеркалом того же развертывания — выберите имя кошелька и пароль (приложение рекомендует использовать комбинацию из двенадцати или более символов, сочетающих прописные и строчные буквы, цифры и специальные символы), и файл кошелька будет создан локально. По умолчанию приложение работает в mainnet, подключенное к публичным узлам AlgoNode, с возможностью переключения на другие провайдеры — включая собственный узел Algorand компании Biatec и инфраструктуру indexer компании.

Как работает программа аудита

Процесс зафиксирован в файле под названием ai-audit-instructions.md: ввод команды «do new audit» в репозитории запускает новый прогон модели ИИ, которая должна действовать так, как это делала бы «профессиональная компания по аудиту смарт-контрактов/безопасности кошельков» — скептически, критически и точно в оценке серьезности, при этом каждый вывод увязывается с конкретными путями к файлам и номерами строк. Каждый отчет фиксирует проанализированный коммит, модель, которая его выполнила, и использованную версию инструкции; реестр рисков сохраняет все выводы на постоянной основе, никогда не удаляя строки и сохраняя закрытые для целей отслеживания.

Концепция | Практическое применение |

Шесть отчетов, подготовленных в период с 9 июля по 4 августа 2026 года, с использованием трех различных моделей ИИ (sonnet-5, fable-5, grok-4-5)Ни одна модель не определяет программу; ожидается, что каждый этап повторно проверяет предыдущие выводы на основе текущего исходного кода
Отчет от 4 августа рассмотрел 21 коммит и 48 файлов (+2407/-564 строк) с момента предыдущего отчетаОбзор ограничен по принципу разницы — рассматривается каждый цикл релиза, а не только новые основные функции
Проверка зависимостей выявила 15 рекомендаций (0 критических, 9 — высокого уровня, 4 — среднего уровня, 2 — низкого уровня)Кошелек поставляется с деревом зависимостей, содержащим известные рекомендации высокого уровня, но ни один из них не является критическим
В реестре насчитывается 20 открытых технических рисков после 4 августаВ опубликованном проектом собственном журнале говорится, что два десятка рисков на уровне кода остаются нерешенными
Не были проведены тесты Cypress E2E и в реальных условиях (Ledger, WalletConnect и реальный обмен)Критические и высокие риски прослеживаются в статическом исходном коде, а не демонстрируются на примере работающей системы

Вывод: свопы подписаны «слепо»

Критическая уязвимость, зафиксированная под номером AW-2026-043, касается той части кошелька, которая по своей природе должна доверять чужому лицу на мгновение. Когда пользователь обменивает один актив на другой, кошелек запрашивает агрегатор — Deflex, Folks Router или Biatec Router — для вычисления маршрута и возврата не подписанных транзакций по этой сделке. Кошелек декодирует эти транзакции и подписывает их напрямую с необработанным приватным ключом учетной записи. Проверка показала, что ни один из этих трех путей не проверяет ничто из того, что связано с транзакциями, предоставленными сервером: ни то, что отправитель — это аккаунт пользователя, ни получатель или сумму по указанной цене, ни даже генезисный ID сети, — и транзакции никогда не отображаются пользователю перед подписью. Пользователь нажимает кнопку «Выполнить», и непрозрачная группа удаленных транзакций подписывается его ключом.

Ставки высоки, поскольку транзакции в Algorand работают по-особому. Подписанная транзакция может содержать поля, помимо «pay X to Y»: поле «closeRemainderTo» закрывает счет, перенося все его остатки ALGO — или, при передаче актива — все токены — на адрес, указанный в этом поле, а поле «rekeyTo» передает полномочия по подписи на другой ключ. В Algorand рекинг позволяет счету делегировать полномочия по подписи другому ключу; затем в реестре записывается, какой именно ключ и подписывает. Компрометированный или вредоносный агрегатор API мог бы вернуть именно такую транзакцию, и кошелек бы ее подписал и отправил без предупреждений, — минуя предупреждения о «closeRemainderTo» и «rekeyTo», которые были добавлены в предыдущем исправлении (AW-2026-001) ко всем другим интерфейсам подписи в приложении.

Второе заключение: проверка домена, которая доверяет злоумышленнику

Вывод High, AW-2026-044, основан на новой функции ARC-60 для подписи произвольных данных. ARC-60 расширяет WalletConnect — протокол с QR-кодом, который позволяет веб-приложению подключаться к кошельку и запрашивать подписи, не имея при этом ключей — так что подключенное DApp может запросить подпись для аутентификации произвольных данных, что является основой для беспарольных потоков входа. Кошелек отображает запрашиваемый домен, цель и полный предварительный просмотр данных перед подписью. Аудит показал, что проверка привязки к домену была самореферентной: и запрашиваемый домен, и «authenticatorData», предназначенные для его подтверждения, поступают в одном запросе, контролируемом DApp, и проверяются только друг против друга, а не против фактического партнера сессии WalletConnect. Таким образом, вредоносное DApp может получить действительную подпись, привязанную к любому домену, который ему вздумается назвать — именно такой подделкой входа и предупреждает комментарий в самом коде функции.

Что есть в текущем коде — и что еще не проверено

Исправление было выпущено в тот же день, когда был опубликован отчет (commit 0b3947e, 'feat: enhance ARC-60 security and DEX. Новый общий помощник, assertSwapTransactionSafe, теперь проверяет каждую транзакцию перед тем, как кто-либо из трех агрегаторов подпишет ее, отклоняя всю партию, если отправитель не совпадает с подключенным аккаунтом или если в какой-либо транзакции есть поле rekey или close-out. На стороне ARC-60 новый тест domainMatchesSessionOrigin сравнивает затребованное доменное имя с именем хоста сеанса WalletConnect, а не с собственным содержимым запроса.

Исправление введено в мастер-версию и в развернутом кошельке: сообщения об отказе от защиты присутствуют в сжатом пакете JavaScript, поставляемом a-wallet.net, что подтверждает, что код проверки отправляется в том виде, в котором его фактически запускают пользователи, и оба домена используют одну и ту же сборку (36221a6, 13 августа). То, что еще не произошло, — это проверка исправления программой, которая обнаружила ошибку. Последним в реестре рисков является сам аудит от 4 августа, в котором рассматривался более ранний коммит; коммит проверки был отправлен отдельно в тот же день, и в репозитории нет более позднего отчета об аудите, подтверждающего закрытие AW-2026-043 и AW-2026-044.

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

Общественный проект, который сам себя финансирует

Согласно FAQ, Biatec не зависит от Algorand Inc. и Algorand Foundation, не получая от них постоянного финансирования, но получает единовременные гранты от сообщества xGov. В репозитории xGov указаны 10 000 ALGO для самого AWallet и 60 000 ALGO для его планера платежей в статусе «Одобрено»; два предложения на 2024 год — обратная заявка на 36 912 ALGO и проект по идентификации в цепочке на 148 999 ALGO — указаны в статусе «Окончательно». В абстрактном разделе ретроактивного предложения проект сам характеризует AWallet как «один из самых продвинутых кошельков на Algorand».

Финансовая отметка за этим заявлением невелика. На опубликованном адресе для пожертвований находится 25,6 ALGO и примерно 1,03 USDT в цепочке; в Discord-канале проекта 411 участников, из которых 7 были онлайн на момент проверки; самый заметный недавний пост в социальных сетях о кошельке на Bluesky набрал один лайк. Сама разработка не замерла: репозиторий был обновлен 15 августа, имеет 672 звезды, а его два главных участника внесли соответственно 546 и 62 коммита.

Один момент, который должен учесть читатель: экран обмена в кошельке проходит через собственный агрегатор Biatec наряду с двумя агрегаторами сторонних разработчиков, а Biatec также управляет узлом и индексатором Algorand, к которым кошелек может подключиться. Ничто из этого не является само по себе проблемой — децентрализованная архитектура означает, что кошелек подписывает только то, что утверждает пользователь — но аудит от 4 августа показывает, почему именно уровень агрегатора является границей доверия, и что собственный маршрутизатор команды находится именно на этой границе.

Та же словацкая компания создала более широкий набор инструментов на базе Algorand: бесплатный, открытый платежный шлюз, позволяющий торговцам принимать ALGO, USDC или USDT напрямую на свой собственный счет без участия финансовых посредников и без необходимости в кошельке, открытую систему голосования и фреймворк Stabilitas national-stablecoin, который, как ранее выяснило это издание, был приостановлен с 2023 года. Программа аудита кошелька, несмотря на свои ограничения, является той частью портфеля, в которой команда демонстрирует свою работу наиболее прозрачно.

Источник

Source: https://www.a-wallet.net/