
FreeBSD correctifs de sécurité.
Mon serveur FreeBSD héberge actuellement : une serveur DNS Bind9 pas encore configuré…! Il a été installé pour test et a juste fait l’objet de la configuration ISCSI présentée dans l’article FreeBSD 8.0 et ISCSI Initiator.
Dans l’article Mise à jour de FreeBSD nous avons pu voir comment installer Portaudit , un outil qui scanne les ports et packages installés, compare cela à une base de données liée à la sécurité et vous insulte ensuite par mail !
Voila le premier mail reçu suite à cette installation :
Affected package: bind9
Type of problem: BIND — Dynamic update message remote DoS.
Reference: http://portaudit.FreeBSD.org/83725c91-7c7e-11de-9672-00e0815b8da8.html
Affected package: portupgrade
Type of problem: portupgrade — insecure temporary file handling vulnerability.
Reference: http://portaudit.FreeBSD.org/22f00553-a09d-11d9-a788-0001020eed82.html
Affected package: ruby
Type of problem: ruby — CGI DoS.
Reference: http://portaudit.FreeBSD.org/d656296b-33ff-11d9-a9e7-0001020eed82.html
Affected package: ruby
Type of problem: ruby CGI::Session insecure file creation.
Reference: http://portaudit.FreeBSD.org/a800386e-ef7e-11d8-81b0-000347a4fa7d.html
4 problem(s) found.
Ce mail est complet car :
1) Il nous indique le nombre de problème.
2) Il nous indique sur quel port il y’a un problème.
3) Il nous indique le type de problème.
4) Il nous guide à travers le web pour trouver de l’information, voir même une solution.
J’ai donc décidé d’attaquer les problèmes un par un afin de rendre mon serveur le plus sur possible !
BIND — Dynamic update message remote DoS.
Reference: http://portaudit.FreeBSD.org/83725c91-7c7e-11de-9672-00e0815b8da8.html
Note : Cette version 9 de Bind doit être celle que j’ai installée pour faire quelques test de DNS secondaire… Après un Portaudit je me rend compte que cette version présente une faille de sécurité, faille qui a été corrigé depuis, j’ai donc juste à installer une version plus récente de Bind.
Correctif :
# On désinstalle l'ancien Bind9 $ cd /usr/ports/dns/bind9 $ make deinstall clean $ rm -Rrvf /var/db/ports/bind9 # On installe la version 9.7 $ cd /usr/ports/dns/bind97 $ make install clean # On relance portaudit avec le script vu dans # l'article sur la mise à jour de FreeBSD. $ /usr/local/libexec/portaudit.sh
portupgrade — insecure temporary file handling vulnerability.
http://portaudit.FreeBSD.org/22f00553-a09d-11d9-a788-0001020eed82.html
Correctif :
On change le chemin du répertoire temporaire des ports :
$ vim /usr/local/etc/pkgtools.conf -- ENV['PKG_TMPDIR'] ||= '/var/tmp/pkgtool'
Puis on modifie le propriétaire et les droits vers ce dossier pour que seul l’utilisateur de portupgrade y ai accès.
$ mkdir /var/tmp/pkgtool $ chown root:wheel /var/tmp/pkgtool $ chmod 700 /var/tmp/pkgtool
Et voila portupgrade est maintenant en sécurité !
Ce correctif n’étant pas une mise à jour du port, ou un patch, mais plus un contournement de la faille, cette dernière sera toujours détectée par portaudit car la version du port de portupgrade reste inchangée.
ruby — CGI DoS ET ruby CGI::Session insecure file creation.
http://portaudit.FreeBSD.org/d656296b-33ff-11d9-a9e7-0001020eed82.html
http://portaudit.FreeBSD.org/a800386e-ef7e-11d8-81b0-000347a4fa7d.html
Correctif :
Il n’y a rien à faire ! Dans mon cas je suis sur une version de Ruby qui est la 1.8.7-p248 et on voit clairement sur la page de Portaudit que ma version n’est pas affectée par ce problème car ce sont les versions inférieurs à la 1.8.2.p2_2.
Conclusions
Portaudit est un merveilleux outil MAIS il faut bien lire les rapports qu’il renvoie !
Une analyse régulière des retours de Portaudit couplé à une politique stricte de mise à jour de FreeBSD devrait permettre de garder un système sain et à l’abri des Hackers.
Ce billet n’est en aucun cas une référence des actions à mener dans le meilleur des mondes. Il s’agit plutôt de la retranscription de la manière dont j’ai géré les problèmes remontés par Portaudit. Il y’a certainement d’autres méthodes (bonnes ou pas) et chacun est libre de faire comme il l’entend.