Cardano прошел независимую проверку исходного кода

Перевод с английской статьи

Cardano прошел независимую проверку исходного кода известной компанией Root9B. Команда IOHK хотела заверить пользователей, что Cardano - это безопасный протокол. Давайте вместе взглянем на опубликованный аудит.


Поиск уязвимости в системе безопасности.

Почему независимый аудит безопасности наиболее выигрышный

Как пользователь Интернета, вы используете различные приложения, и вы можете даже не осознавать, что ваша безопасность полностью зависит от качества этих приложений. Под термином “приложение” вы можете представить себе интернет-браузер, клиент чата, игру, почтовый клиент и многое другое. Эти приложения используют различные сетевые протоколы, использующие инфраструктуру TCP/IP. В случае с криптовалютами вы используете кошелек, который взаимодействует с другими участниками через сетевой протокол. Вы можете отправить транзакцию через свой кошелек. Транзакция распространяется на другие узлы по сетевому протоколу. Затем узлы должны прийти к взаимному консенсусу через сетевой протокол и договориться о том, является ли ваша транзакция действительной и может ли она быть включена в блокчейн.

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

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

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

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

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

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

Что такое Root9B аудит и его результаты

Как мы уже говорили, Cardano прошел независимую проверку исходного кода известной компанией Root9B (R9B). R9B провела статический анализ кода. Это означает, что они пересмотрели исходный код, без его запуска. R9B попытался найти общие классы уязвимостей, которые могли бы поставить под угрозу конфиденциальность, целостность или доступность программного обеспечения Cardano. R9B проверил блокчейн (ledger), узел Cardano, сеть Ouroboros, криптоинструменты и несколько других частей. Выводом R9B является отчет, который вы можете найти на GitHub:

Вы можете сами прочитать результаты аудита. Это файл с именем IOHK Phase 1 and 2 Report.pdf. Он интересен и может быть полностью понятен, вероятно, только для ИТ-специалистов или программистов. Там представлены несколько незначительных находок и описание некоторых теоретических уязвимостей. Хорошая новость заключается в том, что команда R9B не обнаружила никаких критических уязвимостей безопасности.

Команда IOHK предоставила ответ на аудит, в котором содержатся объяснения некоторых найденных моментов более подробно, таким образом предоставляя информацию R9B о шагах, которые смягчили или разрешили проблему. Вы можете найти ответ IOHK в файле с именем Response to Root9B Audit Report.pdf. Поскольку это был просто внешний обзор исходного кода, все найденные проблемы могли быть решены вовремя. Следовательно, перед реальным использованием в публичной сети Cardano. Например, первая обнаруженная проблема была связана с небезопасной генерацией ключей Genesis. IOHK объяснил R9B, что это не является реальной проблемой, поскольку затронутый код используется только в рамках тестирования и не предназначен для использования в общедоступной сети. Команда IOHK рассмотрела и, по возможности, исправила все актуальные проблемы.

Был еще один последний шаг во всем этом процессе. R9B получил ответ IOHK и подтвердил, что эти проблемы были решены должным образом. Вы можете найти проверку устранения проблем в файле с именем Mitigation Verification April 2020 v2.pdf. R9B согласился и подтвердил, что команда IOHK должным образом рассмотрела все выводы.

Резюме

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