"FinCorp" - Confidentialité et Hiérarchie

"FinCorp" - Confidentialité et Hiérarchie
PRÉSENTATION

Contexte et Situation

Vous intégrez le service IT de FinCorp, une PME du secteur financier. Ici, la sécurité n'est pas une option. Une fuite de données entre le service Ressources Humaines (RH) et le service Comptabilité pourrait avoir des conséquences graves.

Votre DSI vous confie la gestion du serveur de fichiers interne. Vous devez garantir un cloisonnement strict entre les services, tout en assurant que la Direction puisse auditer (lire) n'importe quel document, sans jamais pouvoir les modifier (pour éviter toute accusation de falsification).

OBJECTIFS

Objectifs Pédagogiques

Maitriser les permissions standards (UGO) pour isoler des départements.

Utiliser les ACL par défaut pour gérer l'héritage des droits (problématique de la Direction).

Configurer Sudo avec des alias pour déléguer des tâches administratives sans donner les pleins pouvoirs.

Verrouiller l'accès aux utilisateurs non autorisés.

WORKFLOW

Workflow

PARTIE 1 : L'Organigramme (Utilisateurs & Groupes)

Vous devez recréer la structure de l'entreprise sur le système Linux.

  1. Créez les groupes suivants : rh, compta, direction.
  2. Créez les utilisateurs suivants avec leurs dossiers personnels :

gflaubert (Service RH) -> groupe principal rh
jvalles (Service Compta) -> groupe principal compta
aernaux (Directrice Générale) -> groupe principal direction
mpagnol (Votre assistant) -> aucun groupe spécifique pour l'instant

Attribuez des mots de passe temporaires.

Contrôle :

Vérifiez que gflaubert ne fait pas partie du groupe Compta, et inversement.

PARTIE 2 : Le Cloisonnement Strict (Permissions UGO)

Les dossiers de travail doivent être créés et sécurisés.

  1. Créez l'arborescence suivante :
    /data/fincorp/rh
    /data/fincorp/compta

La Règle d'Or :

Le dossier rh doit appartenir au groupe rh.
Seuls les membres du groupe rh (et root) peuvent entrer, lire et écrire dedans.
Personne d'autre (ni Compta, ni mpagnol) ne doit pouvoir y accéder.

Appliquez la même logique pour le dossier compta.

Test de pénétration :

Connectez-vous en gflaubert et créez un fichier salaires.txt dans /data/fincorp/rh.

echo “aernaux 10000€” > /data/fincorp/rh/salaires.txt

Connectez-vous en jvalles et essayez de lire ce fichier. L'accès doit être refusé.

PARTIE 3 : L'Œil de la Direction (ACLs et Héritage)

La directrice, aernaux, doit avoir un accès en Lecture Seule sur tous les dossiers RH et Compta pour effectuer des contrôles.

Problème : Si vous changez le groupe propriétaire pour mettre "direction", les employés ne pourront plus travailler. Si vous utilisez les droits "Others", tout le monde pourra lire.

  1. Utilisez les ACL (Access Control Lists) pour donner à aernaux le droit de lecture et d'exécution (r-x) sur les dossiers /data/fincorp/rh et /data/fincorp/compta.
  2. Le piège des nouveaux fichiers : Si gflaubert crée un nouveau fichier demain, aernaux n'aura pas forcément les droits dessus par défaut.

Mise en evidence du faux sentiment de securite :

Avant d'aller plus loin, il faut comprendre pourquoi l'accès semble déjà fonctionner sans ACL par defaut.
a) Connectez-vous en tant que jvalles et créez un fichier dans compta :

su - jvalles
echo "Vente Marchandise 5000" > /data/fincorp/compta/ventes.txt

b) Connectez-vous en tant que aernaux et lisez ce fichier :

su - aernaux
cat /data/fincorp/compta/ventes.txt

Constat : cela fonctionne. Mais est-ce grace a votre ACL ? Verifiez avec getfacl et ls -l. Vous constaterez que le fichier est en rw-r--r--, ce qui signifie que le bit "others" (r--) donne l'acces a tout le monde, y compris mpagnol qui ne devrait rien voir.

c) Durcissement du systeme avec le umask :

En tant que root, appliquez un umask restrictif pour tous les utilisateurs. Editez le fichier /etc/profile et ajoutez a la fin :

vim etc/profile
umask 007

d) Ouvrez une nouvelle session pour jvalles (important : le umask ne s'applique qu'aux nouvelles sessions) et creez un nouveau fichier :

su - jvalles
umask

Verifiez que le umask affiche bien 0077.

echo "Achat Fournisseur 3200" > /data/fincorp/compta/achats.txt
ls -l /data/fincorp/compta/achats.txt

Constat : les permissions du fichier sont desormais rw-------. Ni "group" ni "others" n'ont de droit.

e) Testez a nouveau avec aernaux :

su - aernaux
cat /data/fincorp/compta/achats.txt

Resultat attendu : Permission denied.

L'ACL posee sur le dossier ne protege pas les fichiers crees a l'interieur. L'acces qui fonctionnait avant reposait sur une faiblesse de securite, pas sur votre configuration.

  1. Le piège des nouveaux fichiers : Si gflaubert crée un nouveau fichier demain, aernaux n'aura pas forcément les droits dessus par défaut.
    Configurez des ACL par défaut (Default ACLs) sur les dossiers parents pour que tout nouveau fichier ou dossier créé à l'intérieur hérite automatiquement des droits de lecture pour aernaux.

Validation :

Vérifiez les droits de ce fichier (getfacl). aernaux apparaît-elle ?

getfacl /data/fincorp/rh/nouveau_contrat.doc

En tant qu'gflaubert, créez un nouveau fichier nouveau_contrat.doc dans le dossier RH.

su - gflaubert
echo “Contrat de Travail” > /data/fincorp/rh/nouveau_contrat.doc

Connectez-vous en aernaux et essayez de lire le fichier (doit fonctionner) puis de le supprimer ou modifier (doit échouer).

su - aernaux
cat /data/fincorp/rh/nouveau_contrat.doc
rm /data/fincorp/rh/nouveau_contrat.doc

PARTIE 4 : Délégation de la gestion des comptes (Sudo Restreint)

Votre assistant mpagnol doit pouvoir débloquer des comptes utilisateurs ou changer des mots de passe en cas d'oubli, mais il ne doit jamais pouvoir installer de logiciels, ni modifier la configuration réseau, ni lire les fichiers de la Direction.

  1. Configurez Sudo (visudo) pour l'utilisateur mpagnol.
  2. Utilisez un Cmnd_Alias nommé GESTION_COMPTES pour regrouper les commandes passwd et usermod.
  3. Autorisez mpagnol à lancer uniquement ces commandes via sudo.
  4. Question critique : Avec cette configuration, mpagnol peut-il changer le mot de passe de aernaux (la directrice) ou de root ? Testez-le.

Note :

Dans la réalité, pour empêcher cela, on utiliserait des scripts wrappers ou des configurations sudo très complexes.

Pour ce TP, contentez-vous de constater le résultat.

PARTIE 5 : Bonus / Investigation

Une procédure automatique de sauvegarde tente de copier les fichiers RH chaque nuit, mais elle échoue par moments.

En regardant les attributs des fichiers dans le dossier RH, vous voyez ceci sur un fichier critique :
Plaintext

-rw-r--r-- 1 gflaubert rh 0 Nov 29 10:00 archives_2023.tar.gz

Pourtant, même root n'arrive pas à le supprimer avec rm.

  1. Quelle commande permet de voir les attributs étendus cachés qui pourraient protéger ce fichier (ex: attribut immuable) ?
  2. Simulez la situation : En tant que root, créez un fichier et rendez-le immuable. Essayez de le supprimer. Retirez l'attribut et supprimez-le.
TECHNOLOGIES

Choix Technologiques

Une machine virtuelle Linux (Debian, Ubuntu ou CentOS).

Accès root.

PRÉ-REQUIS

Pré-requis pour ce TP

Avant de commencer ce TP, assurez-vous d'avoir installé et configuré :

Cliquez sur un pré-requis pour voir le tutoriel d'installation complet

Ressources à télécharger

Aucune ressource disponible pour ce TP.

Commentaires(0)
Chargement des commentaires...

Ajouter un commentaire