Debian: al 94% en reproducible builds

Cada vez estoy más convencido que en el mundo de la ciberseguridad existe una subespecie que podríamos denominar: los flipados de la seguridad informática. Los conoceréis porque se alimentan de vulnerabilidades o malware a todas horas . También porque habitualmente lo hacen sin distinguir gravedad o componentes afectados (y para muestra como un oscuro programa llamado gnome-exe-thumbnailer, que nada tiene que ver con los desarrolladores de GNOME, se convirtió en la vulnerabilidad linuxera de la semana). A todo esto, este verano ya está tardando en aparecer el habitual troyano para Linux…no se a que diablos esperan.

Y después están los que de verdad saben del tema, que en ocasiones también hacen algo por mejorar la seguridad de nuestro sistema. Como la gente que trabaja en el desarrollo de los reproducible builds, una técnica que permite determinar que el código fuente de un programa no se ha visto alterado, durante el proceso de transformación en binario (por ej. esos deb o rpm que utilizamos en nuestras distros).

Mediante un proceso de verificación bit a bit, se puede establecer si ha habido modificaciones, que podrían llevar a errores o en el peor de los casos a debilidades de seguridad, introducidas de forma malintencionada. De forma colateral los reproducible builds también ofrecen beneficios, para el despliegue de aplicaciones o en labores de depuración.

Son varios los proyectos que están involucrados en este desarrollo, distribuciones GNU/Linux como Arch Linux, Debian, Fedora, openSUSE o Tails, software como el navegador Tor Browser, plataformas de firmware como coreboot, el mundo BSD siempre tan preocupado por la seguridad (ElectroBSD, FreeBSD, NetBSD), sistemas Linux embebidos como LEDE u openWRT, además de otras organizaciones como Baserock, Bitcoin, Webconverger, Yocto y F-Droid. Señalar que el proyecto Reproducible Builds cuenta con el patrocinio de la Core Infraestructure Initiative.

Entre los sistemas que más avanzado tienen este asunto, está Debian. Apenas llevan tres años trabajando en el tema, pero ya están muy cerca de alcanzar el 100% de paquetes reproducible build.

Para ser exactos el 94% de los binarios de Debian Stretch. Todavía faltan 1300 paquetes –lo que nos da una idea del tamaño de sus repositorios– pendientes de migrar a esta nueva técnica.

Gran parte del éxito alcanzado se debe a la creación de herramientas específicas (diffoscope, debepro, reprotest) que permiten testear los paquetes o ver la diferencias entre los mismos. Dichas herramientas son de tipo “agnóstico” por lo que pueden ser utilizadas por otros proyectos.

Además se ha trabajado en los archivos .buildinfo. Como podemos deducir de su nombre, estos archivos almacenan información exacta sobre la configuración y entorno necesario (por ej: dependencias, compilador) para la creación de un determinado paquete de tipo reproducible builds.

Quizás en un futuro si se impone flatpak o snappy, como paquetes genéricos ya no sea tan necesario esto de los reproducible builds (o se plantee de otra forma), pero eso no va a pasar de hoy para mañana. En cualquier caso, enhorabuena a Debian por su trabajo.

3 thoughts on “Debian: al 94% en reproducible builds”

  1. Enrique del Pozo says:

    Podrías hacer un post con fotos y datos de tu workflow y toolchain que usas en GNU Linux? Sistema,software temas,etc

    1. tannhausser says:

      Es una buena sugerencia para esos días sin noticias interesantes o que no apetezca un tutorial.

      De todas maneras, ya te digo que no tiene nada de especial, utilizo los escritorios en un modo muy vanilla (a veces ni les cambio el fondo), ahora mismo con KDE y tema breeze, pero a lo largo del año me verás también con Xfce y GNOME (quizás openbox o fluxbox en el netbook), en estos casos soy más proclive a cambiar iconos o theme (arc, numix). Independientemente del escritorio siempre tengo una mezcla de aplicaciones GTK/Qt.

      Y en cuanto al software, firefox/chrome como navegadores (el primero para abrir muchas pestañas, el segundo para buscar algo rápido, también en función de si utilizo mi cuenta personal u otro perfil), thunderbird como cliente de correo, ultimamente prefiero a SMPlayer sobre VLC como reproductor multimedia, la música a medias entre Rhythmbox y audacious, editor de texto kate, dolphin como navegador de archivos, suite ofimática LibreOffice y como IDE Geany (a veces Kdevelop).Me temo que en aplicaciones de consola tampoco soy muy original, por ej. a la hora de monitorear (top, htop, a veces ps_mem), descargar videos (youtube-dl) o escanear redes (nmap).

      Casi me olvido de las distros, será porque hoy en día casi hace más diferencia el entorno de escritorio elegido. En mi equipo principal utilizo Antergos, con algunos cambios. Por ej. siempre le modifico el gestor de sesiones (lightdm por GDM o SDDM, dependiendo del entorno). Ahora en KDE utilizo como interfaz gráfica de software octopi en vez de pamac. Aunque en realidad tiro más de consola, con el bendito pacman y ultimamente pacaur (que me parece superior a yaourt) para manejar los repositorios de AUR.

      También tengo Manjaro y algunos Ubuntu’s (Xubuntu, Lubuntu) en otros equipos. Anteriormente mi distro de cabecera era openSUSE. Junto a Fedora y Ubuntu posiblemente lo que más he utilizado.

  2. carlosky77 says:

    ¿Los reproducibles builds estarán en Red Hat?. Muchos expertos en seguridad dicen que en Red Hat hay dos códigos (y uno disponible para el cliente), uno con puertas traseras y el otro sin éstas. El tío Sam debe asegurar la vigilancia del mundo y por ley fuerza a Red Hat…

Deja un comentario