Skip site navigation (1) Skip section navigation (2)

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]

* = Poss�de les droits pour modifier le code source (droits de "commit" CVS).