Поиск по сайту:

Как подписание программного обеспечения Linux Foundation борется с атаками на цепочку поставок


Компрометация проектов с открытым исходным кодом и их использование для распространения вредоносных программ могут уйти в прошлое. Инициатива Linux Foundation по подписи программного обеспечения хочет стать Let’s Encrypt для выпусков программного обеспечения.

Проблема

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

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

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

Программное обеспечение с открытым исходным кодом является очевидной платформой, которую киберпреступники могут использовать для такого типа атак. В ответ Linux Foundation запускает SigStore. sigstore – это бесплатный сервис, разработанный совместно с Google, Red Hat и Университетом Пердью, который разработчики программного обеспечения могут использовать для цифровой подписи своих выпусков программного обеспечения.

sigstore защищает потребителей с открытым исходным кодом от таких атак, как атаки с путаницей зависимостей. Эти атаки заставляют менеджеров пакетов устанавливать удаленно размещенную вредоносную версию локально доступного ресурса, такого как файл библиотеки. Менеджеру пакетов сообщается, что в устанавливаемом программном обеспечении есть зависимость и что файл локальной библиотеки необходимо обновить. Удаленно размещенная испорченная версия имеет более высокий номер версии, который удовлетворяет фиктивной зависимости. Происходит «апгрейд» и система скомпрометирована.

Как работает сигстор

Как и во всех схемах подписи и сертификации, ценность подписи или сертификата зависит от степени доверия людей к органу, выдавшему сертификат. sigstore использует OpenID Connect от OpenID Foundation, который основан на стандартной схеме X.509 для определения сертификатов и управления ими. sigstore использует протокол аутентификации OpenID для привязки сертификатов к личности разработчика. Обычно это их адрес электронной почты или другой идентификатор учетной записи.

Клиент sigstore создает пару ключей с коротким сроком действия. Он запрашивает инфраструктуру открытых ключей (PKI) sigstore, которая проверяет действительность проверки OpenID Connect и выдает сертификат, если все в порядке. Сертификат создается с использованием значений пары ключей, которые будут использоваться для подписи программного обеспечения.

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

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

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

Это может работать аналогично веб-сайту Have I Been Pwned. Вы можете вручную найти свою электронную почту через их веб-сайт. Если ваш адрес электронной почты найден, это означает, что он был включен в утечку данных. Вам сообщают, какая утечка данных с какого сайта раскрыла ваши личные данные.

Нетрудно представить системы, которые проверяли бы номер версии и подлинность подписи по эталонной базе данных, которая отправляла обратно решение «годен/не годен» в отношении подписанного выпуска программного обеспечения. Кроме того, разработчики могут получать уведомления каждый раз, когда их адрес электронной почты или идентификатор OpenID Connect ID используется в событии подписания. Если они не инициировали это событие, оно требует расследования.

Давайте зашифруем, но для программного обеспечения

В сообщении блога от марта 2021 года Google описывает sigstore как аналог Let’s Encrypt, но для выпусков программного обеспечения. Let’s Encrypt — это бесплатный и открытый центр сертификации, который создает сертификаты SSL/TLS для веб-сайтов HTTPS. Это позволяет этим веб-сайтам аутентифицировать себя, чтобы посетители могли быть уверены, что веб-сайт действительно является тем, чем он является. Как только личность веб-сайта установлена, информация об открытом ключе в сертификате используется браузером посетителя для шифрования связи между его компьютером и веб-сайтом. Процесс получения сертификата от Let’s Encrypt автоматизирован.

Блог Google продолжает: «Подобно тому, как Let’s Encrypt предоставляет бесплатные сертификаты и инструменты автоматизации для HTTPS, sigstore предоставляет бесплатные сертификаты и инструменты для автоматизации и проверки подписей исходного кода. Sigstore также имеет дополнительное преимущество, заключающееся в поддержке журналов прозрачности, что означает, что все сертификаты и аттестации глобально видны, доступны для обнаружения и аудита».

Приручение Дикого Запада

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

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

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

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

sigstore демонстрирует весь потенциал для удовлетворения этой потребности с помощью бесплатной, простой и масштабируемой системы.