Sécurité des systèmes d’exploitation et du logiciel

Ce matériel couvre les principes fondamentaux de la sécurité des systèmes d’exploitation et du logiciel, en s’adressant principalement aux étudiants en informatique et aux professionnels souhaitant approfondir leurs connaissances en sécurité informatique.

D'après le document Sécurité des systèmes d’exploitation et du logiciel

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Sécurité des systèmes d’exploitation et du logiciel

Sécurité informatique, Authentification, SSO · PDF · 117 pages · 2014

Afficher l'aperçu du document

Consulter le document original →

Ce matériel couvre les principes fondamentaux de la sécurité des systèmes d’exploitation et du logiciel, en s’adressant principalement aux étudiants en informatique et aux professionnels souhaitant approfondir leurs connaissances en sécurité informatique. Il présente les concepts d’authentification, de contrôle d’accès, les modèles de sécurité, ainsi que les protocoles d’authentification réseau couramment utilisés.

Contrôle d’accès et authentification

Le contrôle d’accès est un mécanisme permettant de gérer les autorisations d’accès aux ressources d’un système d’information. Il vise à permettre aux utilisateurs autorisés d’accéder aux ressources nécessaires tout en empêchant les accès non autorisés.

Le contrôle d’accès comprend trois étapes essentielles :

  • Identification : l’entité indique son identité (exemple : « je suis Foulen »).
  • Authentification : vérification que l’entité est bien celle qu’elle prétend être.
  • Autorisation : validation que l’entité a la permission d’accéder à une ressource spécifique.

L’authentification précède donc l’autorisation, car il est nécessaire de savoir à qui on accorde des permissions. Le modèle de contrôle d’accès classique repose sur un « Reference Monitor », un gardien qui filtre les demandes d’accès en fonction des droits.

Single Sign On (SSO)

Le Single Sign On (SSO) est une méthode qui permet à un utilisateur de s’authentifier une seule fois pour accéder à plusieurs ressources hétérogènes. On distingue :

  • SSO Poste : appliqué aux autorisations d’accès aux serveurs applicatifs du système d’information.
  • SSO Serveur : appliqué aux applications web telles que les intranets ou services Internet.

Les avantages du SSO sont :

  • Réduction du nombre de mots de passe à mémoriser, évitant ainsi les mots de passe trop simples ou notés sur papier.
  • Centralisation de la base de mots de passe, facilitant l’administration et homogénéisant la politique d’authentification.

Cependant, le SSO présente des inconvénients, notamment le risque de contourner le processus d’authentification en l’automatisant. Il est donc nécessaire de garantir la présence physique de l’utilisateur (par exemple via une carte à puce à retirer à chaque absence).

Architectures SSO Serveur

Trois architectures principales existent :

  • SSO Reverse Proxy : un serveur de sécurité en mode reverse proxy gère l’authentification et l’accès aux applications.
  • SSO Proxy Web : un serveur de sécurité en mode proxy web ou associé à un portail d’entreprise réalise l’authentification.
  • SSO Agents : un agent installé sur chaque serveur intercepte les demandes entre le client et le serveur de sécurité.

Ces architectures peuvent être combinées selon les contraintes techniques et applicatives.

Techniques de contrôle d’accès

Trois principaux modèles de contrôle d’accès sont présentés :

  • Discretionary Access Control (DAC) : contrôle discrétionnaire où le propriétaire d’une ressource décide des permissions d’accès.
  • Mandatory Access Control (MAC) : contrôle obligatoire basé sur des niveaux de sensibilité et des mandats délivrés par l’organisation.
  • Role-Based Access Control (RBAC) : contrôle basé sur les rôles des utilisateurs dans l’organisation.

Discretionary Access Control (DAC)

Le DAC est le modèle le plus courant dans les systèmes d’exploitation actuels. Il permet au propriétaire d’une ressource de déléguer les droits d’accès. Par exemple, dans Unix, un utilisateur peut transmettre des droits à un autre utilisateur, ce qui peut poser des problèmes de sécurité si la confiance est rompue.

Exemple :

  • A donne un droit de lecture à B sur un fichier.
  • B copie ce fichier et devient propriétaire de la copie.
  • B peut alors transmettre ce droit à C sans que A en soit informé.

Ce modèle limite l’accès aux utilisateurs honnêtes mais n’est pas adapté aux informations très sensibles.

Mandatory Access Control (MAC)

Le MAC vise à contrôler la diffusion de l’information indépendamment de la confiance accordée aux applications. Il repose sur :

  • Des niveaux de sensibilité attribués aux objets (labels).
  • Des mandats délivrés par l’organisation pour accéder à des informations sensibles.
  • Un cloisonnement strict des informations.

Ce modèle est notamment utilisé dans les systèmes multi-niveaux sécurisés, comme dans le domaine militaire, avec le modèle de Bell-LaPadula.

Role-Based Access Control (RBAC)

Le RBAC attribue les permissions en fonction du rôle occupé par un utilisateur dans une organisation. Chaque rôle est associé à un ensemble de permissions, et l’utilisateur peut activer un ou plusieurs rôles durant une session.

Ce modèle est orienté tâche et permet de gérer les autorisations au cours de la réalisation d’un workflow.

Modèles de contrôle d’accès

Modèle Bell-LaPadula (BLP)

Le modèle Bell-LaPadula, développé dans les années 1970, est un modèle de sécurité multi-niveaux centré sur la confidentialité :

  • Un sujet ne peut pas lire des données d’un niveau supérieur (no read up).
  • Un sujet ne peut pas écrire des données dans un niveau inférieur (no write down).
  • Un sujet ne peut lire ou écrire qu’à son niveau de sécurité.

Ce modèle utilise des labels de sécurité composés d’un niveau (ex : Top Secret, Secret, Confidentiel, Non Classifié) et d’un ensemble de catégories (ex : US, EUR). La relation de domination (dom) entre deux labels (niv1, cat1) et (niv2, cat2) est définie par :

(niv1, ens_cat1) dom (niv2, ens_cat2) ssi niv1 ≥ niv2 et ens_cat2 ⊆ ens_cat1

Le modèle BLP est prouvé mathématiquement pour empêcher la fuite d’informations de niveaux supérieurs vers des niveaux inférieurs.

Exemple d’application :

  • M. V (Top Secret, {A,C}) veut accéder à un document (Secret, {B,C}) : accès refusé car {B,C} n’est pas inclus dans {A,C}.
  • Mme Y (Top Secret, {A,C}) veut accéder à un document (Confidentiel, {A}) : accès en lecture autorisé.

Le modèle BLP a été utilisé dans la conception de systèmes d’exploitation sécurisés comme Unix System V/MLS. Ses limites sont qu’il ne traite que la confidentialité, pas l’intégrité, ne gère pas la modification des droits, et ne prévient pas les canaux cachés.

Modèle HRU (Harrison-Ruzzo-Ullman)

Le modèle HRU formalise les politiques de contrôle d’accès discrétionnaires traditionnelles. Il utilise une matrice P représentant les droits d’accès des sujets vers les objets. Les sujets peuvent créer ou supprimer d’autres sujets ou objets, et modifier les droits.

Les actions élémentaires sont :

  • enter et delete : ajout et suppression de droits
  • create subject et create object : création de sujets et objets
  • destroy subject et destroy object : suppression de sujets et objets

La configuration du système est définie par le triplet (S, O, P) où S est l’ensemble des sujets, O l’ensemble des objets, et P la matrice des permissions.

Modèle Biba

Le modèle Biba vise à assurer l’intégrité des données :

  • Interdire la propagation d’informations d’un niveau d’intégrité supérieur vers un niveau inférieur.
  • Interdire à un sujet d’un certain niveau d’intégrité de modifier un objet d’un niveau supérieur.

Modèle Domain and Type Enforcement (DTE)

Créé en 1985, ce modèle ne garantit pas la sûreté mais permet d’implanter diverses politiques de sécurité dans un système d’exploitation. Il restreint les ressources accessibles par un programme selon son domaine d’exécution et le type des objets.

Par exemple, un serveur web Apache s’exécutant sous root ne peut accéder qu’à ses fichiers de configuration et pages web, limitant ainsi les risques.

Protocoles d’authentification et d’autorisation

RADIUS (Remote Authentication Dial-In User Service)

RADIUS est un protocole client-serveur permettant à un serveur d’accès de communiquer avec un serveur central pour authentifier les utilisateurs et gérer les autorisations. Il utilise un secret partagé pour sécuriser les échanges, partiellement chiffrés.

Processus typique :

  1. L’utilisateur initie une connexion.
  2. Le serveur d’accès demande un identifiant et mot de passe ou un challenge.
  3. L’utilisateur répond.
  4. Le client RADIUS envoie les informations au serveur RADIUS en les chiffrant.
  5. Le serveur RADIUS répond par Accept, Reject ou Challenge.
  6. Le client configure l’accès selon la réponse.

RADIUS gère AAA (Authorization, Authentication, Accounting) et est très répandu dans les NAS, VPN, proxys, etc.

TACACS et TACACS+

TACACS est un ancien protocole Unix pour l’authentification, remplacé par TACACS+ qui est un protocole propriétaire Cisco plus sécurisé :

  • Chiffre la totalité des messages.
  • Utilise TCP.
  • Dissocie authentification et autorisation.

TACACS+ reste populaire dans les environnements Cisco malgré quelques vulnérabilités corrigées dans les versions récentes.

Comparaison RADIUS / TACACS+

RADIUS TACACS+
Transport UDP TCP
Chiffrement Partiel (mot de passe) Intégral (tout le message)
Interopérabilité Publique, standardisée Propriétaire Cisco
Fonctionnalités Authentification et autorisation regroupées Authentification et autorisation dissociées
Modularité Attributs configurables Supporte plus de protocoles

Kerberos

Kerberos est un protocole d’authentification réseau conçu au MIT dans les années 1980. Il fournit une authentification mutuelle basée sur des clés partagées et le chiffrement (DES ou 3DES), utilisant un tiers de confiance.

Le principe repose sur un système de tickets où tous les mots de passe et droits d’accès sont stockés sur un serveur sécurisé. L’infrastructure Kerberos comprend :

  • Les clients Kerberos.
  • Les serveurs d’accès supportant Kerberos (routeurs, passerelles, serveurs).

Glossaire des termes clés

  • Authentification : Processus de vérification de l’identité d’une entité.
  • Autorisation : Validation des droits d’accès à une ressource.
  • Single Sign On (SSO) : Mécanisme permettant une authentification unique pour plusieurs ressources.
  • Discretionary Access Control (DAC) : Contrôle d’accès où le propriétaire décide des permissions.
  • Mandatory Access Control (MAC) : Contrôle d’accès basé sur des niveaux de sensibilité et mandats organisationnels.
  • Role-Based Access Control (RBAC) : Contrôle d’accès basé sur les rôles des utilisateurs.
  • Bell-LaPadula (BLP) : Modèle de sécurité multi-niveaux centré sur la confidentialité.
  • Harrison-Ruzzo-Ullman (HRU) : Modèle formalisant les politiques DAC avec création/suppression de sujets et objets.
  • Biba : Modèle de sécurité centré sur l’intégrité des données.
  • Domain and Type Enforcement (DTE) : Modèle de contrôle d’accès basé sur domaines et types pour restreindre les ressources accessibles.
  • RADIUS : Protocole d’authentification et d’autorisation réseau basé sur UDP.
  • TACACS+ : Protocole propriétaire Cisco d’authentification et d’autorisation basé sur TCP.
  • Kerberos : Protocole d’authentification réseau utilisant des tickets et un tiers de confiance.

Points clés à retenir

  • Le contrôle d’accès repose sur identification, authentification et autorisation.
  • Le SSO facilite la gestion des mots de passe mais nécessite des mécanismes garantissant la présence physique de l’utilisateur.
  • Les modèles DAC, MAC et RBAC répondent à différents besoins de sécurité selon la sensibilité des informations.
  • Le modèle Bell-LaPadula est fondamental pour la confidentialité dans les systèmes multi-niveaux.
  • Le modèle HRU formalise la gestion des droits dans les systèmes discrétionnaires.
  • Les protocoles RADIUS, TACACS+ et Kerberos sont essentiels pour l’authentification et la gestion des accès dans les réseaux.
  • Chaque protocole présente des avantages et limites selon le contexte d’utilisation.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions