Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ENSOL 2011 - OWASP e a Segurança na Web

ENSOL 2011 - OWASP e a Segurança na Web

  • Login to see the comments

ENSOL 2011 - OWASP e a Segurança na Web

  1. 1. The OWASP Foundation http://www.owasp.org OWASP e a Segurança na Web ! ! Magno Logan magno.logan@owasp.org Líder do capítulo OWASP Paraíba Membro do OWASP Portuguese Language Project OWASP Paraíba Será que estamos seguros?
  2. 2. Magno Logan? • Primeiro de tudo curioso! =) • Analista de Sistemas • Especialista em SegInfo • Fundador do Capítulo OWASP Paraíba • Praticante de Ninjutsu • DJ nas horas vagas
  3. 3. Agenda • OWASP? • Segurança na Web • OWASP Top 10 • Ferramentas • Lulz Time! 3
  4. 4. 4 OWASP
 (Open Web Application Security Project)
 ! • Organização internacional que recebe iniciativas de todo o mundo • Comunidade aberta dedicada a possibilitar a criação de aplicações confiáveis • Todas as ferramentas, documentos, fóruns e capítulos são livres e abertos a todos interessados ttp://www.owasp.org/index.php/About_OWASP !
  5. 5. 5 Capítulos Locais! • Centenas Capítulos Locais mas somente por volta de 80 estão ativos • http://www.owasp.org/index.php/Category:Brasil • Brasília • Campinas • Curitiba • Goiania • Paraíba • Porto Alegre • Recife • São Paulo ttp://www.owasp.org/index.php/Category:OWASP_Chapter !
  6. 6. OWASP Paraíba 6 • Formado por desenvolvedores, sys admins, estudantes e demais interessados • Lista de Discussão: bit.ly/owasppb • Twitter: @owasppb
  7. 7. Como funciona? • Reuniões 1x por mês • Aberta ao público! • Discussões de assuntos relacionados à segurança de aplicações • Palestras com profissionais da área • Criações de projetos, ferramentas, artigos, etc... 7
  8. 8. OWASP Top Ten 2010 A1: Injection A2: Cross-Site Scripting (XSS) A3: Broken Authentication and Session Management A4: Insecure Direct Object References A5: Cross Site Request Forgery (CSRF) A6: Security Misconfigurati on A7: Failure to Restrict URL Access A8: Insecure Cryptographic Storage A9: Insufficient Transport Layer Protection A10: Unvalidated Redirects and Forwards http://www.owasp.org/index.php/Top_10
  9. 9. Vulnerabilidades
  10. 10. 10
  11. 11. A1 – Falhas de Injeção 11 Injeção significa… • Enganar uma aplicação a incluir comandos nos dados enviados a um interpretador Interpretadores • Recebem strings e interpretam como comandos • SQL, OS Shell, LDAP, XPath, Hibernate, etc… SQL injection ainda é muito comum! • Muitas aplicações ainda são suscetíveis (falha dos desenvolvedores) • Embora seja normalmente muito simples de evitar Impacto Típico • Normalmente alto. Todo o banco de dados pode ser lido ou modificado. • Pode também permitir acesso à contas de usuário ou até mesmo acesso a nível de SO.
  12. 12. Exemplo de SQL Injection Firewall Hardened OS Web Server App Server Firewall Databases LegacySystems WebServices Directories HumanResrcs Billing Custom Code ATAQUE DE APLICAÇÃO CamadadeRedeCamadadeAplicação Accounts Finance Administration Transactions Communication KnowledgeMgmt E-Commerce Bus.Functions HTTP request ! SQL query! DB Table ! ✇ HTTP response " ✇ "SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’" 1.Aplicação apresenta um formulário para o atacante 2.Atacante envia uma requisição no formulário 3.Aplicação repassa ataque para o banco de dados em uma query SQL Account Summary ! Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293 4. Banco de dados executa query contendo o ataque e envia os resultados para aplicação 5.Aplicação recebe os dados e envia os resultados para o usuário Login: Senha: Login: Senha:
  13. 13. A1 – Evitando Falhas de Injeção 13 ! 1. Não tente sanitizar as entradas no banco sozinho! 2. Use SQL statements parametrizados específicos da linguagem 3. Codifique todas as entradas dos usuários antes de passar para o SGBD • Sempre execute validação de entrada do tipo ‘white list’ em todas as informações fornecidas pelo usuário • Sempre minimize os privilégios do banco de dados para reduzir o impacto de uma falha
  14. 14. bobby-tables.com 14 Dicas de como evitar SQL Injection em diversas linguagens
  15. 15. Casos famosos... • Fevereiro 2011 – HBGary • Março 2011 - MySQL • Março e Maio 2011 – Comodo • Maio 2011 – PBS, Sony, Fox, Infragard, Nintendo, CNN... 15
  16. 16. 16
  17. 17. A2 – Cross Site Scripting (XSS) 17 Acontece a qualquer momento… • Dados não processados do atacante são enviados para um navegador de um usuário inocente Existem 3 tipos de XSS: • Armazenados em banco de dados (Stored) • Refletidos de entrada da web : formulário, campo oculto, URL, etc. (Reflected) • Enviado diretamente ao cliente JavaScript (DOM Based) Praticamente toda aplicação web tem este problema! • Tente isto no seu navegador – javascript:alert(document.cookie) Impacto Típico • Roubo de sessão ou dados sensíveis, defacement ou redirecionar usuário para sites de phishing ou malware • Mais severo: Instalar proxy XSS que permita atacante observar e direcionar todo o comportamento do usuário em sites vulneráveis e forçar o usuário a outros sites
  18. 18. Exemplo de XSS Aplicação com vulnerabilidade de Stored XSS 3 2 Atacante insere um script malicioso na página que armazena dados no servidor 1 Script silenciosamente envia o cookie de sessão da vítima Script roda dentro do navegador da vítima com total acesso ao DOM e cookies Custom Code Accounts Finance Administration Transactions Communication KnowledgeMgmt E-Commerce Bus.Functions Atacante prepara a armadilha – atualizar meu perfil Vítima acessa a página – o perfil do atacante
  19. 19. A2 – Evitando XSS 19 • Eliminar a falha • Não inclua parâmetros de entrada nas páginas de resposta • Defender contra a falha • Recomendação Básica: Codifique todas as informações fornecidas pelos usuário! • Realizar validações de entrada do tipo ‘white list’ em todas as entradas de usuários que forem ser incluídas na página • Para maiores tamanhos de HTML fornecido pelo usuário, utilize o projeto da OWASP AntiSamy (AntiSamy)
  20. 20. A3 – Falha de Autenticação e Gerência de Sessões 20 HTTP é um protocolo “stateless” (sem estado) • Significa que as credenciais deve ser enviadas a cada requisição • Devemos utilizar SSL para tudo que necessite de autenticação Falhas no controle das sessões • SESSION ID usado para controlar o estado já que o HTTP não faz • E é tão bom quanto as credenciais para o atacante… • SESSION ID é comumente exposto na rede, no navegador, nos logs, etc Cuidado com as alternativas! • Mudar minha senha, lembrar minha senha, esqueci minha senha, pergunta secreta, logout, email, etc… Impacto Típico • Contas de usuários comprometidas ou sessões de usuários sequestradas
  21. 21. Exemplo de Falha de Autenticação Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus.Functions 1 Usuário envia suas credenciais 2Site usa URL rewriting (coloca a sessão na URL) 3 Usuário clica no link http:// www.hacker.com em um forum www.twitter.com?JSESSIONID=9FA1DB9EA... 4 Hacker checa os logs de referência em www.hacker.com e encontra o JSESSIONID do usuário 5 Hacker usa JSESSIONID e tem acesso à conta da vítima
  22. 22. A7 – Armazenamento com Criptografia Insegura 22 Armazenando dados sensíveis de forma insegura • Falha em identificar todos os dados sensíveis • Falha em identificar todos os locais onde os dados sensíveis são armazenados • Falha em proteger devidamente estes dados em todos os locais Impacto Típico • Atacantes acessam ou modificam informações privadas ou confidenciais • Obtém segredos para usá-los em novos ataques • Embaraço da empresa, insatisfação dos clientes e perda de confiança • Gastos para limpar o incidente • Empresas são processadas e/ou multadas
  23. 23. Criptografar dados pra quê? 23
  24. 24. Depois não vai chorar... 24
  25. 25. Ferramentas
  26. 26. OWASP ZAP • Ferramenta para testes de invasão em aplicações web (com versão em pt-BR!) • Open source e Multiplataforma • Recomendada para desenvolvedores e profissionais de segurança • Desenvolvido por Simon Bennetts 26
  27. 27. OWASP MANTRA 27 ! ! ! • Framework open source de segurança • Firefox + Add-ons de segurança • Criado por um grupo de Indianos • Se tornou um projeto da OWASP depois
  28. 28. 28
  29. 29. Seu servidor é seguro? 29 Nikto2 – v 2.1.4 • Scanner de Servidores Web • Verifica versões desatualizadas, arquivos perigosos, problemas de configuração • Open Source (GPL) e fácil de usar! • Desenvolvido por Chris Sullo e David Lodge
  30. 30. E a sua aplicação? ! ! ! • Framework de Ataque e Auditoria de Aplicações Web • Procura e explora vulnerabilidades em aplicações web • Open Source e Multiplataforma • Desenvolvido por Andrés Riancho 30
  31. 31. E o seu banco de dados? SQLmap • Ferramenta open source que automatiza o processo de detecção e exploração de falhas SQL Injection e roubo de bancos de dados • Acredita-se que foi uma das ferramentas utilizadas nos ataques do LulzSecBrazil • Chamando desenvolvedores 31
  32. 32. Se protegendo… HnTool • Ferramenta de proteção de servidores Unix • Varre o sistema e verifica vulnerabilidades • Open source e em Python • Desenvolvida por brasileiros, melhor ainda, nordestinos! 32
  33. 33. Lulz Time!
  34. 34. Perguntas? 34
  35. 35. Referências http://www.owasp.org/index.php/Top_10_2010-Main http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20- %202010.pdf http://owasptop10.googlecode.com/files/OWASP_Top_10_- _2010%20Presentation.pptx https://www.owasp.org/index.php/OWASP_Mantra_- _Security_Framework https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project http://www.slideshare.net/stamparm/euro- python-2011miroslavstamparsqlmapsecuritydevelopmentinpython http://w3af.sourceforge.net/ 35
  36. 36. www.owasp.org 36 46

×