Délégation Centre-Auvergne-Limousin

- Home - News - Conseils - SécuritéMise à jour  -  Liens  -  Accès  -

Délégation Centre-Auvergne-Limousin

Renforcement de la sécurité de DCOM

Le système Microsoft COM (Component Object Model) est un système orienté objets, distribué et indépendant de la plate-forme, conçu pour prendre en charge des composants logiciels qui interagissent. Le système DCOM (Distributed Component Object Model) permet aux applications d'être réparties sur plusieurs emplacements (plusieurs ordinateurs). Le protocole DCOM offre une prise en charge transparente permettant d'obtenir des communications fiables et efficaces entre les différents composants COM.

Si vous utilisez uniquement COM pour une utilisation locale (sur un seul système) de composants COM, cette section ne vous concerne pas.

En revanche, elle vous concerne si vous exploitez une application serveur COM répondant aux critères suivants :

  • l'autorisation d'accès à l'application est moins stricte que celle requise pour son exécution ;
  • l'application est généralement activée sur un ordinateur exécutant Microsoft Windows XP par un client COM distant sans utilisation de compte administrateurs ;
  • par défaut, l'application utilise des rappels distants non authentifiés sur un ordinateur exécutant Windows XP ;
  • l'application est destinée à être utilisée localement. (Cela signifie que vous pouvez limiter votre application serveur COM afin qu'elle ne soit pas accessible à distance).

Plusieurs modifications ont été apportées au système COM. Cliquez sur l'élément qui vous intéresse pour en savoir plus.

Restrictions applicables au niveau de l'ordinateur

Une modification a été apportée au système COM afin de fournir des contrôles d'accès au niveau de l'ordinateur permettant de régir l'accès à toutes les demandes d'appel, d'activation ou de lancement. Ces contrôles d'accès se présentent comme des appels AccessCheck supplémentaires qui sont comparés à une liste de contrôle d'accès (ACL) lors de chaque appel, activation ou lancement de serveur COM sur l'ordinateur. En cas d'échec de l'appel AccessCheck, la requête d'appel, d'activation ou de lancement est ignorée. Cet appel vient s'ajouter aux appels AccessCheck exécutés via les ACL du serveur. Il fournit un seuil d'autorisation minimale qui doit être dépassé pour accéder aux serveurs COM de l'ordinateur. Au niveau de l'ordinateur, il existera une ACL d'autorisation de lancement couvrant l'activation et le lancement, et une ACL d'autorisation d'accès couvrant les appels. Ces éléments peuvent être configurés à l'aide de la console MMC (Microsoft Management Console) ou encore être programmés. Pour configurer ces paramètres à partir de l'interface utilisateur, les administrateurs doivent ouvrir les Services de composants et sélectionner Propriétés dans le menu contextuel de l'ordinateur à configurer. La boîte de dialogue illustrée à la figure 11 s'affiche et la sécurité est configurée dans l'onglet Sécurité COM.

Boîte de dialogue des propriétés de l'ordinateur, onglet Sécurité COM
Figure 11 : Boîte de dialogue des propriétés de l'ordinateur, onglet Sécurité COM

Ces ACL permettent de se substituer à de trop faibles valeurs de paramètres spécifiés par une application spécifique via CoInitializeSecurity, ou aux paramètres de sécurité propres à une application. Cela définit un niveau minimal de sécurité à passer, quels que soient les paramètres du serveur spécifique.

Ces ACL sont interrogées en cas d'accès aux interfaces exposées par RPCSS (outil de gestion de mémoire).

Elles constituent une méthode de contrôle d'accès à ce service système.

Elles représentent un emplacement centralisé dans lequel un administrateur peut définir des règles d'autorisation générales s'appliquant à tous les serveurs COM de l'ordinateur.

Par défaut, les paramètres de restriction applicables aux ordinateurs Windows XP sont les suivants :

 

Autorisation Administrateur Tout le monde Anonyme
Exécution Locale (exécution)
Activation locale
Exécution à distance
Activation à distance
Locale (exécution)
Activation locale
 
Accès   Local (appel)
à distance (Appel)
Local (appel)


Tableau 4 : Paramètres de restriction applicables aux ordinateurs Windows XP

De nombreuses applications COM incluent un code de sécurité spécifique (appel de CoInitializeSecurity, par exemple), mais avec des paramètres très faibles, ce qui autorise souvent l'accès non authentifié au processus. Actuellement, il n'existe aucune méthode utilisable par l'administrateur pour remplacer ces paramètres dans le but de renforcer la sécurité dans les versions antérieures de Windows.

L'infrastructure COM inclut l'outil de gestion de mémoire RpcSs (service exécuté pendant le démarrage du système, après son ajout à la machine). Cet outil gère l'activation des objets COM et la table des objets en cours d'exécution. Il contient des services destinés aux appels à distance DCOM. Il expose les interfaces RPC que l'on peut appeler à distance. étant donné que certains serveurs COM autorisent l'accès à distance non authentifié (comme l'explique la section précédente), ces interfaces peuvent être appelées par toute personne (y compris par des utilisateurs non authentifiés). Par conséquent, RpcSs peut être attaqué par des utilisateurs malveillants à l'aide d'ordinateurs distants non authentifiés.

Dans les versions antérieures de Windows, l'administrateur ne pouvait pas connaître facilement le niveau d'exposition des serveurs COM sur un ordinateur. Il devait vérifier systématiquement les paramètres de sécurité de chaque application COM enregistrée sur l'ordinateur, mais puisqu'il y a environ 150 serveurs COM dans une installation par défaut de Windows XP, cette tâche est gigantesque. Il était impossible d'afficher les paramètres d'un serveur qui intègre une sécurité dans le logiciel, à moins d'examiner le code source pour ce logiciel.

Les restrictions DCOM au niveau de l'ordinateur résolvent ces trois problèmes. Elles fournissent également à l'administrateur la capacité d'interdire les demandes entrantes d'activation, de lancement et d'appels DCOM.

Autorisations COM granulaires

Cette modification concerne les droits d'accès COM fondés sur la notion de " distance ". Les deux distances définies sont Locale et à distance. Les messages COM locaux sont acheminés via le protocole LRPC, alors que les messages COM distants utilisent un protocole RPC (Remote Procedure Call) fondé sur un protocole de transport tel que TCP (Transmission Control Protocol). C'est pour cette raison que les autorisations d'appel et d'activation sont séparées : elles reflètent ces deux distances. Les autorisations d'activation sont par ailleurs déplacées : elles passent de l'ACL d'autorisation d'accès à l'ACL d'autorisation d'exécution. Puisque l'activation et l'exécution sont toutes deux liées à l'acquisition d'un pointeur d'interface, les droits d'accès correspondants sont regroupés au sein d'une même ACL. Et puisque vous spécifiez systématiquement les autorisations d'exécution via la configuration (contrairement aux autorisations d'accès qui sont souvent spécifiées par voie de programmation), le fait de placer l'autorisation d'activation dans l'ACL d'autorisation d'exécution permet à l'administrateur de contrôler l'activation.

Les ACE d'autorisation d'exécution sont réparties en quatre droits d'accès :

  • Exécution locale (LL)
  • Exécution à distance (RL)
  • Activation locale (LA)
  • Activation à distance (RA)

Le descripteur de sécurité d'autorisation d'accès est divisé en deux droits d'accès :

  • Appels locaux (LC)
  • Appels à distance (RC)

Cette sécurité COM permet à l'administrateur d'appliquer des configurations de sécurité très spécifiques. Par exemple, vous pouvez configurer un serveur COM dans le but qu'il accepte les appels locaux en provenance de tout le monde mais qu'il n'accepte les appels à distance que s'ils proviennent des administrateurs. L'interface utilisateur permettant de configurer ces paramètres de sécurité spécifiques est illustrée par la figure 12.

Copie d'écran
Figure 12 : paramètres de sécurité applicables à l'objet COM

Lorsque l'administrateur sélectionne l'option de personnalisation de l'exécution et d'autorisations d'activation, la boîte de dialogue illustrée par la figure 13 s'affiche si vous cliquez sur le bouton Modifier.

Copie d'écran
Figure 13 : Boîte de dialogue Autorisations d'exécution

Ces distinctions peuvent être spécifiées au moyen des modifications apportées aux descripteurs de sécurité d'autorisations COM.

Les anciennes versions de l'application serveur COM n'ont pas la capacité de limiter l'utilisation d'une application à une échelle locale sans la placer sur le réseau via DCOM. Lorsque les utilisateurs accèdent à une application serveur COM, ils peuvent utiliser les options locales et à distance.

Une application serveur COM peut être utilisée par des utilisateurs non authentifiés pour l'implémentation d'un scénario de rappel (callback) COM. Dans ce scénario, l'application doit également exposer son activation aux utilisateurs non authentifiés, ce qui n'est pas forcément souhaitable.

L'utilisation d'autorisations COM précises offre à l'administrateur une grande souplesse de contrôle de la stratégie d'autorisation COM des ordinateurs. Ces autorisations activent la sécurité des scénarios décrits.

Le tableau 5 ci-dessous représente les paramètres ajoutés ou modifiés dans Windows XP Service Pack 2.

 

Nom de paramètre Emplacement Valeur par défaut précédente (le cas échéant) Valeur par défaut Valeurs possibles
MachineLaunchRestriction HKLM\SOFTWARE\Microsoft\Ole\ Tout le monde = LL,LA,RL,RA
Anonyme = LL,LA,RL,RA
(Il s'agit d'une nouvelle clé de Registre. Sur la base d'un comportement existant, ces valeurs seraient les valeurs effectives).
Administrateur = LL,LA,RL,RA
Tout le monde = LL,LA
ACL
MachineAccessRestriction HKLM\SOFTWARE\Microsoft\Ole\ Tout le monde = LC, RC
Anonyme = LC, RC
(Il s'agit d'une nouvelle clé de Registre. Sur la base d'un comportement existant, ces valeurs seraient les valeurs effectives).
Tout le monde = Locale, à distance.
Anonyme = Locale
ACL
ActivationFailureLoggingLevel HKLM\SOFTWARE\
Microsoft\Ole\
0 0 0-2
CallFailureLoggingLevel HKLM\SOFTWARE\Microsoft\Ole\ Sans objet 2 1,2
InvalidSecurityDescriptor LoggingLevel HKLM\SOFTWARE\Microsoft\Ole\ Sans objet 1 1,2


Tableau 5 : Ajouts et/ou modifications apportées dans Windows XP Service Pack 2

1 2 3 4 5

 

Page Up Updated 11 juin, 2004 Hervé Chaudret
C.N.R.S.

 -   Home   -  News   -   Conseils   -  Sécurité   -  Mise à jour   -   Liens   -  Accès   -

C.N.R.S.