¿Qué tan confiable es 'sudo apt-get install (nombre del paquete)' en Ubuntu?

27

Una de las maneras fáciles de instalar un programa en Ubuntu Linux es escribir un comando en la terminal, pero ¿cómo sé que el programa proviene de una fuente confiable y no de un lugar peligroso? Por ejemplo, si estaba instalando ClamAV, ¿cómo puedo saber si ClamAV proviene de www.clamav.net o en algún lugar seguro y no de una fuente maliciosa? Quiero decir, un pirata informático puede hacer algo para redirigir el comando para que obtenga el software de un sitio falso, ¿correcto?

    
pregunta Henry WH Hack v2.1.2 28.12.2015 - 23:54
fuente

2 respuestas

50

Al igual que con muchos sistemas bien diseñados, el sistema de paquetes de Debian tiene defensa en profundidad : múltiples capas, cada una de las cuales puede verificarse.

  • ¿Cómo confiamos en que el archivo del paquete es lo que promete el sistema? El valor hash se calcula y compara con el valor almacenado.

  • ¿Cómo confiamos en que el valor de hash no coincida accidentalmente con otro archivo? Se utilizan múltiples algoritmos hash, y solo si todos coinciden con los valores almacenados, confiamos en que el contenido realmente coincida.

  • ¿Cómo confiamos en que los valores almacenados están destinados al archivo de paquete que descargamos? Los valores de hash se descargan en un archivo separado (los diversos archivos Packages.* ) previamente calculados automáticamente por el sistema de archivo.

  • ¿Cómo confiamos en que los archivos Packages.* descargados son lo prometido por el sistema? El valor de hash para cada archivo se almacena en un solo archivo Release para todo el archivo.

  • ¿Cómo podemos confiar en que el archivo Release es lo prometido por el sistema? La firma criptográfica se calcula y se compara con la firma precalculada del archivo que se descarga por separado.

  • ¿Cómo confiamos en que las firmas almacenadas en el archivo son realmente del archivo que esperábamos? Está certificado por una clave de archivo que podemos obtener independientemente de una URL separada, y se instala en la configuración inicial del sistema operativo.

Y así sucesivamente. En algún momento de la cadena, debe confiar en parte de (y participar en) el sistema, en pruebas menos que ideales.

Con las capas anteriores, la ventana de confianza de baja evidencia se puede mantener pequeña y fácil de analizar. Los hashes de una vía y las firmas criptográficas nos permiten confiar en las matemáticas para certificar lo que sigue en secuencia.

La wiki de Debian tiene una buena y completa descripción de cómo se asegura el sistema APT .

Por supuesto, muchas otras cosas pueden salir mal por error o malicia, y violar nuestras suposiciones sobre lo que realmente está sucediendo. Como de costumbre, la única defensa persistente contra posibles ataques es: la vigilancia eterna.

    
respondido por el bignose 29.12.2015 - 01:46
fuente
2

apt-get tiene una lista de claves gpg de confianza. apt-get install descarga los paquetes de los servidores de repositorio (duplicados), normalmente no es el servidor del autor del software. Para asegurar la autenticidad de cada paquete está firmado con gpg. El paquete solo se instala si la firma es de confianza. Así que incluso en el caso de un ataque MITM, la comprobación de la firma fallará si se modifica el paquete.

    
respondido por el H. Idden 29.12.2015 - 00:27
fuente

Lea otras preguntas en las etiquetas