Your SlideShare is downloading. ×
0
Apresenta:<br />www.cjr.org.br<br />@CJR_UnB<br />
10 maiores riscos em aplicações Web<br />Leandro Silva dos Santos<br />Thiago Stuckert<br />leandrosantos@inbrax.com<br />...
Open Web Application Security Project (OWASP)<br />Organização sem fins lucrativos.<br />Desenvolve projetos na área de te...
OWASP TOP 10<br />Documento de conscientização.<br />Amplo consenso sobre as falhas de segurança.<br />Link para o projeto...
A1 - Falhas de Injeção<br />OWASP TOP 10<br />5<br />
O que é?<br />Injetar código que modifica a semântica da consulta. <br />Toda entrada é má até que se prove o contrário. <...
Injeção de SQL<br />Structured Query Language (SQL)<br />Inserir SQL em uma entrada de dados.<br />Insert/Update/Delete ou...
Cenário<br />Account: <br />SKU: <br />Account: <br />       SKU: <br />"SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’"<b...
Injeção de SQL às cegas<br />Mensagens  genéricas.<br />Consultas SQL retornam verdadeiro ou falso. <br />101 AND (SELECT ...
Proteção<br />PreparedStatements (Consultas parametrizadas).<br />Stored Procedures.<br />Verificar todos os dados forneci...
Whitelist x Blacklist<br />Blacklist é uma lista de entradas maliciosas. <br />Whitelist é uma lista de entradas válidas.<...
Referências<br />The real dirtyofwhitelist– http://goo.gl/ETxO9<br />OWASP Sqli- http://goo.gl/p0zea<br />OWASP SqliProteç...
A2 - Cross Site Scripting (XSS)<br />OWASP TOP 10<br />13<br />
O que é?<br />14<br /><ul><li>O problema: Entrada fornecida pelo usuário é inserida dinamicamente nas páginas sendo execut...
 Origem do termo.
Existem três tipos de XSS:
Não-Persistente. (Refletido)
Persistente. (Armazenado)
Baseado em DOM (persistente ou não)</li></li></ul><li>Finance<br />Transactions<br />Accounts<br />Administration<br />Com...
Demo<br />XSS persistente. <br />Objetivo: Mostrar o cookie do usuário.<br />Cookie permite o armazenamento da seção.<br /...
Impactos do XSS<br />Sequestro de sessão de usuário.<br />Roubo de dados sensíveis.<br /> Reescrita de página Web.<br />Re...
Proteção<br />Fazer validação dos dados inseridos pelo usuário.<br />Não renderizar dados digitados pelo usuário sem valid...
Referências<br />OWASP XSS: http://goo.gl/OQjw0<br />OWASP DOM Based XSS: http://goo.gl/DRP5n<br />Artigo DOM Based XSS: h...
A3 - Falhas de autenticação e gerenciamento de sessão<br />OWASP TOP 10<br />20<br />
O que é?<br />HTTP é um protocolo stateless.<br />SESSION ID.<br />Logout, gerenciamento da senha e timeouts. <br />Compli...
Cenário<br />Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Com...
Demo<br />A aplicação não implementa o SESSION ID de forma aleatória.<br />O atacante utiliza um ataque força bruta para d...
Proteção<br /><ul><li>Autenticaçãodeveser simples, centralizada e padronizada.
Utilize SSL paraprotegercredenciais e session id`s.</li></ul>Verifique o certificado SSL.<br />Examinetodas as funçõesrela...
Referências<br />OWASP Authentication Cheat_Sheet- http://goo.gl/AVNQ6<br /> ESAPI Authenticator API- http://goo.gl/zHVDk<...
A4 - Referência direta insegura aos objetos <br />OWASP TOP 10<br />26<br />
O que é?<br />Oacessodireto a um objetonão é verificado.<br />Exemplo: <br />http://www.exemplo.com/index.php?permissao=at...
Demo<br /><ul><li>O atacante notaqueseuparametro ‘acct’ é 6065.
Elemodifica o númeropara 6066.
O atacanteacessainformaçõesdaconta de outrousuário.</li></ul>https://www.onlinebank.com/user?acct=6065<br />28<br />
Erros comuns<br />Listar apenas objetos que o usuário possui acesso, sem reforçar uma validação no acesso dos objetos os q...
Proteção<br />Validação de referência direta<br />Verifique se o valor do parâmetro está formatado apropriadamente.<br />V...
Referências<br />ESAPI Access Control API- http://goo.gl/wSB1k<br />Application Security Verification Standard (ASVS)<br /...
A5 - Cross Site Request Forgery (CSRF) <br />OWASP TOP 10<br />32<br />
O que é?<br />Atacante forja uma requisição de um usuário já autenticado.<br />Navegador da vítima é forçado a executar um...
Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bu...
Proteção<br /><ul><li>Requererumasegundaautenticaçãoparafunçõessensíveis (captcha, tabela de senhas, geolocation).</li></u...
Referências<br />Curso sobre CSRF- http://goo.gl/pGOZJ<br />OWASP CSRF Proteção- http://goo.gl/uJ43O<br />OWASP CSRFTester...
A6 - ConFiguraçãoinapropriada de segurança<br />OWASP TOP 10<br />37<br />
O que é?<br />Ocorrequandopáginas do sistemaestãodisponíveisparaseremacessadasporqualquerusuário.<br />Exemplo:<br />O usu...
Proteção<br />Verifique a configuração de todo o sistema, se há versões de bibliotecas desatualizadas.<br />Analise os efe...
Referências<br />OWASP Development Guide: Chapter on Configuration http://goo.gl/6zc5e<br />ASVS requirements area for Sec...
A7 - ArmazenamentoInseguro - Criptografia<br />OWASP TOP 10<br />41<br />
O que é?<br />Armazenar informação sensível de forma insegura.<br />Quais são as informações sensíveis?<br />Aonde armazen...
Impacto Típico<br /><ul><li>Atacantes podem acessar informações sensíveis.
Atacantes extraem informações secretas para utilizar em outros ataques.
Perda de credibilidade da empresa.</li></ul>43<br />
Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bu...
Proteção<br /><ul><li>Identifiquetodosos dados sensíveis.</li></ul>Identifique o lugar aondeos dados serãoarmazenados.<br ...
Referências<br />ESAPI EncryptorAPI - http://goo.gl/y5FI5<br />OWASP Development Guide: Chapter on Cryptography - http://g...
A8 - Falha de restrição de acesso à URL<br />OWASP TOP 10<br />47<br />
O que é?<br />Algumaspáginasnãofazemverificação de acesso.<br />Complemento da vulnerabilidadeA4 - Referência direta inseg...
Cenário<br /><ul><li>Um usuáriocomumloga no sistema e modificandoumaurl de umapágina, consegueacessá-la como se fosse o ad...
http://exemplo.com/informacao/index.php
http://exemplo.com/admin_informacao/index.php</li></ul>49<br />
Proteção<br />Para cada URL:<br />Restrinja o acesso para usuários autenticados (se não for público).<br />Aplique regras ...
Referências<br />OWASP Development Guide: Chapter on Authorization - http://goo.gl/bWfvF<br />OWASP Article on Forced Brow...
A9 - Proteção insuficiente na camada de transporte<br />OWASP TOP 10<br />52<br />
Upcoming SlideShare
Loading in...5
×

CJR Apresenta: OWASP TOP10

1,754

Published on

O CJR Apresenta chega em sua segunda versão, de muitas, e dessa vez trás Thiago Stuckert e Leandro Silva dos Santos, formandos em Ciência da Computação, para falar de um assunto que jamais perderrá sua importância: Segurança na Web.
Nessa palestra, serão apresentados os 10 maiores riscos no desenvolvimento para Web, apontados através do OWASP (Open Web Application Security Project), projeto que a cada 3 anos, realiza esse estudo sobre os riscos na Web.

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Blog de Leandro Silva dos Santos, um dos autores da apresentação http://programe-extjs.blogspot.com/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
1,754
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
62
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "CJR Apresenta: OWASP TOP10"

  1. 1. Apresenta:<br />www.cjr.org.br<br />@CJR_UnB<br />
  2. 2. 10 maiores riscos em aplicações Web<br />Leandro Silva dos Santos<br />Thiago Stuckert<br />leandrosantos@inbrax.com<br />thiago.melo.stuckert@gmail.com.br<br />Novembro - 2010<br />2<br />
  3. 3. Open Web Application Security Project (OWASP)<br />Organização sem fins lucrativos.<br />Desenvolve projetos na área de teste de segurança de aplicações e serviços Web.<br />Site OWASP: http://www.owasp.org/<br />CapítuloBrasília: http://goo.gl/iN9u4<br />3<br />
  4. 4. OWASP TOP 10<br />Documento de conscientização.<br />Amplo consenso sobre as falhas de segurança.<br />Link para o projeto - http://goo.gl/8OAK<br />4<br />
  5. 5. A1 - Falhas de Injeção<br />OWASP TOP 10<br />5<br />
  6. 6. O que é?<br />Injetar código que modifica a semântica da consulta. <br />Toda entrada é má até que se prove o contrário. <br />Falta de validação na entrada.<br />6<br />
  7. 7. Injeção de SQL<br />Structured Query Language (SQL)<br />Inserir SQL em uma entrada de dados.<br />Insert/Update/Delete ou operações administrativas. <br />7<br />
  8. 8. Cenário<br />Account: <br />SKU: <br />Account: <br /> SKU: <br />"SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’"<br />Account Summary<br />Acct:5424-6066-2134-4334<br />Acct:4128-7574-3921-0192<br />Acct:5424-9383-2039-4029<br />Acct:4128-0004-1234-0293<br />DB Table <br /><br />HTTP response <br /><br />HTTP request<br />SQL query<br />Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Databases<br />Legacy Systems<br />Web Services<br />Directories<br />Billing<br />Human Resrcs<br />Application Layer<br />APPLICATIONATTACK<br />Custom Code<br />1. Aplicaçãoapresenta um formuláriopara o usuário.<br />2. Usuárioenviaumaentradamaliciosaatravés do formulário.<br />App Server<br />3. Aplicaçãotransmite a consulta SQL para o BD.<br />Web Server<br />Hardened OS<br />4. BD executa a consulta e retorna o resultadopara a aplicação.<br />Network Layer<br />5. Aplicaçãoapresenta o resultadopara o usuário.<br />Firewall<br />Firewall<br />8<br />
  9. 9. Injeção de SQL às cegas<br />Mensagens genéricas.<br />Consultas SQL retornam verdadeiro ou falso. <br />101 AND (SELECT ASCII(SUBSTR(first_name,1,1)) FROM user_data WHERE userid=15613) =$ --<br />$ = [65, 122] (Todas as letras do alfabeto).<br />Demo: Video<br />9<br />
  10. 10. Proteção<br />PreparedStatements (Consultas parametrizadas).<br />Stored Procedures.<br />Verificar todos os dados fornecidos pelo usuário.<br />Enterprise Security API (ESAPI)<br />Validação no lado do cliente.<br />10<br />
  11. 11. Whitelist x Blacklist<br />Blacklist é uma lista de entradas maliciosas. <br />Whitelist é uma lista de entradas válidas.<br />Whitelist é a mais recomendada.<br />Expressões regulares.<br />11<br />
  12. 12. Referências<br />The real dirtyofwhitelist– http://goo.gl/ETxO9<br />OWASP Sqli- http://goo.gl/p0zea<br />OWASP SqliProteção -http://goo.gl/X8nI<br />OWASP BlindSqli - http://goo.gl/JmnhW<br />OWASP Enterprise Security API-http://goo.gl/uAUq7<br />RsnakeSqliCheat Sheet: http://goo.gl/iXkxg<br />Outra cheat sheet - http://goo.gl/Obdz<br />12<br />
  13. 13. A2 - Cross Site Scripting (XSS)<br />OWASP TOP 10<br />13<br />
  14. 14. O que é?<br />14<br /><ul><li>O problema: Entrada fornecida pelo usuário é inserida dinamicamente nas páginas sendo executada como código pelo navegador.
  15. 15. Origem do termo.
  16. 16. Existem três tipos de XSS:
  17. 17. Não-Persistente. (Refletido)
  18. 18. Persistente. (Armazenado)
  19. 19. Baseado em DOM (persistente ou não)</li></li></ul><li>Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />Cenário Persistente<br />Atacantepreparaumaarmadilha, atualizandoseuperfil<br />1<br />Aplicação com a vulnerabilidade XSS<br />Atacantearmazena um script maliciosoemumapágina Web.<br />Vítimavisita o perfil do atacante<br />2<br />Script roda no navegador da vítima, tendo total acesso ao DOM e cookie.<br />3<br />Script enviasilenciosamentepara o atacante o session cookie da vítima<br />15<br />
  20. 20. Demo<br />XSS persistente. <br />Objetivo: Mostrar o cookie do usuário.<br />Cookie permite o armazenamento da seção.<br />Video<br />16<br />
  21. 21. Impactos do XSS<br />Sequestro de sessão de usuário.<br />Roubo de dados sensíveis.<br /> Reescrita de página Web.<br />Redirecionamento de página para sites falsos e/ou malware.<br />17<br />
  22. 22. Proteção<br />Fazer validação dos dados inseridos pelo usuário.<br />Não renderizar dados digitados pelo usuário sem validação.<br />18<br />
  23. 23. Referências<br />OWASP XSS: http://goo.gl/OQjw0<br />OWASP DOM Based XSS: http://goo.gl/DRP5n<br />Artigo DOM Based XSS: http://goo.gl/A6Yka<br />Rsnake XSS Cheat Sheet: http://goo.gl/oNbL<br />Livro “XSS Attacks: Cross Site Scripting Exploits and Defense” - http://goo.gl/unsrC<br />NoScript: http://goo.gl/HgJ8<br />19<br />
  24. 24. A3 - Falhas de autenticação e gerenciamento de sessão<br />OWASP TOP 10<br />20<br />
  25. 25. O que é?<br />HTTP é um protocolo stateless.<br />SESSION ID.<br />Logout, gerenciamento da senha e timeouts. <br />Complicado de implementar de maneira segura.<br />21<br />
  26. 26. Cenário<br />Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />1<br />Usuário envia credenciais<br />www.boi.com?JSESSIONID=9FA1DB9EA...<br />Páginautilizareescrita de url<br />Ex: Coloca a sessãona URL<br />2<br />3<br />Usuárioclica no link http://www.hacker.comem um fórum<br />Atacantecheca o log de www.hacker.com<br />e encontra o JSESSIONID da vítima<br />4<br />5<br />Atacanteutiliza o JSESSIONID e tomacontrole da conta da vítima<br />22<br />
  27. 27. Demo<br />A aplicação não implementa o SESSION ID de forma aleatória.<br />O atacante utiliza um ataque força bruta para descobrir um SESSION ID válido.<br />Video<br />23<br />
  28. 28. Proteção<br /><ul><li>Autenticaçãodeveser simples, centralizada e padronizada.
  29. 29. Utilize SSL paraprotegercredenciais e session id`s.</li></ul>Verifique o certificado SSL.<br />Examinetodas as funçõesrelacionadas à autenticação.<br /><ul><li>Verifique se o logout realmentedestrói a sessão.</li></ul>24<br />
  30. 30. Referências<br />OWASP Authentication Cheat_Sheet- http://goo.gl/AVNQ6<br /> ESAPI Authenticator API- http://goo.gl/zHVDk<br />Common WeaknessEnumeration (CWE)<br />CWE Entry 287 on Improper Authentication- http://goo.gl/VVKY0<br />25<br />
  31. 31. A4 - Referência direta insegura aos objetos <br />OWASP TOP 10<br />26<br />
  32. 32. O que é?<br />Oacessodireto a um objetonão é verificado.<br />Exemplo: <br />http://www.exemplo.com/index.php?permissao=atendente <br />Modificar ‘permissao’ para ‘admin’.<br />27<br />
  33. 33. Demo<br /><ul><li>O atacante notaqueseuparametro ‘acct’ é 6065.
  34. 34. Elemodifica o númeropara 6066.
  35. 35. O atacanteacessainformaçõesdaconta de outrousuário.</li></ul>https://www.onlinebank.com/user?acct=6065<br />28<br />
  36. 36. Erros comuns<br />Listar apenas objetos que o usuário possui acesso, sem reforçar uma validação no acesso dos objetos os quais ele não possui acesso.<br />Esconder em campos ocultos as referências dos objetos e não reforçar a autorização de acesso.<br /><ul><li>Impacto típico:</li></ul>Acesso a arquivos não autorizados.<br />29<br />
  37. 37. Proteção<br />Validação de referência direta<br />Verifique se o valor do parâmetro está formatado apropriadamente.<br />Verifique se o usuário tem permissão de acesso ao objeto referenciado.<br />Verifique se o usuário possui permissão ao modo de acesso (leitura, escrita, alteração e exclusão).<br />30<br />
  38. 38. Referências<br />ESAPI Access Control API- http://goo.gl/wSB1k<br />Application Security Verification Standard (ASVS)<br />ASVS requirements area for Access Control (V4)- http://goo.gl/wAGr6<br />CWE Entry 639 on Insecure Direct Object References- http://goo.gl/ACOdx<br />CWE Entry 22 on Path Traversal- http://goo.gl/VqXlV<br />31<br />
  39. 39. A5 - Cross Site Request Forgery (CSRF) <br />OWASP TOP 10<br />32<br />
  40. 40. O que é?<br />Atacante forja uma requisição de um usuário já autenticado.<br />Navegador da vítima é forçado a executar uma ação sem seu consentimento. <br />Impactos típicos: acesso a informações sensíveis, modificação de dados da conta.<br />33<br />
  41. 41. Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />Demo<br />Atacantecriaumaarmadilhaem um site ou email<br />1<br />Aplicação com umavulnerabilidade CSRF<br />Escondeemuma tag <img> um ataque contra umaaplicaçãovulnerável<br />Quandologada no site vulnerável, <br />a vítimavisita o site do atacante<br />2<br />3<br />O aplicaçãovulnerávelrecebe a requisiçãolegítima da vítima e executa o comando da requisição<br />A tag <img> carregadapelonavegadorenviaumarequisição GET incluíndo as credenciaispara a aplicaçãovulnerável<br />Video<br />34<br />
  42. 42. Proteção<br /><ul><li>Requererumasegundaautenticaçãoparafunçõessensíveis (captcha, tabela de senhas, geolocation).</li></ul>Adicionar um token secretosensível a requisição.<br /><ul><li>Armazenar um token simples emcadasessão e o armazenaremcadaformulárioou link.</li></ul>35<br />
  43. 43. Referências<br />Curso sobre CSRF- http://goo.gl/pGOZJ<br />OWASP CSRF Proteção- http://goo.gl/uJ43O<br />OWASP CSRFTester-CSRF Testing Tool- http://goo.gl/pq1zS<br />ESAPI HTTPUtilitiesClass with AntiCSRFTokens- http://goo.gl/3Cq0t<br />Evitarataques de CSRF emjava por Lucas Ferreira- http://goo.gl/AjrDv<br />36<br />
  44. 44. A6 - ConFiguraçãoinapropriada de segurança<br />OWASP TOP 10<br />37<br />
  45. 45. O que é?<br />Ocorrequandopáginas do sistemaestãodisponíveisparaseremacessadasporqualquerusuário.<br />Exemplo:<br />O usuáriotentaacessarurlspadrões de páginas de configuração.<br />http://exemplo.com/config<br />38<br />
  46. 46. Proteção<br />Verifique a configuração de todo o sistema, se há versões de bibliotecas desatualizadas.<br />Analise os efeitos dos patches inseridos no seu ambiente.<br />39<br />
  47. 47. Referências<br />OWASP Development Guide: Chapter on Configuration http://goo.gl/6zc5e<br />ASVS requirements area for Security Configuration (V12) http://goo.gl/wAGr6<br />CWE Entry 2 on Environmental Security Flaws http://goo.gl/53vEl<br />CIS Security ConfigurationGuides/Benchmarks http://goo.gl/vC73u<br />40<br />
  48. 48. A7 - ArmazenamentoInseguro - Criptografia<br />OWASP TOP 10<br />41<br />
  49. 49. O que é?<br />Armazenar informação sensível de forma insegura.<br />Quais são as informações sensíveis?<br />Aonde armazená-las?<br />Estão protegidas em todos os lugares? <br />Conhecer as premissas de segurança do protocolo.<br />42<br />
  50. 50. Impacto Típico<br /><ul><li>Atacantes podem acessar informações sensíveis.
  51. 51. Atacantes extraem informações secretas para utilizar em outros ataques.
  52. 52. Perda de credibilidade da empresa.</li></ul>43<br />
  53. 53. Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />Cenário<br />Vítimaentra com o número do cartão de créditoem um formulário<br />1<br />Log files<br />Um desenvolvedormaliciosorouba o número de várioscartões de crédito<br />4<br />2<br />Ocorre um erronaaplicação e o número do cartão de crédito do<br />usuário é armazenado no log<br />3<br />Os logs sãoacessíveispelosdesenvolvedores da aplicaçãoporpropósitos de depuração de erros<br />44<br />
  54. 54. Proteção<br /><ul><li>Identifiquetodosos dados sensíveis.</li></ul>Identifique o lugar aondeos dados serãoarmazenados.<br />Use algoritmos fortes e bemconhecidos.<br />Gerencie corretamente as chaves.<br />45<br />
  55. 55. Referências<br />ESAPI EncryptorAPI - http://goo.gl/y5FI5<br />OWASP Development Guide: Chapter on Cryptography - http://goo.gl/0SaiU<br />OWASP CodeReviewGuide: ChapteronCryptography - http://goo.gl/KdBys<br />CWE Entry 310 on Cryptographic Issues - http://goo.gl/QRO2E<br />46<br />
  56. 56. A8 - Falha de restrição de acesso à URL<br />OWASP TOP 10<br />47<br />
  57. 57. O que é?<br />Algumaspáginasnãofazemverificação de acesso.<br />Complemento da vulnerabilidadeA4 - Referência direta insegura aos objetos <br />48<br />
  58. 58. Cenário<br /><ul><li>Um usuáriocomumloga no sistema e modificandoumaurl de umapágina, consegueacessá-la como se fosse o administrador.
  59. 59. http://exemplo.com/informacao/index.php
  60. 60. http://exemplo.com/admin_informacao/index.php</li></ul>49<br />
  61. 61. Proteção<br />Para cada URL:<br />Restrinja o acesso para usuários autenticados (se não for público).<br />Aplique regras baseadas em permissões.<br />Desabilite o acesso de usuários não autenticados a páginas que contenham logs, configurações e outros.<br />50<br />
  62. 62. Referências<br />OWASP Development Guide: Chapter on Authorization - http://goo.gl/bWfvF<br />OWASP Article on Forced Browsing - http://goo.gl/I7jNs<br />CWE Entry 285 on Improper Access Control (Authorization) - http://goo.gl/ZmcFO<br />51<br />
  63. 63. A9 - Proteção insuficiente na camada de transporte<br />OWASP TOP 10<br />52<br />
  64. 64. O que é?<br />Transmissão de dados sensíveis de forma insegura.<br />Firesheep<br />53<br />
  65. 65. Demo<br />Parceiro de negócio<br />Vítimaexterna<br />Backend Systems<br />Custom Code<br />Empregados<br />2<br />1<br />Um atacante externo rouba credenciais e dados da rede externa<br />Um atacanteinternoroubacredenciais e dados da redeinterna<br />Atacanteexterno<br />Atacante interno<br />Video<br />54<br />
  66. 66. Proteção<br />Usar SSL/TLS emtodas as conexões com dados sensíveis.<br />Assinarmensagens antes de transmiti-las.<br />Gerenciarchavescorretamente.<br />Verificarcertificados SSL antes de usá-los.<br />(origem, autoassinados)<br />55<br />
  67. 67. Referências<br />Firesheep - http://goo.gl/yEcU<br />Blacksheep- http://goo.gl/3dagf<br />HTTPS Everywhere - http://goo.gl/fsKV<br />OWASP ProteçãonaCamada de Transporte - http://goo.gl/McooF<br />56<br />
  68. 68. A10 - encaminhamento e redirecionamento sem validação<br />OWASP TOP 10<br />57<br />
  69. 69. Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />Redirecionamento sem validação<br />1<br />Atacanteenvia um email parasuavítima<br />From: ServiçosinternosSubject: Suarestituição de impostosNossosregistrosmostramque o senhorpossuiimpostos a restituir, por favor clique aqui.<br />3<br />A aplicaçãoredireciona a vítima<br />A vítimaclica e o endereçopossue um parâmetrosemvalidação<br />2<br />A requisiçãoenviapara o site vulnerável o parâmetro,semservalidado. Redirecionando a vítimapara o site do atacante.<br />Evil Site<br />4<br />Evil site instala um malware navítima<br />http://www.irs.gov/taxrefund/claim.jsp?year=2006&… &dest=www.evilsite.com<br />58<br />
  70. 70. Encaminhamento sem validação<br />1<br />O atacanteenvia um ataqueparaumapáginavulnerável<br />A páginarequisitadapossuiacesso a umaárearestrita. E o atacanteconseguiserencaminhadoparaestapágina, burlando o controle de acesso.<br /> public void sensitiveMethod( HttpServletRequest request, HttpServletResponse response) {<br /> try {<br /> // Do sensitive stuff here.<br /> ...<br />}<br />catch ( ...<br />A aplicaçãoautoriza a requisição<br />2<br />Filtro<br />3<br />Falha a autorização do encaminhamento e o atacanteburla o controle de acesso.<br /> public void doPost( HttpServletRequest request, HttpServletResponse response) {<br /> try {<br />String target = request.getParameter( "dest" ) );<br />...<br />request.getRequestDispatcher( target ).forward(request, response);<br />}<br />catch ( ...<br />59<br />
  71. 71. Proteção<br />Use encaminhamento e redirecionamento, somente quando necessário.<br />Caso use, não permita que o usuário defina destino na URL.<br />Valide cada parâmetro para garantir sua corretude e permissão de acesso.<br />60<br />
  72. 72. Referências<br />OWASP Article on Open Redirects -http://goo.gl/vEAKE<br />ESAPI SecurityWrapperResponsesendRedirect() method - http://goo.gl/UzsA9<br />CWE Entry 601 on Open Redirects - http://goo.gl/z93EU<br />WASC Article on URL Redirector Abuse - http://goo.gl/tshz9<br />61<br />
  73. 73. 2007 x 2010<br />=<br />=<br />+<br />=<br />+<br />-<br />-<br />62<br />
  74. 74. Perguntas?<br />Obrigado!<br />leandrosantos@inbrax.com<br />thiago.melo.stuckert@gmail.com.br<br />Apoio:<br />63<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×