Отладка приложений блокчейна: ошибки, о которых нужно знать

Отладка приложений блокчейна: ошибки, о которых нужно знать

22 марта 2023 г.

Настоящее время знаменует собой современную эру технологии блокчейн. Существует распространение передовых технологий блокчейна, основанных на консенсусе.

С ростом использования смартфонов в магазинах приложений можно найти различные мобильные приложения на основе блокчейна, включая мобильные кошельки, браузеры Web 3.0, децентрализованные игры, приложения DEX и DeFi и другие.

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

В этой статье делается попытка охватить различные аспекты, связанные с отладкой мобильных приложений с блокчейном.

Классическое приложение и приложение Blockchain

Чтобы углубиться в основную тему, необходимо понять фундаментальные различия между классическими и блокчейн-приложениями. По сути, классические приложения зависят от централизованных серверов, а это означает, что центральный объект имеет над ними полный контроль.

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

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

Напротив, приложения блокчейна полагаются на доверие к сети участников и механизм консенсуса, который проверяет транзакции. Блокчейн-приложения не требуют доверия, то есть они не требуют доверия к центральному органу.

Типы ошибок приложений на основе блокчейна

Блокчейн-приложения, разработанные для поддержки различных ОС, таких как Android и iOS, могут содержать множество ошибок, как и другие классические приложения. Иногда определенные ошибки могут оставаться незамеченными в течение длительного периода времени. Здесь мы обсудим некоторые из них.

Уязвимости системы безопасности:

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

Ошибки пользовательского интерфейса (UI):

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

Ошибки протокола блокчейна:

Если в протоколе блокчейна возникают проблемы или сбои, это может повлиять на работу приложения блокчейна. Одним из примеров этого является появление ошибки в сети блокчейна, такой как Ethereum, которая может привести к сбою транзакций смарт-контрактов.

Это может помешать пользователям получить доступ к средствам, хранящимся в кошельке.

Ошибки проверки ввода:

Представьте, что вы пытаетесь отправить 0,5 BTC на свой адрес, но из-за ошибки блокчейн-кошелька отправляется 1 BTC! Таким образом, ошибки проверки ввода могут привести к серьезным проблемам, если они не будут устранены в нужное время, иначе злоумышленники могут разрешить пользователям злонамеренный ввод, даже тайно изменив адреса кошелька.

Криптографические уязвимости:

Блокчейн-приложения в основном строятся путем добавления алгоритмов шифрования и дешифрования, но иногда в кодах сохраняются ошибки, приводящие к утечке закрытых ключей или другой конфиденциальной информации. Взломы кошельков Slope и Phantom на основе Solana в прошлом году являются примерами такого рода ошибок.

Внедрение вредоносного кода:

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

Fig by ESET: - Unsuccessful attempt to install a malicious wallet downloaded from untrusted sites with injected modified codes over a legitimate one on Android devices

В конечном итоге это может привести к краже средств пользователей или несанкционированному доступу к конфиденциальным данным пользователей.

Неадекватные методы восстановления:

Блокчейн-приложения не полагаются на центральный сервер для хранения данных. Вместо этого они обычно синхронизируются через цепочку, образованную связанными узлами. Чтобы пользователи могли восстановить потерянные или удаленные приложения, предоставляются закрытые ключи или секретные фразы.

Однако если механизм восстановления не настроен должным образом, злоумышленники могут использовать вредоносные методы для восстановления кошельков.

Распределенные атаки типа "отказ в обслуживании" (DDoS):

Это самый известный способ использовать ошибки в приложении блокчейна, что приводит к его сбою. Эта атака заполняет исходный сервер множеством вредоносных серверов, чтобы перегрузить его.

Что ж, это самые распространенные ошибки, связанные с блокчейн-приложениями. Недавно известная платформа BitGo исправила критическую уязвимость, обнаруженную исследовательской группой Fireblocks в прошлом году. Здесь мы обсуждаем это как пример, который потенциально может преподать нам урок.

Критические ошибки, связанные с BitGo:

Известная в криптомире платформа BitGo имеет огромное количество розничных и институциональных пользователей со всего мира. Он предлагает своим пользователям различные функции через различные продукты, включая приложения для устройств iOS и Android.

Команда Fireblocks заявила, что они уведомили команду BitGo об ошибке (BitGo Zero Proof Vulnerability), которая была связана с кошельками BitGo Threshold Signature Scheme (TSS) в прошлом году, и злоумышленники могли легко обойти все меры безопасности, предпочитаемые BitGo. для доступа к закрытым ключам пользователей и конфиденциальным данным, просто используя коды Javascript, если они не были своевременно исправлены.

Image by Fireblocks team: They have chosen the malicious inputs for N and V.

Команда Fireblocks подробно описала, как они обнаружил эксплойт в протоколе TSS в протоколе кошелька TSS алгоритма цифровой подписи на эллиптических кривых (ECDSA) BitGo, обнаружив отсутствующее доказательство с нулевым разглашением в протоколе.

Они смогли раскрыть закрытый ключ с помощью очень простой атаки.

Отладка:

Действительно, команда BitGo высказала встречный комментарий против претензии команды Fireblocks через их официальное сообщение в блоге относительно раскрытия информации; все в порядке, так как пользователям предлагается обновить свой кошелек до новой версии от 17 марта.

Они успешно исправили уязвимость, о которой заявили Fireblocks. Как ответственная и надежная компания, они должны сделать безопасность своим главным приоритетом.

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

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

Далее мы представляем обзор передовых методов отладки приложений блокчейна, включая следующее:

Использование инструментов автоматического тестирования приложений:

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

Просмотр кодов:

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

Включение надежного алгоритма шифрования:

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

Поддержание актуальности приложения:

Чтобы обеспечить бесперебойную работу, разработчики должны активно обновлять приложение, добавляя в него новейшие и расширенные протоколы. Поэтому настоятельно рекомендуется протестировать приложение на различных устройствах в больших масштабах.

Консультационная документация:

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

Тестирование приложения на частном блокчейне:

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

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

Проведение теста на проникновение:

Проведение тестирования приложений блокчейна на проникновение — важный шаг в обеспечении безопасности как самого приложения, так и лежащей в его основе технологии блокчейна.

Это можно сделать с помощью соответствующих инструментов проникновения, например, инструмент OWASP ZAP можно использовать для выявления потенциальных ошибок в смарт-контрактах, используемых приложениями блокчейна.

Выявление потенциальных векторов атак:

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

Проблема, связанная с отладкой приложений блокчейна:

Отладка приложения блокчейна может быть сложной задачей из-за децентрализованного и неизменного характера технологии. В случае обнаружения ошибок все устройства должны быть обновлены до последней версии приложения.

Хотя риска единичного сбоя нет, все же существует риск того, что конкретное устройство со старой версией приложения может быть заражено в сети. Кроме того, в большинстве приложений блокчейна используется самоисполняющаяся программа, то есть смарт-контракт.

Ошибка, связанная со смарт-контрактом, может быть проблематичной, поскольку они основаны на технологии блокчейна, и их очень сложно отлаживать.

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

Будущее блокчейн-приложений:

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

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

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

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

Вывод:

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

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

Выявляя потенциальные векторы атак, тестируя частные и общедоступные сети блокчейна и постоянно обновляя документацию по блокчейну, разработчики могут создавать надежные и безопасные приложения блокчейна, которые работают так, как задумано для пользователей со всего мира.


Оригинал