Debsums: comprobación de integridad de los paquetes instalados en Debian

Una forma sencilla de comprobar la integridad de los paquetes que hemos instalado en nuestro sistema Debian o derivada es utilizar debsums.

Todos los ficheros que se instalan con un paquete .deb en Debian tienen un hash MD5 único. Dichos checksums se guardan en /var/lib/dpkg/info/*.md5sums. Por ejemplo, vamos a ver el contenido de /var/lib/dpkg/info/vim.md5sums:

Checksums del paquete correspondiente a vim

Checksums del paquete correspondiente a vim

Podríamos decir que los checksums del directorio /var/lib/dpkg/info sirven como base de datos contra la que podemos comprobar la integridad de los ficheros de nuestro sistema, de la misma manera que comprobamos el hash de ficheros descargados como explicaba en este artículo.

Instalamos la aplicación con el apt-get de rigor:

apt-get install debsums

Su utilización es bastante sencilla. Se puede realizar una comprobación de checksums en general de todos los paquetes instalados con:

debsums
Comprobando los checksums con debsums

Comprobando los checksums con debsums

Para mayor comidad redirigimos a un fichero que posteriormente podamos inspeccionar con tranquilidad:

debsums > checksums.txt

Los posibles resultados son:

  • OK: el hash de fichero coincide con el registro en /var/lib/dpkg/info
  • FAILED: el hash del fichero no coincide con su hash m5 registrado en el directorio /var/lib/dpkg/info
  • REPLACED: si el fichero ha sido reemplazado por otro de un paquete distinto.

Si sólo queremos que nos muestre los paquetes que tienen checksum que no coincide con lo especificado en /var/lib/dpkg/info/ utilizaremos la opción -c:

debsums -c

Si no produce ninguna salida… ¡Todo correcto entonces! Si al contrario vemos que algún fichero no se corresponde con su hash md5, tendremos que investigar por qué. Tener en cuenta no obstante que podemos obtener falsos positivos en caso de aplicaciones que hayamos compilado nosotros mismos.

No todos los paquetes .deb vienen con los checksums de los ficheros contenidos, por lo que podemos ver qué ficheros en nuestro sistema carecen de checksum con:

debsums -l

Como apunte final también es interesante saber que con la opción -g podemos generar los checksums correspondientes para paquetes .deb que no los traigan de serie.

Generación de checksums con debsums

Generación de checksums con debsums

Como siempre, estas opciones y más las podéis ver con más detalle en la página de manual con man debsums.