¿Cómo puede saber qué se distribuye con su Linux?

4

Tengo curiosidad, en teoría, ¿cómo se puede saber si, por ejemplo, el kernel que se distribuye con Ubuntu Linux es realmente lo que está en enlace y no algún kernel modificado que contenga código de seguimiento, etc. ...

Mencioné Kernel solo como un ejemplo. La pregunta real es: ¿puede estar seguro de que el software de código abierto distribuido es realmente lo que espera que sea?

    
pregunta umpirsky 22.10.2013 - 20:38
fuente

3 respuestas

6
  

Tengo curiosidad, en teoría, ¿cómo se puede saber si, por ejemplo, el kernel que se distribuye con Ubuntu Linux es realmente lo que está en enlace y no algún kernel modificado que contenga código de seguimiento, etc. ...

En realidad, lo que se distribuye con su distribución generalmente no es lo que se distribuye a través del árbol git de torvald. Su distribución de Linux probablemente no sea un núcleo de vainilla.

El motivo de esto es que los proveedores de distribución suelen ser correcciones de backport que pueden afectar a sus clientes de diversas fuentes. En Fedora, por ejemplo (estos ejemplos se seleccionaron simplemente porque tengo experiencia reciente en la creación personalizada de estos paquetes):

  • El kernel (actualmente 3.11.4-201.fc19.x86_64 al momento de escribir 'contiene una serie de parches para v4l, correcciones iommu, drm-intel-nex, iwl (intel wireless) y demás.
  • Grub2 contiene una serie de parches para resolver varios problemas (de ruptura) con su compilación, y parches para hacer que las compilaciones EFI funcionen.

En Fedora (y otros sistemas basados en yum) yumdownloader --source kernel reducirá el RPM del kernel de origen: ábrelo y encontrarás todo lo que se usa para compilar los paquetes del kernel.

Entonces, no, su Linux (e incluso sus paquetes) podría no ser un paquete de proveedores de vainilla. Ahora, a continuación:

  

La verdadera pregunta es, ¿puede estar seguro de que el software de código abierto distribuido es realmente lo que espera que sea?

Bueno, el punto anterior fue que el contenido de la base de datos de su paquete podría no ser lo que usted espera que sea, pero supongo que la pregunta es y ¿podría contener contenido malicioso? .

La respuesta es que hay pocas formas de saberlo como usuario final a menos que inspeccione la fuente y reconstruya el paquete a partir de eso.

Sin embargo , la mayoría de los procesos de envío de paquetes implican un poco de rigor. Por lo general, no puede simplemente aparecer y convertirse en un mantenedor de un paquete popular. Debería ser conocido por sus contribuciones, aprobado por un miembro del personal / miembro del comité / lo que sea que le otorgue los derechos para enviar paquetes.

Puedo ver que este es un posible vector de ataque en un software desconocido, pero creo que es muy probable que se detecte un ataque en el futuro. La mayoría de los paquetes se crean a partir de la fuente y reciben un escrutinio debido a errores, problemas del usuario, etc. El desarrollo continúa y los paquetes son reconstruidos. Los parches pueden fallar. Alguien, en algún lugar, es probable que note una rareza, básicamente.

Sobre esta base, creo que debe tomar una decisión basada en el riesgo. ¿Es lo que pretende proteger tan valioso que cree que los adversarios altamente capaces y persistentes van a tratar de crear un paquete en una distribución de Linux para llegar a usted? Si es así, siga adelante y cree su propia distribución (no hay ninguna razón por la que no pueda robar los paquetes de un distribuidor existente y simplemente auditar / compilar su propia cuenta, por cierto, esa es la belleza del código abierto).

Si no, me gustaría (personalmente) aceptar el riesgo externo.

    
respondido por el user2213 22.10.2013 - 21:38
fuente
2

En mi experiencia, la única forma en que puede estar seguro de que un módulo en particular no está integrado en el kernel o de que un módulo rooteado no está cargado en tiempo de ejecución sería construir el kernel usted mismo. Un lanzamiento a Gentoo, donde usted es responsable de descargar sus propias fuentes y construir cada paquete en el sistema. Si descarga Ubuntu, Kali, Backtrack o algún otro sistema precompilado donde no fue el que descargó las fuentes del kernel, hizo make, make config, etc ... decidió qué elementos se construirían y cargarían como módulos vs integrado en el kernel, entonces, básicamente, no creo que pueda confiar en el sistema.

    
respondido por el daniel 22.10.2013 - 20:53
fuente
2

No, no puedes en realidad. Confía en que los repositorios son seguros y que las personas que se están comprometiendo están haciendo esto correctamente. Sin embargo, todo lo que descargues de los repositorios puede verificarse hasta cierto punto. Hay un proceso de revisión por pares para casi todas las partes del repositorio.

Si desea estar seguro, lo único que puede hacer es compilar todo desde cero, como se hace en Linux from scratch . Pero incluso entonces, para asegurarse de que no haya puertas traseras, deberá revisar todo el código usted mismo.

Al final es (como siempre) un intercambio entre la facilidad de uso, la facilidad de uso y la seguridad de que, de hecho, las personas no están abrigando puertas traseras.

    
respondido por el Lucas Kauffman 22.10.2013 - 20:55
fuente

Lea otras preguntas en las etiquetas