Remarques importantes concernant la sécurité du moteur des règles d’entreprise
Cette rubrique récapitule les problèmes de sécurité connus dans Microsoft BizTalk Server et les étapes à suivre pour atténuer les risques de sécurité.
Entrée de schéma malveillante causant une attaque par refus de service
Pendant la déclaration de faits, chaque règle est vérifiée en étant comparée à chaque objet qui correspond aux types pris en charge dans une stratégie. Supposons la présence d'une règle dans une stratégie qui utilise l'un des éléments d'un schéma transmis en utilisant un sélecteur. Si l'instance de cet élément/attribut correspondant au sélecteur est répétée des milliers de fois, toutes les instances de ce type sont déclarées, entraînant une dégradation des performances et un éventuel refus de service (DoS, Denial of Service).
Pour réduire les risques que ce problème se produise, il faut que vous validiez toutes les entrées ambiguës transmises pendant l'exécution d'une stratégie.
Ensemble de règles ne validant pas les objets avant de déclarer les faits
Tout schéma instance passé en tant que fait au RuleSet n’est pas validé par rapport au schéma avant d’affirmer des règles à l’aide de sélecteurs. Vous devez valider toutes les entrées transmises pendant l'exécution d'une stratégie.
Comportements attendus de l'Éditeur des règles d'entreprise lorsque la sécurité RuleStore est activée
Vous pouvez activer la fonctionnalité de sécurité basée sur les rôles pour le magasin de règles en appelant la méthode EnableAuthorization de la classe RuleStore . Lorsque ce composant de sécurité est activé, les comportements attendus dans l'Éditeur des règles d'entreprise sont les suivants :
Le modèle objet filtre les ensembles de règles et les vocabulaires pour lesquels l'utilisateur n'a pas d'accès en lecture. Ils n'apparaissent donc pas dans l'Éditeur des règles d'entreprise.
Si l'utilisateur n'a pas d'accès en écriture à une stratégie ou un vocabulaire, toute tentative d'enregistrement provoque l'émission d'une exception.
Types d'utilisateurs pour l'administrateur du magasin de règles
L'administrateur du magasin de règles dispose du privilège de définir un groupe d'autorisations pour les artefacts enregistrés dans le magasin de règles. Notez cependant les différences suivantes entre deux types d'utilisateurs auxquels l'administrateur du magasin de règles peut appartenir :
Lorsque l'administrateur du magasin de règles est un utilisateur Windows, autrement dit s'il utilise l'authentification Windows pour se connecter au magasin de règles, il peut définir un groupe d'autorisations dont l'utilisateur est un groupe Windows ou un utilisateur Windows.
Lorsque l'administrateur du magasin de règles est un utilisateur SQL, autrement dit s'il utilise l'authentification SQL pour se connecter au magasin de règles, il ne peut pas définir de groupe d'autorisations dont l'utilisateur est un groupe Windows, mais peut en définir un dont l'utilisateur est un utilisateur Windows.
Un utilisateur ne peut associer un groupe d'autorisations à un artefact s'il ne dispose pas des droits nécessaires
Un créateur d'artefact qui n'est ni un utilisateur dbo SQL, ni un membre de RE_ADMIN_USERS, et qui ne dispose pas non plus de l'autorisation MODIFY_DELETE pour un artefact, ne peut pas associer de nouveau groupe d'autorisations à l'artefact. Le scénario suivant est un exemple de ce comportement :
Le créateur de l'ensemble de règles n'est pas dbo, ne fait pas partie du groupe RE_ADMIN_USERS et ne dispose pas de l'autorisation MODIFY_DELETE une fois que l'ensemble de règles est créé.
Le créateur crée un ensemble de règles.
Un membre du groupe RE_ADMIN_USERS crée une autorisation AG1 dotée d'une autorisation MODIFY_DELETE pour l'utilisateur2.
Le créateur associe AG1 à l'ensemble de règles.
Activation de l'autorisation du magasin de règles.
Un membre du groupe RE_ADMIN_USERS crée une autorisation AG2 dotée d'une autorisation READ_EXECUTE pour l'utilisateur2.
Le créateur associe AG2 à l'ensemble de règles. Bien que le créateur ne dispose pas des autorisations nécessaires pour cela, aucun message d'erreur n'apparaît.
La tentative de l'utilisateur2 de lire l'ensemble de règles échoue.