9 августа 2022

Взлом кошельков Solana: как обезопасить исходный код от багов и атак хакеров?

В начале августа хакеры похитили криптовалюту на миллионы долларов после того как взломали несколько тысяч аккаунтов в кошельках на базе сети Solana — Phantom, Slope и Trust Wallet. Ущерб оценивают в сумму от $5 до $8 млн.

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

По мнению основателя Solana Анатолия Яковенко, взлом оказался успешным из-за эксплойта, намеренно добавленного хакерами в цепочку поставки ПО Slope.

Можно ли было этого избежать? Создатели блокчейн-проекта GOSH уверены, что проблему атак на репозитории кода можно решить в корне.

Библиотеки кода сами становятся объектом атаки хакеров. Например, через клонирование или внесение на первый взгляд мелких изменений, которые редко проверяют или вовсе подтверждают автоматически. Одна из основных версий инцидента с Solana заключается в том, что хакеры намеренно добавили эксплойт в исходный код Slope.

Ниже — несколько главных характеристик GOSH Docker Extension, которые позволяют повысить безопасность при работе с репозиториями.

Верификация контейнера

Один из базовых способов защиты в GOSH Docker Extension — использование системы Decentralized Name Service (DeNS), с помощью которой можно называть артефакты в блокчейне без использования сервера.

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

Цифровые подписи

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

GOSH Docker Extension подписывает коммиты по умолчанию. Это одно из преимуществ хранения git-библиотеки в блокчейне. В систему подписей невозможно вмешаться со стороны.

Децентрализованные автономные организации (ДАО)

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

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

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

CI/CD

GOSH Docker Extension позволяет разработчикам автоматизировать безопасность процессов интеграции и развертывания (CI/CD). Вместо создания установочных скриптов типа Package.json или cargo.toml можно написать смарт-контракты, которые будут тьюринг-полными и формально верифицированными, и будут выполняться с помощью консенсуса сети.

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

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

Напомним, блокчейн-проект GOSH официально запустили в мае 2022 года на конференции DockerCon.