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

28
Hackeando as principais dicas de desenvolvimento seguro. Nem tudo o que reluz é ouro.

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

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

Hackeando as principais dicas de desenvolvimento

seguro.

Nem tudo o que reluz é ouro.

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

Quem somos?!Thiago DiebLenon Leite

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

ASZone?! http://www.aszone.com.br

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

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á.

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

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 ?

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

Hacking VS DesenvolvimentoQuem conhece?

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

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”

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

Hacking VS Desenvolvimento

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

OWASP - Top 10A1 - 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

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

Sql Injection

“Ataque que proporciona o invasor inserir ou manipular consultas SQL`s utilizadas por uma aplicação”

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

Sql Injection

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

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 ….

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

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”

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

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.

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

File Upload

“Vulnerabilidade que permite efetuar upload de algum arquivo, no qual o sistema não está preparado.”

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

File Upload

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

File UploadArtigos 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 ….

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

File Upload

Segredo:http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-arquivos-via-php.html#rmclSimplesmente não valida nada, e ainda diz pra usar 777 na pasta.

http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivosif (!(eregi(".php$", $_FILES[arquivo][name]))) {Esqueceu que apache interpreta, .php3, .php5

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

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.

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

Local File Download / Disclosure

“É a vulnerabilidade que possibilita a apresentação ou o download de arquivos, independente da linguagem: php, asp, java, etc”

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

Local File Download / Disclosure

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

Local File Download / DisclosureArtigos 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 ….

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

Local File Download / Disclosure

Segredo:https://www.developphp.com/video/PHP/Force-File-Download-Dialog-In-Browser-TutorialAlteramos o html do hidden inserindo “../” e o arquivo que queremos.

http://www.devmedia.com.br/forcar-download-de-arquivos-com-php/17097Realmente valida php, mas esquecem que existe arquivos de configurações em ini,yml,inc.

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

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.

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

Desenvolvimento Seguro

Microsoft SDL OpenSAMMOWASP

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

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;

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

http://www.aszone.com.br

@ThiagoDieb@LenonLeite