selinux - supélec · 14/02/07 qu'est-ce que selinux? un système mac pour linux ♦domain and...

48
SELinux Benjamin Morin Supélec/SSIR [email protected]

Upload: others

Post on 16-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

SELinux

Benjamin MorinSupélec/SSIR

[email protected]

Page 2: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Plan

Brève introduction Concepts Considérations pratiques Conclusion

Page 3: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Plan

Brève introduction Concepts Considérations pratiques Conclusion

Page 4: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Qu'est-ce que SELinux?

Un système MAC pour Linux♦ Domain and Type Enforcement (DTE)♦ Role-Based Access Control (RBAC)♦ Multi-Catégorie (MCS) et Multi-Niveaux (MLS), à la Bell-

Lapadula Développé par la NSA

♦ Inclut dans la distribution standard du noyau linux Promu par RedHat

♦ SELinux installé et activé par défaut sur Fedora et RHE

Page 5: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Pourquoi SELinux?

Caractéristiques du DAC classique♦ Le contrôle d'accès est laissé à la discrétion des utilisateurs♦ Les processus d'un utilisateur ont tous les mêmes droits

... en particulier, root a les pleins pouvoirs Implications : nécessité d'une confiance absolue

♦ ... dans les utilisateurs, ce qui inclut les malveillances (pas simple) les maladresses (très dur)

♦ ... dans les outils des utilisateurs (pire encore) Chevaux de Troie, virus, etc.

Page 6: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Exemples de scénarios

“~/.rhosts doit être modifiable seulement par sonpropriétaire”♦ $ chmod -R a+w ./ au mauvais endroit...

“~/.ssh/id_dsa doit être lisible seulement par sonpropriétaire”♦ Le virus “trucchouchette.w32” exécuté par le mailer du

propriétaire a donc bien le droit d'y accéder♦ ... tout comme le script ActiveX exécuté par son navigateur♦ ... tout comme les “utilitaires” téléchargés sur eMule♦ ... idem pour n'importe quel fichier de l'utilisateur...

Page 7: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

On supprime DAC, alors?

Non, SELinux et DAC coexistent dans le système Seules les actions autorisées par DAC sont vérifiées

par SELinux

Page 8: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Objectifs de SELinux

Application des principes de privilèges minimaux etde séparation des pouvoirs

Confinement de processus♦ Isolation de code non fiable♦ Protection contre l’injection de code

Protection des flux d’information♦ Politiques multi-catégories et multi-niveaux

Intégrité des applications et du système♦ Fichiers de configuration, des exécutables et du noyau♦ Communication entre processus

Page 9: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Plan

Brève introduction Concepts Considérations pratiques Conclusion

Page 10: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Sujets, objets et opérations

Sujets♦ Entités actives du système (~ processus)

Objets♦ Entités passives du système (~ processus et le reste)

Opérations♦ Actions que les sujets entreprennent sur les objets♦ Associées à différentes classes d'objets

Classe d'objet Opération

Processus execute, transition, entrypoint, signaux, fork, ...

Fichiers read, write, append, execute, rmdir, ...

Systèmes de fichiers mount, remount, unmount, ...

Descripteurs de fichiers create, inherit, receive

Sockets (TCP, UDP, raw) bind, connect, listen, accept, ...

Page 11: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Contextes de sécurité

Concept central de SELinux♦ Toutes les décisions d'accès se basent sur les contextes de

sécurité (a.k.a label) Un contexte est un triplet (i,r,t)

♦ i est une identité SELinux♦ r est un rôle♦ t est un type ou un domaine

Un contexte est associé♦ à chaque sujet♦ à chaque objet

Page 12: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Contexte de sécurité

Exemple de label

user_u:system_r:system_t[:s0:c0.c16]

Identité Rôle Type oudomaine

(DTE)

Niveau declassification

oud’habilitation

(MLS)

Catégorie declassification

oud’habilitation

(MCS)

Page 13: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Domaines et types (1/2)

Un type est un identifiant♦ Déclaré et défini par l’auteur d’une politique♦ Pas de signification intrinsèque : un type n’a de sens que

par l’utilisation qui en est faite dans la politique♦ Regroupe des sujets et objets ayant les mêmes

autorisations On parle de...

♦ type pour un objet♦ domaine pour un sujet♦ ... mais recouvrent les mêmes notions

Exemple : system_t

Page 14: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Domaines et types (2/2)

Domaines et types utilisés pour les décisions du typeenforcement

Utilisation prépondérante de SELinux Un sujet d'un domaine d peut effectuer une opération

o sur un objet de type t seulement si la politique DTEl'autorise

Page 15: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Transition de type

Opération d’affectation d’un type♦ par défaut à la création

d’un sujet (transition de domaine), via execve() d’un objet (création d’un fichier, ouverture de socket, etc.)

♦ spécifique, à la demande d’un processus « SELinux-aware », pour l’exécution d’une opération privilégiée

Dans les deux cas, la politique doit autoriser latransition explicitement♦ La spécification d’un type par défaut n’est pas une

autorisation♦ La politique doit en plus autoriser la transition de type

Page 16: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politique de sécurité

Eléments constitutifs♦ Déclarations et définition des types, rôles, identités♦ Définition des règles de transitions de types♦ Définition des autorisations d’accès nécessaires et

suffisantes Expression de la politique dans un langage dédié

♦ Sémantique bien définie♦ Vérification automatique possible

Page 17: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politique de sécurité

Une autorisation implique quatre entités♦ Des types de sujets (i.e. des domaines)♦ Des types d’objets♦ Des opérations♦ Des classes d’objets

allow passwd_t shadow_t:

file { create ioctl read getattr

lock write setattr append

link unlink rename};

Les processus possédant le typepasswd_t sont autorisés à {lire,écrire, ajouter, …} desdonnées dans les fichiers possédantle type shadow_t

Page 18: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politique de sécurité

Transitions de types par défaut

type_transition user_t passwd_exec_t:

process passwd_t;

Un processus du domaineuser_t devrait devenirpasswd_t lors de l’exécutiond’un programme de typepasswd_exec_t (c-à-d passwd)

type_transition passwd_t tmp_t:

file {lnk_file sock_file}

passwd_tmp_t;

Les fichiers créés par unprocessus dont le type estpasswd_t dans le répertoire/tmp doivent avoir le typepasswd_tmp_t

Transition de type

Transition de domaine

Page 19: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Illustration (DTE)

uid : joeeuid : joeuser_t

login

bash

$ passwd joe

uid : joeeuid : joeuser_t

Légende

Processus

DAC

SELinux

r-s--x--x root rootpasswd_exec_tFichier

Page 20: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Illustration (DTE)

uid : joeeuid : joeuser_t

login

uid : joeeuid : joeuser_t

fork()bash

bash

r-s--x--x root rootpasswd_exec_t

/bin/passwd

execve()

allow user_t passwd_exec_t: file { getattr execute};

$ passwd joe

Page 21: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Illustration (DTE)

r-s--x--x root rootpasswd_exec_t

uid : joeeuid : joeuser_t

login

uid : joeeuid : rootpasswd_t

fork()

/bin/passwd

execve()

passwd

bash

allow passwd_t passwd_exec_t:file entrypoint;

allow user_t passwd_t:process transition;

type_transition user_t passwd_exec_t:process passwd_t;

$ passwd joe

Page 22: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Illustration (DTE)

uid : joeeuid : joeuser_t

login

uid : joeeuid : rootpasswd_t

fork()

r--------root rootshadow_t

/etc/shadow

bash

write, create(modification mdp)

allow passwd_t shadow_t:

file {read write append};

passwd

$ passwd joe

Page 23: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Illustration (DTE)

uid : joeeuid : joeuser_t

login

uid : joeeuid : rootuser_t

fork()

r--------root rootshadow_t

/etc/shadow

bash

write, create(modification passwd)

whatever

Page 24: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Identités

Indépendantes des identités système (UID)♦ Les deux subsistent sur le système

Persistence des identités SELinux♦ Un sujet conserve son identité tout au long de sa session

(même après un su)♦ Exceptions à la règle

Processus d'authentification (login, gdm, ssh, etc.)− Pour l'affectation de l'identité initiale d'un utilisateur

cron− Pour l'exécution automatique de processus sous une identité donnée

♦ Permet l'imputabilité des actions sur le système

Page 25: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Rôles

Les rôles relient les utilisateurs aux domaines Application de contraintes supplémentaires

♦ L’affectation d’un type à un processus est permise seulementsi une définition de rôle l’autorise dans la politique

♦ Même si permis par DTE Interviennent dans les transitions de domaines Un utilisateur peut changer de rôle au cours d’une

session La notion de rôle ne s’applique qu’aux sujets

Page 26: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Rôles

user root roles {user_r sysadm_r}; L’utilisateur root a le droit d’assumerles rôles user_r et sysadm_r.

role user_r types passwd_t; Le rôle user_r est autorisé à obtenirle type passwd_t.

Page 27: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Rôles

Comparaison RBAC / SELinux♦ RBAC

Affectation d’autorisations à des rôles Autorisation des utilisateur à assumer un ou plusieurs rôles

♦ SELinux Affectation d’autorisations entre des domaines et des types Affectation de domaines à des rôles Autorisation des utilisateurs à assumer un ou plusieurs rôles

Page 28: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Synthèse des concepts SELinux

Utilisateur Rôle

Type

Domaine

peut assumer

peut accéderpeut transiter

peut exécuter

operation

Sujet

Objet

Contexte

Domaine/type

Role

Identitépossède

specs.politique

Page 29: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Contraintes

Expressions booléennes exprimées dans la politique Doivent être vérifiées lors d’un accès

♦ Opérateurs logiques =, !=, and, or♦ Contraintes basées sur les identités, rôles et types

constrain process transition ((u1 == u2 or t1 == privuser) and (r1 == r2 or t1 == privrole) );

constrain class_set perm_set expression ;

u1,t1,r1 désignent les éléments du domaine sourceu2,t2,r2 désignent les éléments du type cible

Vérifie que l’identité et le rôle d’un sujet ne change pas lors d’une transitionde domaine, sauf si l’utilisateur est un utilisateur privilégié

Page 30: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

SELinux et MLS

Implémentation de Bell-La Padula Ajout d’un niveau et d’une catégorie dans les

contextes des sujets et objets♦ user_u:system_r:system_t[:s0:c0.c16]♦ s0 <=> « Confidential » ; c1 <=> « Crypto »

Vérifications basées sur le mécanismes de contraintesde la politique♦ Ajout des opérateurs booléens <,>,<=,>=♦ Prise en compte des niveaux et catégories MLS et MCS

dans les contraintes Illustration de la souplesse de SELinux dans la mise

en œuvre de politiques MAC

Page 31: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Plan

Brève introduction Concepts Considérations pratiques Conclusion

Page 32: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Architecture de SELinux

Instance de FLASK♦ Framework pour l'implémentation de systèmes MAC♦ Trois composants principaux

Référentiel de sécurité (Security Server - SS)− Décisions d'accès ~ pouvoir législatif

Gestionnaire d'objets (Object Manager - OM)− Application des décisions d'accès ~ Pouvoir exécutif

Cache d'accès (Access Vector Cache – AVC)− Accélère les décisions du SS

Implémentation sous la forme d’un module LSM♦ Linux Security Module♦ Framework du noyau pour l'implémentation de systèmes de

contrôle d'accès dans Linux♦ Hooks insérés dans le code du noyau

Page 33: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

LSM & SELinux

Page 34: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

FLASK & SELinux

LSM

FLASK

Object Manager(exécutif)

AccessVectorCache

Security Server(législatif)

PolitiqueSujet

ObjetLog

Page 35: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

SID (Security IDentifiers)

Les décisions d’accès se font à partir de couples deSID

SID = identifiant unique de contexte de sécurité♦ Attribution des SID aux objets assurée par le gestionnaire

d'objets♦ Association entre SID/label maintenue par le référentiel de

sécurité Deux types de SID

♦ Volatiles (par ex. processus)♦ Persistants (par ex. fichiers)

Stockés sous forme d'attribut étendus du système de fichiers Affectation initiale nécessaire (relabeling du système de fichiers)

Page 36: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politiques SELinux

Modulaires♦ Une politique est une collection de modules♦ Chaque module spécifie la politique propre à une application

spécifique apache, mozilla, pam, etc.

♦ Une modification de la politique ne nécessite plus larecompilation de l’ensemble de la politique

Dynamiques♦ Insertion et retrait de modules “à chaud”♦ Une modification de la politique ne nécessite plus le

redémarrage de la machine

Page 37: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politiques SELinux

Page 38: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Politiques SELinux

Quelques chiffres…♦ ~ 50000 règles de type enforcement

En partie générées automatiquement, à partir des macrosdisponibles dans les sources des politiques

♦ 41 classes d’objets dans le noyau♦ ~7% d’overhead sur le système

Page 39: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Types existants de politiques

targeted♦ Protection des services (apache, ssh, etc.)♦ Le reste du système est “unconfined”♦ Suffisant contre les attaque « frontales »♦ Par défaut sur les systèmes RedHat

strict♦ Protection de l'ensemble du système♦ Services et applications du système♦ Beaucoup plus contraignante

mls♦ Politique multiniveaux

Page 40: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Modes SELinux

Permissive♦ Décisions du SS seulement loggées par le AVC♦ Déboguage de politiques♦ Fonctionnement en mode IDS

Enforced♦ Décisions du SS appliquées sur le système♦ Peut engendrer des disfonctionnements applicatifs si

La politique est mal conçue (comportement légitime de l’application) L’application est mal conçue (comportement litigieux v-à-v du

système, privilèges excessifs)

Page 41: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Outils SELinux

Manipulation des entités du système♦ Outils classiques modifiés (par ex. ls, ps, etc.)♦ Nouveaux outils pour manipuler les contextes des entités

Conception de politique♦ polgen (Mitre) : induction de politiques à partir de traces d’exécution d’un

programme♦ sediff : différences sémantiques entre politiques♦ sechecker : recherche d’erreurs dans une politique

Analyse de trace (aide au diagnostic)♦ seaudit : audit2why (motif des refus d’accès), audit2allow (aide à la

résolution de problèmes)

Page 42: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Développements de SELinux

Coeur de SELinux (noyau)♦ Stable

Outils périphériques♦ Manipulation de la politique, aide au diagnostic, analyse de

logs, etc.♦ Plus ou moins stables

Politiques de sécurité des services♦ Dans l'idéal, une politique par application♦ En développement permanent♦ Le plus gros du travail...

Page 43: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Related Work

DTE♦ A l’origine de SELinux♦ Peu (pas?) utilisé

AppArmor♦ Développé par Suse♦ Assimilable à un DTE pour des services♦ Plus simple, mais fonctions plus limitées

/usr/bin/foo {/bin/mount ux,/dev/{,u}random r,/etc/ld.so.cache r,/etc/foo.conf r,/etc/foo/* r,/lib/ld-*.so* mr,/lib/lib*.so* mr,/proc/[0-9]** r,/usr/lib/** mr,/tmp/foo.pid wr,/tmp/foo.* lrw,/@{HOME}/.foo_file rw}

Page 44: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Plan

Brève introduction Concepts Considérations pratiques Conclusion

Page 45: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Conclusions et perspectives

SELinux : un système MAC puissant…♦ Flexible (permet d’implémenter des politiques variées)♦ Dynamique (chargement de modules de politiques)♦ Granularité très fine dans le contrôle d’accès

… mais complexe♦ En partie du fait de la complexité du noyau Linux♦ Complexité de l’élaboration des politiques

Un travail de longue haleine♦ Nombre d’applications disponibles♦ Facilité par le caractère open-source de Linux

Page 46: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Conclusions et perspectives

Contributions multiples sur ce sujet♦ Politiques MAC particulières♦ Intégration dans le système♦ Développement des politiques d'applications♦ Aide au diagnostic

Projet abouti♦ Intégration par défaut dans la distribution Linux de référence♦ Même si des problèmes demeurent et si des ajouts sont

nécessaires

Page 47: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

14/02/07

Bookmarks

http://www.nsa.gov/selinux/ http://fedora.redhat.com/projects/selinux/ http://selinux-symposium.org/ http://www.tresys.com/

Page 48: SELinux - Supélec · 14/02/07 Qu'est-ce que SELinux? Un système MAC pour Linux ♦Domain and Type Enforcement (DTE) ♦Role-Based Access Control (RBAC) ♦Multi-Catégorie (MCS)

SELinux

Benjamin MorinSupélec/SSIR

[email protected]

Merci! Questions?