Toutes les versions supportées de FreeBSD sont affectées par divers bogues de sécurité qui doivent être appliqués dès que possible. Par exemple, un bug de corruption de mémoire existe dans l'hyperviseur bhyve. Un autre écrase la pile de ggatec et peut potentiellement exécuter du code arbitraire. Il y a aussi deux problèmes corrigés pour OpenSSL dans cet avis de sécurité. Voyons voir quoi et comment corriger ces vulnérabilités de sécurité sur FreeBSD.
L'excellente nouvelle est que des corrections ont été publiées pour FreeBSD version 11, 12 et 13 pour bhyve, openssl, GEOM et libfetch.
Publication des correctifs de sécurité pour FreeBSD bhyve, openssl, GEOM et libfetch
La gestion des erreurs manquantes dans les modèles de périphériques de l'hyperviseur bhyve existe. Des modèles de périphériques spécifiques basés sur VirtIO ne géraient pas les erreurs lors de la récupération des descripteurs d'E/S. Par conséquent, un invité malveillant pourrait déclencher de telles erreurs. En outre, le code du modèle de périphérique pourrait être amené à fonctionner sur des vecteurs d'E/S non initialisés, ce qui entraînerait une corruption de la mémoire. Une VM invitée malveillante pourrait être capable de faire planter le processus bhyve. Il peut être possible d'exploiter les bogues de corruption de mémoire pour obtenir une exécution de code arbitraire dans le processus bhyve.
Exécution de code à distance dans ggatec
Les utilisateurs de FreeBSD peuvent utiliser à distance des périphériques, tels que des disques, des CD-ROMs, des fichiers, et plus, en utilisant GEOM Gate Network Devices (ggated). Un serveur ggated malveillant ou un attaquant en position privilégiée sur le réseau peut écraser la pile avec du contenu modifié et potentiellement exécuter du code arbitraire sur le boîtier FreeBSD.
erreur de lecture hors limites de libfetch
La libfetch(3) est une bibliothèque de transfert de fichiers multi-protocoles incluse avec FreeBSD et utilisée par la commande fetch et le gestionnaire de paquets pkg, entre autres. Un serveur FTP malveillant peut contrôler la taille du tampon de connexion car la taille est augmentée jusqu'à ce qu'une nouvelle ligne soit rencontrée (ou qu'aucun autre caractère ne soit lu). Cela permet également de déplacer le tampon dans des zones plus intéressantes de l'espace d'adressage, en analysant potentiellement des chiffres pertinents pour l'attaquant.
Multiples vulnérabilités d'OpenSSL sous FreeBSD
Le système d'exploitation FreeBSD inclut un logiciel du projet OpenSSL pour le protocole Transport Layer Security (TLS) et la bibliothèque de cryptographie. Il y a deux problèmes corrigés dans cet avis de sécurité.
Comment appliquer un correctif de sécurité sur FreeBSD
Il n'y a pas de solution de contournement disponible. Cependant, des correctifs de sécurité ont été publiés. Par conséquent, il faut mettre à jour le système vulnérable vers un système FreeBSD stable ou releng supporté.
Trouver la version de FreeBSD et le numéro de niveau de patch
Ouvrez l'application terminal et exécutez la commande suivante dans le shell FreeBSD ou à l'invite ssh pour le serveur distant hébergé dans le cloud AWS :
$ uname -mrs
FreeBSD 13.0-RELEASE-p3 amd64
freebsd-version
13.0-RELEASE-p3
Je vais utiliser la commande freebsd-update comme suit pour récupérer les mises à jour et les installer :
sudo freebsd-update fetch
Password: src component not installed, skipped Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching metadata signature for 13.0-RELEASE from update1.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata patches.. done. Applying metadata patches... done. Inspecting system... done. Preparing to download files... done. Fetching 32 patches.....10....20....30. done. Applying patches... done. The following files will be updated as part of updating to 13.0-RELEASE-p4: /bin/freebsd-version /boot/kernel/kernel /boot/kernel/virtio_blk.ko /lib/libcrypto.so.111 /rescue/[ /rescue/bectl /rescue/bsdlabel .... .. ...... /usr/lib32/libfetch_p.a /usr/lib32/libssl.a /usr/lib32/libssl.so.111 /usr/lib32/libssl_p.a /usr/sbin/bhyve /usr/sbin/hostapd /usr/sbin/ntp-keygen /usr/sbin/wpa_cli /usr/sbin/wpa_supplicant
Installez ces mises à jour, exécutez :
sudo freebsd-update install
Assurez-vous de redémarrer tous les démons qui utilisent la bibliothèque, ou redémarrez le système. J'ai décidé de redémarrer le serveur FreeBSD en utilisant la commande reboot :
$ sudo reboot
Vérification
Après le redémarrage, vérifions la version de FreeBSD :
$ freebsd-version
FreeBSD 13.0-RELEASE-p4 amd64 fonctionne après avoir appliqué un correctif et redémarré mon système
$ sudo pkg update
Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. Checking for upgrades (1 candidates): 100% Processing candidates (1 candidates): 100% Checking integrity... done (0 conflicting) Your packages are up to date.
Voir comment appliquer les mises à jour de sécurité en utilisant pkg/freebsd-update sous FreeBSD pour plus d'informations.
Résumé
Corriger les problèmes de sécurité sous FreeBSD est essentiel pour éviter la perte de données ou que le système soit victime de bugs. Par exemple, j'ai patché toutes mes boîtes FreeBSD 13.x. Veuillez visiter le site FreeBSD site web pour des informations générales concernant les avis de sécurité de FreeBSD, y compris les descriptions des champs ci-dessus et les branches de sécurité.