SLIDE OBRIGATÓRIO
SEG402 Top 10 OWASP de Vulnerabilidades em Aplicações Web Wagner Elias Research  & Development Manager Conviso IT Security
Descrever as principais vulnerabilidades web segundo as pesquisas do OWASP (Open Web Application Security Project) Apontar os recursos que o .Net possuí para evitar que as principais falhas de web sejam exploradas
Projeto OWASP Top Ten 2004 x Top Ten 2007 As dez principais vulnerabilidades web Recursos do .Net para mitigar os riscos Feramentas Microsoft Conclusão
420,000 page views por mês 15,000 downloads por mês 10,000 membros em mailing lists 2,600 usuários do wiki 1,500 atualizações do wiki por mês 89 capítulos no mundo 75 membros individuais 38 Projetos 28 membros corporate/educational 25 novos projetos nascidos do Spring of Code Projeto OWASP
Top Ten 2004 x  Top Ten 2007
Top Ten 2004 x Top Ten 2007 Top Ten 2004 Top Ten 2007 A1 Unvalidated Input A1 Cross Site Scripting (XSS) A2 Broken Access Control A2 Injection Flaws A3 Broken Authentication and Session Management A3 Malicious File Execution A4 Cross Site Scripting A4 Insecure Direct Object Reference A5 Buffer Overflow A5 Cross Site Request Forgery (CSRF) A6 Injection Flaws A6 Information Leakage and Improper Error Handling A7 Improper Error Handling A7 Broken Authentication and Session Management A8 Insecure Storage A8 Insecure Cryptographic Storage A9 Application Denial of Service A9 Insecure Communications A10 Insecure Configuration Management  A10 Failure to Restrict URL Access
Top Ten 2007
As dez principais vulnerabilidades WEB http://www.owasp.org/index.php/Top_10_2007
Aplicações que não validam adequadamente os dados permitem que pessoas mal intencionadas injetem e executem códigos na aplicação A1 Cross Site Scripting (XSS)
Inputs não validados adequadamente permitem que pessoas mal intencionadas executem consultas a dados confidenciais; altere ou inclua dados no banco de dados; execute funções no host através de stored procedures A2 Injection Flaws
Vulnerabilidades na configuração do servidor de aplicação possibilitam que sejam executados arquivos maliciosos no servidor A3 Malicious File Execution
Desenvolvedores possibilitam acesso direto a dados, funções, parâmetros que podem comprometer a segurança da aplicação A4 Insecure Direct Object Reference
Ataque que tem o XSS como vetor e aproveita os direitos do usuário confiável para executar funções indevidas A5 Cross Site Request Forgery
Mensagens de erro sem tratamento podem dar muitas informações sobre a aplicação A6 Information Leakage and Improper Error Handling
Sistemas de autenticação mal feitos e gestão inadequada de sessão possibilitam que pessoas mal intencionadas burlem o sistema de autenticação A7 Broken Authentication and Session Management
Algoritmos de criptografia mal implementados podem armazenar chaves em locais inseguros, possibilitando que uma pessoa mal intencionada tenha acesso a chave A8 Insecure Cryptographic Storage
Protocolos que trafegam informações em texto claro podem ter seus pacotes capturados, possibilitando que pessoas mal intencionadas tenham acesso a dados confidenciais A9 Insecure Communication
Sistema de autenticação mal implementado pode permitir que uma pessoa mal intencionada acesse diretamente URL que seriam de acesso restrito A10 Failure Restrict URL access
Recursos do .Net
Arquivo web.config <configuration>   <system.web>      <customErrors  mode=&quot;on&quot;  defaultRedirect=&quot;paginaErro.aspx&quot; />   </system.web> </configuration>   Off - usa a página padrão para usuários locais e remotos na exibição dos erros.  On - usa a página definida pelo programador para exibir os erros para  usuários locais e remotos.  RemoteOnly - a página de erro é mostrada somente para usuário locais.   Tratando Erros http://support.microsoft.com/kb/815166/pt-br
Utilize o recurso Roles and Membership Autenticação e Regras de acesso http://msdn2.microsoft.com/en-us/library/yh26yfzy.aspx
Estude a possibilidade de substituir o objeto session pelo objeto profile para persistência de dados e informações do usuário Session Management http://msdn2.microsoft.com/pt-br/library/d8b58y5d(VS.80).aspx
Utilize os recursos da Cryptography Application Block Criptografia http://msdn2.microsoft.com/en-us/library/aa480457.aspx
Restrinja o upload de arquivos na aplicação ou trate os arquivos que você deseja, usando a classe FileSystemInfo Upload de Arquivos http://www.codeproject.com/KB/aspnet/krullfilesytembrowsing.aspx
Estude a possibilidade de implementar SSL (Secure Socket Layers) quando as informações tráfegadas na web necessitarem de confidencialidade Comunicação Segura
Nunca confie em input de dados, utilize o método HtmlEncode para mostrar dados que são baseados em inputs do usuário Desabilite Stored Procedures, Functions que não são usadas Use o recurso de Bind Variables para executar queries baseadas em input de dados Utilize stored procedures quando for viável Validação de dados
Ferramentas Microsoft
Threat Modeling http://blogs.msdn.com/threatmodeling/
XSS Detect http://blogs.msdn.com/ace_team/archive/2007/10/22/xssdetect-public-beta-now-available.aspx
Conclusão
Uma aplicação web pode ser a extensão do seu perímetro de rede, por isso deve ser muito bem protegida A plataforma .Net possuí inúmeros recursos para desenvolver aplicações web de forma segura É necessário investir em treinamento e capacitação dos desenvolvedores para desenvolver aplicações mais seguras O OWASP pode lhe ajudar a evitar erros comuns em desenvolvimento de aplicações web Conclusão

OWASP Top 10 e aplicações .Net - Tech-Ed 2007

  • 1.
  • 2.
    SEG402 Top 10OWASP de Vulnerabilidades em Aplicações Web Wagner Elias Research & Development Manager Conviso IT Security
  • 3.
    Descrever as principaisvulnerabilidades web segundo as pesquisas do OWASP (Open Web Application Security Project) Apontar os recursos que o .Net possuí para evitar que as principais falhas de web sejam exploradas
  • 4.
    Projeto OWASP TopTen 2004 x Top Ten 2007 As dez principais vulnerabilidades web Recursos do .Net para mitigar os riscos Feramentas Microsoft Conclusão
  • 5.
    420,000 page viewspor mês 15,000 downloads por mês 10,000 membros em mailing lists 2,600 usuários do wiki 1,500 atualizações do wiki por mês 89 capítulos no mundo 75 membros individuais 38 Projetos 28 membros corporate/educational 25 novos projetos nascidos do Spring of Code Projeto OWASP
  • 6.
    Top Ten 2004x Top Ten 2007
  • 7.
    Top Ten 2004x Top Ten 2007 Top Ten 2004 Top Ten 2007 A1 Unvalidated Input A1 Cross Site Scripting (XSS) A2 Broken Access Control A2 Injection Flaws A3 Broken Authentication and Session Management A3 Malicious File Execution A4 Cross Site Scripting A4 Insecure Direct Object Reference A5 Buffer Overflow A5 Cross Site Request Forgery (CSRF) A6 Injection Flaws A6 Information Leakage and Improper Error Handling A7 Improper Error Handling A7 Broken Authentication and Session Management A8 Insecure Storage A8 Insecure Cryptographic Storage A9 Application Denial of Service A9 Insecure Communications A10 Insecure Configuration Management A10 Failure to Restrict URL Access
  • 8.
  • 9.
    As dez principaisvulnerabilidades WEB http://www.owasp.org/index.php/Top_10_2007
  • 10.
    Aplicações que nãovalidam adequadamente os dados permitem que pessoas mal intencionadas injetem e executem códigos na aplicação A1 Cross Site Scripting (XSS)
  • 11.
    Inputs não validadosadequadamente permitem que pessoas mal intencionadas executem consultas a dados confidenciais; altere ou inclua dados no banco de dados; execute funções no host através de stored procedures A2 Injection Flaws
  • 12.
    Vulnerabilidades na configuraçãodo servidor de aplicação possibilitam que sejam executados arquivos maliciosos no servidor A3 Malicious File Execution
  • 13.
    Desenvolvedores possibilitam acessodireto a dados, funções, parâmetros que podem comprometer a segurança da aplicação A4 Insecure Direct Object Reference
  • 14.
    Ataque que temo XSS como vetor e aproveita os direitos do usuário confiável para executar funções indevidas A5 Cross Site Request Forgery
  • 15.
    Mensagens de errosem tratamento podem dar muitas informações sobre a aplicação A6 Information Leakage and Improper Error Handling
  • 16.
    Sistemas de autenticaçãomal feitos e gestão inadequada de sessão possibilitam que pessoas mal intencionadas burlem o sistema de autenticação A7 Broken Authentication and Session Management
  • 17.
    Algoritmos de criptografiamal implementados podem armazenar chaves em locais inseguros, possibilitando que uma pessoa mal intencionada tenha acesso a chave A8 Insecure Cryptographic Storage
  • 18.
    Protocolos que trafegaminformações em texto claro podem ter seus pacotes capturados, possibilitando que pessoas mal intencionadas tenham acesso a dados confidenciais A9 Insecure Communication
  • 19.
    Sistema de autenticaçãomal implementado pode permitir que uma pessoa mal intencionada acesse diretamente URL que seriam de acesso restrito A10 Failure Restrict URL access
  • 20.
  • 21.
    Arquivo web.config <configuration>  <system.web>      <customErrors mode=&quot;on&quot;  defaultRedirect=&quot;paginaErro.aspx&quot; />   </system.web> </configuration> Off - usa a página padrão para usuários locais e remotos na exibição dos erros. On - usa a página definida pelo programador para exibir os erros para  usuários locais e remotos. RemoteOnly - a página de erro é mostrada somente para usuário locais. Tratando Erros http://support.microsoft.com/kb/815166/pt-br
  • 22.
    Utilize o recursoRoles and Membership Autenticação e Regras de acesso http://msdn2.microsoft.com/en-us/library/yh26yfzy.aspx
  • 23.
    Estude a possibilidadede substituir o objeto session pelo objeto profile para persistência de dados e informações do usuário Session Management http://msdn2.microsoft.com/pt-br/library/d8b58y5d(VS.80).aspx
  • 24.
    Utilize os recursosda Cryptography Application Block Criptografia http://msdn2.microsoft.com/en-us/library/aa480457.aspx
  • 25.
    Restrinja o uploadde arquivos na aplicação ou trate os arquivos que você deseja, usando a classe FileSystemInfo Upload de Arquivos http://www.codeproject.com/KB/aspnet/krullfilesytembrowsing.aspx
  • 26.
    Estude a possibilidadede implementar SSL (Secure Socket Layers) quando as informações tráfegadas na web necessitarem de confidencialidade Comunicação Segura
  • 27.
    Nunca confie eminput de dados, utilize o método HtmlEncode para mostrar dados que são baseados em inputs do usuário Desabilite Stored Procedures, Functions que não são usadas Use o recurso de Bind Variables para executar queries baseadas em input de dados Utilize stored procedures quando for viável Validação de dados
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Uma aplicação webpode ser a extensão do seu perímetro de rede, por isso deve ser muito bem protegida A plataforma .Net possuí inúmeros recursos para desenvolver aplicações web de forma segura É necessário investir em treinamento e capacitação dos desenvolvedores para desenvolver aplicações mais seguras O OWASP pode lhe ajudar a evitar erros comuns em desenvolvimento de aplicações web Conclusão

Notas do Editor

  • #3 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • #5 12/01/09 13:02 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • #7 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • #9 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • #21 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • #29 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • #32 12/01/09 13:02 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.