Sécurité intégrée et autorisations élevées
L'exécution d'un rapport à partir d'un compte qui dispose d'autorisations élevées expose votre serveur SQL Server à une menace de sécurité si la requête du rapport contient des instructions Transact-SQL malveillantes (par exemple des instructions qui permettent de créer des ouvertures de session non autorisées, de modifier ou de supprimer des données, ou d'introduire des données erronées) et si le rapport est exécuté par un utilisateur disposant d'autorisations élevées sur le serveur qui héberge la source de données. Par exemple, si un pirate publie un rapport contenant une requête malveillante, celle-ci sera traitée sous un compte d'administrateur si l'une des conditions suivantes est vraie :
La source de données du rapport est configurée pour utiliser la sécurité intégrée et l'utilisateur exécutant le rapport est connecté en tant qu'administrateur.
La source de données du rapport est configurée pour demander les informations d'identification et l'utilisateur entre ses informations d'identification d'administrateur pour exécuter le rapport.
Meilleures méthodes pour gérer une élévation d'une attaque par privilège
Pour diminuer cette menace, mettez en œuvre une ou plusieurs des pratiques de sécurité recommandées :
Utilisez des comptes d'ouverture de session dotés des privilèges minimaux pour accéder aux sources de données externes fournissant les données à un rapport. Vous pouvez configurer les sources de données de façon à toujours utiliser les informations d'identification stockées d'un compte doté des privilèges minimaux.
Utilisez des sources de données partagées pour spécifier les informations relatives à la connexion aux sources de données. Vous pouvez utiliser des attributions de rôles dans la source de données partagée pour contrôler l'accès à la chaîne de connexion et aux paramètres définissant l'obtention des informations d'identification lors de l'exécution.
Utilisez des attributions de rôles et des processus de workflow pour vérifier que seuls des rapports de confiance sont publiés sur un serveur de rapports. Les attributions de rôles permettent de limiter la publication de rapports à des dossiers spécifiques et de demander aux administrateurs d'inspecter le fichier RDL (et la requête) d'un nouveau rapport publié avant de le déplacer vers un emplacement final. Notez que Reporting Services ne permet pas d'appliquer les procédures de fonctionnement standard définies pour votre organisation. Il n'existe aucune fonctionnalité permettant de forcer l'inspection avant la publication.
Désactivez la sécurité intégrée en tant qu'option d'identification de la source de données du rapport. Pour désactiver les connexions à la source de données qui utilisent la sécurité intégrée, affectez la valeur false à EnableIntegratedSecurity. Pour plus d'informations sur la définition de cette propriété dans la page de propriétés du serveur de Management Studio, consultez Procédure : définir les propriétés du serveur de rapports (Management Studio).
L'utilisation de la sécurité intégrée pour accéder aux sources de données externes pose un problème aux utilisateurs de rapports qui peuvent ignorer que leur jeton de sécurité est transmis à une source de données externe (les utilisateurs ne sont pas avertis avant d'exécuter un rapport que ce dernier est configuré pour utiliser la sécurité intégrée). En outre, les utilisateurs ne se préoccupent pas de la même façon de l'ouverture d'un rapport et de l'ouverture d'une pièce jointe à partir d'une source inconnue. Cependant, les risques de sécurité sont identiques dans ces deux scénarios. Une requête malveillante peut endommager ou compromettre un serveur de la même façon qu'un script malveillant affiché via un lien hypertexte ou une pièce jointe masquée dans un courrier électronique peut endommager ou compromettre une station de travail.
Notez que si vous désactivez la sécurité intégrée, les sources de données configurées pour utiliser cette fonctionnalité (que ce soit avant ou après désactivation de la fonctionnalité) ne s'exécuteront plus. Vous recevez le message d'erreur suivant si la sécurité intégrée n'est pas prise en charge sur votre serveur de rapports : « Cette source de données est configurée pour utiliser la fonctionnalité de sécurité intégrée de Windows mais cette dernière est désactivée pour ce serveur de rapports.»