AI tool catches critical XRP Ledger bug that could have drained wallets
Инструмент искусственного интеллекта обнаружил критическую ошибку в XRP Ledger, которая могла привести к опустошению кошельков
Критическая ошибка в предстоящем обновлении Batch для XRP Ledger могла позволить злоумышленникам красть средства с любого счета без доступа к закрытым ключам, но она была обнаружена до активации.
Ошибка заключалась в ошибке цикла в логике проверки подписи пакета, которая позволяла злонамеренной пакетной транзакции обходить проверки и переводить средства жертвы.
Эта уязвимость была обнаружена исследователем Пранамья Кешкаматом и инструментом Apex от Cantina AI, что побудило валидаторов отклонить обновление, привело к выпуску экстренной версии rippled 3.1.1 и побудило XRPL Labs внедрить аудиты кода с использованием искусственного интеллекта.
Автономный инструмент безопасности на основе искусственного интеллекта обнаружил ошибку в XRP Ledger, которая, если бы она осталась незамеченной, могла позволить злоумышленнику красть средства с любого счета в сети, даже не прикасаясь к закрытым ключам жертвы.
Обновление находилось на этапе голосования среди валидаторов и не было активировано в основной сети, что означало, что средства никогда не были под угрозой. Однако путь эксплуатации был одним из самых серьезных для блокчейна.
Вот что делала эта ошибка, простыми словами. Пакетные транзакции позволяют пользователям объединять несколько операций в одну. Поскольку отдельные транзакции внутри пакета не имеют собственных подписей, система полагается на список подписантов пакета, чтобы подтвердить, что каждый вовлеченный счет авторизовал эту операцию.
Функция проверки, которая проверяла этих подписантов, содержала критическую ошибку цикла. Если она обнаруживала подписанта, у которого еще не было счета в реестре, и чей ключ подписи соответствовал его собственному счету (что является нормальным случаем для нового счета), она немедленно объявляла проверку успешной и прекращала просмотр остальной части списка.
Злоумышленник мог использовать это, создав пакет из трех транзакций. Первая создает новый счет, которым управляет злоумышленник. Вторая - это простая транзакция с этого нового счета, что делает его обязательным подписантом. Третья - это платеж со счета жертвы на счет злоумышленника.
Поскольку нового счета еще не существует во время проверки, проверка подписантов завершается после первого элемента и никогда не проверяет второй. Средства жертвы переходят без участия ее ключей.
Пранамья Кешкамат и автономный инструмент безопасности Apex от Cantina AI выявили эту ошибку с помощью статического анализа кода 19 февраля и предоставили информацию об уязвимости. Инженерная команда Ripple подтвердила этот отчет в тот же вечер, предоставив независимую демонстрацию.
Реакция была быстрой. Валидаторам в списке уникальных узлов сети было немедленно рекомендовано голосовать.
23 февраля была выпущена экстренная версия rippled 3.1.1, в которой обновления Batch и связанное с ним исправление BatchInnerSigs были помечены как не поддерживаемые, чтобы предотвратить их активацию. Был создан исправленный заменитель под названием BatchV1_1, который находится на рассмотрении, и дата выпуска пока не установлена.
Тот факт, что инструмент на основе искусственного интеллекта обнаружил эту ошибку, сам по себе является значимым событием.
Компания XRPL Labs заявила, что в будущем будет включать в стандартный процесс проверки автоматизированные системы аудита кода на основе искусственного интеллекта, а также расширит возможности статического анализа, специально разработанного для выявления преждевременных завершений циклов, которые стали причиной этой ошибки.