¿Tengo que crear un nuevo paquete de complemento cada vez que una dependencia obtiene una actualización de seguridad?

9

Si creo un paquete de complemento con digamos 5 dependencias. ¿Tengo que crear una nueva versión del paquete cada vez que una dependencia obtiene una actualización (de seguridad)?

Quiero decir que la ventaja de los paquetes .deb es que en Ubuntu / Debian, por ejemplo, puedo usar una biblioteca y una vez que esa biblioteca obtiene una actualización, eso significa una actualización para una parte de mi software también. Y como solo envían actualizaciones de seguridad, puedo estar (99%) seguro de que la actualización de la biblioteca no romperá la API para que mi software pueda romperse.

Felix Haller
fuente

Respuestas:

7

La respuesta corta es sí, deberá reconstruir su complemento si necesita actualizar una dependencia. Sin embargo, aquí también hay una respuesta más larga.

Supongamos que tiene alguna aplicación que utiliza SSL (podría ser algún software integrado o un sitio web completo que usa Apache). Usted investiga y utiliza el intercambio de claves específico y algoritmos simétricos. Ahora digamos que se descubrió una vulnerabilidad de seguridad en SSL y se lanzó una nueva versión. El hecho de que sea una versión de seguridad no significa que la vulnerabilidad parcheada estuviera en uno de los algoritmos que usó. ¿Y si no fuera así? ¿Qué pasa si, al parchear esa vulnerabilidad en un algoritmo que no usaste, algo que hiciste?el uso estaba roto o comprometido (me pasó recientemente con PHP)? Si lo está empaquetando, puede hacer una llamada sobre si necesita actualizar o no según el uso. También puede probarlo exhaustivamente antes de implementarlo para todos sus usuarios. También existe la posibilidad de que la distribución a la que se dirija tenga una versión diferente de SSL que no funcione con su software, donde agruparlo en el instante proporciona una experiencia común en todas las plataformas.

Definitivamente hay una compensación entre los beneficios de compartir dependencias y los beneficios de agruparlos.

Kyle
fuente
1
Recientemente ha respondido algunas preguntas rápidas, con cierto grado de autoridad. ¿Eres un desarrollador? Si no, ¿puede vincular a fuentes creíbles? Si es así, ¿puedes crear algunas fuentes creíbles?
muru
1
(Aparte de eso: si tengo que confiar en el juicio y la comprensión de cada desarrollador del código OpenSSL en lugar de, por ejemplo, el equipo de seguridad canónico o el de los mantenedores de Debian que han estado manejando OpenSSL durante años, hablar de seguridad rápida es una carga de tontería. )
muru
2
Si instala software de un desarrollador, está confiando en ese desarrollador. La cuestión de cómo manejan SSL es un buen ejemplo: solo tener una versión parcheada de una biblioteca no te ayuda si el desarrollador de la aplicación no usa la biblioteca con prudencia. Hay muchos ejemplos de aplicaciones que tienen una mala seguridad debido a malas elecciones de algoritmos o administración de claves o verificación de firma, nada que ver con la versión de OpenSSL con la que se vincularon. Es aconsejable comprender esto: no se obtiene seguridad mágicamente al obtener una biblioteca más nueva en su sistema.
Mark Shuttleworth
2
Por el contrario, si una aplicación está comprometida, una deb generalmente dejará que el atacante recorra todo el sistema, mientras que un chasquido no lo hará. Ningún sistema es perfecto, pero es razonable decir que las instantáneas son una mejora útil en algunos casos.
Mark Shuttleworth
1
@ MarkShuttleworth Podría confiar en el desarrollador X para entregar una aplicación decente en el lenguaje Y, pero podría no confiar en que entiendan si un parche en particular para OpenSSL puede causarles problemas, y me parece que eso es lo que requieren los snaps de ellos. Ese es un nivel de detalle técnico con el que realmente no creo que la mayoría de los desarrolladores de aplicaciones se sientan cómodos, por eso ellos (y los usuarios) confían en bibliotecas como OpenSSL y distribuciones como Ubuntu. Por supuesto, no soy nadie, así que mi opinión no cuenta. (Además, las instantáneas pueden estar confinadas, eso no significa que no manejan los datos del usuario, ...
muru