Hackeando as
principais dicas de
desenvolvimento
seguro.
Nem tudo o que reluz é ouro.
Quem somos?!
Thiago DiebLenon Leite
ASZone?! http://www.aszone.com.br
Certezas
● Sistemas a prova de balas não existe.
● O sucesso do ataque só existe se o outro lado falhar.
● Sempre falhamos...
Incertezas
● Meu sistema será atacado ?
● Estou realmente seguro ?
● Escrevi o código da forma certa ?
● Como ele invadiu ...
Hacking VS Desenvolvimento
Quem conhece?
Hacking VS Desenvolvimento
● Robin-Seggelmann - Desenvolvedor do Opennssl.
● Responsável pelo HeartBleed, desde 2011.
● Re...
Hacking VS Desenvolvimento
Falha
2412 /* Read type and payload length
first */
2413 hbtype = *p++;
2414 n2s(p, payload);
2...
Hacking VS Desenvolvimento
OWASP - Top 10
A1 - Injection
A2 - Broken Authentication and Session Management
A3 - Cross-Site Scripting (XSS)
A4 - Insec...
Sql Injection
“Ataque que proporciona o
invasor inserir ou manipular
consultas SQL`s utilizadas por
uma aplicação”
Sql Injection
Sql Injection
Artigos relevantes de como evitar sql injection.
Será mesmo ?
● http://phpbrasil.com/artigo/v5Ejt4VOld2r/ant...
Sql Injection
Segredo:
*_replace => Age na identificação de algum item setado e altera por outro
parametro que desejar.
Ex...
Sql Injection
Conclusão
● Sempre aplique validação nas entradas de dados, exemplo:
○ Inteiros - valide como inteiro
○ Stri...
File Upload
“Vulnerabilidade que permite
efetuar upload de algum
arquivo, no qual o sistema
não está preparado.”
File Upload
File Upload
Artigos relevantes de como evitar file upload.
Será mesmo ?
● http://www.uolhost.com.br/faq/hospedagem/como-fa...
File Upload
Segredo:
http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-arquivos-
via-php.html#rmcl
Simplesme...
File Upload
Conclusões:
● Ajustar as configurações dos serviços WEB;
● IIS merece atenção;
● Não confie apenas no mimetype...
Local File Download / Disclosure
“É a vulnerabilidade que possibilita
a apresentação ou o download de
arquivos, independen...
Local File Download / Disclosure
Local File Download / Disclosure
Artigos relevantes sobre o tema.
Será mesmo ?
● https://www.developphp.com/video/PHP/Forc...
Local File Download / Disclosure
Segredo:
https://www.developphp.com/video/PHP/Force-File-Download-
Dialog-In-Browser-Tuto...
Local File Download / Disclosure
Conclusões:
● Validação do lado do Servidor
● Crie filtros por "whitelist".
● Defina prev...
Desenvolvimento Seguro
Microsoft SDL OpenSAMMOWASP
Conclusão
● Segurança não é uma coisa e sim um estado.
● Segurança em primeiro plano, ela pode acabar detonar sua imagem
●...
http://www.aszone.com.br
@ThiagoDieb
@LenonLeite
Próximos SlideShares
Carregando em…5
×

Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de desenvolvimento seguro

272 visualizações

Publicada em

Quando se está desenvolvendo, desde do Junior ao Sênior, se você não sabe, não lembra, então qual é a primeira ideia que lhe vem a cabeça?!
Os novos detentores do conhecimento, também denominados, buscados da internet possibilitam uma enorme quantidade de acesso a informações.
Diante disso, podemos afirmar que muito destes informações não estão corretas por completo, especificamente voltadas para o desenvolvimento de software.
Temos diversos exemplos, como tutorias de sites conhecidos e famosos, que por um motivo ou outro deixam de lado um teste de segurança ante de postar, pois eles ensinam aplicar uma camada de segurança que muitas vezes não fazem o que realmente pretendem.
Nosso objetivo é expor quais são as falhas, as principais recomendações de correção propostas nos diversos sites, e provar que sua grande maioria não estão totalmente corretos.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de desenvolvimento seguro

  1. 1. Hackeando as principais dicas de desenvolvimento seguro. Nem tudo o que reluz é ouro.
  2. 2. Quem somos?! Thiago DiebLenon Leite
  3. 3. ASZone?! http://www.aszone.com.br
  4. 4. Certezas ● Sistemas a prova de balas não existe. ● O sucesso do ataque só existe se o outro lado falhar. ● Sempre falhamos. ● Que ainda será atacado. ● Um dia a morte chegará.
  5. 5. Incertezas ● Meu sistema será atacado ? ● Estou realmente seguro ? ● Escrevi o código da forma certa ? ● Como ele invadiu ? ● Como ele invadiu de novo ? ● ET existe mesmo ?
  6. 6. Hacking VS Desenvolvimento Quem conhece?
  7. 7. Hacking VS Desenvolvimento ● Robin-Seggelmann - Desenvolvedor do Opennssl. ● Responsável pelo HeartBleed, desde 2011. ● Revisor - Dr Stephen Henson, até então não deu sinal. “em uma das novas funcionalidades, infelizmente, eu me esqueci de validar uma variável contendo um comprimento”
  8. 8. Hacking VS Desenvolvimento Falha 2412 /* Read type and payload length first */ 2413 hbtype = *p++; 2414 n2s(p, payload); 2415 pl = p; Correção + /* Read type and payload length first */ + if (1 + 2 + 16 > s->s3->rrec.length) + return 0; /* silently discard */ + hbtype = *p++; + n2s(p, payload); + if (1 + 2 + payload + 16 > s->s3- >rrec.length) + return 0; /* silently discard per RFC 6520 sec. 4 */ + pl = p; +
  9. 9. Hacking VS Desenvolvimento
  10. 10. OWASP - Top 10 A1 - Injection A2 - Broken Authentication and Session Management A3 - Cross-Site Scripting (XSS) A4 - Insecure Direct Object References A5 - Security Misconfiguration A6 - Sensitive Data Exposure A7 - Missing Function Level Access Control A8 - Cross-Site Request Forgery (CSRF) A9 - Using Components with Known Vulnerabilities A10 - Unvalidated Redirects and Forwards
  11. 11. Sql Injection “Ataque que proporciona o invasor inserir ou manipular consultas SQL`s utilizadas por uma aplicação”
  12. 12. Sql Injection
  13. 13. Sql Injection Artigos relevantes de como evitar sql injection. Será mesmo ? ● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global ● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja- sua-aplicacao …. Hackeando dicas ….
  14. 14. Sql Injection Segredo: *_replace => Age na identificação de algum item setado e altera por outro parametro que desejar. Exemplo: “Select login,senha from tabela_x” => “login,senha tabela_x” $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|*|--|)/"), "" ,$sql); Bypass: “Sele*ct login,senha frofromm tabela_x” => “Select login,senha from tabela_x”
  15. 15. Sql Injection Conclusão ● Sempre aplique validação nas entradas de dados, exemplo: ○ Inteiros - valide como inteiro ○ Strings - exclua as aspas ○ true, false - converta para bollean ● Utilize camada de abstração de dados (ORM). ● Recurso a Prepared Statements.
  16. 16. File Upload “Vulnerabilidade que permite efetuar upload de algum arquivo, no qual o sistema não está preparado.”
  17. 17. File Upload
  18. 18. File Upload Artigos relevantes de como evitar file upload. Será mesmo ? ● http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de- arquivos-via-php.html#rmcl ● http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos …. Hackeando dicas ….
  19. 19. File Upload Segredo: http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-arquivos- via-php.html#rmcl Simplesmente não valida nada, e ainda diz pra usar 777 na pasta. http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos if (!(eregi(".php$", $_FILES[arquivo][name]))) { Esqueceu que apache interpreta, .php3, .php5
  20. 20. File Upload Conclusões: ● Ajustar as configurações dos serviços WEB; ● IIS merece atenção; ● Não confie apenas no mimetype ou extensão; ● Atenção a permissões de pastas, arquivos e usuários; ● Monitoramento constante; ● Trabalhe com aplicações em ambientes segregados; ● Verifique todas possíbilidades do white ou blacklist da função.
  21. 21. Local File Download / Disclosure “É a vulnerabilidade que possibilita a apresentação ou o download de arquivos, independente da linguagem: php, asp, java, etc”
  22. 22. Local File Download / Disclosure
  23. 23. Local File Download / Disclosure Artigos relevantes sobre o tema. Será mesmo ? ● https://www.developphp.com/video/PHP/Force-File-Download- Dialog-In-Browser-Tutorial ● http://www.devmedia.com.br/forcar-download-de-arquivos- com-php/17097 …. Hackeando dicas ….
  24. 24. Local File Download / Disclosure Segredo: https://www.developphp.com/video/PHP/Force-File-Download- Dialog-In-Browser-Tutorial Alteramos o html do hidden inserindo “../” e o arquivo que queremos. http://www.devmedia.com.br/forcar-download-de-arquivos- com-php/17097 Realmente valida php, mas esquecem que existe arquivos de configurações em ini,yml,inc.
  25. 25. Local File Download / Disclosure Conclusões: ● Validação do lado do Servidor ● Crie filtros por "whitelist". ● Defina previamente o caminho das pastas. ● Não permita navegação - “../” ● Validação por registro na base de dados.
  26. 26. Desenvolvimento Seguro Microsoft SDL OpenSAMMOWASP
  27. 27. Conclusão ● Segurança não é uma coisa e sim um estado. ● Segurança em primeiro plano, ela pode acabar detonar sua imagem ● Pense como hacker, pense diferente, ataque a si próprio; ● Monitore seus sistemas; ● Busque utilizer diretrizes de desenvolvimento seguro; ● A equipe de Infraestrutura não é seu inimigo, confie neles. ● Nunca esqueça de fazer "Code review" e "Par programming"; ● Use como regra: Pentest em cada ciclo de desenvolvimento; ● Infraestrutura voltada para segurança; ● Analise logs e movimentações estranhas; ● Mantenha informado e atualizado sempre sobre segurança;
  28. 28. http://www.aszone.com.br @ThiagoDieb @LenonLeite

×