34
Development Pitfalls 11 de julho de 2014 Apresentação: ®

Development pitfalls

Embed Size (px)

DESCRIPTION

Armadilhas comuns em desenvolvimento...

Citation preview

Page 1: Development pitfalls

Development Pitfalls

11 de julho de 2014

Apresentação:

®

Page 2: Development pitfalls

Development Pitfalls

2/ 34®

Quem sou ?Antonio Costa “Cooler_”

● Experiência de 4 anos em desenvolvimento de sistemas webe web spiders em geral, automações diversas, soluçõesdiversas para problemas em unix...

● Desenvolvedor, pesquisador...● Faço parte do grupo de pesquisa BugSec.● Programador em ASM, C, C++,Common

Lisp(SBCL,Clisp),Perl,PHP,Python...● Trabalho na CONVISO.

https://github.com/CoolerVoid/

http://code.google.com/p/bugsec/

@Cooler_freenode

Page 3: Development pitfalls

Development Pitfalls

3/ 34®

Development Pitfalls

Page 4: Development pitfalls

Development Pitfalls

4/ 34®

Page 5: Development pitfalls

Development Pitfalls

5/ 34®

Versionamento

● CVS● .cvsignore

● GIT● .git/info/exclude● .gitignore

● SVN● .svnignore

Page 6: Development pitfalls

Development Pitfalls

6/ 34®

Qual é o problema ?

● Vazamento de informações

Page 7: Development pitfalls

Development Pitfalls

7/ 34®

Qual é o problema ?

● Atacante pode obter estes arquivos● Arquivos de interesse...

Page 8: Development pitfalls

Development Pitfalls

8/ 34®

Qual é o problema ?

● Lista para gerar captcha ● Obviamente o atacante vai usar a lista● Cada informação acaba sendo útil...

Page 9: Development pitfalls

Development Pitfalls

9/ 34®

● Acessando o arquivo “db_connector.yml”

Qual é o problema ?

Page 10: Development pitfalls

Development Pitfalls

10/ 34®

Qual é o problema ?

● Agora sim... OK!

Page 11: Development pitfalls

Development Pitfalls

11/ 34®

Tubarões em todos os lugares

● Bots,scanners... só procurando uma brecha...

Page 12: Development pitfalls

Development Pitfalls

12/ 34®

SQL-injection

Page 13: Development pitfalls

Development Pitfalls

13/ 34®

Buffer Overflow

Page 14: Development pitfalls

Development Pitfalls

14/ 34®

Senhas

● Dork: extension:yml password database

Page 15: Development pitfalls

Development Pitfalls

15/ 34®

Senhas

● Dork: extension:bak user= password=

Page 16: Development pitfalls

Development Pitfalls

16/ 34®

Difícil de achar ?● Automação

convisoappsec/research_github_hack/

Page 17: Development pitfalls

Development Pitfalls

17/ 34®

Difícil de achar ?

Page 18: Development pitfalls

Development Pitfalls

18/ 34®

Difícil de achar ?

Page 19: Development pitfalls

Development Pitfalls

19/ 34®

● Automação

Page 20: Development pitfalls

Development Pitfalls

20/ 34®

Explorando tudo em massa

Page 21: Development pitfalls

Development Pitfalls

21/ 34®

Dicas para evitar o pior

Page 22: Development pitfalls

Development Pitfalls

22/ 34®

Boas práticas

● Leia documentação● Não use funções “deprecated”● Resolva os “Warnings”● Faça validação de todas as entradas de dados● Procure saber se foi feito “Hardening” no ambiente● Use políticas para forçar complexidade nas senhas● Não deixe a público informações desnecessárias● Use SSL ao transportar dados● Se necessário técnicas anti-tampering● Teste o software de todas as formas possíveis

● Contrate um serviço para Pentest de tempos em tempos...

Page 23: Development pitfalls

Development Pitfalls

23/ 34®

Procure boas práticas... Exemplo para evitar memory leaks

● Em “C”: char *x=(char *)malloc(sizeof(char)*20); ... free(x);

● Em “C++”: int *x=(int *)new int;…

● delete x;

● Use o “Valgrind” para auditar a memória...

Page 24: Development pitfalls

Development Pitfalls

24/ 34®

Exemplo evitar “command injection”

● 10 sprintf(buffer, "/bin/mail %s < /log/mail_loja.txt", input);● 11 ● 12 system(buffer);

Para mitigar faça validação:

● Posix Regex, Pcre... ^([a-zA-Z0-9.-])*([@])([a-z0-9]).([a-z]{2,3})● Black list...● Strncmp()...

● Faça sempre validação...● execv(), execl(), system(), eval()...

Procure boas práticas

Page 25: Development pitfalls

Development Pitfalls

25/ 34®

Validação

Page 26: Development pitfalls

Development Pitfalls

26/ 34®

Validação

' or 2=2 --

Page 27: Development pitfalls

Development Pitfalls

27/ 34®

Validação ● Sanitização

Page 28: Development pitfalls

Development Pitfalls

28/ 34®

Page 29: Development pitfalls

Development Pitfalls

29/ 34®

Conheça a OWASP

● O que é Owasp?

● Open Web Application Security Project (OWASP)

● Uma entidade sem fins lucrativos e de reconhecimento internacional.

● Reúne informações importantes para permitir avaliar riscos de segurança e combater formas de ataques através da internet.

● www.owasp.org

Page 30: Development pitfalls

Development Pitfalls

30/ 34®

Agora tudo OK ?

Page 31: Development pitfalls

Development Pitfalls

31/ 34®

Não falei tudo !

Page 32: Development pitfalls

Development Pitfalls

32/ 34®

● I'm trying to free your mind, Neo. But I can onlyshow you the door. You're the one that has towalk through it.

● “Morpheus - The Matrix”

Page 33: Development pitfalls

Development Pitfalls

33/ 34®

Agradecimentos

● Pelos testes com git:● Victor Ramos “m0nad”

● Pela pesquisa:● Marcos Alvares ● Ulisses Castro● Rodrigo Montoro

● CONVISO

Page 34: Development pitfalls

Development Pitfalls

34/ 34®