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

Capslock — это CLI-инструмент для анализа возможностей Go-пакетов, который сообщает пользователям, к каким привилегированным операциям может обращаться конкретный пакет. Это работает за счёт классификации возможностей Go-пакетов путём отслеживания транзитивных вызовов привилегированных операций стандартной библиотеки.
Недавний рост атак на цепочку поставок, нацеленных на открытое программное обеспечение, показал, что сторонним зависимостям нельзя доверять по умолчанию. Возможности показывают, какие разрешения доступны пакету, и могут использоваться вместе с другими сигналами безопасности, чтобы указать, какой код требует дополнительного изучения, прежде чем его можно будет считать доверенным.
Современный анализ безопасности в значительной степени сосредоточен на выявлении уязвимостей в пакетах — это важная задача, учитывая темпы выявления новых CVE. В дополнение к этому анализу мы обращаем внимание на возможности пакетов, то есть определяем, к каким разрешениям пакет имеет доступ через свои транзитивные зависимости от функций стандартной библиотеки с привилегированным доступом.
У этого множество потенциальных применений: от определения назначения пакетов по используемым возможностям до направления проверок безопасности на более привилегированные пути кода и даже предупреждения о неожиданных изменениях возможностей, чтобы остановить потенциальные угрозы цепочки поставок до того, как они станут проблемой.
Это продиктовано принципом наименьших привилегий — идеей о том, что доступ должен быть ограничен минимальным набором, который возможен и практичен. Мы намерены применять это в разработке ПО, чтобы код можно было ограничить минимальным набором возможностей, необходимым для выполнения его прямого назначения.
Чтобы узнать больше о возможностях ваших зависимостей, установите Capslock
go install github.com/google/capslock/cmd/capslock@latest
Затем вы можете запустить Capslock, выполнив capslock из каталога пакетов, которые хотите проанализировать.
См. предостережения.
См. CONTRIBUTING.