В начале августа хакеры похитили криптовалюту на миллионы долларов после того как взломали несколько тысяч аккаунтов в кошельках на базе сети 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.