Este artigo foi traduzido por máquina.

Informativos sobre segurança

Melhoria da ASP.NET Security com análise de código do Visual Studio 2010

Sacha Fausto

Quem estiver fazendo ASP.Desenvolvimento líquido provavelmente admite, abertamente ou não, para introduzir ou tropeço em cima um problema de segurança em algum ponto durante sua carreira. Os desenvolvedores muitas vezes são pressionados a fornecer código tão rapidamente quanto possível, e a complexidade da plataforma e grande número de opções de configuração muitas vezes deixa o aplicativo em um Estado de segurança menos desejável. Além disso, os requisitos de configuração para depuração e produção são diferentes, que muitas vezes pode introduzir configurações de depuração na produção, causando uma variedade de problemas.

Ao longo dos anos, o ASP.Plataforma NET tem amadurecido e melhor documentação foi disponibilizada através do MSDN e Comunidade blogs, mas sabendo qual recurso ou definição de configuração para usar com freqüência é problemática. Mesmo com bom conhecimento das funcionalidades de segurança, erros podem acontecer que poderia resultar em vulnerabilidades de segurança em seu aplicativo.

Revisão de código é um processo útil e uma boa maneira de detectar problemas cedo. Ainda assim, nem todo mundo tem o tempo ou orçamento — ou conhecedors pares na mão — para essa revisão.

Desde a introdução da análise de código no Visual Studio 2005, os desenvolvedores puderam analisar automaticamente seu código para ver se ele está em conformidade com uma série de práticas recomendadas que variam de design, durabilidade, desempenho e segurança. Até agora, análise de código tem sido uma ótima ferramenta, mas ainda não focada em fornecer orientações de práticas de segurança recomendadas para ASP.NET — até agora.

Neste artigo apresentarei um novo ASP.Regras de análise de código líquido que podem ser usadas com análise de código do Visual Studio, bem como com o FxCop aplicação independente para melhorar a segurança do seu ASP.NET applications.

Visão geral

Você pode baixar o ASP.Pacote de regras de análise código segurança líquido para Visual Studio 2010 e FxCop versão 10. 0 a partir de go.microsoft.com/?linkid=9750555 de . A instalação contém três novos pacotes de regras:

  • ASP.NET.Segurança: Esta categoria centra-se na segurança melhores práticas relacionadas a como provém propriedades são inicializadas.
  • ASP.NET.MVC.Segurança: Esta categoria concentra-se em segurança melhores práticas relacionadas a como ASP.NET MVC é usado.
  • ASP.NET.Security.Configuration: Esta categoria centra-se na segurança melhores práticas relacionadas a elementos de configuração em arquivos Web. config.

Uma vez instalado o pacote de regras, você pode começar a analisar a segurança do seu aplicativo da Web automaticamente clicando sobre a análise de código executado no Site do botão no menu Build (veja de Figura 1). A análise vai rever cada arquivo página de classe e Web. config de seu aplicativo contra uma série de práticas recomendadas de segurança para ASP.NET.

image: Running Code Analysis on a Sample Web Site

Figura 1 de análise de código em execução em um Site de exemplo

Por exemplo, uma vulnerabilidade de segurança generalizada em aplicações Web é falsificação de solicitação entre sites, que permite a um invasor executar comandos como outro usuário. A atenuação comum para esta vulnerabilidade é usar a propriedade Page. ViewStateUserKey ( bit.ly/cTSHM0 ). Você também pode empregar o AntiForgeryToken em ASP.NET MVC ( bit.ly/ciiQIP ). Ambas as técnicas impedir um ataque de repetição mal-intencionado em seu aplicativo. A análise de código irá certificar-se de que a atenuação apropriada está sendo usada em seu aplicativo.

Um pouco comum de feedback que eu ouvi de desenvolvedores que executa análise de código pela primeira vez é a esmagadora maioria dos avisos retornado (consulte a Figura 2). É fácil se sentir como se estivesse em seu próprio país para descobrir como corrigir todas elas.

Figura 2 do violações são listadas no guia de avisos de lista de erro

Para eliminar alguns dos encargos de cada aviso de fixação, cada regra inclui uma indicação clara de que precisa ser corrigido e como corrigi-lo, juntamente com algumas referências, se você precisar de mais informações antes de aplicar a alteração (veja de Figura 3).

Figura 3 de informações detalhadas na seção de avisos

Análise de código também pode ser configurado para ser executado após cada compilação clicando em site | Configurar análise de código para o site e, em seguida, marcando a opção "Enable Code Analysis na compilação (define a constante CODE_ANALYSIS)" (ver de Figura 4).

Figura 4 do que permita a análise de código durante a compilação

Análise de código com FxCop

O recurso de análise de código só é disponível nas versões Ultimate e Visual Studio Premium. No entanto, você também pode usar a ferramenta de FxCop autônomo para executar ASP.Análise de código NET. O FxCop está disponível como parte do SDK do Windows. A versão 7. 1 do Windows SDK está disponível a partir de bit.ly/dzCizq de .

Ao usar a ferramenta FxCop padrão, um pouco mais de trabalho é necessário para realizar a análise. Vamos levá-lo através das etapas para fazê-lo funcionar.

Normalmente quando você compilar seu projeto da Web, a marcação da página — o código de página não incluído em um arquivo code-behind — não é compilado e permanece intacta na raiz do seu aplicativo da Web. Quando o primeiro usuário solicita a página, a marcação é compilada em conjuntos separados. Isso permite que um site ser atualizável sem a necessidade de tudo ser recompilado. (Para obter detalhes sobre o ASP.NET processo de compilação de página, consulte msdn.microsoft.com/library/ms366723 ).

Porque não todo o código é compilado automaticamente, algum código não é visível durante a análise e problemas de segurança importante poderiam ser desperdiçados. Para certificar-se de que todo o código está disponível durante a análise, você precisa forçar a pré-compilação de todas as páginas. Precompilation pode ser alcançado usando a ferramenta de publicação Web Site, que pode ser iniciada clicando em Build | Web Site público. A ferramenta permite que você configure como o Web site será publicado, e isso é onde precompilation pode ser habilitada. Basta desmarcar a opção "Permitir que este site pré-compilado para ser atualizável" e clique em OK (ver de Figura 5). Isso resultará em um site totalmente compilado pronto para análise.

Figura 5 do Web Site com pré-compilação de publicação

Agora que você tem um site totalmente compilado, desencadear FxCop nele.

ASP.Análise NET requer uma funcionalidade que só está disponível na versão de linha de comando do FxCop, então abra um prompt de comando e navegue para a instalação de FxCop. Isso provavelmente será o seguinte, dependendo se você está executando uma versão de 32 bits ou 64 bits do Windows:

C:\Program Files (x86)\Microsoft FxCop 10.0
  C:\Program Files\Microsoft FxCop 10.0

A pasta FxCop você pode executar FxCopCmd. exe para iniciar a análise de código. Para um ASP.NET Web site que basta usar um comando como este:

fxcopcmd.exe /file:"H:\MSDN\PrecompiledWeb\
    MSDNSampleSite\bin" /rule:
    AspNetConfigurationSecurityRules.dll 
    /rule:AspNetMvcSecurityRules.dll 
    /rule:ASPNetSecurityRules.dll /aspnet /console

Vamos examinar isso para que você compreender as opções que eu estou usando.

A opção /file indica quais assemblies são para ser analisado. Neste exemplo, meus site pré-compilado conjuntos estão sob H:\MSDN\PrecompiledWeb\MSDNSampleSite\bin.

A opção /rule indica quais as regras para usar durante a análise. Para fins de neste exemplo, estou usando apenas três ASP.Regras de segurança de rede: AspNetConfigurationSecurityRules.dll, AspNetMvcSecurityRules.dll e ASPNetSecurityRules.dll.

A opção /aspnet habilita o ASP.Análise de líquidos e a opção /console direciona a saída de análise para a janela de comando. Você pode ver os resultados em de Figura 6. Mais informações sobre o Fxcopcmd e suas diversas opções encontram-se em msdn.microsoft.com/library/bb429474(VS.80) .

image: Running ASP.NET Rules Using Fxcopcmd.exe

Figura 6 com o ASP.NET regras usando o FxCopCmd. exe

Conclusão

A ASP.NET sites mais seguros podem ser uma tarefa difícil, mas a ASP.Regras de análise de código de segurança NET faz uma grande parte do trabalho para você, identificando algumas ameaças significativas. Como você viu neste artigo, o processo é simple e pode ser configurado para ser executado cada vez que você criar, dando-lhe a identificação precoce de problemas.

Eu recomendo Implantando as regras para cada máquina do desenvolvedor e também adicioná-las como parte de um Team Foundation Server ou outra política de check-in do repositório. Isso permite que desenvolvedores individuais verificar seu código em tempo de compilação e também aplicará a diretiva para que nenhum código pode ser verificado que não atende às práticas recomendadas.

Você também pode implementar suas próprias regras de análise de código personalizado. Se você estiver interessado em ir por este caminho, há alguns excelentes informações em um post de blog por Duke Kamstra no Blog de equipe de análise de código ( bit.ly/blpP38 ). Você também pode encontrar um útil passo a passo do processo de Tatham Oddie blog ( bit.ly/5tFrMw ).

Sacha Faust é um desenvolvedor da equipe da plataforma Microsoft Office 365. Você pode acompanhar Fausto em blogs.msdn.com/b/sfaust.

Graças a seguinte especialista técnico para revisão deste artigo: Bryan Sullivan