GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo saber si las actualizaciones del sistema son confiables?

Rutinariamente actualizo mi sistema cada vez que me notifica sobre actualizaciones de software. Esta es una de esas cosas en las que simplemente confío para trabajar sin conocer los detalles, pero recientemente me he vuelto curiosa:¿Cómo sé eso?

  • ¿el proceso de búsqueda de actualizaciones solo mostrará actualizaciones legítimas?
  • ¿las actualizaciones que recibo e instalo no son maliciosas?

Sé que tengo un conjunto de fuentes de software que yo mismo especifico por URL y que si confío en esas fuentes es mi decisión. Pero, ¿qué sucede una vez que especifiqué esas URL?

Por lo que es común en estos días, sospecho que la autenticidad de esas fuentes se verifica con algo similar a HTTPS / SSL, i. mi. Tengo algunos certificados que están verificados con alguna autoridad, lo que significa que necesito certificados raíz confiables instalados en algún lugar (probablemente vienen con el sistema).

Además, supongo que los paquetes están firmados criptográficamente, como con GPG o similar.

¿Son correctas esas suposiciones? ¿Dónde puedo inspeccionar las claves/certificados utilizados? ¿Cómo puedo verificar si son los correctos? ¿Cómo puedo verificar que, de hecho, se utilizan? ¿Existen opciones de configuración que hacen que el proceso sea más o menos prudente y cuáles son sus valores predeterminados? ¿Hay ataques conocidos o ha habido vulnerabilidades recientemente? Me parece recordar que Windows tuvo un problema como ese no hace mucho tiempo.

Estoy en 12.04, pero supongo que esto se puede responder de manera más general.

Respuesta aceptada:

Esta es una gran pregunta. La respuesta es (por supuesto) bastante compleja, pero déjame intentar desglosarla. Veamos primero los procesos técnicos:

La Cadena de Confianza

No usamos SSL para asegurar APT, usamos hash criptográfico (SHA256, en estos días) y firmas OpenPGP. Esto le permite confiar en espejos que no son de confianza y evita tener que confiar en CA PKI.

Cuando agrega un repositorio a sources.list de APT , también debe agregar su clave PGP al conjunto de claves de confianza de APT, con la apt-key dominio. El llavero viene con las claves para los repositorios de Ubuntu incluidas. Y cuando usas el apt-add-repository comando para agregar un PPA, agrega la clave (obtenida de Launchpad sobre SSL) por usted.

La cadena de confianza es:

  1. Cada sources.list puntos de entrada APT a un Release archivo en el repositorio, con un Release.gpg firma (o se pueden combinar como un InRelease expediente). Este archivo describe el repositorio y debe estar firmado por una clave en el conjunto de claves de su APT.
  2. El Release El archivo contiene hashes criptográficos de todos los Packages y Sources archivos Estos enumeran todos los paquetes y versiones disponibles en el repositorio.
  3. Los Packages y Sources los archivos contienen los hash criptográficos de cada paquete.
  4. Los paquetes en sí no están firmados. No es necesario, hay una cadena de confianza para ellos, desde el archivo de Liberación, firmado por el espejo. Sin embargo, los paquetes fuente, utilizados para crear los paquetes binarios, están firmados por PGP por el desarrollador que los cargó.

Puede leer más sobre el formato del repositorio en el wiki de Debian.

Esta cadena significa que no tenemos que confiar en ningún espejo intermediario, podemos confiar en que el paquete que instalamos es idéntico al presente cuando se firmó el archivo de lanzamiento.

Puede inspeccionar el llavero de APT ejecutando sudo apt-key finger .

Verificación de las claves de archivo de Ubuntu

¿Cómo sabes lo que debería estar allí? Si no confía en su computadora, no puede confiar en ningún programa que no le mienta (como apt-key ), y este ejercicio es fútil. Así que supongamos que esto es solo por interés académico y verifiquemos el contenido del conjunto de claves del paquete fuente definitivo, que es PGP firmado por el desarrollador que lo cargó.

Relacionado:¿Tiene espacios de trabajo 2×2 en Gnome 3 en Ubuntu?

Descarga el ubuntu-keyring paquete fuente, y vea lo que debería estar ahí:

$ apt-get source ubuntu-keyring
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 20.0 kB of source archives.
Get:1 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (dsc) [1542 B]
Get:2 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (tar) [18.5 kB]
Fetched 20.0 kB in 0s (0 B/s)               
dpkg-source: info: extracting ubuntu-keyring in ubuntu-keyring-2012.05.19
dpkg-source: info: unpacking ubuntu-keyring_2012.05.19.tar.gz
$ gpg --verify ubuntu-keyring_2012.05.19.dsc
gpg: Signature made Sat May 19 03:33:12 2012 SAST
gpg:                using RSA key 0x393587D97D86500B
gpg: Good signature from "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
$ gpg --no-default-keyring --keyring ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg --fingerprint
ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg
-------------------------------------------------------------
pub   1024D/0x40976EAF437D05B5 2004-09-12
      Key fingerprint = 6302 39CC 130E 1A7F D81A  27B1 4097 6EAF 437D 05B5
uid                            Ubuntu Archive Automatic Signing Key <[email protected]>
sub   2048g/0x251BEFF479164387 2004-09-12

pub   1024D/0x46181433FBB75451 2004-12-30
      Key fingerprint = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
uid                            Ubuntu CD Image Automatic Signing Key <[email protected]>

pub   4096R/0x3B4FE6ACC0B21F32 2012-05-11
      Key fingerprint = 790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
uid                            Ubuntu Archive Automatic Signing Key (2012) <[email protected]>

pub   4096R/0xD94AA3F0EFE21092 2012-05-11
      Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid                            Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>

Sé que esa es en realidad la firma de Colin Watson, ya que lo he visto varias veces y hemos verificado las identidades de los demás y firmado las claves de los demás. Si tiene una clave en el conjunto fuerte de PGP, debería poder encontrar una ruta de confianza hacia él. También sé que puedo confiar en él para cargar el ubuntu-keyring correcto paquete.

Para Debian, hay un paquete (debian-keyring ) que contiene las claves PGP de todos los desarrolladores de Debian, y puede usar esto para verificar las firmas del paquete fuente. Ubuntu no tiene un equivalente, pero muchos desarrolladores de Ubuntu también son desarrolladores de Debian, y todas las claves PGP de nuestros desarrolladores están disponibles en sus perfiles en Launchpad.

Las otras preguntas

¿Cómo sé que las actualizaciones no son maliciosas?

Todo se reduce a la confianza. Tienes que confiar plenamente en cada repositorio que utilices. Está otorgando a los mantenedores de cada repositorio permiso para ejecutar cosas como root en su máquina.

Los paquetes de Ubuntu solo pueden ser cargados por desarrolladores de Ubuntu a quienes la Junta de Membresía de Desarrolladores (en la que actualmente sirvo) les ha otorgado derechos de carga. Para solicitar los derechos de carga, debe estar respaldado por varios desarrolladores de Ubuntu existentes que hayan trabajado con usted y confíen en sus capacidades para trabajar por su cuenta. Sin derechos de carga, las cargas deben ser patrocinadas por desarrolladores que tengan los derechos (lo que debe incluir la revisión de la carga).

Para las actualizaciones posteriores al lanzamiento, Ubuntu tiene políticas estrictas sobre el contenido de las actualizaciones. Solo deben contener parches mínimos para corregir errores conocidos. Los parches son revisados ​​por miembros de los equipos de seguridad/SRU antes de ser aceptados.

Obviamente, los PPA y los repositorios de terceros no tienen todas estas restricciones. Tienes que confiar en que los propietarios de PPA sean sensatos.

Todos los paquetes de Ubuntu y PPA tienen la fuente disponible, por lo que cualquiera puede inspeccionarlos.

¿Existen opciones de configuración que hacen que el proceso sea más o menos prudente y cuáles son sus valores predeterminados?

Puede desactivar la verificación de firma en APT, pero por supuesto está activada de forma predeterminada. Cuando intenta instalar algo desde un repositorio no firmado/no confiable, apt le hace confirmar que realmente desea hacerlo.

¿Hay ataques conocidos o ha habido vulnerabilidades recientemente?

Recuerdo uno, el error de Debian 499897. Debian soluciona esto dando a los archivos de versión una fecha de caducidad, después de la cual no se puede confiar en ellos. Ubuntu aún no es compatible con esto.

Relacionado:¿Cómo buscar el nombre del espacio de trabajo actual?
Ubuntu
  1. Cómo cambiar la identidad de un sistema Linux

  2. Linux:¿cómo averiguar qué discos duros hay en el sistema?

  3. ¿Cómo omitir el menú Grub en un sistema de arranque dual?

  4. ¿Cómo saber el número de sectores defectuosos en el disco duro?

  5. ¿Cómo modificar la imagen de fondo predeterminada del sistema?

Cómo verificar la RAM instalada en su sistema Ubuntu

Cómo saber la versión de la aplicación antes de instalar en Ubuntu

Cómo manejar las actualizaciones automáticas en Ubuntu

Cómo instalar actualizaciones de seguridad en Ubuntu y Debian

¿Cómo recuperar la notificación de Skype en la bandeja del sistema?

Cómo reparar el sistema operativo Ubuntu roto sin reinstalar el sistema