Projet de v�rification du code source FreeBSD
Informations G�n�rales
Introduction
A la lumi�re de notre r�cent (et toujours actuel) souci de la s�curit�, il est devenu plus qu'�vident qu'un examen complet et rigoureux de la s�curit� dans les sources FreeBSD nous permettra d'�tre encore plus s�r de la s�curit� de notre systeme d'exploitation, un OS sur lequel de plus en plus de personnes comptent et qui doit donc �tre con�u de mani�re s�curis� pour que cela continue � en �tre ainsi.
La grande quantit� dans FreeBSD de code h�rit� et de code provenant de sources ext�rieures peut rendre difficile la d�tection de trous de s�curit� avant qu'il ne soit trop tard et aucune tentative de grande envergure n'a encore �t� tent�e pour inspecter le code et trouver d'�ventuelles failles dans la s�curit�. Un tel projet est tr�s long et les d�veloppeurs de FreeBSD n'ont pas forc�ment le temps de s'occuper d'une telle t�che. Il est d�sormais temps de commencer un tel projet si nous voulons continuer � d�velopper un syst�me d'exploitation fiable et s�r dans un monde o� l'Internet occupe une place grandissante et (je le pense) produit un environnement encore plus hostile pour un syst�me qui ne serait pas assez prot�g�. La s�curit� informatique est une sorte d'accord entre l'administrateur local et le fournisseur de l'OS et ce fournisseur doit faire sa part du travail.
La premi�re chose entreprise par l'�quipe de d�veloppement en mati�re de s�curit� a �t� de choisir un "officier de s�curit�", Guido van Rooij qui aura pour objectif premier de veiller � la s�curit� de notre OS mais aussi d'�tre pr�sent et actif dans les diff�rentes listes de diffusion �lectroniques consacr�es � la s�curit� ext�rieures au projet FreeBSD. Il devra �galement tenir informer l'�quipe de tout probl�me potentiel quant � la s�curit� pour �viter d'avoir de mauvaises surprise comme cela a d�j� �t� quelquefois le cas.
La deuxi�me chose � faire sera de relire m�thodiquement chaque ligne du code de FreeBSD en recherchant toute commande succeptible de causer des d�bordements m�moires (sprintf()/strcpy() au lieu de snprintf()/strncpy() et ainsi de suite), les trous de s�curit� moins �vidents, du code insuffisamment s�curis�, les commentaires amusants � poster sur freebsd-chat ou quoi que ce soit d'autre qui pourrait s'av�rer int�ressant.
En utilisant la base de modules comme canevas, nous s�parerons l'arborescence des sources en plusieurs parties bien plus faciles � g�rer tout en gardant une liste des modules d�j� inspect�s et ceux restant � faire. Une �quipe de personnes choisies avec attention est en train d'�tre cr��e. Cette �quipe est compos�e "d'auditeurs" et de "critiques" (la plupart des membres �tant les deux � la fois). Un auditeur est charg�, avec �ventuellement l'aide d'un autre auditeur, de parcourir le code et de rechercher les possibles trous de s�curit� et/ou bugs. Une fois qu'une liste raisonnable de modifications est pr�te, et en consid�rant que tous les probl�mes ont �t� d�couverts, elle sera envoy�e � un ou plusieurs critiques qui v�rifieront la pertinence des changements demand�s. Si l'auditeur n'a pas les droits n�cessaires pour modifier le code source de FreeBSD (droits de "commit") le critique effectuera les modifications ainsi retenues si elles sont acceptables.
Crit�res n�cessaires :
Pour devenir auditeur, il est pr�f�rable soit d'avoir les droits de modification du code source sur freefall.FreeBSD.org soit un accord avec un autre auditeur/critique qui a les droits n�cessaires. Il est �galement pr�f�rable d'�tre sous FreeBSD-current, ou d'avoir acc�s � son code source car tous nos changements seront effectu�s sur cette version pour ensuite �tre port�s (autant que n�cessaire) sur les anciennes versions 2.1 et 2.2.
Les choses � rechercher et les r�gles g�n�rales � suivre sont suffisamment complexes pour qu'il soit pr�f�rable de les r�pertorier dans un guide de s�curit� FreeBSD Security Guide. Veuillez lire ce document si ce n'est d�j� fait. D'autres documents excellents sont le catalogue de la programmation s�curis�e Secure Programming Checklist et le catalogue de s�curit� sous Unix Unix Security Checklist, tous deux disponibles chez AUSCERT.
Formulaire d'inscription :
Voici le formulaire actuel, il est pour l'instant *tr�s* rudimentaire car le projet n'en est qu'� ses d�buts. Au fur et � mesure que les personnes int�ress�es indiqueront quel(s) module(s) ils d�sirent "auditer" ou "critiquer", nous le compl�terons. Lorsque ce tableau sera devenu difficile � g�rer, nous le changerons ou nous le mettrons sous forme de page web (ou autre chose :) ). J'ai laiss� quelques exemples pour la mise en forme, et cela ne signifie en aucun cas que quelqu'un ait � s'occuper de modules si vastes.
Tout les �l�ments pr�sents dans la base de donn�es sont des cibles potentielles d'audit -du plus petit comme "cat" au plus gros comme "lib"-, le plus important �tant que les auditeurs n'aient pas les yeux plus gros que le ventre et qu'ils prennent des modules adapt�s � leur possibilit�s. Il est inutile de dire que l'on s'occupe de 15 choses � la fois, si seulement 5 sont trait�es car les autres auditeurs penseront que les 10 restantes sont en cours de traitement !
Pour s'inscrire, envoyez un courrier �lectronique en anglais � [email protected].Module | Auditeur(s) | Critique(s) | Etat |
---|---|---|---|
bin | ac ee* gvr* jh ka mu vk | imp* jmb* md* gvr* | Ouvert |
contrib | cg | gvr* | Ouvert |
eBones | mrvm* | gvr* | Ouvert |
games | ab ee* xaa | gvr* | Ouvert |
init | gl | gvr* | Ouvert |
lib | ak bjn pst* | dg* imp* jkh* gvr* | Ouvert |
libc | ee* mu | gvr* | Ouvert |
libexec | crh ee* imp* mr witr | gvr* | Ouvert |
lkm | dob* | gvr* | Ouvert |
sbin | ee* imp* or* tao | jmb* md* gvr* | Ouvert |
secure | dc mrvm* | gvr* | Ouvert |
telnetd | ac dn | imp* gvr* | Ouvert |
usr.bin | bob ee* jha jm ky* rb rd rjk vk | md* gvr* | Ouvert |
usr.sbin | ee* ejc gl imp* jm marc rd | md* gvr* | Ouvert |
Auditeurs/Critiques principaux
Voici la liste des personnes volontaires pour l'audit ou la critique. Elles peuvent �tre contact�es (en anglais) collectivement � l'adresse [email protected]. Si vous d�sirez juste contacter les personnes s'occupant d'une cat�gorie particuli�re, par exemple usr.sbin, envoyez votre message (en anglais) � audit-usr.sbin@FreeBSD.org.
cl� | Nom et Email de l'Auditeur / du Critique |
---|---|
ab | Aaron Bornstein [email protected] |
ac | Adrian Chadd [email protected] |
ak | Adam Kubicki [email protected] |
am | Albert Mietus [email protected] |
avk | Alexander V. Kalganov [email protected] |
bb | Bob Bishop [email protected] |
bjn | Brent J. Nordquist [email protected] |
bob | Bob Willcox [email protected] |
btm | Brian T. Michely [email protected] |
cg | Coranth Gryphon [email protected] |
cl | Chris Lambertus [email protected] |
crh | Charles Henrich [email protected] |
dc | Dan Cross [email protected] |
dg* | David Greenman [email protected] |
din | Dinesh Nair [email protected] |
dn | David Nugent [email protected] |
dob* | David E. O'Brien [email protected] |
dz | Danny J. Zerkel [email protected] |
ee* | Eivind Eklund [email protected] |
eh | Elijah Hempstone [email protected] |
ehu | Ernest Hua [email protected] |
ejc | Eric J. Chet [email protected] |
gl | Giles Lean [email protected] |
gvr* | Guido van Rooij [email protected] |
gw | Graham Wheeler [email protected] |
imp* | Warner Losh [email protected] |
jb | Jim Bresler [email protected] |
jh | Jake Hamby [email protected] |
jha | John H. Aughey [email protected] |
jk | Jerry Kendall [email protected] |
jkh* | Jordan K. Hubbard [email protected] |
jm | Josef Moellers [email protected] |
jmb* | Jonathan M. Bresler [email protected] |
joe* | Joe Greco [email protected] |
ka | Kalganov Alexander [email protected] |
ki | Kenneth Ingham [email protected] |
ky* | Kazutaka YOKOTA [email protected] |
marc | Marc Slemko [email protected] |
md* | Matt Dillon [email protected] |
mr | Mike Romaniw [email protected] |
mrvm* | Mark Murray [email protected] |
mu | Mudge [email protected] |
or* | Ollivier Robert [email protected] |
pb | Peter Blake [email protected] |
peter* | Peter Wemm [email protected] |
phk* | Poul-Henning Kamp [email protected] |
pst* | Paul Traina [email protected] |
rb | Reinier Bezuidenhout [email protected] |
rd | Rajiv Dighe [email protected] |
rel | Roger Espel Llima [email protected] |
rjk | Richard J Kuhns [email protected] |
rm | Robin Melville [email protected] |
rs | Robert Sexton [email protected] |
sc | Sergei Chechetkin [email protected] |
tao | Brian Tao [email protected] |
tdr | Thomas David Rivers [email protected] |
vk | Vadim Kolontsov [email protected] |
witr | Robert Withrow [email protected] |
xaa | Mark Huizer [email protected] |