O ASP.NET de confiança parcial não garante o isolamento do aplicativo

Traduções deste artigo Traduções deste artigo
ID do artigo: 2698981 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

O ASP.NET permite que os administradores hospedem aplicativos em modos de confiança parcial, como confiança média. Também permite a configuração de níveis de confiança parcial personalizados através de arquivos de política personalizada. Para obter mais informações sobre como usar a confiança média no ASP.NET 2.0, vá para a seguinte página da Web do Microsoft Developer Network (MSDN):
Como: Usar a Confiança Média no ASP.NET 2.0
Descrevemos anteriormente a confiança parcial do ASP.NET como um mecanismo para reforçar o isolamento do aplicativo em um ambiente de hospedagem compartilhada no qual vários aplicativos com níveis diferentes de confiança são hospedados no mesmo servidor da Web. Estamos atualizando nossas diretrizes sobre esse problema para refletir que a execução de um aplicativo de estrutura de página ASP.NET em confiança parcial não garante o isolamento completo de outros aplicativos executando o mesmo processo ou no mesmo computador. 

Configurar os aplicativos de estrutura de página ASP.NET para executar em processos separados com privilégios baixos (usando pools de aplicativos individuais) é o procedimento recomendado para garantir o isolamento de outros aplicativos de estrutura de página ASP.NET no mesmo servidor da Web. A seção a seguir oferece detalhes sobre como configurar aplicativos para isolamento. Estamos atualizando nossa outra documentação para refletir a alteração na política descrita neste artigo.

Mais Informações

Os administradores de servidor devem aplicar as diretrizes deste artigo para garantir que os aplicativos sejam isolados em ambientes de hospedagem compartilhados. Essas diretrizes se aplicam à hospedagem ASP.NET no Windows Server 2003 SP2 e versões posteriores. As diretrizes abrangem Serviços de Informações da Internet (IIS) 6.0 ao 7.5.

Muitas das tarefas descritas aqui podem ser automatizadas ao usar a ferramenta de linha de comandos IIS AppCmd.exe no IIS 7 e 7.5 e os scripts de administração do IIS no IIS 6.0.

Como colocar aplicativos em sites do IIS separados

Em um ambiente de hospedagem compartilhado, os aplicativos devem ser colocados em sites do IIS separados. A configuração é melhor isolada entre aplicativos quando eles são hospedados em sites separados. Além disso, o host CLR do .NET Framework será separado. Isso fornece isolamento adicional nesse nível.

Para colocar cada aplicativo em um site separado, siga estas etapas:

Serviços de Informações da Internet 6.0 (Windows Server 2003 SP2)

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel da esquerda, expanda o nó do servidor atual.
  3. Clique com o botão direito do mouse no nó Sites da Web, clique em Novo e em Site da Web.
  4. Clique em Avançar.
  5. Digite um nome exclusivo para o novo site e clique em Avançar.
  6. Configure as ligações do site para o ambiente de hospedagem.
  7. Digite o caminho físico da pasta na qual os arquivos do aplicativo estão armazenados.
  8. Clique para marcar a caixa de seleção Executar scripts (como ASP) e clique em Avançar.
  9. Clique em Concluir. O novo site aparece sob o nó Sites da Web.

Serviços de Informações da Internet 7 (Windows Vista SP2 e Windows Server 2008 SP1) e Serviços de Informações da Internet 7.5 (Windows 7 e Windows Server 2008 R2)

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel Conexões, expanda o nó do servidor atual.
  3. Selecione o nó Sites e clique no link Adicionar Site no painel Ações.
  4. Na caixa de diálogo Adicionar Site, insira um nome exclusivo para o novo site da Web e insira o caminho físico da pasta na qual os arquivos de aplicativos são armazenados. Por padrão, um novo pool de aplicativos que possui o mesmo nome do site é criado e o site é configurado para usar este pool de aplicativos. (Esta é a configuração recomendada.)
  5. Configure as ligações do site para o ambiente de hospedagem.
  6. Clique para desmarcar a caixa de seleção Iniciar site imediatamente para garantir que o site não esteja disponível até que as diretrizes de isolamento descritas aqui sejam concluídas.
  7. Clique em OK. O site configurado aparece sob o nó Sites no painel Conexões.

Como colocar sites em pools de aplicativos separados

Em um ambiente de hospedagem compartilhado, os aplicativos devem ser colocados em pools de aplicativos separados. Isso permite que os aplicativos sejam isolados em processos do sistema operacional separados com identidades exclusivas. Isso fornece um nível de isolamento de um site para outro. (A seção a seguir descreve como configurar identidades do pool de aplicativos para o isolamento.)

Serviços de Informações da Internet 6.0 (Windows Server 2003 SP2)

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel da esquerda, expanda o nó do servidor atual.
  3. Clique com o botão direito em Pools de aplicativos, clique em Novo e em Pool de aplicativos.
  4. Digite um nome exclusivo para o novo pool de aplicativos e clique em OK.
  5. Expanda o nó Sites da Web.
  6. Clique com o botão direito no site de destino e clique em Propriedades.
  7. Clique na guia Diretório Base.
  8. No campo Pool de aplicativos da parte inferior da caixa de diálogo, selecione o novo pool de aplicativos.
  9. Clique em OK.

Serviços de Informações da Internet 7 (Windows Vista SP2 e Windows Server 2008 SP1) e Serviços de Informações da Internet 7.5 (Windows 7 e Windows Server 2008 R2)

Após seguir as etapas na seção "Como colocar aplicativos em sites do IIS separados," o novo site é automaticamente colocado em um novo pool de aplicativos separado. No entanto, se você precisar configurar um site existente para usar um novo pool de aplicativos separado, siga estas etapas: 
  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel Conexões, expanda o nó do servidor atual.
  3. Selecione o nó Pools de aplicativos.
  4. No painel Ações, clique no link Adicionar pool de aplicativos.
  5. Insira um nome exclusivo para o novo pool de aplicativos e selecione uma versão de destino do .NET Framework e o modo de pipeline.
  6. Clique em OK. O novo pool de aplicativos é exibido na lista.
  7. No painel Conexões, expanda o nó Sites.
  8. Selecione o site que deseja mover para o pool de aplicativos que você criou anteriormente neste procedimento.
  9. No painel Ações, clique no link Configurações básicas.
  10. Na caixa de diálogo Editar site, clique em Selecionar.
  11. Na lista Pool de aplicativos, selecione o pool de aplicativos que você criou anteriormente.
  12. Clique em OK.
Na caixa de diálogo Editar site, clique em OK.

Como configurar pools de aplicativos para isolamento (identidade do processo)

Os pools de aplicativos hospedam aplicativos e sites em um processo (ou processos) do Windows. A identidade sob a qual o processo é executado é configurável. Em um ambiente de hospedagem compartilhado, deve haver uma identidade separada para cada aplicativo. Isso garante que cada aplicativo seja executado no contexto de uma conta exclusiva. Isto permite o isolamento correto ao usar uma lista de controle de acesso discricionária (DACL) do sistema de arquivos e os recursos de isolamento do processo interno do sistema operacional subjacente. Para criar uma conta de usuário e atribuir um pool de aplicativos para usar essa conta, siga estas etapas.

Serviços de Informações da Internet 6.0 (Windows Server 2003 SP2)

Criar uma conta de usuário local para usar como a identidade do pool de aplicativos
  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel da esquerda, expanda Usuários e grupos locais.
  3. Clique com o botão direito do mouse no nó Usuário e clique em Novo usuário.
  4. Digite um nome exclusivo e uma senha forte para a nova conta de usuário.
  5. Clique para desmarcar a caixa de seleção O usuário deve alterar a senha no próximo login.
  6. Clique para marcar a caixa de seleção O usuário não pode alterar a senha.
  7. Clique em Criar e em Fechar.
  8. No painel da esquerda, selecione o nó Usuários. A nova conta aparece na lista.
Configurar o pool de aplicativos para usar a nova conta de usuário local
  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel da esquerda, expanda o nó do servidor atual.
  3. Expanda o nó Pools de aplicativos.
  4. Clique com o botão direito no pool de aplicativos de destino e clique em Propriedades.
  5. Clique na guia Identidade.
  6. Selecione o botão de opção Configurável.
  7. Digite o nome de usuário e senha da nova conta.
  8. Clique em OK.
  9. Redigite a senha na caixa de diálogo Confirmar senha e clique em OK.

Serviços de Informações da Internet 7 e 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 e Windows Server 2008 R2)

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
  2. No painel Conexões, expanda o nó do servidor atual.
  3. Selecione o nó Pools de aplicativos.
  4. Selecione o pool de aplicativos de destino.
  5. No painel Ações, clique no link Configurações avançadas.
  6. Na seção Modelo de processo, defina a propriedade identidade para ApplicationPoolIdentity. Esta configuração cria automaticamente uma identidade exclusiva para este pool de aplicativos. Nas seguintes seções, é possível usar esta identidade exclusiva para definir listas de controle de acesso discricionárias (DACLs) nos locais do arquivo que o aplicativo precisa acessar.
  7. Clique em OK.

Como configurar as DACLs em locais de conteúdo de aplicativos

A lista de controle de acesso discricionária (DACL) é uma lista de permissões associadas a um objeto e pode ser usada para controlar o acesso ao objeto. Usar as DACLs para restringir o acesso ao conteúdo de aplicativos ajuda a reforçar o isolamento entre os sites hospedados no mesmo servidor da Web. Para obter mais informações sobre as ACLs e as identidades do IIS, consulte Conteúdo seguro no IIS através das listas de controle de acesso do sistema de arquivos

Todas as versões do IIS

  1. Abra a pasta raiz do conteúdo do site em um prompt de comando ou no Windows Explorer.
  2. Use um dos seguintes métodos para remover entradas de qualquer acesso não-administrador para este local. (Isso inclui o grupo de Usuários).
    • No Windows Explorer, clique com o botão direito na pasta, selecione Propriedades, clique na guia Segurança e altere a lista de controle de acesso.
    • No prompt de comando, use o utilitário icacls.exe (ou cacls.exe em versões mais antigas do sistema operacional do Windows) para alterar a lista de controle de acesso.
  3. Adicione uma nova entrada para a identidade do processo que você selecionou para o site.
  4. Forneça acesso à pasta para a nova identidade Leitura e Execução.
Se houverem determinadas pastas que exigem permissões de gravação pelo aplicativo (por exemplo, uma pasta "Carregamentos"), siga estas etapas:

Serviços de Informações da Internet 6.0 (Windows Server 2003 SP2)

  1. No Windows Explorer, clique com o botão direito na pasta, selecione Propriedades, clique na guia Segurança e adicione Modificar acesso para a identidade do processo.
  2. Para pastas com conteúdo estático (imagens, arquivos de texto e assim por diante), siga estas etapas:
    1. Abra o Gerenciador do IIS (Serviços de Informações da Internet).
    2. No painel da esquerda, clique com o botão direito no nome da pasta apropriada e clique em Propriedades.
    3. Clique na guia Diretório.
    4. Na lista Permissões de execução, selecione Nenhum.

Serviços de Informações da Internet 7 e 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 e Windows Server 2008 R2)

  1. No Windows Explorer, clique com o botão direito na pasta, selecione Propriedades, clique na guia Segurança e adicione Modificar acesso para a identidade do processo.
  2. Para pastas com conteúdo estático (imagens, arquivos de texto e assim por diante), adicionar uma entrada de arquivo "web.config" para o local que desautoriza a permissão de Script na configuração accessPolicy:
    <system.webServer> <handlers accessPolicy="Read,Write" /> </system.webServer>

Como configurar um local de pasta de arquivos temporários do ASP.NET e como definir as DACLs por site

O ASP.NET exige um local no servidor para armazenar dados temporários, como os arquivos compilados. Geralmente é a pasta de arquivos temporários do ASP.NET. Por padrão, esta pasta está na pasta onde o .NET Framework está instalado. Alocar um local temporário diferente para cada site e proteger a pasta individualmente e de forma apropriada ajuda a reforçar o isolamento entre os sites hospedados no mesmo servidor da Web. Para obter mais informações sobre a pasta de arquivos temporários do ASP.NET, consulte Entendendo a Compilação Dinâmica do ASP.NET.

Como configurar um local de pasta de arquivos temporários do ASP.NET para cada site

  1. Crie uma nova pasta para cada site armazenar arquivos temporários do ASP.NET no site. É melhor usar uma unidade que não é do sistema para armazenar os arquivos temporários.
  2. No arquivo raiz web.config ou applicationHost.config do servidor, inclua uma configuração apontando o local da nova pasta para o determinado site usando um elemento <location>, como este:
    <configuration> <location path="path"> <system.web> <compilation tempDirectory="temp-files-path" /> </system.web> </location> <!-- e assim por diante --> </configuration>

Como definir DACLs apropriadas no local da pasta de arquivos temporários do ASP.NET

  1. Use um prompt de comando ou o Windows Explorer para remover permissões de qualquer acesso não-administrador para este local. (Isso inclui o grupo de Usuários).
  2. Adicione uma nova entrada para a identidade do processo selecionado para este site anteriormente e conceda acesso Modificar à esta identidade para a pasta.

Como remover dados de configuração confidencial pelos arquivos de configuração raiz

Arquivos web.config do aplicativo estão localizados na pasta de conteúdo para o aplicativo que está sendo atendido. Embora o ASP.NET não atenderá o arquivo web.config do aplicativo, quando for prático, é melhor colocar as informações de segurança privadas, como as configurações da chave do computador e as cadeias de conexão em um arquivo de configuração que esteja fora do local do aplicativo. Isso adiciona uma defesa contra a divulgação de informações.

Serviços de Informações da Internet 6.0 (Windows Server 2003 SP2)

O armazenamento da configuração de informações de segurança sigilosas não é uma boa opção para o isolamento de dados entre sites diferentes, porque todos os sites têm acesso a leitura deste arquivo. Portanto, no IIS 6, você deve armazenar configuração confidenciais em seu arquivo web.config do aplicativo. Isso permite que os sites isolem configurações confidenciais uns dos outros. Neste caso, seu aplicativo estará dependendo das defesas do ASP.NET para impedir que o arquivo web.config do aplicativo seja atendido e para garantir que informações confidenciais não sejam divulgadas.

Serviços de Informações da Internet 7 e 7.5 (Windows Vista SP2, Windows Server 2008 SP1, Windows 7 e Windows Server 2008 R2)

Para o IIS 7 e versões superiores, mova a configuração confidencial no arquivo do IIS applicationHost.config para um elemento <location> que delimite a configuração do site para o qual se aplica. Para obter mais informações, consulte Como usar o bloqueio na configuração do IIS 7.0. A Microsoft agradece às seguintes pessoas por trabalhar conosco para proteger os clientes:
Observação: este é um artigo de ?PUBLICAÇÃO RÁPIDA? criado diretamente pela organização de suporte da Microsoft. As informações aqui contidas são fornecidas no presente estado, em resposta a questões emergentes. Como resultado da velocidade de disponibilização, os materiais podem incluir erros tipográficos e poderão ser revisados a qualquer momento, sem aviso prévio. Consulte os Termos de Uso para ver outras informações.

Propriedades

ID do artigo: 2698981 - Última revisão: quinta-feira, 7 de junho de 2012 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
atdownload kbinfo kbexpertiseinter kbsecurity KB2698981

Submeter comentários

 

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