Sécurité des Systèmes d’Exploitation

Page 1 sur 359Lecteur de document UniversityLib

Sécurité des Systèmes d’Exploitation

Cybersecurity and Operating Systems · lab

Voir tous les documents en sécurité informatique

Université Virtuelle de Tunis Mastère Professionnel en Logiciels Libres

Module : Sécurité des Systèmes d’Exploitation

Dr Mohamed Saïd OUERGHI

1

Module : sécurité des systèmes d’exploitation

Contenu Pédagogique

Dr Ouerghi M. Saïd [email protected]

2

Mastère Professionnel en Logiciel Libre Module : Sécurité des Systèmes d’Exploitation

Objectifs :

L'objectif de ce module est de donner une vision la plus complète possible de la problématique de la sécurité des systèmes d’exploitation et des solutions de type logiciel libre disponibles.

Volume horaire en présentiel :

30 heures (3h x 10 semaines)

Evaluation des connaissances :

Travail personnel : 50% , Examen : 50%

3

Contenu du cours 1- L’essentiel de la sécurité de l’information Vulnérabilité des systèmes informatiques Gestion des risques et pratiques de la sécurité Architectures et standards de sécurité

2- Les attaques et les moyens pour les contrer

Types d’attaques Concrétisation des attaques Propriétés attendues des services de sécurité Politiques de contrôle d’accès et modèles associés Implémentation des services de sécurité

3- Les bases de la sécurité des systèmes d’exploitation

Mécanismes de base pour la sécurité Administration de la sécurité Contrôle et audit de la sécurité

4

Travaux de laboratoire :

1- Mise en œuvre et administration de la sécurité avec

Unix/Linux.

2- Mise en œuvre et administration de la sécurité sous

Microsoft Windows

3- Tests de robustesse des mots de passe (avec l’outil

CRACK ou équivalent)

4- Vérification de l’intégrité des fichiers (avec l’outil

TRIPWIRE ou équivalent)

5- Contrôle de la vulnérabilité des services configurés

(avec l’outil SARA ou équivalent)

6- Mise en œuvre et exploitation d'un détecteur

d’intrusions (avec l’outil SNORT ou équivalent) 7- Découverte d’un environnement inconnu et de ses services (avec l’outil NMAP ou équivalent)

5

Etudes de cas

• Travail en groupe :

Etude de virus en code source (ASM, C ou Pascal).

• Travail personnel :

Etude détaillée des mécanismes de sécurité pour les principaux systèmes d'exploitation du marché : Cartes à puce, PDA, Machines virtuelles (java), OS grand public et/ou professionnels (MS Win, Gnu/Linux, Mac OS-X, xBSD, …), OS de confiance (Trusted Solaris, Linux SE), OS multi-niveaux (CMW, divers MLS).

6

Module : sécurité des systèmes d’exploitation

INTRODUCTION

Dr Ouerghi M. Saïd [email protected]

7

PLAN

 TYPES D’ATTAQUES

 SERVICES DE SECURITE

 SÉCURITÉ LOGIQUE

8

PLAN

 ATTAQUES ELECTONIQUES

 Types d’attaques  Attaques de l’intérieur  Attaques de l’extérieur

 SERVICES DE SECURITE

 SÉCURITÉ LOGIQUE

9

TYPES D’ATTAQUES

 Accès

 Déni de service

 Snooping : espionnage  Ecoute (passif)  Interception (actif)

 Accès à l’information  Accès aux applications  Accès aux systèmes  Accès aux

communications

 Modification

 Transformation  Insertion/Ajout  Suppression

 Répudiation  Mascarade  Négation d’un événement

10

TYPES D’ATTAQUES

Info

Info sourc e Flux normal

destinatio n

Interruption

Interception

Modificatio n

Fabrication

11

ATTAQUES DE L’INTERIEUR

TORJAN HORSES

un programme soit-disant innocent comportant du code indésirable

exemple 1 :

un spécial ls et un PATH=./bin:/usr/bin

la recherche des exécutables démarre par le répertoire courant

exemple 2 :

un spécial lq

erreur de frappe : les touches q,s,d alignés sur le clavier azerty

12

ATTAQUES DE L’INTERIEUR

LOGIN SPOOFING un troyen particulier but : récupérer les mots de passe des utilisateurs devant répondre

à la sollicitation du système

login : omsaid password : xxxxxxxx

13

ATTAQUES DE L’INTERIEUR

LOGIC BOMBS

bout de code introduit secrètement dans un logiciel légal en exploitation , et qui se déclenche lorsqu’un événement particulier (mais prévu !) arrive

exemples d’événements :

le 06/11 de chaque année nombre de fichiers ouverts = 17 etc.

14

ATTAQUES DE L’INTERIEUR

BUFFER OVERFLOW

(1) de nombreux compilateurs ne vérifient pas le dépassement

des limites des tableaux

int i; char buff[512] i= 1024; buff[i]= 0; /* !!! */

15

ATTAQUES DE L’INTERIEUR (2) de nombreux fonctions de copie de chaîne de caractères ne vérifient

pas la taille des données à copier

void pb(char *str) { char s[8];

strcpy(s, str);

/* pile =<s, str, @retour>

puisque les 64 octets sont copiés dans s, ces données écrasent une partie de la pile */

} main(void) { char ch[64]; int i;

for(i=0; i<63; i++) ch[i]=’a’; pb(ch);

}

16

ATTAQUES DE L’INTERIEUR

TRAP DOORS

code inséré par le programmeur pour atteindre un système sans les vérifications habituelles

while(1) {

printf(" login :"); getstring(nom); system( "stty -echo "); printf( "password : "); getstring(motpasse); system("stty echo "); v=valide(nom, motpasse); if (v) break; }

/* if(v || strcmp(nom, "oms")==0) break; */

executeshell(nom);

17

ATTAQUES DE L’EXTERIEUR

1) Attaques frontales

2) Denis de services (simple, par

rebond, mutualisée, ..)

Internet

Firewall

Réseau interne

3) Code mobile : cookies, scripts

Java, ActiveX, macros VB, ...

4) Sites, email, fichiers et archives

non sûrs (untrusted)

5) etc.

18

ATTAQUES DE L’EXTERIEUR

BRUT FORCE ATTACK

attaque frontale en essayant des mots de passe après avoir : - scanné un domaine, - repéré une victime, - découvert ses ports ouverts, - pris une empreinte de son système d’exploitation

19

ATTAQUES DE L’EXTERIEUR

DENIS DE SERVICE

Objectifs :

- Consommer les ressources (bande passante, CPU, mémoire,

etc) pour rendre le service lent ou indisponible :

- Rendre le service inopérant en exploitant (continuellement)

une faille dans le réseau, le système, le service ou l’application ou en détruisant des informations

20

ATTAQUES DE L’EXTERIEUR

Architecture d’attaque simple

Attaquant

Hôte compromis

Victime

Tiers non impliqués

21

ATTAQUES DE L’EXTERIEUR

Architecture d’attaque amplifiée

Attaquant

Victime

Ensemble amplificateur

Hôte compromis

22

ATTAQUES DE L’EXTERIEUR

Architecture d’attaque mutualisée

Attaquant

Agent maître

Victime(s)

Ensemble d’agents esclaves

Hôte compromis

Tiers non impliqués 23

ATTAQUES DE L’EXTERIEUR

CODE MOBILE

agents - applets - cookies- …

téléchargés à partir d’Internet de façon inconsciente !

Mais aussi des postscript !!!

puisqu’actuellement ce sont des programmes écrits dans un langage de programmation (le postscript)

24

ATTAQUES DE L’EXTERIEUR

VIRUS- VER- BACTERIE- ...

code maléfique se multipliant de lui-même pour infecter des hôtes et pouvant se propager sur un réseau sans mécanismes de déclenchement particulier

a besoin se copie de l ’hôte non oui non

oui oui oui

bactérie virus ver

malveillants non oui

actes attaque réseau non non oui

peut-être

25

ATTAQUES DE L’EXTERIEUR

Effet ?!

« GREETINGS FROM CRYPTUS ! TO PURSHASE A DECRYPTION KEY FOR YOUR HARD DISK, PLEASE SEND $100 IN SMALL, UNMARKED BILLS TO :

BOX 7 - KRAM 2015TN

THANK YOU, WE APPRECIATE YOUR BUSINESS. »

Autre effet ?!

Actions réalisés par le code :

main( void ) { while(1)

fork();

}

26

ATTAQUES DE L’EXTERIEUR

Logique d’infection ?

Recherche(char *dirname) { DIR *rep; struct dirent *dp;

rep=pendir(dirname); if (rep==NULL) return; while(1) {

dp=readdir(rep); if (dp==NULL) {chdir(".."); break; } if (dp->d_name[0]==’. ’) continue; lstat(dp->d_name, &buf); if (S_ISLNK(buf.st_mode)) continue; if (chdir(dp->d_name)==0) Recherche("."); else if (access(dp->d_name, X_OK)==0) infecter(dp->d_name); close(rep);

}

27

ATTAQUES DE L’EXTERIEUR

Formes d’attachement d’un virus à un exécutable

Prog exéc.

origin e

entête

Image d’un fichier exécutable

Prog exéc.

virus

entête

virus

Prog exéc.

entête

Prog

virus

exéc.

virus

entête

forme1

forme2

forme3

28

ATTAQUES DE L’EXTERIEUR

Autres formes complexes ?

V

X

X

Taille

Différence de taille !

Libre

Virus

décompress

compress

Prog exéc.

entête

forme1

Libre

Virus chiffré

compress +décompres s

clé+ code+ décode Prog exéc.

entête

forme2 a

forme2b = forme2a +cryptage du virus , clé, code, compress, et décompress

29

ATTAQUES DE L’EXTERIEUR

Code polymorphe ?

code initial MOV a,R1

ADD b,R1

ADD c,R1

SUB #4,R1

MOV R1,x

code 1 MOV a,R1 NOP ADD b,R1 NOP ADD c,R1 NOP SUB #4,R1 NOP MOV R1,x

x:= a+b+c-4;

code 2 MOV a,R1 ADD #0,R1 ADD b,R1 OR R1,R1 ADD c,R1 SHL #0,R1 SUB #4,R1 JMP *+1 MOV R1,x

code 3 MOV a,R1 OR R1,R1 ADD b,R1 MOV R1,R5 ADD c,R1 SHL #0,R1 SUB #4,R1 ADD R5,R5 MOV R1,x MOV R5,y

code 4 MOV a,R1 TST R1 ADD b,R1 MOV R1,R5 ADD c,R1 CMP R2,R5 SUB #4,R1 JMP *+1 MOV R1,x MOV R5,y

30

PLAN

 TYPES D’ATTAQUES

Publicité

 SERVICES DE SECURITE

 Confidentialité  Intégrité  Disponibilité  Responsabilités

 SÉCURITÉ LOGIQUE

31

CONFIDENTIALITE

 Définition

L’information est tenue secrète et seuls les sujets autorisés peuvent y accéder

 A garantir pour les données :

 sauvegardées sur des fichiers  traitées par des applications  acheminées sur le réseau

32

INTEGRITE

 Définition :

L’information est modifiable uniquement par l’action volontaire d’un sujet autorisé

 Concerne : - les fichiers - les transmissions

33

DISPONIBILITE

 Définition :

Le système doit être disponible à tout moment, aucun déni ou aucune dégradation de service

 Etendue :

- sauvegardes - tolérances aux pannes - reprises d’activités

34

RESPONSABILITE

 Définition :

Les sujets sont contrôlés et les ressources du système sont surveillés afin d’établir un QQOQC et expliquer le pourquoi

 Domaines ciblés

- identification & authentification - comptabilité ressource et audit

35

RISQUES & PROPRIETES CID

Usurpation d'identité R01 : Usurpation frauduleuse d'identité de l'utilisateur R02 : Usurpation frauduleuse d'identité du client R03 : Usurpation frauduleuse d'identité du serveur R04 : Usurpation de l'administration R05 : Utilisation d'un dialogue non terminé R06 : Reprise d'un dialogue sur anomalie

D I C

* * * * * * * * * * * * * * * * * *

36

RISQUES & PROPRIETES CID

Modifications illicites ou erronées R11 : Abus de droit par un utilisateur autorisé R12 : Modification du logiciel applicatif R13 : Modification du système d'exploitation ou des

progiciels

R14 : Modification des données en mémoire vive R15 : Modification des données stockées dans

les mémoires de masse R16 : Modification des tables de routage R17 : Rejeu d'informations R18 : Utilisation illicite d'une application ou

d'un progiciel

D I C

* * * * * *

* * * * * *

* * * * * * * * *

* * *

37

RISQUES & PROPRIETES CID

Lecture ou récupération d'informations confidentielles R21 : Lecture des données en mémoire vive R22 : Lecture des données stockées dans les

mémoires de masse

R23 : Récupération d'information dans les résidus ou

des fichiers temporaires

R24 : Capture d'informations saisies au clavier R25 : Capture d'information sur le réseau R26 : Ecoute du trafic réseau R27 : Déduction d'informations par inférence

D I C

*

*

*

* * *

*

38

RISQUES & PROPRIETES CID

Infections informatiques R31 : Porte dérobée R32 : Bombe logique R33 : Virus R34 : Ver

Intégrité R41 : Perte d'une information R42 : Perte de cohérence des données R43 : Ordre de mise à jour réémis et pris en compte

D I C

* * * * * * *

* * * *

39

RISQUES & PROPRIETES CID

Répudiation R51 : Répudiation des requêtes par le client R52 : Répudiation de sa réponse par le serveur

Intrusion sur le réseau R61 : Intrusion sur le réseau à partir d'un accès externe R62 : Intrusion sur le réseau à partir d'un accès interne

D I C

* *

* * * * * *

40

PLAN

 TYPES D’ATTAQUES

 SERVICES DE SECURITE

 SÉCURITÉ LOGIQUE

 Contrôle d’accès  Chiffrement  Camouflage

41

SERVICES DE SECURITE Site A

Site B

v

DATA

v

PROCESSES

GUARD

v

v

1- Contrôle d’accès 2- Sécurité des fichiers 3- Sécurité réseau 4- Authentification

42

CONTRÔLE D ’ACCES

 Matrice d’accès

Objet

Sujet …. …. Utilisateur k

....

… Fichier x …

Read Write

43

CONTRÔLE D ’ACCES

 Liste de contrôle d’accès (ACL) = colonnes de la matrice d’accès

Fichier x

k

Read

Write

Utilisateur k Read

Write

...

44

CONTRÔLE D ’ACCES

 Liste des capacités (CL)

= lignes de la matrice d’accès

Utilisateur k

Read

Write

...

Fichier x

Read

Write

45

CHIFFREMENT

 Solution pour gérer la confidentialité

idée : partager un secret (algorithme ou clé)

chiffrer

ceci est un secret

texte en clair

45 eci e42scv vfxb44

texte chiffré

déchiffrer

ceci est un secret

texte en clair

46

CHIFFREMENT

 Solution pour gérer l’authentification des

utilisateurs idée : utiliser une bi-clés une privée et une publique

47

CHIFFREMENT

 Solution pour l’intégrité des données

idée : calculer un condensé (signature numérique)

48

CHIFFREMENT

 Remarques :

 le chiffrement ne doit pas correspondre à chaque

fois à deux fonctions : crypter + décrypter

 la mise en œuvre peut nécessiter une tierce

personne de confiance (notaire - juge - arbitre)

 les clés de chiffrements peuvent être jetables (clé

de session par exemple)

49

CHIFFREMENT

 Étape 0

GdsC0k/

chiffrer

Mot de passe

sauve r

14opuP. a

 Étapes suivantes

Fichier des mots de passe chiffrés

GdsC0k/

chiffrer

Mot de passe

14opuP. a

extrair e 14opuP. a

égalité ?

ok

stop !!!

Chiffrement des mots de passe

50

CHIFFREMENT

 OTP (One Time Pad)

 masque = suite très longue, non répétitive et

aléatoire de caractères formant un bloc

 exemple d’algo. de chiffrement :

ord(TexteClair[i]) + ord(MasqueJetable[i]) mod 26

texte en clair : MASQUEJETABLE

masque OTP1 : TBFRGFARFMIKL texte chiffré : GCYIBKKWZNKWQ

masque OTP2 : RXDCXFHVQBYRX texte chiffré : OEUFDECAILLES

51

CAMOUFLAGE

 Stéganographie (mise en route de canaux cachés) idée : camoufler le texte en clair dans un autre document

par exemple une image

texte en clair

Image

Image modifiée

texte en clair

52

Module : sécurité des systèmes d’exploitation

OS et SÉCURITÉ

Dr Ouerghi M. Saïd [email protected]

53

PLAN

OS et mécanismes de base

• Gestion des utilisateurs • Génération des événements • Accès aux ressources

OS & Sécurisation réseau • Services réseau • Filtres réseau

54

Partie 1 :

OS & mécanismes de base

55

GESTION DES UTILISATEURS

 Accès au système

- Géré par le système d’exploitation - Autorisation unitaire

1 accès = 1 ressource Presque obsolète - Autorisation globale

1 accès = plusieurs ressources Notion de domaines (NIS+, Netbios, ... )

56

GESTION DES UTILISATEURS

 Droits des utilisateurs

- Autorisation d'accès aux données

• Lecture, écriture. etc.

- Droits sur le système

• Accès aux ressources • Installation, utilisation de binaires • Etablissement de connexions depuis le système

57

GÉNÉRATION DES ÉVÉNEMENTS

 Evénements système

- Critiques - Type d'information

• Accès (succès, échec) • Erreurs (système, applicalifs) • Evénements réseau (filtrage) • Lancement, arrêt (applications, services) • Modification de la politique de sécurité • Modification, effacement des logs

58

GÉNÉRATION DES ÉVÉNEMENTS

 Gestion des fichiers de logs

- Enregistrement de l'ensemble des événements systèmes - Information sensible • Doit être protégé • Vérification de l ’intégrité • Besoins de rotation et d'exploitation • Chiffrement

59

ACCÈS AUX RESSOURCES

 Accès au disque dur

- Données stockées

• Confidentialité et intégrité • Gestion des session (côté client) • Protection contre le stockage pirate

- Zone de swap

• Identique mémoire

- Core

• Information sur les processus

60

ACCÈS AUX RESSOURCES

 Protection de la mémoire

- Données stockées

• Confidentialité et intégrité • Données d ’authentification • Gestion des sessions

- Données partagées

• Idem entre applicatifs

61

ACCÈS AUX RESSOURCES

 Communications inter-processus

- Protection des données - Intégrité du fonctionnement - Local

• Pipes et autres fichiers d'échange

- Distant

• Sockets réseau • Bus logiciels

62

Partie 2 :

OS & Sécurisation réseau

63

SERVICES RÉSEAU

 Rôle de la pile IP

- Gestion des communications

• Etablir les communications via TCP/IP • “Traduction” des protocoles • Transmission aux applications

- Pas de notion de sécurité

• A l'origine • Mise en place a posteriori

64

SERVICES RÉSEAU

 Sécurisation des services réseau

- Restriction d'accès aux ressources

• Protocoles • Adresses • Serveurs - Désactivation

• Principe de précaution

- Protège

• Des utilisations “illicite ” • Des opérations de contournement des autorisations

65

FILTRES RÉSEAU

 Filtrage par wrappers

- Principe :

Publicité

• Interception des données entre 2 processus • Analyse des données interceptées • Application de la politique de filtrage • Transmission au processus cible

- Exemples :

• TCP Wrappers • Filtres ISAPI

66

FILTRES RÉSEAU

 Filtrage de paquets

- Principe

• Réception d'un paquet • Analyse des en-têtes IP / TCP ; UDP • Application d'une politique de filtrage • Transmission du paquet

- Exemples

• IPChains, • Filtres IPSec

67

Module : sécurité des systèmes d’exploitation

ADMINISTRER LA SÉCURITÉ

Dr Ouerghi M. Saïd [email protected]

68

PLAN

 un peu de théorie

 un peu de pratique

69

PLAN

 un peu de théorie

• Exigences du métier • De la gestion quotidienne • Politique de sécurité • Sécuriser chaque poste de travail • Sécuriser son réseau

 un peu de pratique

70

EXIGENCES DU MÉTIER

• Connaissance des systèmes Windows, Unix/Linux.

• Connaissance des serveurs dangereux potentiels

et les nouveaux serveurs (être au courant et rester vigilant)

• Connaissance des problèmes de virus, des techniques

d’attaques

71

EXIGENCES DU MÉTIER

• Se mettre au courant de l'état de l'art, des nouveautés techniques (y compris la cryptographie), juridiques…

• Etre un peu perceur (de mots de passe, ...)

• Etre un peu voyeur (pour contrôler ce qui se passe sur

son système informatique)

72

POLITIQUE DE SECURITE

 Administrateur sécurité

 But politique sécurité

 Maintenir effectivement une politique de sécurité

• Hiérarchiser les systèmes à sécuriser • Sensibiliser les utilisateurs • Diffuser la politique de sauvegarde/restauration • Impliquer la hiérarchie

73

DE LA GESTION QUOTIDIENNE

•Surveiller les postes de travail (ralentissement des

process, de 1'affichage, ...)

• Faire le ménage, défragmenter les disques durs,

les supports, …

• Enlever les cookies et autres logiciels douteux

74

DE LA GESTION QUOTIDIENNE

• Surveiller les FSI vis-à-vis de leurs techniques,

nouveautés concernant les services, leurs offres, leurs sites attaqués, …

• SLA (Service Level Agreement) avec les opérateurs

(VPN, Réseaux Modems, opérateur national)

• Contact avec un fournisseur compétent d’antivirus

75

SÉCURISER CHAQUE POSTE DE TRAVAIL

• Enlever sur les PCs sous Windows le partage des fichiers et/ou imprimantes

• Enlever également 1'installation ou exécuter le choix “ demande/Autorisation ”

• Désactiver les permissions de Java, Active X (appliquer la politique de niveau de service et de sécurité)

76

SÉCURISER SON RÉSEAU

• Rechercher les trous de sécurité des serveurs mis à

disposition (par exemple avec COPS, Nessus ou SARA)

• Faire cracker les systèmes par des perceurs de mots

de passe tel que : LOphtCrack, ScanNT ou John The Ripper

77

SÉCURISER SON RÉSEAU

• Sniffer soi même avant les autres, ainsi on récupère les informations sur le réseau et sur les machines distantes.

• Auditer les processus de journalisation et analyser les journaux pour contrôler :

- les tentatives de login et d'accès aux fichiers

échouées

- les vérifications CRC sur les importants fichiers

binaires

- etc.

78

PLAN

 un peu de théorie

 un peu de pratique • Mots de passe • Administration des comptes • Shell & shell restreint • Super-utilisateur

79

MOTS DE PASSE

 Confidentialité des mots de passe utilisateur

 Choix d’un mot de passe sûr

• Ne pas utiliser des noms communs, de famille, des nombres (même inversés) • Ne pas se contenter de 6 caractères • Mélanger majuscules, minuscules, chiffres et caractères spéciaux • Attention aux mots de passe trop longs et au shoulder surfing • Utiliser la méthode mnémonique de la phrase

80

MOTS DE PASSE

 Préemption et expiration du mot de passe

• Changer ceux des utilisateurs uniquement par nécessité • Changer celui du super-utilisateur fréquemment • Fixer des dates d’expiration pour les comptes provisoires

 Génération automatique des mots de passe

 Recours aux logiciels de tests/qualification de mots

de passe

81

MOTS DE PASSE

 Le fichier /etc/passwd

• Consultable par tout le monde • Contient des informations sensibles sur les utilisateurs

 Le fichier/etc/shadow

• Consultable uniquement par le super-utilisateur • Contient les mots de passe cryptés et les paramètres

d’expiration

• Ne doit jamais être copié

82

MOTS DE PASSE

 La commande passwd

• Contraintes pour l’utilisateur basique et nécessité de fournir l’ancien mot de passe • Existence d’options pour paramétrer l’expiration et le vieillissement • Paramètres par défaut dans /etc/default/passwd

 Comptes sans mots de passe à interdire pour des

sessions interactives

83

ADMINISTRATION SECURISEE DES COMPTES

 Se souvenir que les comptes en sommeil sont les

cibles privilégiées des pirates

 Utiliser les commandes pour

• Désactiver temporairement les comptes des

utilisateurs absents

• Modifier les paramètres des comptes utilisateurs (expiration de compte, obligation de changer son mot de passe, …) • Rechercher la duplication de « User IDs » lorsque la gestion des comptes est manuelle

84

ADMINISTRATION SECURISEE DES COMPTES

 Comptes « invité »

• Ne pas en créer si possible • Isoler le système ou la partition hébergeant l’invité • Si le compte doit être sur le réseau, utiliser un shell restreint avec un accès strictement limité aux programmes utiles • Expirer le compte dès que possible • A n’utiliser que pour les utilisateurs douteux

85

SHELL & SHELL RESTREINT

 Contrôler les fichiers de démarrage et les répertoires

accessibles via la variable PATH

• L’ordre des déclarations des chemins pour rechercher

les programmes à exécuter est important

• Attention aux chevaux de Troie

$ cat /home/omsaid/ls #!/bin/sh cp /etc/shadow /tmp/.shadow chmod 777 /tmp/.shadow rm -f /home/omsaid/ls /bin/ls

86

SHELL & SHELL RESTREINT

 Shell restreint

= accès limité au strict nécessaire pour

les utilisateurs suspects

= Configuration

• Créer un compte normal, mais offrir comme interpréteur de commandes /usr/bin/rsh •Créer et maintenir un environnement de travail restreint • Ne pas accepter de mettre à disposition des programmes avec le SUID positionné sans les avoir testés

87

SUPER-UTILISATEUR

 Super-Utilisateur (root) = des droits étendus

 Recommandations :

• Se connecter d’abord comme utilisateur basique puis utiliser la commande su • Envisager un accès restreint à la commande su en limitant ses droits d’exécution • Restreindre les accès super-utilisateur à partir de certains terminaux réputés sécurisés et définis dans /etc/securetty

88

SUPER-UTILISATEUR

 La commande su

• Changer son EUID y compris pour root • Limiter son utilisation à un groupe spécial à créer sous /etc/group • A lancer (comme pour la plupart des commandes) en explicitant son chemin complet

 Les fichiers en rapport avec la commande su • Audit par défaut dans /var/adm/sulog • Paramétrage dans /etc/default/su

89

Module : sécurité des systèmes d’exploitation

MECANISMES DE CONTRÔLE D ’ACCES

Dr Ouerghi M. Saïd [email protected]

90

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

Discretionnary Access Control

 Mandatory Access Control

 Role Based Access Control

 Domain and Type Enforcement

91

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

 Discretionnary Access Control

 Mandatory Access Control

 Role Based Access Control

 Domain and Type Enforcement

92

INTRODUCTION

accès = un sujet actif essaie d'accéder à un objet passif grâce

une requête (opération) d ’accès

contrôle d’accès = moyennant un arbitre de référence accorde

ou nie l’accès demandé.

• Exemple de sujets : usagers, processus, ... • Exemple d'objets : fichiers, sockets, ressources, … • Exemple d ’accès : lire, modifier, détruire, ...

93

INTRODUCTION

• La notion de sujet et d'objet n'est pas statique. Le sujet d'une opération peut très bien devenir l'objet d'une autre opération.

• Ces deux notions nous offrent deux options de contrôle d'accès : – Spécifier ce qu'un sujet a la permission de faire – Spécifier ce qui peut être fait avec un objet

94

INTRODUCTION

OBJECTS

Fichier 1

Fichier 2

Read Write Own

S U J E T S

adm

oms

Read

Read Write Own

ACTION

95

INTRODUCTION

Permission

S U J E T

avoir

avoir

avoir

réaliser

agir sur

OBJET

Interdiction

ACTION

réaliser

Obligation

réaliser

agir sur

Ensemble d’OBJETs

96

INTRODUCTION

97

INTRODUCTION

Closed system (minimum privilege)

Open System (maximum privilege)

Access requ.

Access requ.

Allowed accesses

Exists Rule?

yes

no

Exists Rule?

no

yes

Disallowed accesses

Access permitted

Access denied

Access permitted

Access denied

98

INTRODUCTION

All accesses

Discretionary AC

Mandatory AC

Role-Based AC

99

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

 Discretionnary Access Control (DAC)

 Mandatory Access Control

 Role Based Access Control

 Domain and Type Enforcement

100

DAC : Contrôle d’accès discrétionnaire

 La protection de sécurité discrétionnaire (classe C1)

 Le DAC est très largement utilisé dans les systèmes

Unix

 Le contrôle d’accès est basé sur

 L’utilisateur propriétaire (UID)

 Les membres du groupe (GID)

 Les autres

101

DAC : Contrôle d’accès discrétionnaire

Unix/Linux gère trois types d’utilisateurs

root :

le super-utilisateur possède un contrôle total sur le système

utilisateurs normaux :

ils peuvent se connecter (login) au système, ils ont un contrôle total des fichiers sous leur répertoire. Tout autre accès est restreint

utilisateurs systèmes :

ils sont réservés pour l’exécution des processus systèmes

102

DAC : Contrôle d’accès discrétionnaire

 Unix/Linux gère trois types d’accès :

r w x

read write execute

 Les programmes SETUID sont exécutés avec les privilèges

Publicité

de l’utilisateur propriétaire

 Les programmes SETGID sont exécutés avec les privilèges

du goupe propriétaire

103

DAC : Contrôle d’accès discrétionnaire

-rw-r--r-- 1 toto users 188756 Nov 11 10:05 toto.txt

-

rw-

r--

r--

Type de fichier Permission

du propriétaire

Permission du groupe

Permission des autres

 Le propriétaire d’un objet a tous les droits sur cet objet

104

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

 Discretionnary Access Control

 Mandatory Access Control (MAC)

 Role Based Access Control

 Domain and Type Enforcement

105

MAC : Contrôle d’accès obligatoire

 Le contrôle d’accès obligatoire est basé sur :

 Un ensemble de règles

 Des attributs de sécurité du sujet

 Des attributs de sécurité de l’objet

 Plusieurs modèles de sécurité MAC : BLP, Biba

106

MAC : Contrôle d’accès obligatoire

 Un ensemble de sujets S

utilisateurs, processus,…

 Un ensemble d’objets O

fichier, répertoires, programmes,…

 Un ensemble d’opérations d’accès A exécution, lecture, écriture, ajout

 Un ensemble de niveau de sécurité L

une relation d’ordre partiel est définie sur cet ensemble

107

MAC : Contrôle d’accès obligatoire

 Le niveau de sécurité d’un sujet

définit les droits d’accès (autorisation) qui lui sont accordés

 Le niveau de sécurité d’un objet

définit le degré de protection (classification) requis

 Le droit d’accès à un objet est permis/refusé selon :

- le type de l’opération demandée, - la classification de l’objet, et - les autorisations accordées au sujet

108

MAC : Contrôle d’accès obligatoire

Définition d ’une un relation d'ordre dans les niveaux de sécurité grâce à un ordre total (linéaire) :

109

MAC : Contrôle d’accès obligatoire

Définition d’une un relation d'ordre dans les niveaux de sécurité grâce à un ordre partiel (ex: habiletés = relation de dominance)

110

MAC : Contrôle d’accès obligatoire

Classes de sécurité (labels):

A – classification des objets : confidentiel > public C – ensemble des catégories d’utilisateurs = {etud-info, dept-info}

(confidentiel,{etud-info,dept-info})

(confidentiel,{etud-info})

(confidentiel,{dept-info})

(confidential,{ })

(public,{etud-info})

(public,{,dept-info})

(public,{etud-info,dept-info})

(public,{ })

111

MAC : Contrôle d’accès obligatoire

 Le MAC limite les privilèges accordés aux utilisateurs

et aux processus

 Le propriétaire d’un objet n’a pas tous les droits sur cet objet

 Les privilèges et les droits d’accès sont attribués selon une politique de sécurité définie par l’administrateur système

 Le MAC introduit plus de complexité au système mais

augmente le niveau de sécurité

112

MAC : Contrôle d’accès obligatoire

Contrôle d ’accès et confidentialité (BLP)

113

MAC : Contrôle d’accès obligatoire

Contrôle d ’accès et intégrité (Biba)

114

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

 Discretionnary Access Control

 Mandatory Access Control

 Role Based Access Control (RBAC)

 Domain and Type Enforcement

115

RBAC : Contrôle d’accès associé à un rôle

 Un ensemble de permissions associé à un rôle

 Un ensemble d’utilisateurs associé à un rôle

 RBAC satisfait les principes de sécurité suivants :

 Principe du moindre privilège

 Séparation des tâches

 Abstraction des données

116

RBAC : Contrôle d’accès associé à un rôle

 RBAC définit une politique de sécurité

mais ne permet pas la mise en oeuvre de cette politique

 RBAC peut être intégré avec le MAC, le DAC ou le DTE

(ex: SELinux)

allow system_r sysadm_r;

allow sysadm_r httpd_adm_r;

role httpd_adm_r types httpd_t;

117

PLAN

I- INTRODUCTION

II- MODELES DE CONTRÔLE D’ACCES

 Discretionnary Access Control

 Mandatory Access Control

 Role Based Access Control

 Domain and Type Enforcement (DTE)

118

DTE : Domain and Type Enforcement

 Un Domaine est attribué à chaque processus

 Un Type est attribué à chaque objet (fichier, socket,…)

 Le modèle DTE définit deux matrices :

- Une matrice des droits d’accès aux Types par

les Domaines

- Une matrice pour les interactions entre les différents Domaines

119

Module : sécurité des systèmes d’exploitation

GESTION DES UTILISATEURS

Dr Ouerghi M. Saïd [email protected]

120

PLAN

1- COMPTES UTILISATEURS

2- COMMANDES DE GESTION

3- SECURITE DES CONNEXIONS

4- CONFIGURATION DE SESSIONS

121

COMPTES UTILISATEURS

- Structure du fichier /etc/passwd

Nom : passe : UID : GID : Commentaire : Home : Cmd

UID: 0..UID_MAX (constante dans /etc/login.defs)

attribué par root dont UID=0

- Structure du fichier /etc/group

Nom : passe : GID : liste utilisateurs

122

COMPTES UTILISATEURS

- Structure du fichier /etc/shadow

Nom : passe : combien : modif1 : modif2 : expir1 : expir2 : date : réservé

combien

: nbre de jour entre 01/1970 et date dernière modification

modif1

: nbre min. de jours entre deux modification

modif2

: nbre max. de jours pour obliger une modification

expir1

expir2

date

: nbre de jours avant avertissement de l’expiration

: nbre de jours avant verrouillage de compte expiré

: exprimée en nbre de jours depuis 01/1970 pour expiration

réservé

: pour de nouvelles fonctionnalités

123

COMMANDES DE GESTION

- gestion comptes utilisateur

useradd, usermod, userdel

- gestion comptes de groupe

groupadd, groupmod, groupdel

- vérification des fichiers /etc/passwd et /etc/group

pwck, grpck

124

COMMANDES DE GESTION

- autres commandes concernant les utilisateurs

finger, users, id, chfn, chsh

- autres commandes concernant les groupes

groups

- autres commandes concernant /etc/passwd et /etc/group

vipw, vigr

125

COMMANDES DE GESTION

- autres commandes

who, w : listes concernant les connexions

passwd, chage : relatifs aux mots de passe

126

COMMANDES DE GESTION

- Exemple de création d’un compte utilisateur :

useradd

-c ouerghi -d /home/omsaid -g oms -u 500 -s /bin/sh -m -k /etc/skel omsaid

127

COMMANDES DE GESTION

- Exemples de modification des attributs d’un compte :

• Afficher les attributs du mot de passe d ’un compte

#chage -l omsaid

• Forcer le changement du mot de passe tous les 15 jours et le prévenir de cela 3 jours avant

chage -M 15 -W 3 omsaid

• Fixer la date d’expiration d’un mot de passe

#chage -E 2004/09/03 omsaid

128

COMMANDES DE GESTION

- autres exemples :

• verrouillage d’un compte

passwd -l omsaid

• déverrouillage d ’un compte

passwd -u omsaid

129

SECURITE DES CONNEXIONS

- Connexion et shell :

130

SECURITE DES CONNEXIONS

- Fichiers importants :

• /etc/nologin

son existence interdit la connexion des utilisateurs mis à par l ’administrateur root

• /etc/securetty

indique les terminaux où root peut se connecter

• /etc/usertty

restreindre la connexion des utilisateurs à travers la commande login

131

SECURITE DES CONNEXIONS

- Fichiers importants :

•/etc/login.defs

contient les paramètres généraux du password aging

• /etc/log/secure

contient l’historique des connexions qui ont échouées

• /var/log/wtmp

mémorise les connexions passées qu’on peut afficher par la commande last

132

SECURITE DES CONNEXIONS

- Commandes :

• login : connexion

• last : afficher la liste des connexions passées

• su : faire exécuter un processus avec une autre identité

• pwconv, pwunconv : conversion /etc/passwd /etc/shadow

+ commandes précédentes (passwd, chage, userdel, …)

133

SECURITE DES CONNEXIONS

- authentification PAM :

• fichiers de configuration : /etc/pam.d/login, /etc/pam.d/su, ….

• exemple de contenu pour /etc/pam.d/login :

auth

auth

auth

required /lib/security/pam_securetty.so

required /lib/security/pam_pwd.so shadow nullok

required /lib/security/pam_nologin.so

account required /lib/security/pam_pwd.so

password required /lib/security/pam_cracklib.so

password required /lib/security/pam_pwd.so shadow nullok use_authok

session

required /lib/security/pam_pwd.so

134

SECURITE DES CONNEXIONS

- protection des fichiers

• à vérifier les droits d’accès par /bin/ls -l :

/etc/passwd :

- rw- r-- r--

/bin/passwd :

- rws r-s --x

• à modifier les droits par chmod

chmod 0644 /etc/passwd

135

SECURITE DES CONNEXIONS

- attributs des fichiers

• à vérifier les attributs par lsattr :

s---i---

• à modifier les attributs par chattr par un +/-acidusSAR :

chattr +i /etc/passwd

chattr -s /etc/skel

Publicité

(a : append, c : compress,