Partager via


SDDL pour les objets d’appareil

Le langage de définition du descripteur de sécurité (SDDL) est utilisé pour représenter les descripteurs de sécurité. La sécurité des objets d’appareil peut être spécifiée par une chaîne SDDL placée dans un fichier INF ou transmise à IoCreateDeviceSecure. Le langage de définition du descripteur de sécurité est entièrement documenté dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows.

Bien que les fichiers INF prennent en charge la plage complète de SDDL, seul un sous-ensemble du langage est pris en charge par la routine IoCreateDeviceSecure . Ce sous-ensemble est défini ici.

Les chaînes SDDL pour les objets d’appareil sont de la forme « D :P » suivie d’une ou plusieurs expressions du formulaire « (A ; ; ; Accès ;;; ; SID)". La valeur SID spécifie un identificateur de sécurité qui détermine à qui la valeur Access s’applique (par exemple, un utilisateur ou un groupe). La valeur Access spécifie les droits d’accès autorisés pour le SID. Les valeurs Access et SID sont les suivantes.

Lorsque vous utilisez SDDL pour les objets de périphérique, votre pilote doit être lié à Wdmsec.lib.

Accès
Spécifie une valeur ACCESS_MASK qui détermine l’accès autorisé. Cette valeur peut être écrite sous forme hexadécimale sous la forme « 0xhex » ou sous la forme d’une séquence de codes symboliques à deux lettres qui représentent les droits d’accès.

Les codes suivants peuvent être utilisés pour spécifier des droits d’accès génériques.

Code Droit d’accès générique

Assemblée générale

GÉNÉRIQUE_TOUT

GR

GENERIC_READ

Gigawatt

ÉCRITURE_GÉNÉRIQUE

GX

EXECUTION_GÉNÉRIQUE

Les codes suivants peuvent être utilisés pour spécifier des droits d’accès spécifiques.

Code Droit d’accès spécifique

Responsable Vente et Relations

READ_CONTROL

SD

Supprimer

Naine blanche

WRITE_DAC

WO

ÉCRIRE_PROPRIÉTAIRE

GENERIC_ALL accorde tous les droits répertoriés dans les deux tables ci-dessus, notamment la possibilité de modifier la liste de contrôle d’accès.

SID
Spécifie le SID qui reçoit l’accès spécifié. Les SID représentent des comptes, des alias, des groupes, des utilisateurs ou des ordinateurs.

Les SID suivants représentent des comptes sur l’ordinateur.

SID Descriptif

SY

Système

Représente le système d’exploitation lui-même, y compris ses composants en mode utilisateur.

LS

Service local

Un compte prédéfini pour les services locaux (qui appartient également à Authenticated and World). Ce SID est disponible à partir de Windows XP.

NS

Service réseau

Un compte prédéfini pour les services réseau (qui appartient également à Authenticated and World). Ce SID est disponible à partir de Windows XP.

Les SID suivants représentent des groupes sur l’ordinateur.

SID Descriptif

BA

Administrateurs

Groupe Administrateurs intégré sur l’ordinateur.

BU

Groupe d’utilisateurs intégré

Groupe couvrant tous les comptes d’utilisateurs locaux et les utilisateurs sur le domaine.

BG

Groupe invité intégré

Groupe couvrant les utilisateurs qui se connectent à l’aide du compte invité local ou de domaine.

Les SID suivants décrivent la mesure dans laquelle un utilisateur a été authentifié.

SID Descriptif

UA

Utilisateurs authentifiés

Tout utilisateur reconnu par l’ordinateur local ou par un domaine. Les utilisateurs connectés à l’aide du compte Invité Builtin ne sont pas authentifiés. Toutefois, les membres du groupe Invités avec des comptes individuels sur l’ordinateur ou le domaine sont authentifiés.

UN

Utilisateur connecté anonyme

Tout utilisateur connecté sans identité, par exemple une session réseau anonyme. Les utilisateurs qui se connectent à l’aide du compte Invité Builtin ne sont pas authentifiés ou anonymes. Ce SID est disponible à partir de Windows XP.

Les SID suivants décrivent comment l’utilisateur s’est connecté à l’ordinateur.

SID Descriptif

IU

Utilisateurs interactifs

Les utilisateurs qui se connectaient initialement à l’ordinateur « de manière interactive », tels que les connexions locales et les connexions Bureau à distance.

Nunavut

Utilisateur d’ouverture de session réseau

Les utilisateurs accédant à la machine à distance, sans accès interactif au bureau (par exemple, le partage de fichiers ou les appels RPC).

Naine blanche

Monde

Avant Windows XP, ce SID a couvert chaque session, qu’il s’agisse d’utilisateurs authentifiés, d’utilisateurs anonymes ou du compte invité intégré.

À compter de Windows XP, ce SID ne couvre pas les sessions d’ouverture de session anonymes ; il couvre uniquement les utilisateurs authentifiés et le compte d’invité Builtin.

Le code non approuvé ou « restreint » n’est pas non plus couvert par le SID mondial. Pour plus d’informations, consultez la description du SID du code restreint (RC) dans le tableau suivant.

Les SID suivants méritent une mention spéciale.

SID Descriptif

Responsable Vente et Relations

Code restreint

Ce SID est utilisé pour contrôler l’accès par du code non approuvé. La validation du contrôle d'accès par rapport aux tokens avec RC se compose de deux vérifications, l'une par rapport à la liste normale des SID (contenant WD par exemple) et l'autre par rapport à une deuxième liste (généralement contenant RC et un sous-ensemble des SID du jeton d'origine). L’accès est accordé uniquement si un jeton réussit les deux tests. Par conséquent, RC fonctionne en combinaison avec d’autres SID.

Toute liste de contrôle d’accès qui spécifie RC doit également spécifier WD. Lorsque RC est associé à WD dans une liste de contrôle d’accès, un super-ensemble de tout le monde, y compris le code non approuvé, est décrit.

Le code non approuvé pourrait être lancé à l'aide de l'option "Exécuter en tant que" dans l'Explorateur. Par défaut, World ne couvre pas le code non approuvé.

UD

pilotes User-Mode

Ce SID accorde l’accès aux pilotes en mode utilisateur. Actuellement, ce SID couvre uniquement les pilotes écrits pour l’infrastructure de pilotes User-Mode (UMDF). Ce SID est disponible à partir de Windows 8.

Dans les versions antérieures de Windows, qui ne reconnaissent pas l’abréviation « UD », vous devez spécifier la forme complète de ce SID (S-1-5-84-0-0-0-0-0-0) pour accorder l’accès aux pilotes UMDF. Pour plus d’informations, consultez Contrôle de l’accès aux appareils dans la documentation User-Mode Driver Framework.

Exemples SDDL pour les objets d’appareil

Cette section décrit les chaînes SDDL prédéfinies trouvées dans Wdmsec.h. Vous pouvez également les utiliser en tant que modèles pour définir de nouvelles chaînes SDDL pour les objets d’appareil.

SDDL_DEVOBJ_KERNEL_ONLY

« D :P »

SDDL_DEVOBJ_KERNEL_ONLY est une liste de contrôle d'accès qui est 'vide'. Le code en mode utilisateur (y compris les processus s’exécutant en tant que système) ne peut pas ouvrir l’appareil.

Un pilote de bus PnP peut utiliser ce descripteur lors de la création d’un PDO. Le fichier INF peut ensuite spécifier des paramètres de sécurité plus libres pour l’appareil. En spécifiant ce descripteur, le conducteur de bus s’assurerait qu’aucune tentative d’ouvrir le dispositif avant que l’INF ne soit traité ne réussirait.

De même, un pilote non-WDM peut utiliser ce descripteur pour rendre ses objets d’appareil inaccessibles tant que le programme en mode utilisateur approprié (tel qu’un programme d’installation) définit le descripteur de sécurité final dans le Registre.

Dans tous ces cas, la sécurité par défaut est serrée, relâchée si nécessaire.

SDDL_DEVOBJ_SYS_ALL

"D:P(A;;GA;;;SY)"

SDDL_DEVOBJ_SYS_ALL est similaire à SDDL_DEVOBJ_KERNEL_ONLY, sauf qu’en plus du code en mode noyau, le code en mode utilisateur exécuté en tant que système est également autorisé à ouvrir l’appareil pour tout accès.

Un pilote hérité peut utiliser cette liste de contrôle d’accès pour commencer par des paramètres de sécurité serrés et laisser son service ouvrir l’appareil au moment de l’exécution à des utilisateurs individuels à l’aide de la fonction en mode utilisateur SetFileSecurity . Dans ce cas, le service doit être en cours d’exécution en tant que système.

SDDL_DEVOBJ_SYS_ALL_ADM_ALL

"D:P(A;;GA;;;SY)(A;;GA;;;BA)"

SDDL_DEVOBJ_SYS_ALL_ADM_ALL autorise le noyau, le système et l’administrateur à contrôler complètement l’appareil. Aucun autre utilisateur ne peut accéder à l’appareil.

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R

"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)"

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R permet au noyau et au système de contrôler complètement l’appareil. Par défaut, l’administrateur peut accéder à l’ensemble de l’appareil, mais ne peut pas modifier la liste de contrôle d’accès (l’administrateur doit d’abord prendre le contrôle de l’appareil.)

Tout utilisateur du SID international est doté d'un accès en lecture. Le code non approuvé ne peut pas accéder à l’appareil (le code non approuvé peut être lancé à l’aide de l’option d’identification dans l’Explorateur. Par défaut, World ne couvre pas le code restreint.)

Notez également que l’accès traversal n’est pas accordé aux utilisateurs normaux. Par conséquent, cela peut ne pas être un descripteur approprié pour un appareil avec un espace de noms.

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R

"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)(A;;GR;;;RC)"

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R permet au noyau et au système de contrôler totalement le dispositif. Par défaut, l’administrateur peut accéder à l’ensemble de l’appareil, mais ne peut pas modifier la liste de contrôle d’accès (l’administrateur doit d’abord prendre le contrôle de l’appareil.)

Tout le monde (SID mondial) dispose d’un accès en lecture. En outre, le code non approuvé est également autorisé à accéder au code source. Le code non approuvé pourrait être du code lancé à l’aide de l'option "Exécuter en tant que" dans l’Explorateur. Par défaut, World ne couvre pas le code restreint.

Notez également que l’accès traversal n’est pas accordé aux utilisateurs normaux. Par conséquent, cela peut ne pas être un descripteur approprié pour un appareil avec un espace de noms.

Ces chaînes SDDL n’incluent aucun modificateur d’héritage. Par conséquent, ils sont uniquement appropriés pour les objets d’appareil et ne doivent pas être utilisés pour les fichiers ou les clés de Registre. Pour plus d’informations sur la spécification de l’héritage à l’aide de SDDL, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.