Chapitre 6 Sécurité dans Windows NT

IFT-6271

115

Sécurité sous Windows NT
• Gestion de connexions réseaux • Conformité au standard POSIX • Certificat de classe C2 (livre Orange) accordé à la version 3.51, pour une configuration sans réseau • La sécurité sous Windows NT est plus orientée vers les sujets que pour un système comme Unix.
Spécifique Complexe Emphase sur les usagers Générique Simple Emphase sur les données

Orienté-personne
IFT-6271

Orienté-machine
116

Architecture de la sécurité
• Mode usager (anneau 3) versus mode noyau (anneau 0):
– Les services de base, incluant l'exécutif Windows NT, exécute en mode noyau. – Un programme usager appelle une fonction de l'API pour invoquer un service du SE. – Les transferts de contexte et les transitions du niveau 3 au niveau 0 sont pris en charge par le service d'appel de procédure locale.

• Le concept de verrou est fondamental.
– Lorsqu'un usager verrouille de façon exclusive un objet, aucun autre usager ne peut y accéder.

• Données du SE emmagasinées dans un format propriétaire.
– Requiert des programme intermédiaires pour y accéder

• La conception de Windows NT est orientée-objet.
– Contrairement à Unix où toutes les ressources sont des fichiers – Spécialement en ce qui a trait au contrôle d'accès.
IFT-6271 117

Security Account Manager – Entretient la base de données des comptes usager – Authentifie l'usager pour le compte du LSA • Processus de "login" (usager) – En anglais. Local Security Authority – Vérifier le compte de l'usager lors du "login" et crée pour lui un jeton d'accès au système (SAT en anglais) – Aussi responsable des fonctions d'audit • Gestionnaire de sécurité des comptes (usager) – En anglais.Sous-système de sécurité • Arbitre de référence de sécurité (noyau) – En anglais. Login Process – Supervise l'authentification d'un usager IFT-6271 118 . Security Reference Monitor – En charge du contrôle d'accès • Autorité locale de sécurité (usager) – En anglais.

– Une clé peut contenir 0. donnée).x • Organisé en structure hiérarchique – Une valeur est formée d'une paire (nom.Base de registre • Base de données centrale pour les données de configuration – Remplace la multitude de fichiers INI sous Windows 3. 1 ou plusieurs valeurs. • • • • • • HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA • Chaque ruche possède un journal d'audit qui enregistre les modifications aux clés et valeurs dans la ruche. – La racine ne contient que des clés et ces clés sont appelées ruches. IFT-6271 119 .

IFT-6271 120 . la première chose à faire est d'effacer ce programme. un usager astucieux peut concevoir son propre outil pour éditer le contenu de la base de registre.exe = Éditeur de la base de registre – Impose un contrôle sur l'accès aux clés et valeurs. – Cependant. – Sinon. le système risque de ne plus démarrer! – Un adversaire pourrait modifier une valeur qui lui donnerait des droits d'accès non autorisés (ex: chemin de recherche). contournant aussi le contrôle d'accès imposé par regedit.Base de registre (2) • L'intégrité de la base de registre doit être protégée.exe. – Si on veut interdire l'accès à la base de registre aux usagers. • Seuls les outils du système peuvent y accéder: – regedit.

selon une liste IFT-6271 121 . Système. Utilisateurs. Créateur/Propriétaire.Base de registre (3) • 2 niveaux de protection – Contrôle d'accès via l'éditeur REGEDIT – Contrôle d'accès sur les fichiers • SYSTEM. Tous.DAT Ruches partagées par tous les usagers Ruche de l'usager • Permissions définies dans REGEDIT – Utilisent les groupes prédéfinis tels que Administrateurs.DAT • USER. – Les permissions possibles: • Lecture seulement • Accès libre • Accès spécial.

Base de registre (4) • Une liste typique d'accès spécial pourrait inclure: – – – – – – – – – – Consulter une valeur Modifier une valeur Créer une sous-clé Énumérer les clés Notification d'audit Créer un lien symbolique sur une clé Détruire une clé Modifier la liste de contrôle accès d'une clé Devenir propriétaire Lire les informations de sécurité d'une clé IFT-6271 122 .

Système. Usagers: Accès libre IFT-6271 123 .Base de registre (5) • Permissions recommandées pour chaque ruches: – HKEY_LOCAL_MACHINE • Information sur l'ordinateur. le matériel et le SE • Administrateurs. Système: Accès libre • Tous: Lecture – HKEY_CURRENT_USER • Profil de l'usager courant • Administrateurs. Usagers: Accès libre – HKEY_USERS • Profil de tous les usagers installés sur le système • Administrateurs. Système. définitions de classe OLE et DDE • Administrateurs. Système: Accès libre • Tous: Lecture – HKEY_CLASSES_ROOT • Association de fichiers.

Lire les informations de sécurité) IFT-6271 124 .Base de registre (6) • De plus. Système. Énumérer les clés. la ruche HKEY_LOCAL_MACHINE contient des sous-clés en rapport avec la sécurité: – HKEY_LOCAL_MACHINE\SAM • Base de données des comptes et des groupes – HKEY_LOCAL_MACHINE\Secure • Information sur la politique de sécurité locale – HKEY_LOCAL_MACHINE\Software\Microsoft\RPC • Appel de procédure distante – HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\ CurrentVersion • Permissions recommandées pour ces clés – Administrateurs. Notifications. Créateur/Propriétaire: Accès libre – Tous: Spécial (Consulter une valeur.

un adversaire peut modifier le comportement du système d'exploitation: – En faisant exécuter un programme pirate à la place d'une composante du système (ex: DLL) – En faisant pointer une référence vers un fichier de sécurité vers un autre fichier (ex: SAM) – En désactivant certains protections • Qu'arrive-t-il si une clé n'existe pas? – Par exemple. – Si elle n'existe pas. elle sera consultée pour arbitrer l'accès distant. la clé suivante permet aux usagers et groupes réseaux d'accéder à la base de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurePipeServers\Winreg – Si elle existe. l'accès distant sera considéré comme local.Base de registre (7) • En modifiant un de ces clés. IFT-6271 125 .

lettres majuscules. • Ils ne doivent pas contenir une partie du nom de l'usager. – Il y a en fait 2 mots de passe pour chaque usager: • Un pour Windows NT • Un pour le gestionnaire de réseau local – Les mots de passe sont conservés chiffrées dans le SAM. IFT-6271 126 . Windows NT utilise un nom d'usager et un mot de passe. – Un filtre peut être appliqué sur le choix des mots de passe par les usagers. • Ils doivent contenir 3 des 4 types de caractères: lettres minuscules. ponctuation. chiffres. Le filtre fourni par défaut impose les restrictions suivantes: • Les mots de passe doivent contenir au moins 6 caractères.Identification et authentification • Pour authentifier un usager.

Login • La fenêtre de "login" est invoquée par la séquence d'attention sécurisée CTRL+ALT+DEL. • Dans la fenêtre de "login". – Cette séquence génère un appel aux routines de bas niveau de Windows NT qui ne peuvent être répliquées par un programme d'usager. IFT-6271 127 . pour déjouer les attaques de mascarade. l'usager est invité à taper son nom d'usager et son mot de passe. – On devrait toujours taper CTRL+ALT+DEL pour s'authentifier à l'ordinateur. il est possible de construire un programme DOS qui simule cette fenêtre. – Cependant.

– Le SAT est ensuite attaché au processus de "login" démarré par le sous-système Win32. Ce processus sera le sujet pour toute requête d'accès. – Le LSA appelle ensuite un service d'authentification. IFT-6271 128 . – S'il y a correspondance. – Le service d'authentification crée une session de "login" et remet cette session et les SID au LSA. contenant les SID et les droits d'accès de l'usager. qui compare le nom et le mot de passe avec les valeurs contenues dans la SAM. – Le LSA crée un jeton d'accès au système (SAT). l'identificateur de sécurité de l'usager (en anglais SID) et de chaque groupe auquel il fait partie est retourné par la SAM.Login (2) • Que se passe-t-il ensuite? – Le nom d'usager et le mot de passe est transmis à l'autorité locale de sécurité (LSA).

partageant les mots de passe avec un système Unix. – PWDump est un programme utilisé sur les systèmes à login unique.Login (3) • Si l'authentification locale échoue. alors l'usager recevra un message d'erreur. – Ne permet pas d'obtenir les mots de passe déchiffrés!!! IFT-6271 129 . – Si toutes les tentatives d'authentification échouent. • Login interactif = service d'authentification local • Login réseau = protocole d'authentification réseau • Il est possible de contourner l'API du SAM et de lire directement les mots de passe chiffrés. – Une requête sera envoyée sur le réseau pour un service d'authentification alternatif.

• Un domaine est une collection de stations de travail qui partagent une base de données de comptes d'usager et une politique de sécurité communes. – La base de données des comptes d'usager est contenu dans un serveur NT appelé contrôleur primaire de domaine. il faudrait dupliquer chaque compte d'usager sur chaque station. on devra distinguer un usager local d'un usager global. un usager = un compte. on le définit une fois dans un domaine. – Plutôt que de définir un compte sur chaque machine. – Une station peut maintenir une base de données d'usagers locale et faire partie d'un domaine. Dans ce cas.Domaines • Sur une station de travail NT. IFT-6271 130 . – Une copie est maintenue dans un contrôleur de relève. – Si on a plusieurs stations.

Il contient les éléments suivants: – – – – – – – – – Nom d'usager Nom complet de l'usager (nom et prénom) Mots de passe + politiques Heures permises de "login" et travail Profil d'usager (groupes.Comptes d'usager • Un compte d'usager est gérée grâce à un outil dédié. etc. couleurs d'écran.) Script de "login" Répertoire de départ Type de compte (global versus local) Date d'expiration IFT-6271 131 . connexions.

– De plus.Identificateurs de sécurité • Chaque compte d'usager. ce qui fait qu'un compte effacé.. • Ce SID est alloué lors de la création du compte est reste fixé pour toute la durée de vie du compte.. • Quand un domaine est créé. – Il est généré de façon pseudo-aléatoire. puis recréé n'obtiendra pas le même SID et n'aura pas les mêmes droits. chaque machine qui se joint au domaine reçoit un SID dérivé du SID du domaine. – Ceci rend problématique les déplacements d'une machine d'un domaine vers un autre. de groupe et de machine possède un identificateur de sécurité (SID) unique qui sert à arbitrer les requêtes d'accès. un SID est aussi créé. IFT-6271 132 .

Accès aux objets • Le contrôle d'accès discrétionnaire sur un objet dépend du type de l'objet. – Ex: Un fichier n'aura pas les mêmes droits qu'une queue d'impression. • L'accès aux objets est contrôlé par des permissions accordés aux sujets. • Chaque objet contient un descripteur de sécurité: – – – – Le SID du propriétaire de l'objet Le SID du groupe (seulement utilisé par le sous-système POSIX) La liste de contrôle d'accès (ACL) La liste de contrôle d'accès système (SACL). IFT-6271 133 . contrôlant les message d'audit qui devront être générés.

Contenu d'un ACL • Une entrée de liste de contrôle d'accès (ACE) pour un sujet ou un groupe peut être: – Accès Interdit : Consulté en premier – Accès Accordé : Contient une liste de permissions – Audit Système : Contient une liste d'actions à journaliser • Il existe des permissions communes à tous les objets: – Write_DAC – Read_Control – Delete Modifier les "Accès Interdit" et "Accès Accordé" Accorder/refuser la lecture du descripteur de sécurité Accorder/refuser/détruire les permissions sur un objet IFT-6271 134 .

alors l'accès est accordé automatiquement. l'accès est accordé. alors l'accès est accordé. l'accès à l'objet est refusé.Arbitrage de l'accès • Le type d'opération. l'accès est refusé. • Sinon. le SAT du sujet et l'ACL de l'objet sont utilisés pour arbitrer toute requête d'accès. – Si une combinaison d'ACE spécifiant un Accès Accordé couvrant chacune le SID du sujet remplit toutes les permissions du masque d'accès désiré. • Si le masque d'accès désiré contient Read_Control ou Write_DAC et le sujet est le propriétaire de l'objet. – Donc. un ACL vide interdit l'accès à tous. IFT-6271 135 . alors qu'un ACL absent accorde l'accès à tous. – Un masque d'accès désiré est construit en fonction de l'opération. – Sinon. – S'il n'y a pas d'ACL. – Si le SID du sujet est couvert par une des ACE spécifiant un Accès Interdit.

– L'usager local duconj fait partie des groupes suivants: • Tous (comme tous les usagers) • Interactif (comme tous les usagers locaux) • Développeurs (un nouveau groupe) – Si le fichier projet. même s'il faisait partie des groupes Interactif ou Développeurs. pasrapport • Accès Accordé: – Interactif: Lecture seulement – Développeurs: Écriture seulement – On peut conclure que: • duconj peut lire et écrire dans projet.c a l'ACL suivant: • Accès Interdit: Comptables. IFT-6271 136 .c.c. • Tout autre usager local peut lire seulement projet.Arbitrage de l'accès • Voici un exemple. • pasrapport ne pourrait accéder à l'objet.

Système de fichiers NTFS • Les permissions de base sont: – – – – – – – – – – – lecture (R) écriture (W) exécution (X) destruction (D) modification des permissions d'accès (P) devenir propriétaire (O) Aucun accès Lecture (RX) Modification (RWXD) Accès complet (toutes les permissions de base) Accès spécial (toute combinaison des permissions de base) IFT-6271 137 • Les permissions pour les fichiers sont: .

Système de fichiers NTFS (2) • Les permissions pour les répertoires sont: – – – – – – – – Aucun accès Énumération (RX) Lecture (RX) Ajout (WX) Ajout et Lecture (RWX) Modification (RWXD) Accès complet (toutes les permissions de base) Accès spécial aux répertoires (toute combinaison des permissions de base) – Accès spécial aux fichiers (toute combinaison des permissions de base) IFT-6271 138 .

• Les évènements susceptibles d'être audités sont ceux qui sont décrits par les permissions de base. • Si un nouveau fichier est créé. donc n'a pas besoin d'avoir le droit d'effacer pour ce fichier. ou s'il est copié d'un autre répertoire. IFT-6271 139 . il conserve ses permissions. il hérite des permissions du répertoire de destination. • Un usager ayant la permission d'effacer pour un répertoire peut effacer n'importe quel fichier dans ce répertoire.Système de fichiers NTFS (3) • Si un fichier est déplacé d'un répertoire à un répertoire. L'administrateur peut choisir les évènements qui seront audités.

• Les membres d'un groupe hérite de toutes les permissions accordées à ce groupe.Groupes d'usagers • Un groupe est une collection de comptes d'usager. – Cependant. – Un groupe global ne peut contenir que des usagers. • Les groupes globaux sont définis au niveau du domaine. il est possible de retrancher des permissions à un ou plusieurs membres d'un groupe. IFT-6271 140 . alors que les groupes locaux sont définis sur la station de travail seulement. alors qu'un groupe local peut inclure des groupes globaux. – Ceci offre un contrôle à 2 niveaux sur l'accès à des ressources locales (ex: imprimante).

Groupes d'usagers (2) • Voici un exemple de structure de groupes d'usagers: Éléphant Loup Phoques Bob Pingouins Lion Alice Adélie Humboldt Magellan Groupes globaux Aucun accès Nord RWXD RW X RWX Sud RW Aucun accès Groupes locaux IFT-6271 141 .

les droits d'un usager ne contrôle pas l'accès aux objets.Droits des usagers • Contrairement aux permissions. • Ils spécifient plutôt ce qu'un usager a le droit de faire au système d'exploitation. Par exemple: – – – – – – – – Faire des back-up et les restaurer Devenir propriétaire Contourner la vérification du chemin Changer l'heure du système Forcer une fermeture du système Augmenter les priorités des processus Charger/décharger un pilote de périphérique Gérer les journaux d'audit IFT-6271 142 .

Groupes prédéfinis • Les groupes globaux suivants sont prédéfinis: – Administrateurs du Domaine – Usagers du Domaine – Invités du Domaine • Les groupes locaux suivants sont prédéfinis: – – – – – – – – Administrateurs Usagers Usagers Avertis (Power Users) Invités Opérateurs de Back-up Opérateurs de Serveur Opérateurs de Comptes Opérateurs d'Imprimantes IFT-6271 143 .

(ex: Opérateurs de Back-up) – Un administrateur du système devrait être membre du groupe Administrateurs du Domaine. – Certains groupes prédéfinis ont des droits qui leur permettent de contourner les permissions. IFT-6271 144 . donnant accès libre. et ce groupe devrait être membre du groupe Administrateurs (locaux).Groupes prédéfinis (2) • Certains groupes spéciaux sont prédéfinis: – – – – – Tous Interactif (Usagers connectés localement) Réseau (Usagers connectés via le réseau) Système (Système d'exploitation) Créateur/Propriétaire • Quelques notes – Les membres du groupe Administrateurs n'ont pas automatiquement le privilège du super-usager.

il y a: – un domaine de confiance – un domaine faisant confiance • Propriétés d'une telle relation de confiance – Les comptes d'usager définis dans le domaine de confiance deviennent valides sur le domaine faisant confiance. il devient utile d'ajouter des niveaux intermédiaires de contrôle. – Non réflexive (A ~ B n'implique pas que B ~ A) – Non transitive (A ~ B et B ~ C n'implique pas que A ~ C) IFT-6271 145 .Relations de confiance • Dans une grande organisation. – Séparation des usagers et des ressources en plusieurs domaines – Comment faire communiquer les domaines entre eux? • Dans une relation unidirectionnelle de confiance.

– Le mot de passe est transmis à l'administrateur du domaine B. mais le message d'erreur indiquera au LSA que ce compte existe. IFT-6271 146 . – La LSA du domaine B essaie alors de se connecter sur le domaine A utilisant le compte inter-domaine. – Le mot de passe partagé entre A et B est maintenu mis à jour régulièrement par le PDC de B. contenant le nom et le SID du domaine A. spécifiant le nom du domaine B et un mot de passe qu'il choisit. – La LSA du domaine B crée un objet de domaine de confiance.Relations de confiance (2) • Comment établir une relation de confiance A ~ B? – L'administrateur de A crée un compte de confiance inter-domaine. Cet essai échouera. – La LSA du domaine B extrait l'information sur les contrôleurs du domaine A pour pouvoir traiter les requêtes d'accès venant de A. et un objet secret contenant le mot de passe reçu précédemment. Ce mot de passe sera utilisé pour protéger les communications lors de l'authentification d'usagers.

Relations de confiance (3) • Voici un exemple: EMPLOYÉS IMPRIMANTES IMPRIMANTES EMPLOYÉS "SID" Mot de passe Imprimantes couleurs duconj zazouc bunnyb Graphistes comptable récep Gestionnaires Imprimantes noir et blanc IFT-6271 147 .

Profils obligatoires • Le profil d'un usager définit son environnement de travail. en particulier les programmes qu'il peut exécuter. • L'administrateur peut imposer des restrictions sur la capacité de l'usager à modifier son environnement: – – – – – – – EditLevel (capacité de modifier les raccourcis et groupes) NoClose NoFileMenu NoRun NoSaveSettings Restrictions ShowCommonGroups IFT-6271 148 .

impliquant une gestion manuelle • Pour les 2 dernières options. ajoutant cette valeur dans la base de registre (requis pour niveau C2): HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa Name: CrashOnAuditFail Type: REG_DWORD Value: 1 IFT-6271 149 . Windows NT nous offre 3 options: – Effacement des entrées les plus vieilles – Effacement des entrées plus vieilles que [] jours – Pas d'effacement automatique. il est possible de forcer l'arrêt du système lors que le journal est plein.Audit • Windows NT conserve un journal d'audit dont les entrées sont générés par l'arbitre de référence. • Lorsque le journal d'audit atteint sa taille maximale.

c'est-à-dire le répertoire courant au moment de l'appel du programme • Les 2 premiers endroits peuvent être protégés des modifications non autorisés. – Le code exécutable du DLL s'exécute avec les droits du programme appelant. il peut le chercher: – dans le répertoire où se trouve le programme – dans le répertoire du système (C:\WINNT\SYSTEM32) – dans le répertoire de travail. si le DLL est pris du répertoire de travail. IFT-6271 150 .Sécurité des DLL • Les librairies liées dynamiques (DLL) sont des modules liés à des programmes au moment de leur exécution. – Cependant. • Lorsqu'un programme requiert un DLL. en faisant une excellente plate-forme pour les Chevaux de Troie. il pourrait être remplacé par un autre DLL se déguisant comme lui.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.