Compartilhar via


Visão Geral sobre Ameças de Segurança em Aplicativos da Web

Se usuários desconhecidos podem acessar o seu aplicativo da Web, é quase certo que usuários mal-intencionados irão tentar obter acesso não autorizado ao seu aplicativo.Servidores que são acessíveis para o público na Internet são constantemente vasculhados a procura de vulnerabilidades.Portanto, recomenda-se que você tome precauções e crie segurança em todos os seus aplicativos da Web.

Informações mais detalhadas sobre as práticas recomendadas para escrever código seguro e proteger aplicativos podem ser encontradas no livro "Writing Secure Code" de Michael Howard e David LeBlanc ou a orientação fornecida porPadrões e práticas da Microsoft.

Tecnologia de Segurança é Somente Parte da Solução

A implementação de segurança é apenas parte da solução.Outra parte importante é a vigilância.Mesmo se o seu sistema tiver muitas proteções de segurança, você precisa vigiá-lo de perto dessas formas:

  • Monitore logs de eventos do sistema.Atente para repetidas tentativas de efetuar logon no seu sistema ou para excessiva solicitações sendo feitas no seu servidor Web.

  • Mantenha continuamente o servidor de aplicativos atualizado com as atualizações de segurança mais recentes do Microsoft Windows e dos Serviços de Informações da Internet (IIS), assim como com quaisquer atualizações para o Microsoft SQL Server ou outras fontes de dados que o seu aplicativo possa utilizar.

Modelagem de Ameaças

Uma parte importante referente a desenvolver um aplicativo mais seguro é compreender as ameaças a ele.A Microsoft desenvolveu uma maneira de categorizar as ameaças: Falsificação, violação, repúdio, divulgação de informações, negação de serviço, elevação de privilégios (STRIDE).As seções abaixo descrevem resumidamente essas ameaças e como elas se aplicam a aplicativos da Web.

Falsificação

Realizar a falsificação é representar um usuário ou processo de uma forma não autorizado.Na sua forma mais simples, falsificação pode significar digitar as credenciais de um usuário diferente.Um uso mal-intencionado também pode alterar o conteúdo de um cookie para fingir que ele ou ela é um usuário diferente ou que o cookie venha de um servidor diferente.

Em geral, você pode ajudar a impedir falsificação usando uma autenticação rigorosa.A qualquer momento em que alguém solicitar acesso às informações não públicas certifique-se de que eles sejam que eles dizem que são.Você também pode ajudar a defender contra falsificação mantendo informações de credenciais em segurança.Por exemplo, não mantenha uma senha ou outra informações confidencial em um cookie, pois um usuário mal-intencionado pode facilmente encontrá-lo ou modificá-lo.

Violação

Violação significa alterar ou excluir um recurso sem autorização.Um exemplo é desfiguração de uma página da Web, onde o usuário mal-intencionado entra em seu site e altera arquivos.Uma maneira indireta de violar é usar um script malicioso.Um usuário mal-intencionado tenta fazer com que o código (Script) seja executado mascarando-o como entrada do usuário de uma página ou como um link.

Uma defesa primária contra violação é usar a segurança do Windows para bloquear arquivos, pastas, e outros recursos do Windows.O aplicativo também deve executar com privilégios mínimos.Uma forma de ajudar a proteger contra scripts maliciosos é não confiar em qualquer informação que vem de um usuário ou mesmo de um banco de dados.Sempre que você obtiver informações de uma fonte não confiável, siga etapas para certificar-se de que elas não contêm qualquer código executável.

Repúdio

Uma ameaça de repúdioenvolve a realização de uma transação de tal forma que não existirão provas dos principais envolvidos na transação.Em um aplicativo da Web, isso pode significar representação das credenciais de um usuário inocente.Você pode ajudar a proteger contra repúdio usando autenticação rigorosa.Além disso, use os recursos de log do Windows para manter uma faixa de auditoria de quaisquer atividades no servidor.

Divulgação de Informações

A Divulgação de Informações significa, simplismente, roubar ou revelar informações que deveriam ser particulares.Um exemplo típico é roubo de senhas, mas a divulgação de informações pode envolver acesso a qualquer arquivo ou recurso no servidor.

A melhor defesa contra a divulgação de informações é não ter informações para revelar.Por exemplo, se você evitar armazenar senhas, usuários mal-intencionados não poderão roubá-las.Uma alternativa de armazenamento de senhas é armazenar somente um hash da senha.Quando um usuário apresenta credenciais, você pode realizar o hash da senha do usuário e comparar somente o hash dos dois.Se você armazenar informações confidenciais, use a segurança do Windows para ajudar a protegê-las.Como sempre, você deve usar a autenticação para ajudar a garantir que somente usuários autorizados possam acessar informações restritas.Se você deve expor informações confidenciais, é recomendável que você criptografe as informações quando armazenadas e use o Secure Sockets Layer (SSL) para criptografar as informações enviadas e recebidas do navegador.

Negação de Serviço

Um ataque de negação de serviço tem por objetivos fazer com que, deliberadamente, diminuir a disponibilidade de um aplicativo.Um exemplo típico é sobrecarregar um aplicativo da Web para que ele não possa servir usuários comuns.Como alternativa, usuários mal-intencionados podem tentar travar o seu servidor.

IIS lhe possibilita priorizar aplicativos,o que significa limitar o número de solicitações que ele servirá.Você poderá negar o acesso a usuários ou endereços IP conhecidos por serem mal-intencionados.Manter o seus aplicativos online é uma questão de executar um código robusto.Você deve testar o aplicativo completamente e responder apropriadamente às condições de erro sempre que possível.

Elevação de Privilégio

Um ataque de elevação de privilégio consiste em usar meios mal-intencionados para obter mais permissões do que aquelas normalmente atribuídas.Por exemplo, em um ataue de elevação de privilégio bem-sucedido, um usuário mal-intencionado tenta obter privilégios administrativos no seu servidor Web, dando a si mesmo acesso a todos os dados do servidor, bem como o controle sobre os recursos do servidor.

Para ajudar a proteger contra elevação de privilégio, execute o aplicativo, se possível, em um contexto com menos privilégios.Por exemplo, é recomendável que você não execute aplicativos do ASP.NET como o usuário administrador do Sistema.

Consulte também

Outros recursos

Protegendo sites da Web ASP.NET