Archive pour décembre 2008

Le contrôle d’accès

Samedi 20 décembre 2008

Le contrôle d’accès consiste à vérifier si un sujet demandant l’accès à un objet, possède les droits nécessaires pour y accéder. Son efficacité repose sur 2 règles :

  • Le sujet doit être identifié par le biais des procédures d’authentification
  • Tous les droits d’accès (utilisateur/processus) doivent être protégés de toute modification sur le système

La politique d’accès spécifie les accès autorisés.

Les mécanismes d’accès sont les outils déployés pour assurer la politique d’accès.

La différenciation faite entre la politique & les mécanismes d’accès découle de ce que l’analyse doit être indépendante de l’implémentation.

Exemple 1

Politique d’accès : Sécurité Militaire
Modèle d’accès associé : Confidentialité
Droit d’accès concerné : Lecture (Read)

Exemple 2

Politique d’accès : Sécurité Civile
Modèle d’accès associé : Intégrité
Droit d’accès concerné : Ecriture (Write)

Il existe 2 types de politiques de sécurité :

  • Discrétionnaire : les droits sont manipulés librement par le propriétaire
  • Mandats / Obligations : organisation hiérarchique multi-niveaux des utilisateurs et des ressources

Les modèles de sécurité permettent de vérifier la cohérence de la politique de sécurité ainsi que sa mise en œuvre. Il en existe 3 types :

  • Disponibilité : Willen
  • Intégrité : BIBA, Clark Wilson
  • Confidentialité : Lampson, Harrison Ruzzo Ullman, Bell LaPadula, Take-Grant

Le modèle HRU (Harrison Ruzzo Ullman) repose sur l’expression des permissions. Il s’agit de matérialiser les relations entre les Sujets (utilisateur ou processus), les Objets (fichiers, répertoires, processus, cellule mémoire) et les Actions disponibles (read, write, execute, own). Pour cela on modélise la matrice des droits d’accès : M (Sujet * Objet).

Le modèle Take-Grant permet de représenter des systèmes informatiques sous forme de graphes : les nœuds repésentent les sujets ou les objets, les arcs représentent les droits d’accès (take, grant, read, write). Ce modèle autorise certaines règles de modification : create, delete, remove.

Le modèle BLP (Bell LaPadula) introduit la notion de classification des informations par niveau de confidentialité, et la notion d’habilitation des utilisateurs pour l’accès aux données. L’utilisateur ne peut qu’écrire des données dont la classification est supérieure ou égale à son habilitation. De même, les données ne peuvent être lues que par des utilisateurs ayant une habilitation supérieure ou égale à la classification des données.

Le modèle BIBA est la reformulation du modèle BLP appliqué à garantir l’intégrité des données. Pour cela le modèle réutilise les notions de classification et d’habilitation, mais les règles changent. L’utilisateur ne peut qu’écrire des données dont la classification est inférieure ou égale à son habilitation. Enfin, les données ne peuvent être lues que par des utilisateurs ayant une habilitation inférieure ou égale à la classification des données.

Le modèle de Brewer & Nash ou “Muraille de chine” a été conçu afin de résoudre les conflits d’intérêts dans les sociétés de services. Les sujets sont répartis par domaine d’activité et les données par classe d’intérêt. Les interdictions dépendent alors du domaine d’activité et de la durée du secret commercial.

Le modèle R-BAC (Role-Based Access Control) est un modèle où les droits d’accès sont attribués aux personnes en fonction de leurs tâches. Il repose sur la notion de rôles actifs, couramment utilisés par le sujet, la notion de rôles autorisés, que le sujet peut assumer au cours de ses activités, ainsi que la liste des transactions autorisées pour les différents rôles. Il a pour avantage de séparer l’identité du sujet et ses droits d’accès.

Le modèle OR-BAC (ORganization-Based Access Control) est un modèle basé sur la notion d’organisation (ensemble de sujets actifs) et de contexte. Les sujets peuvent être des utilisateurs ou une organisation. Les rôles sont les liens entre les sujets et les organisations. Le domaine d’activité permet d’ajouter des actions disponibles, et les objets manipulés proposent différentes vues.

Tous les modèles décrits précédemment se basent sur la matrice des droits d’accès. Si la majorité des sujets ont des droits sur une minorité d’objets gérés par le système, la matrice est appelée matrice creuse.

Les listes de contrôle d’accès (ex : ACL Cisco) permettent une politique très statique associée à chaque ressource qui doit posséder la liste de tous les sujets et de leurs droits. Elles impliquent une forte consommation d’espace mémoire pour le stockage et une sollicitation importante pour les calculs.

Les capacités (ex : certificats X.509) permettent de stocker sur la station du client, ses autorisations disponibles pour une ressource. Elles permettent une gestion plus souple et plus dynamique que les listes de contrôle d’accès.

Pour conclure, étudions 2 modes d’attaque : les virus et les chevaux de Troie (trojans) :

  • Les virus mettent à mal l’intégrité de la station de la victime
  • Les trojans rompent la chaîne de confidentialité des données stockée par la victime

Appliquons ces attaques aux modèles BLP et BIBA :

  • Le modèle BLP garantit la confidentialité mais pas l’intégrité, il est donc vulnérable aux virus
  • Le modèle BIBA garantit l’intégrité mais pas la confidentialité, il est donc vulnérable aux trojans

NB : cet article a été réalisé à l’aide de mes notes de cours ( Modèles de sécurité de Abdallah M’Hamed) et divers sources Internet (Wikipédia, …).

VPNs & Sécurité réseau

Dimanche 14 décembre 2008

Définition d’un VPN

Un VPN (Virtual Private Network) est un réseau de données qui utilise l’infrastructure publique tout en maintenant le caractère privé des données. Pour cela, il fait appel à des procédures de sécurité ainsi que des protocoles permettant d’établir des tunnels.

Internet et ses risques

L’ensemble des risques auxquels vous pouvez être exposés lors d’une connexion Internet se classifie comme suit :

  • L’interception d’identité
  • La mascarade ou l’usurpation d’identité (Prétendre être quelqu’un d’autre)
  • Le rejeu (Reproduire une procédure de Login)
  • L’interception de données ou de trafic
  • La manipulation (Modifier ou supprimer des informations d’une transmission)
  • La répudiation (La victime ne peut plus émettre ou recevoir)
  • Le dénis de service
  • Le routage (Manipulation des tables de routage / corruption DNS)

Les 4 fonctions critiques d’un VPN

L’authentification

Pas d’interception d’identité

Garantit l’identité de la source des paquets

La confidentialité

Empêche quiconque de lire ou copier les données

Le contrôle d’accès

Seuls les utilisateurs autorisés peuvent accéder au réseau

L’intégrité

Impossibilité de modifier les données en transit

Mécanismes d’authentification

Il en existe deux types :

  • L’authentification logicielle (système à mot de passe ou challenge)
    ex : CHAP, PAP, Radius
  • L’authentification matérielle (par jeton ou par certificat)
    ex : EAP, certificats X.509

PAP - Password Authentification Protocol est un protocole peu sûre du fait que le client émet son mot de passe en clair au NAS. Seul le NAS encrypte le password (Crypatge symétrique : DES 40 bits) avant de le transmettre au serveur Radius.

CHAP - Challenge Handshake Authentification Protocol plus sécurisé que CHAP dans le sens qu’aucun mot de passe ne transit en clair sur le réseau.  Le serveur Radius transmet un challenge au client via le NAS : à partir d’un numéro d’identifiant, d’un nombre aléatoire tiré par le serveur, le client est-il capable de donner le condensé (Hash MD5 128 bits) = numéro d’identifiant + nombre aléatoire + password.

EAP - Extensible Authentification Protocol est une extension du  Protocole Point-to-Point (PPP) se chargeant de l’authentification et supportant plusieurs mécanismes d’authentification. EAP supporte notamment les challenges MD5 (CHAP), les mots de passe à usage unique, les cartes à jeton générique, …

ITU-T X.509 standard - Il s’agit du standard définissant le format des certificats. Ils sont généralement délivrés par une tierce partie : l’Autorité de Certification (CA) qui garantit l’origine des clés publiques. Un certificat contient entre autre :

  • Un numéro de version
  • Un numéro de série
  • Un propriétaire
  • Une clé publique
  • Le nom de l’algorithme utilisé
  • Les dates de validité
  • La signature de la CA
  • Des options (liste de révocations, …)

Les tunnels

Ils permettent l’authentification des correspondants, le contrôle d’accès et la confidentialité des échanges. Plusieurs protocoles cohabitent : GRE, PPTP, L2F, L2TP, MPLS VPNs, …

GRE (IETF, 1994) - Generic Routing Encapsulation est un protocole de niveau 3 (cf. modèle OSI) qui permet d’établir des tunnels IP sur de l’IP. Son usage est destiné aux communications entre 2 routeurs (noeuds). L’encryptage et l’authentification ne sont pas très évolués.

PPTP (Microsoft, 1996) - Point-to-Point Tunneling Protocol est un protocole de niveau 2 (cf. modèle OSI) qui utilise les méthodes d’authentification de PPP (ex : PAP, CHAP). Il permet d’établir des tunnels de paquets PPP à travers un réseau IP (requiert IP) par le biais d’une version modifiée du protocole GRE. Il doit son expansion aux systèmes d’exploitation de Microsoft qui incluent nativement PPTP dès Windows NT. L’encryptage est réalisée via l’algorithme RSA RC4 avec des clés de 40 bits (Cryptage asymétrique). Il est souvent utilisé dans les communications en les PCs clients et le LAN.

L2F (Cisco, 1996) - Layer 2 Fowarding Protocol est un protocole de niveau 2 (cf. modèle OSI) qui permet de créer des tunnels de type LAN to LAN. Ce protocole n’est pas dépendant d’IP et fonctionne avec ATM, … L’authentification utilise les méthodes PPP (ex : PAP, CHAP) avec un serveur Radius. Il y a 2 niveau d’authentification : celle du routeur puis celle du client. Attention : pas d’encryptage des données !

L2TP (IETF, 1998) - Layer 2 Tunneling Protocol est un protocole de niveau 2 (cf. modèle OSI) qui permet de créer des tunnels de type LAN to LAN. Il résulte de la combinaison des protocoles PPTP & L2F. Il réutilise les mécanismes de PPP (ex : PAP, CHAP, EAP) avec serveur Radius. L’établissement du tunnel est basé sur L2F et l’encryptage des données réutilise les méthodes d’IPSec.

MPLS VPNs - Multi Protocol Layer Switching VPNs sont des tunnels de niveau 2 ou 3 (cf. modèle OSI). En général, on les retrouve entre 2 sites distants à travers Internet, ou encore dans les grosses entreprises qui souhaitent mettre en place des VPNs.

Encryptage des données

Il existe plusieurs moyens de crypter les données :

  • Un valeur aléatoire, une clé, …
  • L’algorithme de condensation (Hash Algorithm) qui permet de vérifier l’intégrité des documents : MD5, SHA-1, …
  • Le cryptage asymétrique (Système à clé publique) qui permet de signer les documents : Diffie-Helllman (DH), Rivest Shamir & Aldeman (RSA), Pretty Good Privacy (PGP), …
  • Le cryptage symétrique (Système à clé privée) qui permet d’encrypter les données échangées : DES, 3DES, IDEA, AES, RC2, RC4, …

Les mécanismes associés sont :

  • SSL - Secure Socket Layer : utilisé dans les transactions sur le Web
  • TLS - Transport Layer Security : utilisé dans les transactions sur le Web
  • S/MIME - Secure/Multipurpose Internet Mail Extensions : utilisé pour sécuriser les échanges de mails entre serveurs
  • PGP - Pretty Good Privacy : utilisé pour sécuriser les échanges de mails entre utilisateurs
  • IPSec - Secure IP : utilisé à l’origine pour sécuriser les échanges entre LANs, il évolue vers une utilisation sur PCs et terminaux mobiles

Filtrage et Pare-Feu

Un pare-feu peut être considéré comme un ensemble de programmes, localisés au niveau de la passerelle réseau, protégeant les ressources d’un réseau privé, des utilisateurs externes au réseau. Il existe 2 types de pare-feu :

  • Stateless Packet Filter (ex : ACL Cisco) : chaque paquet est comparé à une règle d’acceptation ou de refus. Ce type de pare-feu est disponible dans de nombreux routeurs.
  • Statefull inspection (ex : Checkpoint Firewalls) : on applique les règles de filtrage de manière plus intelligente : reconnaissance d’un flux IP appartenant à un service.

Quelques principes fondamentaux :

  • Tous les flux entrants doivent être inspectés par le pare-feu
  • En cas de panne, il doit toujours rester un routeur avec un filtrage de paquet actif
  • Tout traffic non explicitement autorisé est interdit

NB : cet article a été réalisé à l’aide de mes notes de cours ( VPN and Network Security de Sophie Gastellier-Prevost) et divers sources Internet (RFCs, …).