Нужно ли создавать новый пакет моментальных снимков каждый раз, когда зависимость получает обновление безопасности?

9

Если я создаю пакет оснастки с, скажем, 5 зависимостей. Нужно ли создавать новую версию пакета каждый раз, когда зависимость получает обновление (безопасности)?

Я имею в виду преимущество пакетов .deb в том, что, например, в Ubuntu / Debian я могу использовать библиотеку, и как только эта библиотека получит обновление, которое также означает обновление для части моего программного обеспечения. И поскольку они только представляют обновления безопасности, я могу (на 99%) быть уверенным, что обновление библиотеки не нарушит API, так что мое программное обеспечение может сломаться.

Феликс Халлер
источник

Ответы:

7

Короткий ответ - да, вам нужно перестроить свою оснастку, если вам нужно обновить зависимость. Однако здесь есть и более длинный ответ.

Допустим, у вас есть приложение, использующее SSL (может быть встроенное программное обеспечение или полноценный веб-сайт, использующий Apache). Вы проводите свои исследования и используете специальный обмен ключами и симметричные алгоритмы. Теперь предположим, что в SSL была обнаружена уязвимость безопасности, и была выпущена новая версия. Тот факт, что это исправление безопасности, не означает, что исправленная уязвимость была в одном из используемых вами алгоритмов. Что если это не так? Что если, исправив эту уязвимость в алгоритме, который вы не использовали, что-то, что вы сделалииспользование было сломано или скомпрометировано (случилось со мной недавно с PHP)? Если вы связываете его, вы можете позвонить и узнать, нужно ли вам обновляться в зависимости от использования. Вы также можете тщательно протестировать его, прежде чем распространять его среди всех своих пользователей. Также существует вероятность того, что на дистрибутив, на который вы ориентируетесь, есть другая версия SSL, которая не работает с вашим программным обеспечением, поскольку объединение его в оснастку обеспечивает общий опыт работы на разных платформах.

Определенно существует компромисс между преимуществами совместного использования зависимостей и преимуществами их объединения.

рукав моря
источник
1
Вы недавно ответили на несколько простых вопросов с некоторой степенью авторитета. Вы разработчик? Если нет, можете ли вы дать ссылку на достоверные источники? Если да, можете ли вы создать надежные источники?
Муру
1
(Помимо этого: если мне придется доверять мнению каждого разработчика и его пониманию кода OpenSSL вместо, скажем, команды безопасности Canonical или сопровождающих Debian, которые годами занимались OpenSSL, разговоры о безопасности моментальных снимков - это пустая болтовня. )
Муру
2
Если вы устанавливаете программное обеспечение от разработчика, вы доверяете этому разработчику. Вопрос о том, как они обрабатывают SSL, является хорошим примером - просто наличие исправленной версии библиотеки не поможет вам, если разработчик приложения не использует библиотеку с умом. Есть много примеров приложений, которые имеют плохую защиту из-за неправильного выбора алгоритмов, управления ключами или проверки подписи - никак не связаны с версией OpenSSL, с которой они связаны. Разумно понимать это - вы волшебным образом не получаете безопасность, устанавливая более новую библиотеку в вашей системе.
Марк Шаттлворт
2
В противоположность этому, если приложение взломано, deb обычно позволяет злоумышленнику пройти по всей системе, а оснастка - нет. Ни одна система не является идеальной, но разумно сказать, что в некоторых случаях оснастка - полезное улучшение.
Марк Шаттлворт
1
@MarkShuttleworth Я мог бы доверять dev X в создании достойного приложения на языке Y, но я не мог бы доверять им, чтобы понять, может ли конкретный патч для OpenSSL вызвать у них проблемы, и мне кажется, это то, чего требуют от них снимки. Это уровень технической детализации, я не думаю, что большинству разработчиков приложений это удобно, поэтому они (и пользователи) полагаются на библиотеки, такие как OpenSSL, и дистрибутивы, такие как Ubuntu. Конечно, я никто, поэтому мое мнение не считается. (Кроме того, снимки могут быть ограничены, это не значит, что они не обрабатывают пользовательские данные,…
muru