Новый инструмент проверит, тот ли код вы установили из PyPI и npm.
Открытое ПО лежит в основе современной цифровой инфраструктуры: оно используется в 77% приложений и оценивается более чем в $12 трлн. Но широкая распространённость делает его привлекательной мишенью для атак на цепочку поставок, когда злоумышленники внедряют вредоносный код в доверенные компоненты. Такие атаки могут подорвать доверие разработчиков и пользователей, тормозя развитие экосистемы.
За последние годы было зафиксировано несколько резонансных инцидентов. В проекте solana/webjs через скомпрометированный аккаунт в npm добавили бэкдор, позволивший красть криптографические ключи. В GitHub-репозитории tj-actions/changed-files злоумышленники встроили вредоносную GitHub Action, утекали секреты. Одним из самых сложных примеров стала атака на xz-utils , где в архиватор встроили бэкдор с возможностью удалённого доступа.
Чтобы повысить прозрачность в экосистеме открытого ПО, Google представила инструмент OSS Rebuild . Он позволяет воспроизводить сборки пакетов и тем самым проверять их соответствие исходному коду. Процесс сопровождается автоматическим созданием метаданных, соответствующих требованиям SLSA Build Level 3, без необходимости участия со стороны авторов проектов.
В компании поясняют, что цель — предоставить участникам сообщества возможность анализировать происхождение пакетов и лучше отслеживать изменения в процессе сборки.
Инструмент может использоваться как специалистами по информационной безопасности, так и сопровождающими проекты. В первом случае речь идёт о выявлении потенциальных расхождений в коде, проблем с окружением сборки и скрытых механизмов. Во втором — о добавлении сведений об уже опубликованных версиях, включая информацию о целостности и воспроизводимости.
На текущий момент поддерживаются пакеты из PyPI (Python), npm (JavaScript/TypeScript) и Crates.io (Rust). В дальнейшем предполагается подключение других экосистем.
Доступ к OSS Rebuild осуществляется через командную строку. С помощью утилиты можно получить информацию о происхождении пакета, просмотреть воспроизведённые сборки или инициировать собственную пересборку.