2023-04-09 13:35 (Ultima actualización: 2023-04-13 22:57)
Gestión de vulnerabilidades en FreeBSD
Como cualquier otro sistema, necesitamos mantener actualizados también aquellos que ejecutan FreeBSD. Bien sea un equipo físico, virtual o un jail. Además actualizado significa no sólo integrar o instalar nuevas versiones del propio sistema operativo o de los paquetes y software que tiene instalados. También implica mantenerse al tanto de las nuevas vulnerabilidades que impactan a ambos.
Existen varias formas de hacer esto. Una de ellas, viene por defecto con el sistema, y es el enviar un correo electrónico al usuario root diaria y semanalmente con el resultado de la auditoría interna que se realiza a sí mismo. Un ejemplo de uno de estos mail es:
Que viene a resumir en este caso que el paquete vulnerable es python-3.9.13.
Para comprobar de qué se trata concretamente, podemos iniciar sesión en el sistema y auditarlo manualmente:
doas pkg audit -F
Y obtendremos en este caso particular:
vulnxml file up-to-date
python39-3.9.13 is vulnerable:
Python -- multiple vulnerabilities
WWW: https://vuxml.FreeBSD.org/freebsd/d6d088c9-5064-11ed-bade-080027881239.html
Python -- multiple vulnerabilities
CVE: CVE-2020-10735
WWW: https://vuxml.FreeBSD.org/freebsd/80e057e7-2f0a-11ed-978f-fcaa147e860e.html
Python -- multiple vulnerabilities
WWW: https://vuxml.FreeBSD.org/freebsd/050eba46-7638-11ed-820d-080027d3a315.html
3 problem(s) in 1 installed package(s) found.
Las posibles vulnerabilidades del sistema base (el propio FreeBSD), no aparecen en este reporte, para ello existen otras herramientas como freebsd-version, freebsd-update.
Como vemos, nos proporciona referencias par consultar en qué consisten exactamente esas vulnerabilidades. A partir de aquí la solución es sencilla:
doas pkg update
Que resultará en:
Updating FreeBSD repository catalogue...
Fetching packagesite.pkg: 100% 6 MiB 6.6MB/s 00:01
Processing entries: 100%
FreeBSD repository update completed. 31741 packages processed.
All repositories are up to date.
Para después actualizar los paquetes problemáticos:
doas pkg upgrade python39
Con la salida:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
pkg: 1.19.0 -> 1.19.1_1
Number of packages to be upgraded: 1
7 MiB to be downloaded.
Proceed with this action? [y/N]: y
[1/1] Fetching pkg-1.19.1_1.pkg: 100% 7 MiB 7.6MB/s 00:01
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.19.0 to 1.19.1_1...
[1/1] Extracting pkg-1.19.1_1: 100%
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
gettext-runtime: 0.21 -> 0.21.1
libffi: 3.4.2 -> 3.4.4
python39: 3.9.13 -> 3.9.16_2
readline: 8.1.2 -> 8.2.0
Number of packages to be upgraded: 4
18 MiB to be downloaded.
Proceed with this action? [y/N]: y
[1/4] Fetching python39-3.9.16_2.pkg: 100% 17 MiB 9.0MB/s 00:02
[2/4] Fetching libffi-3.4.4.pkg: 100% 36 KiB 36.5kB/s 00:01
[3/4] Fetching readline-8.2.0.pkg: 100% 343 KiB 350.9kB/s 00:01
[4/4] Fetching gettext-runtime-0.21.1.pkg: 100% 159 KiB 163.0kB/s 00:01
Checking integrity... done (0 conflicting)
[1/4] Upgrading libffi from 3.4.2 to 3.4.4...
[1/4] Extracting libffi-3.4.4: 100%
[2/4] Upgrading readline from 8.1.2 to 8.2.0...
[2/4] Extracting readline-8.2.0: 100%
[3/4] Upgrading gettext-runtime from 0.21 to 0.21.1...
[3/4] Extracting gettext-runtime-0.21.1: 100%
[4/4] Upgrading python39 from 3.9.13 to 3.9.16_2...
[4/4] Extracting python39-3.9.16_2: 100%
Con lo que ya tendríamos este problema solucionado.
Esta entrada no es una guía de como realizar la gestión de vulnerabilidades en sistemas personales o empresariales. Simplemente es una guía de comprobación y subsanación de las mismas. Las colecciones de buenas prácticas en este sentido han de seguirse aplicando.