¿Son seguros los paquetes de ubuntu (deb-files) solo md5sum?

13

Antecedentes introductorios de la pregunta a continuación ###

(por lo que la pregunta es más útil para más personas)
Dentro de un paquete Ubuntu / debian-style (archivo * .deb) hay un archivo llamado /DEBIAN/md5sumsque tiene un contenido de esta forma:

212ee8d0856605eb4546c3cff6aa6d35 usr / bin / file1
4131b66dc3913fcbf795159df912809f ruta / a / archivo2
8c21de23b7c25c9d1a093607fc27656a ruta / a / archivo3
c6d010a475366e0644f3bf77d7f922fd ruta / a / lugar / de / archivo4

Como supongo, este archivo se usará para verificar que los archivos que vienen con el paquete no se hayan dañado de alguna manera. Como el archivo se llama `/ DEBIAN / md5sums", supongo que el número hexadecimal antes de la ruta + nombre de archivo es el algoritmo de resumen de algoritmo de resumen de mensaje MD5 de los archivos del paquete.

Ahora todos los interesados ​​saben que el Hash MD5 se ha roto hace mucho tiempo. Por lo tanto, es totalmente posible cambiar el contenido de un archivo en el paquete (por ejemplo, maliciosamente) y aún tener el archivo con el mismo MD5-Hash (ver por ejemplo Prueba del concepto "Predicción del ganador ..." ).

Pregunta

Teniendo en cuenta la información anterior, quiero saber lo siguiente:

** Suponiendo que instalo un paquete en mi sistema Ubuntu. ¿Es el DEBIAN/md5sumsúnico medio para asegurarse de que los datos no hayan sido alterados? ** **

Respondiendo a la pregunta, creo que podría ayudar resolver lo siguiente:

  • ¿Los paquetes deb en su conjunto también están en hash?
  • Si hay otras formas, entonces el DEBIAN/md5sumsarchivo para garantizar la integridad, ¿cuál es el archivo incluido en los paquetes * .deb de todos modos?
  • ¿Ubuntu utiliza hashes para el repositorio / sistema de paquetes que están "menos rotos" que SHA-1 y MD5?

que desafortunadamente tampoco lo sé.

Cualquier respuesta que pueda arrojar luz sobre la pregunta (o incluso solo una pregunta secundaria) es muy bienvenida.

actualizar

(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab parece indicar que (como esperaba) hay alguna clave de gpg pública / privada activada (para mantener los repositorios y los sistemas de paquetes) seguros de los ataques Sin embargo, la información en la ubicación vinculada no es mucho. No dice casi nada sobre el aspecto de seguridad del sistema Package. De todos modos, supongo que el enlace ya indica que la respuesta a la pregunta será "NO, al menos los paquetes deb del repositorio, también están asegurados por ...". Espero que alguien tenga algunas ideas para usar aquí como respuesta.

(2) Esta pregunta parece ser también sobre el tema de "seguridad" en el sistema de paquetes de Ubuntu. Así que solo lo agrego aquí para que su mano publicitaria si alguien se esfuerza por resolver la pregunta: ¿ por qué son seguras las correcciones propuestas BADSIG (en la actualización de apt-get)?

humanidad y paz
fuente
1
debian.org/doc/debian-policy/… indica soporte para las sumas de verificación por archivo SHA-1 y SHA256, sin embargo, no sé cuál aptes la política de suma de verificación.
cronitis
1
@chronitis gracias por el enlace allí. De hecho, los hashes SHA- * se mencionan allí. Todavía tengo que averiguar cómo aparecen en los paquetes (que aún no vi) o en el sistema de paquetes. ¿Sabes más? Bueno, la indicación de que ya es un buen paso
humanityANDpeace

Respuestas:

21

Ubuntu publica un manifiesto firmado con una clave RSA. El manifiesto enumera los Packagesarchivos de índice individuales , cada uno con hash MD5, SHA-1 y SHA-256. Cada Packagesarchivo enumera .debarchivos individuales con hash MD5, SHA-1 y SHA-256.

Para la verificación, apt utiliza el mejor hash que admite y lo publica el archivo desde el que se descarga. En el caso del archivo Ubuntu, este es SHA-256.

Entonces, toda la cadena de paquetes de instalación en su sistema Ubuntu está protegida por RSA y SHA-256.

La protección MD5 que existe en dpkg realmente solo es útil para la corrupción accidental, y no es necesaria para proteger la ruta de instalación.

Puede que le interese el debsumspaquete, pero dado que utiliza MD5, también es útil para verificar si hay daños accidentales.

Si desea verificar la modificación maliciosa del sistema, estas no son las herramientas adecuadas para usted. Deberá desconectar el sistema y verificar si se trata de un registro anterior, los archivos del paquete original o los hashes seguros generados a partir de estos.

Tenga en cuenta que, dado que una modificación maliciosa exitosa podría ser simplemente degradar un paquete al anterior a una actualización de seguridad, verificar que todos los archivos de paquetes instalados coincidan con sus originales puede tampoco ser suficiente.

Robie Basak
fuente
1
He obtenido una idea más clara. ¿De dónde sacaste toda esta información, que tengo tanta dificultad para encontrar? ¿Tienes algunos docus / enlaces que usaste? También agradezco la mención del "peligro de degradación" que mencionó, por lo que todavía no entiendo cuán explícitamente podría explotarse. ¡Excelente! gracias
humanityANDpeace
No creo que el formato del repositorio de apt esté correctamente especificado o documentado en ningún lado. Esto es malo, pero así es como es. La mejor (y que yo sepa) la verdadera documentación es la fuente. Conozco los detalles porque he trabajado en la fuente. Por otro lado, el formato dpkg está muy bien especificado en la política de Debian. Cubre lo que sucede después de que los paquetes terminan en su sistema, pero no cómo llegan allí. La última parte la realiza apt.
Robie Basak
Riesgo de degradación: esto es un aparte y no está realmente directamente relacionado con su pregunta original. Si se descubre el exploit X en la versión A, obtendrá una actualización de seguridad para la versión B, donde se corrige la vulnerabilidad. Si un atacante puede explotar X en la versión A, entonces está a salvo, ya que actualizó a B. Pero si el atacante también puede degradarlo a A, entonces es vulnerable nuevamente. No lo notará incluso si todos sus valores hash seguros coinciden con los paquetes que ha instalado, ya que su base de datos de paquetes dirá que se supone que tiene instalado A y no B.
Robie Basak
2
@RobieBasak "No creo que el formato del repositorio de apt esté correctamente especificado o documentado en ninguna parte". Obviamente, esto no es verdad. Solo tienes que buscarlo. Debian Wiki: RepositoryFormat
gertvdijk
6

Quería que esto fuera un comentario, pero no pude incluirlo en la caja, así que lo estoy colocando aquí.

Sí, md5 se ha roto criptológicamente, pero eso no significa que sea un mal algoritmo de hash de propósito general. Modificar un archivo para que tenga el mismo hash es increíblemente difícil, y hacerlo con un cambio malicioso en particular es casi imposible. Al mirar el ejemplo al que hizo referencia, ( Prediciendo al ganador ) vea esto:

"Los documentos se prepararon primero cuidadosamente como documentos PDF válidos, con un objeto de imagen oculta incorporado, que contenía una cantidad suficiente de bits aleatorios. Luego, de acuerdo con la estructura de diamante que se muestra arriba, se calcularon once colisiones de prefijos elegidos, y se colocaron dentro del oculto objetos de imagen precisamente en los lugares adecuados. De esta manera, los doce documentos se convirtieron en una colisión múltiple MD5 ".

Lo que se hizo fue llenar los archivos con datos aleatorios para hacer coincidir los hashes. La tecnología no es capaz de agregar un código malicioso en particular a un archivo y hacer que los hashes se alineen sin romperlo o hacer obvio que el archivo ha cambiado (no sé si apt lo hace, pero muchos hashes de archivos son acompañado por sus tamaños de archivo para aumentar la dificultad de una colisión de hash indetectable).

Jackweirdy
fuente
3
gracias por la respuesta. Creo que es una buena respuesta, en el sentido de que da más luz a todo el fondo :) Desafortunadamente "Apilar ... Preguntar a Ubuntu" a veces es difícil con "responder estrictamente a la pregunta solamente" y por eso es genial que hayas tenido coraje para elaborar sobre el tema.
humanityANDpeace
Los archivos PDf preparados tienen datos aleatorios y son solo 104 kb con todo este esfuerzo. ¿Por qué dirías que esto es imposible entonces? Debe haber toneladas de archivos en paquetes deb de> 200kb donde debe ser posible hacer tal cosa. Yo no me siento tan seguro después de haber visto la prueba de concepto, que asombró y me sorprendió
humanityANDpeace
Hay muchos lugares en archivos legítimos donde un cambio sutil no parecería extraño, por ejemplo, pequeñas diferencias de espacio en blanco en un archivo de texto. Solo necesita encontrar alrededor de 128 de estos lugares para tener el alcance suficiente para crear un archivo malicioso que parezca legítimo y que también coincida con su objetivo MD5 deseado. Sin embargo, no estoy seguro de si este ataque en particular podría aplicarse a esta situación.
Robie Basak
@RobieBasak, no entiendes el ataque. No puede simplemente cambiar 128 bytes en un archivo y preservar el md5sum. Debe insertar un fragmento de lo que de otro modo parecen ser dos conjuntos de datos aleatorios en dos copias de un archivo, y tendrán el mismo md5sum entre sí, a pesar de que los dos fragmentos de datos "aleatorios" son diferentes.
psusi
1

md5 no estaba "roto". Lo que encontraron fue una forma de elaborar cuidadosamente un mensaje original y un mensaje modificado que tenía el mismo hash. No es posible tomar un mensaje original no especialmente diseñado para manipular (el archivo correcto) y modificarlo de tal manera que conserve su md5sum.

psusi
fuente
Okay. Pero, ¿cuál sería la buena manera de referirse al estado actual de la seguridad MD5 ahora, si no está "roto"? Puedo entender lo que dices y gracias por señalarlo. Todavía me pregunto cómo evaluar la seguridad actual mediante MD5, etc.
humanityANDpeace
@humanityANDpeace, "bien".
psusi
Me gusta la actitud optimista. Todavía me sorprendió la prueba de concepto después de todo. ¡Gracias!
humanityANDpeace
1
"Los expertos en cripto consideran MD5 roto. Por lo tanto, se debe considerar roto". esa no es la forma en que funciona el mundo @RobieBasak Como cripto entusiasta (no puedo llamarme un "experto" pero tuve que investigarlo hace unos años), no diría que MD5 está roto. Simplemente que hay un caso interesante que vale la pena revisar, pero parece un cajero automático teórico. Pero no romperá el paquete de Ubuntu;) Volver a 0 psusi;)
Rinzwind
1
@jackweirdy, en realidad, la hay, y es por eso que no hicieron eso. Su método se basa en ambos conjuntos de datos que tienen propiedades muy específicas. Es muy parecido a un par de llaves públicas. Puede generar un par de claves que coincidan entre sí, pero dado solo una, no puede descubrir la otra.
psusi