Dois-je créer un nouveau package snap chaque fois qu'une dépendance obtient une mise à jour de sécurité?

9

Si je crée un package snap avec disons 5 dépendances. Dois-je créer une nouvelle version de package chaque fois qu'une dépendance obtient une mise à jour (de sécurité)?

Je veux dire que l'avantage des packages .deb est que dans Ubuntu / Debian par exemple, je peux utiliser une bibliothèque et une fois que cette bibliothèque obtient une mise à jour, cela signifie également une mise à jour pour une partie de mon logiciel. Et comme ils ne soumettent que des mises à jour de sécurité, je peux être (99%) sûr que la mise à jour de la bibliothèque ne cassera pas l'API afin que mon logiciel puisse se casser.

Felix Haller
la source

Réponses:

7

La réponse courte est oui, vous devrez reconstruire votre composant logiciel enfichable si vous devez mettre à jour une dépendance. Cependant, il y a une réponse plus longue ici aussi.

Supposons que vous ayez une application qui utilise SSL (pourrait être un logiciel intégré ou un site Web complet utilisant Apache). Vous faites vos recherches et utilisez des algorithmes d'échange de clés et symétriques spécifiques. Supposons maintenant qu'une vulnérabilité de sécurité a été découverte dans SSL et qu'une nouvelle version a été publiée. Ce n'est pas parce qu'il s'agit d'une version de sécurité que la vulnérabilité corrigée se trouvait dans l'un des algorithmes que vous avez utilisés. Et si ce n'était pas le cas? Et si, en corrigeant cette vulnérabilité dans un algorithme que vous n'avez pas utilisé, quelque chose que vous avez faitl'utilisation a été cassée ou compromise (m'est arrivé récemment avec PHP)? Si vous le regroupez, vous pouvez appeler pour savoir si vous devez ou non effectuer une mise à niveau au cas par cas. Vous pouvez également le tester de manière approfondie avant de le déployer auprès de tous vos utilisateurs. Il est également possible que la distribution que vous ciblez ait une version différente de SSL qui ne fonctionne pas avec votre logiciel, où le regroupement dans le composant logiciel enfichable offre une expérience commune sur toutes les plateformes.

Il y a certainement un compromis entre les avantages du partage des dépendances et les avantages de les regrouper.

Kyle
la source
1
Vous avez récemment répondu à quelques questions instantanées, avec un certain degré d'autorité. Êtes-vous un développeur? Sinon, pouvez-vous créer un lien vers des sources crédibles? Si oui, pouvez-vous créer des sources crédibles?
muru
1
(En plus de cela: si je dois faire confiance au jugement et à la compréhension de chaque développeur du code OpenSSL au lieu, disons, de l'équipe de sécurité Canonical ou de celle des responsables Debian qui gèrent OpenSSL depuis des années, parler de sécurité par accrochage est un fardeau. )
muru
2
Si vous installez un logiciel à partir d'un développeur, vous faites confiance à ce développeur. La question de savoir comment ils gèrent SSL est un bon exemple - le simple fait d'avoir une version corrigée d'une bibliothèque ne vous aide pas si le développeur de l'application n'utilise pas la bibliothèque à bon escient. Il existe de nombreux exemples d'applications dont la sécurité est mauvaise en raison de mauvais choix d'algorithmes ou de gestion des clés ou de vérification des signatures - rien à voir avec la version d'OpenSSL avec laquelle ils sont liés. Il est sage de comprendre cela - vous n'obtenez pas comme par magie la sécurité en obtenant une bibliothèque plus récente sur votre système.
Mark Shuttleworth
2
En revanche, si une application EST compromise, un deb laissera généralement l'attaquant parcourir tout le système, tandis qu'un snap ne le fera pas. Aucun système n'est parfait, mais il est raisonnable de dire que les snaps sont une amélioration utile dans certains cas.
Mark Shuttleworth
1
@MarkShuttleworth Je pourrais faire confiance au développeur X pour fournir une application décente dans la langue Y, mais je ne pourrais pas leur faire confiance pour comprendre si un correctif particulier pour OpenSSL peut leur causer des problèmes, et il me semble que c'est ce que les snaps exigent d'eux. C'est un niveau de détails techniques avec lequel je ne pense pas vraiment que la plupart des développeurs d'applications soient à l'aise, c'est pourquoi ils (et les utilisateurs) s'appuient sur des bibliothèques comme OpenSSL et des distributions comme Ubuntu. Bien sûr, je ne suis personne, donc mon opinion ne compte pas. (De plus, les snaps peuvent être confinés, cela ne signifie pas qu'ils ne gèrent pas les données des utilisateurs,…
muru