• 8 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 09/09/2019

Renseignez-vous sur vos utilisateurs et vos prestataires

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

L'objectif sera de comprendre les enjeux de production et de sécurité des privilèges (habilitations ou droits) que vous donnez à vos utilisateurs et prestataires qui viennent travailler chez vous. Vous découvrirez le mode de fonctionnement des privilèges dans les situations les plus courantes, et également vous verrez des cas d'utilisation malveillante, comme l'élévation de privilèges (accéder au compte root ou admin) ou la divulgation d'informations confidentielles, afin que dorénavant vous puissiez comprendre et appliquer les bonnes pratiques de la sécurité à vos droits, proposées par l'ANSSI.

Cette partie appartient à ce qu’on appelle « la gestion des droits ou des habilitations (privilèges) » des utilisateurs d'un système informatique ; elle succède assez directement et assez naturellement à ce que l’on a vu juste avant sur l’authentification.

Situations d'usage courant des privilèges

Tout d’abord, ce qu’il faut savoir : que ce soient le système d’exploitation Linux ou bien Windows, tous les systèmes d’exploitation permettent de gérer des autorisations sur les ressources, les répertoires ou les activités des utilisateurs. Cette fonction est très importante et définit généralement les actions de base que peut faire un utilisateur, ce que l'on appelle son niveau de privilège.

La plupart des systèmes d'exploitation intègrent ces mécanismes, authentification et autorisations ! (Vos mobiles,  vos ordinateurs portables....). Les autorisations sur les fichiers et répertoires ne sont pas fixées définitivement, elles sont paramétrées par les administrateurs et peuvent être changées, afin de s'accommoder aux nouveaux besoins d'usage de votre système (d'exploitation).

Principe général d'authentification puis d'autorisation : l'identification vise la présentation des identités, l'autorisation vise l'affectation de ressources système connues.
Principe général d'authentification puis d'autorisation : l'identification vise la présentation des identités, l'autorisation vise l'affectation de ressources système connues.

Donc, en fait, une fois que la partie "authentification" est arrivée (gauche), on va avoir une 2e phase qui va être l’acceptation ou pas des privilèges qu’on va attribuer à un utilisateur du système (d'exploitation) sur les ressources.

Les systèmes d’authentification sont très différents sur la façon de procéder. Il y en a qui vont réutiliser les mêmes identifiants, d’autres qui vont vous donner les nouveaux identifiants. Donc c’est cette partie-là que l’on va approfondir pour comprendre quelles sont les autorisations dont vous bénéficiez pour aller dans le système d’exploitation.

Linux, Mac, et les *UX

Apprenez à connaître vos droits

Afin de connaître le niveau de privilège  d'un utilisateur et d'un groupe sur un répertoire ou un fichier, tapez l'une ou l'autre des commandes :

ls -l <nomrepertoire>
id <nomuser> (retourne vos appartenances à vos groupes)
more /etc/password

Elle permet de consulter vos droits, reportez-vous au site de Wikipedia si vous voulez aller plus en détail : https://fr.wikipedia.org/wiki/Permissions_UNIX#Norme_POSIX.

-rw-r--r-- 267 veronique GroupeDeVeronique 4096 2018-10-29 23:09 Cnam.txt
drwxr-xr-x 512 veronique GroupeDeVeronique 4096 2018-10-29 23:09 CnamDirectory

Ainsi, dans la première colonne, on retrouve les symboles pour informer des droits sur un fichier ou un répertoire ; pour le fichier Cnam.txt, on a -rw-r--r-- et pour le répertoire CnamDirectory on a drwxr-xr-x

Cette commande fait apparaître un groupe de 10 caractères ; 1e premier représente un switch, et les 3 groupes de 3 symboles suivants, les niveaux de privilège du propriétaire, du groupe, puis des utilisateurs.

0 123 456 789
- rw- r-- r--

Par exemple, c'est un fichier dont, dans l'ordre, le propriétaire a : rw-, l'utilisateur appartenant au groupe a :, les autres utilisateurs ont :  r--,  r--

Le 1er caractère informe sur la nature de la ressource : répertoire ou fichier :  -  pour fichier, répertoire, pour lien symbolique... ; Cnam.txt est un fichier et CnamDirectory un répertoire.

Le premier groupe de 3 caractères informe sur le niveau de privilège du propriétaire : le propriétaire de Cnam.txt a les droits de lecture et écriture (mais pas d'exécution) rw- alors que sur le répertoire CnamDirectory il a les droits de lecture et écriture rwx.

Le second groupe de 3 caractères informe les niveaux de privilège de l'utilisateur du groupe ; ce sont : r-- :

Enfin, les autres utilisateurs  n'ont que le droit de lecture (pas d'écriture, ni d'exécution).

Les comptes par défaut

Voilà ce que permettent de faire ces outils de droits, on comprend que finalement si l’on est dans un répertoire hyper stratégique comme le système d’exploitation, qu’on veut exécuter un service, un code ou une application, lire ou arrêter des services, eh bien, ça devient tout à fait possible.

Alors pour pouvoir réaliser ça, les systèmes d’exploitation comportent également ce qu’on appelle des comptes par défaut. Par exemple, sur un système Linux on parle de root, sur un système Windows on parle de rôle d’administrateur.

Les comptes par défaut sont des comptes créés lors de l'installation du système d’exploitation en vue d'un fonctionnement de base ; ils ont des privilèges spécifiques et connus de tous !

Modifiez vos droits

Sur un système d’exploitation Linux ou Windows,  vous pouvez  modifier des droits  avec des commandes système ; par exemple avec  « chmod » sur Linux.

Certains droits sont de niveau de privilège plus ou moins élevé, par exemple root ou admin sont beaucoup plus élevés que user, et permettent de réaliser des commandes pour modifier les accès au système.

Par exemple, sur un système d’exploitation Linux ou Windows, vous pourrez faire modifier des droits « chmod » qui sont des droits de l’admin pour le user ; c'est-à-dire demander une élévation de privilèges de l’utilisateur en cours, on a des commandes comme par exemple :

  • sur Linux : « chmod », « suid » ou « su » qui vont permettre de le faire ;

  • sur Windows :  "runas".

Donc, il va y avoir bien sûr là encore un second niveau de contrôle qui va permettre d’empêcher l’utilisateur d’accéder à des droits élevés, tout simplement pour éviter des erreurs lors de ses interventions ou éviter des actions malveillantes.

Consultez les propriétés de vos fichiers et répertoires à l'aide du clic droit de votre souris, en vous positionnant sur le répertoire ou le fichier que vous souhaitez analyser !

15461653393549_privileges.png
Outil de base pour la modification des droits de vos utilisateurs dans l'onglet Sécurité

Au bilan

Que ce soit sous Linux ou Windows, un utilisateur pourra selon ses niveaux de privilèges  :

  • lire un répertoire, à l’intérieur du répertoire, c'est-à-dire : lister les fichiers présents dans ce répertoire, visualiser les droits d'accès d'un utilisateur sur ce répertoire... ;

  • lire le contenu d'un fichier = l’ouvrir ;

  • modifier le répertoire = y ajouter ou pas des fichiers ;

  • modifier le fichier en écriture = y ajouter des textes ;

  • exécuter une application dans un répertoire.

Dans l’endroit où se trouve l’utilisateur, il va pouvoir exécuter par exemple un logiciel, une application, un outil de supervision, mais également un backdoor que lui aurait mis éventuellement un attaquant. Donc, ces fonctions d’exécution, on comprend qu’elles ne sont pas anodines et il va falloir les surveiller.

Menaces

Cette fonction est extrêmement importante, parce que (comme vous le voyez dans la partie droite du slide) je peux taper une action qui est un peu délicate, par exemple tcpdump, qui est un outil de "sniffing réseau", et qui permet de voir tout ce qui se passe sur le réseau.

Eh bien, si mon système d’exploitation est bien paramétré, normalement il ne doit pas m’autoriser à exécuter cette commande. Par exemple, nous pouvons avoir : « operation not permitted ». Donc, selon les systèmes d’exploitation on va pouvoir plus ou moins finement empêcher ces actions.

On comprend bien que l’objectif de l’attaquant va être :

  • un gain de privilège (ce qu’on appelle : élever des privilèges) et le privilège idéal pour lui c’est l’administrateur,

  • une prise de contrôle totale de la machine et du réseau auquel elle appartient.

Eh bien, ça c’est une pratique qu’il va falloir prendre en compte : ne JAMAIS permettre sur un système, qu’il soit  poste de travail ou serveur,  d’utiliser les comptes administrateurs admin ou root.

Oui, vous allez me dire : si vous n’êtes pas admin de votre machine, vous ne pourrez pas installer de nouvelles applications, ni bénéficier de nouveaux logiciels. Ceci est vrai, mais quand vous êtes en entreprise, l’installation de nouveaux logiciels va devoir être régulée et autorisée par les admins.

Un autre point important que l’attaquant va faire lorsqu’il est désespéré parce qu’il ne peut devenir ni root ni admin : il va essayer d’obtenir des comptes génériques. Les comptes génériques sont des comptes mis en place par les éditeurs de logiciels ou de votre système d'exploitation (Mac, Windows, Linux) et qui ont un peu plus de droits qu’un utilisateur normal, parce que ces utilisateurs privilégiés doivent juste installer un logiciel donné afin d'élever les privilèges en admin, juste pour les  répertoires de ce logiciel. Alors l’attaquant, qui connaît bien tous ces logiciels, par exemple Microsoft Word, ou bien comment fonctionnent ces comptes génériques,  va les tester tous une fois qu’il sera sur la machine ; il va essayer de rentrer avec ces comptes génériques qui n’auront pas été désactivés par l’admin.

Les bonnes pratiques

Donc pour pouvoir lutter contre ça, on propose de gérer les autorisations des utilisateurs, des partenaires par le biais d'un contrôle d'accès et d'une optimisation des privilèges.

Vous pourrez vous référer au guide de l'ANSSI pour les détails de toutes les cartographies du SI . Les actions principales concernant les privilèges vont se traduire ainsi :

  • dressez une liste de vos utilisateurs, des groupes ;

  • dressez une liste des ressources ;

  • dressez une liste des droits des groupes sur les ressources ;

  • dresser une liste des usagers dans les groupes.

Matrice des droits
Matrice des droits

Un contrôle d'accès AAA

On va tout d'abord mettre en place des services d'authentification, d'autorisations et  d'audit qu’on appelle également triple A (pour Authentification, Authorization, Accounting/Auditing). Ils vont avoir 2 fonctions de base :

  • la 1re, nous l’avons déjà vu pour les « passwords », c’est l’authentification avec un identifiant et un mot de passe ;

  • la 2e, ce sont les capacités à affecter les autorisations plus ou moins finement.

Un des outils aujourd’hui les plus réputés et les plus robustes vis-à-vis de la sécurité, c’est  Kerberos. Kerberos va faire de l’authentification ; il est présent sur les systèmes Windows et va permettre de mettre en place des autorisations en fonction des profils et des identités. Donc, ça c’est fondamental ! Et nous allons voir maintenant comment fonctionne Kerberos.

Processus d'authentification Kerberos
Processus d'authentification Kerberos 

Kerberos offre les 3 services représentés par 3 serveurs : 1 serveur d’authentification (dont on connaît maintenant les différentes actions) et un distributeur de tickets. Le ticket va être justement une espèce de badge permettant de rentrer dans différents sas du système d’information comme certains répertoires, certains périphériques : imprimante ou d’autres objets connectés ; ce ticket va aussi vous donner droit ou pas à exécuter certaines actions.

Premièrement, quand vous êtes devant un serveur Kerberos, vous allez lui demander d’accéder au service par le principe du « secret partagé », donc cryptographiquement, le serveur Kerberos vous connaît déjà dans une base comme on a vu tout à l’heure, avec une clé qui est la même que celle que vous avez. Selon ce que vous allez faire, vous allez avec cette clé, chiffrer votre nom d’authentification avec quelque complexité : vous allez ajouter notamment un « timestamp » ( = ticket d’heure) qui va vous donner finalement une unicité  dans le temps et dans l’espace.

Donc, vous allez recevoir de la part du serveur d’authentification un ticket unique qui aura été donné lui aussi en fonction des informations que vous avez données (c’est l’intérêt, c’est dynamique !),  et avec ce ticket vous allez pouvoir vous présenter devant le serveur distributeur de tickets, qui va refaire la même opération que le serveur d’authentification, mais en vous donnant un nouveau ticket pour être sûr que ce ticket-là n’aura pas pu être forgé par un attaquant qui aurait écouté les informations entretemps.

Et c’est avec ce tout nouveau ticket que vous allez vous présenter devant les ressources ; donc à chaque fois vous allez recevoir un nouveau ticket pour aller sur l’imprimante, le serveur de répertoire… Et vous allez de cette manière (de manière unique) « vous  signer », vous authentifier à chaque fois sur la ressource. Donc on comprend que de cette manière, on a une vérification très forte de vos actions et de vos activités, et en plus vous êtes tracé, c'est-à-dire que vous laissez des logs dans des journaux d’événements et que l'on va pouvoir remonter toutes les activités que vous avez faites.

Les moindres privilèges

Les autorisations filtrent l’accès à certains fichiers ou dossiers pour un utilisateur donné.

Le principe des moindres privilèges impliquera que les autorisations associées à une tâche, une application, un répertoire ou un fichier seront strictement nécessaires à l'exécution du code menant à bien ses fonctionnalités.

Vous devrez, dans un environnement poste de travail, empêcher un utilisateur d’accéder à l’un de vos répertoires. Au sein d'un environnement partagé, réseau ; l’intérêt est encore plus évident, il vous faudra alors interdire à des utilisateurs externes l’accès à certains fichiers.

Challenge pour les objets connectés

Ce mécanisme est un mécanisme très important, mais il ne pourra pas s’effectuer correctement par l’administrateur si lui ne s’est pas organisé au préalable avec une grille pour pouvoir comprendre que M. Dupont Alain a les autorisations sur le fichier1, le répertoire1, l’imprimante2, etc. Donc, on va faire une grille, qui va permettre de préparer la mise en place et le paramétrage sur le système d’exploitation de ses habilitations. Cela va nous donner au final une liste de contrôle d’accès ; c’est ce qu’on appelle des ACL, qui vont en fonction du nom de l’utilisateur, de l’identité, de son password, du ticket qu’il va obtenir du logiciel Kerberos, des droits sur les ressources de manière très stricte et très organisée.

Cet aspect est d’autant plus important pour les objets connectés qui sont généralement en dehors du système d’information, en mobilité.

Donc, l’un des challenges des prochaines années pour la gestion des privilèges sera de proposer des outils permettant de faciliter la gestion des objets connectés à l’intérieur du système d’information.

Exemple de certificat de réussite
Exemple de certificat de réussite