Le niveau de confiance partielle d'ASP.NET ne garantit pas l'isolation des applications

Traductions disponibles Traductions disponibles
Numéro d'article: 2698981 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

INTRODUCTION

ASP.NET permet aux administrateurs d'héberger des applications dans des modes de confiance partielle, tels que confiance moyenne. Il permet également de configurer des niveaux de confiance partielle personnalisés par le biais de fichiers de stratégie personnalisés. Pour plus d'informations sur l'utilisation du niveau de confiance moyenne dans ASP.NET 2.0, reportez-vous au site Web de Microsoft Developper Network (MSDN) à l'adresse suivante :
Procédure d'utilisation du niveau de confiance moyenne dans ASP.NET 2.0
Nous avons précédemment décrit le niveau de confiance partielle d'ASP.NET comme étant un mécanisme permettant d'isoler les applications dans un environnement d'hébergement partagé où plusieurs applications de niveaux de confiance différents sont hébergés sur le même serveur Web. Nous mettons à jour nos informations à ce propos pour refléter le fait qu'exécuter une application d'infrastructure de pages ASP.NET en mode de confiance partielle ne garantit pas l'isolation complète par rapport aux autres applications qui s'exécutent dans le même processus ou sur le même ordinateur. 

Configurer les applications d'infrastructure de pages ASP.NET afin qu'elles s'exécutent dans des processus distincts à faible privilège (en utilisant des pools d'applications individuels) est la procédure recommandée pour assurer l'isolation par rapport aux autres applications d'infrastructure de pages ASP.NET sur le même serveur Web. La section suivante fournit des informations sur la configuration de l'isolation des applications. Nous mettons à jour notre autre documentation pour refléter le changement de stratégie décrit dans cet article. 

Plus d'informations

Il est conseillé aux administrateurs de serveurs d'appliquer les instructions présentées dans cet article afin de s'assurer que les applications sont isolées dans les environnements d'hébergement partagés. Ces instructions s'appliquent à l'hébergement d'ASP.NET sur Windows Server 2003 SP2 et versions ultérieures. Elles couvrent les services IIS (Internet Information Services) 6.0 à 7.5.

La plupart des tâches décrites ici peuvent être automatisées à l'aide de l'outil de ligne de commande des services IIS AppCmd.exe dans IIS 7 et 7.5, et à l'aide des scripts d'administration IIS dans IIS 6.0.

Procédure permettant de placer des applications sur des sites IIS distincts

Dans un environnement d'hébergement partagé, les applications doivent être placées sur des sites IIS distincts. La configuration est mieux isolée entre les applications lorsqu'elles sont hébergées sur des sites distincts. En outre, l'hôte CLR de .NET Framework sera séparé, ce qui assure une isolation supplémentaire à ce niveau.

Pour placer chaque application sur un site distinct, procédez comme suit :

Internet Information Services 6.0 (Windows Server 2003 SP2)

  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet gauche, développez le n?ud du serveur actuel.
  3. Cliquez avec le bouton droit sur le n?ud Sites Web, cliquez sur Nouveau, puis sur Site Web.
  4. Cliquez sur Suivant.
  5. Entrez un nom unique pour le nouveau site Web, puis cliquez sur Suivant.
  6. Configurez les liaisons de site pour l'environnement d'hébergement.
  7. Entrez le chemin d'accès physique du dossier dans lequel les fichiers d'application sont stockés.
  8. Activez la case à cocher Exécuter les scripts (tels que ASP), puis cliquez sur Suivant.
  9. Cliquez sur Terminer. Le nouveau site apparaît sous le n?ud Sites Web.

Internet Information Services 7 (Windows Vista SP2 et Windows Server 2008 SP1) et Internet Information Services 7.5 (Windows 7 et Windows Server 2008 R2)

  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet Connexions, développez le n?ud du serveur actuel.
  3. Sélectionnez le n?ud Sites, puis cliquez sur le lien Ajouter un site Web du volet Actions.
  4. Dans la boîte de dialogue Ajouter un site Web, entrez un nom unique pour le nouveau site Web, puis entrez le chemin d'accès physique du dossier dans lequel les fichiers d'application sont stockés. Par défaut, un nouveau pool d'applications est créé avec le même nom que le site, et le site est configuré pour utiliser ce pool d'applications. (Il s'agit de la configuration recommandée.)
  5. Configurez les liaisons de site pour l'environnement d'hébergement.
  6. Désactivez la case à cocher Démarrage immédiat du site Web afin de veiller à ce que le site ne soit pas disponible avant l'application des indications relatives à l'isolation présentées ici.
  7. Cliquez sur OK. Le site configuré s'affiche sous le n?ud Sites du volet Connexions.

Procédure permettant de placer les sites dans des pools d'applications distincts

Dans un environnement d'hébergement partagé, les applications doivent être placées dans des pools d'applications distincts. Cela permet d'isoler les applications dans des processus de système d'exploitation distincts avec des identités uniques. Cela assure un niveau d'isolation d'un site à l'autre. (La section suivante décrit comment configurer les identités de pool d'applications pour l'isolation).

Internet Information Services 6.0 (Windows Server 2003 SP2)

  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet gauche, développez le n?ud du serveur actuel.
  3. Cliquez avec le bouton droit sur Pools d'applications, cliquez sur Nouveau, puis sur Pool d'applications.
  4. Entrez un nom unique pour le nouveau pool d'applications, puis cliquez sur OK.
  5. Développez le n?ud Sites Web.
  6. Cliquez avec le bouton droit sur le site Web cible, puis cliquez sur Propriétés.
  7. Cliquez sur l'onglet Répertoire de base.
  8. Dans le champ Pool d'applications, au bas de la boîte de dialogue, sélectionnez le nouveau pool d'applications.
  9. Cliquez sur OK.

Internet Information Services 7 (Windows Vista SP2 et Windows Server 2008 SP1) et Internet Information Services 7.5 (Windows 7 et Windows Server 2008 R2)

Après avoir exécuté la procédure permettant de placer les applications sur des sites IIS distincts, le nouveau site est automatiquement placé dans un nouveau pool d'applications distinct. Toutefois, si vous devez configurer un site existant pour qu'il utilise un nouveau pool d'applications distinct, procédez comme suit : 
  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet Connexions, développez le n?ud du serveur actuel.
  3. Sélectionnez le n?ud Pools d'applications.
  4. Dans le volet Actions, cliquez sur le lien Ajouter un pool d'applications.
  5. Entrez un nom unique pour le nouveau pool d'applications, puis sélectionnez un mode pipeline et une version .NET Framework cible.
  6. Cliquez sur OK. Le nouveau pool d'applications s'affiche dans la liste.
  7. Dans le volet Connexions, développez le n?ud Sites.
  8. Sélectionnez le site que vous souhaitez déplacer vers le pool d'applications, créé lors d'une étape précédente de cette procédure.
  9. Dans le volet Actions, cliquez sur le lien Paramètres de base.
  10. Dans la boîte de dialogue Modifier le site, cliquez sur Sélectionner.
  11. Dans la liste Pool d'applications, sélectionnez le pool d'applications que vous avez créé précédemment.
  12. Cliquez sur OK.
Dans la boîte de dialogue Modifier le site, cliquez sur OK.

Procédure de configuration des pools d'applications pour l'isolation (identité de processus)

Les pools d'applications hébergent des applications et des sites dans un ou plusieurs processus Windows. L'identité sous laquelle le processus s'exécute est configurable. Dans un environnement d'hébergement partagé, il doit exister une identité distincte pour chaque application. Cela permet de garantir que chaque application s'exécute dans le contexte d'un compte unique. Cela permet une isolation correcte grâce aux listes de contrôle d'accès discrétionnaire du système de fichiers (DACL) et aux fonctionnalités intégrées d'isolation de processus du système d'exploitation sous-jacent. Pour créer un compte d'utilisateur, puis affecter un pool d'applications pour utiliser ce compte, procédez comme suit.

Internet Information Services 6.0 (Windows Server 2003 SP2)

Créez un compte d'utilisateur local à utiliser comme identité du pool d'applications
  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet gauche, développez Utilisateurs et groupes locaux.
  3. Cliquez avec le bouton droit sur le n?ud Utilisateurs, puis cliquez sur Nouvel utilisateur.
  4. Entrez un nom unique et un mot de passe sécurisé pour le nouveau compte d'utilisateur.
  5. Désactivez la case à cocher L'utilisateur doit changer le mot de passe à la prochaine ouverture de session.
  6. Activez la case à cocher L'utilisateur ne peut pas changer de mot de passe.
  7. Cliquez sur Créer, puis sur Fermer.
  8. Dans le volet gauche, sélectionnez le n?ud Utilisateurs. Le nouveau compte s'affiche dans la liste.
Configurez le pool d'applications de manière à ce qu'il utilise le nouveau compte d'utilisateur local
  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet gauche, développez le n?ud du serveur actuel.
  3. Développez le n?ud Pools d'applications.
  4. Cliquez avec le bouton droit sur le pool d'applications cible, puis cliquez sur Propriétés.
  5. Cliquez sur l'onglet Identité.
  6. Sélectionnez la case d'option Configurable.
  7. Entrez le nom d'utilisateur et le mot de passe du nouveau compte.
  8. Cliquez sur OK.
  9. Entrez à nouveau le mot de passe dans la boîte de dialogue Confirmer le mot de passe, puis cliquez sur OK.

Internet Information Services 7 et 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 et Windows Server 2008 R2)

  1. Ouvrez le Gestionnaire des services IIS.
  2. Dans le volet Connexions, développez le n?ud du serveur actuel.
  3. Sélectionnez le n?ud Pools d'applications.
  4. Sélectionnez le pool d'applications cible.
  5. Dans le volet Actions, cliquez sur le lien Paramètres avancés.
  6. Dans la section Modèle de processus, définissez la propriété Identité sur ApplicationPoolIdentity. Ce paramètre crée automatiquement une identité unique pour ce pool d'applications. Dans les sections suivantes, vous pouvez utiliser cette identité unique pour définir des listes de contrôle d'accès discrétionnaire (DACL) aux emplacements de fichiers où l'application doit accéder.
  7. Cliquez sur OK.

Procédure de configuration des DACL aux emplacements de contenu des applications

La liste de contrôle d'accès discrétionnaire (DACL) est une liste d'autorisations associées à un objet pouvant être utilisées pour contrôler l'accès à cet objet. L'utilisation des DACL pour restreindre l'accès au contenu des applications contribue à renforcer l'isolation entre les sites hébergés sur le même serveur Web. Pour plus d'informations sur les identités IIS et les ACL, reportez-vous à la section Contenu sécurisé dans IIS par le biais d'ACL du système de fichiers

Toutes les versions d'IIS

  1. Ouvrez le dossier racine pour le contenu du site à une invite de commandes ou dans l'Explorateur Windows.
  2. Appliquez l'une des méthodes suivantes pour supprimer les entrées de tout accès non-administrateur à cet emplacement. (Cela inclut le groupe Utilisateurs).
    • Dans l'Explorateur Windows, cliquez avec le bouton droit sur le dossier, sélectionnez Propriétés, cliquez sur l'onglet Sécurité, puis modifiez la liste de contrôle d'accès.
    • À l'invite de commandes, utilisez l'utilitaire icacls.exe (ou cacls.exe sur les versions antérieures du système d'exploitation Windows) pour modifier la liste de contrôle d'accès.
  3. Ajoutez une nouvelle entrée pour l'identité du processus que vous avez sélectionné pour le site.
  4. Donnez à la nouvelle identité l'accès Lecture et exécution au dossier.
Si certains dossiers nécessitent des autorisations d'écriture par l'application (par exemple, un dossier « Téléchargements »), procédez comme suit :

Internet Information Services 6.0 (Windows Server 2003 SP2)

  1. Dans l'Explorateur Windows, cliquez avec le bouton droit sur le dossier, sélectionnez Propriétés, cliquez sur l'onglet Sécurité, puis ajoutez l'accès Modifier pour l'identité de processus.
  2. Pour les dossiers qui contiendront du contenu statique (images, fichiers texte, etc.), procédez comme suit :
    1. Ouvrez le Gestionnaire des services IIS.
    2. Dans le volet gauche, cliquez avec le bouton droit sur le nom de dossier approprié, puis cliquez sur Propriétés.
    3. Cliquez sur l'onglet Répertoire.
    4. Dans la liste Autorisations d'exécution, sélectionnez Aucune.

Internet Information Services 7 et 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 et Windows Server 2008 R2)

  1. Dans l'Explorateur Windows, cliquez avec le bouton droit sur le dossier, sélectionnez Propriétés, cliquez sur l'onglet Sécurité, puis ajoutez l'accès Modifier pour l'identité de processus.
  2. Pour les dossiers qui contiendront du contenu statique (images, fichiers texte, etc.), ajoutez une entrée de fichier « web.config » pour l'emplacement qui n'autorise pas les autorisations de script dans le paramètre accessPolicy :
    <system.webServer> <handlers accessPolicy="Read,Write" /> </system.webServer>

Procédure de configuration d'un emplacement de dossier de fichiers temporaires ASP.NET et procédure de définition de DACL par site

ASP.NET nécessite un emplacement sur le serveur afin de stocker des données temporaires, telles que des fichiers compilés. Il s'agit généralement du dossier de fichiers temporaires ASP.NET. Par défaut, ce dossier se trouve sous le dossier dans lequel .NET Framework est installé. Attribuer un emplacement temporaire différent pour chaque site et sécuriser le dossier individuellement contribuent à renforcer l'isolation entre les sites hébergés sur le même serveur Web. Pour plus d'informations sur le dossier de fichiers temporaires ASP.NET, reportez-vous à la section de présentation de la compilation dynamique ASP.NET.

Procédure de configuration d'un emplacement de dossier de fichiers temporaires ASP.NET différent pour chaque site

  1. Créez un nouveau dossier pour chaque site afin de stocker les fichiers temporaires ASP.NET de ce site. Il est préférable d'utiliser un lecteur indépendant du système pour stocker les fichiers temporaires.
  2. Dans le fichier web.config ou applicationHost.config racine du serveur, incluez un paramètre permettant de naviguer vers l'emplacement du nouveau dossier pour ce site précis en utilisant un élément <emplacement>, tel que :
    <configuration> <location path="path"> <system.web> <compilation tempDirectory="temp-files-path" /> </system.web> </location> <!-- and so on --> </configuration>

Procédure de définition des DACL appropriés sur l'emplacement de dossier des fichiers temporaires ASP.NET

  1. Utilisez une invite de commandes ou l'Explorateur Windows pour supprimer les autorisations pour tout accès non-administrateur à cet emplacement. (Cela inclut le groupe Utilisateurs).
  2. Ajoutez une entrée pour l'identité de processus précédemment sélectionnée pour ce site, puis donnez à cette identité l'accès Modifier pour ce dossier.

Procédure de suppression de données de configuration sensibles des fichiers de configuration racine

Les fichiers web.config de l'application sont situés dans le dossier de contenu de l'application utilisée. Même si ASP.NET n'utilise pas le fichier web.config de l'application, lorsque c'est possible, il est préférable de placer les informations relatives à la sécurité (paramètres de clés de l'ordinateur et chaînes de connexion) dans un fichier de configuration en dehors de l'emplacement de l'application. Cette opération ajoute une protection contre la divulgation d'informations.

Internet Information Services 6.0 (Windows Server 2003 SP2)

Stocker des informations de configuration relatives à la sécurité dans le fichier web.config racine n'est pas une option à privilégier pour isoler les données entre différents sites, car tous les sites disposent d'un accès en lecture à ce fichier. Par conséquent, sur IIS 6, vous devez stocker la configuration sensible dans le fichier web.config de l'application. Cela permet aux sites d'isoler chaque configuration sensible. Dans ce cas, votre application compte sur les défenses ASP.NET pour empêcher l'utilisation du fichier web.config de l'application et pour s'assurer que des informations sensibles ne sont pas divulguées.

Internet Information Services 7 et 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 et Windows Server 2008 R2)

Pour IIS 7 et les versions ultérieures, déplacez la configuration sensible qui se trouve dans le fichier IIS applicationHost.config vers un élément <emplacement> qui couvre la configuration vers le site auquel il s'applique. Pour plus d'informations, voir Procédure d'utilisation du verrouillage dans la configuration d'IIS 7.0. Microsoft remercie les personnes suivantes de leur collaboration pour protéger les clients :
Remarque Il s'agit d'un article de « PUBLICATION RAPIDE » rédigé directement au sein du service de support technique Microsoft. Les informations qui y sont contenues sont fournies en l'état, en réponse à des problèmes émergents. En raison du délai rapide de mise à disposition, les informations peuvent contenir des erreurs typographiques et, à tout moment et sans préavis, faire l'objet de révisions. Pour d'autres considérations, consultez les Conditions d'utilisation.

Propriétés

Numéro d'article: 2698981 - Dernière mise à jour: jeudi 7 juin 2012 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 4.0
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 1.1 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 3
Mots-clés : 
atdownload kbinfo kbexpertiseinter kbsecurity KB2698981
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com