Development pitfalls

Preview:

DESCRIPTION

Armadilhas comuns em desenvolvimento...

Citation preview

Development Pitfalls

11 de julho de 2014

Apresentação:

®

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

Development Pitfalls

3/ 34®

Development Pitfalls

Development Pitfalls

4/ 34®

Development Pitfalls

5/ 34®

Versionamento

● CVS● .cvsignore

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

● SVN● .svnignore

Development Pitfalls

6/ 34®

Qual é o problema ?

● Vazamento de informações

Development Pitfalls

7/ 34®

Qual é o problema ?

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

Development Pitfalls

8/ 34®

Qual é o problema ?

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

Development Pitfalls

9/ 34®

● Acessando o arquivo “db_connector.yml”

Qual é o problema ?

Development Pitfalls

10/ 34®

Qual é o problema ?

● Agora sim... OK!

Development Pitfalls

11/ 34®

Tubarões em todos os lugares

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

Development Pitfalls

12/ 34®

SQL-injection

Development Pitfalls

13/ 34®

Buffer Overflow

Development Pitfalls

14/ 34®

Senhas

● Dork: extension:yml password database

Development Pitfalls

15/ 34®

Senhas

● Dork: extension:bak user= password=

Development Pitfalls

16/ 34®

Difícil de achar ?● Automação

convisoappsec/research_github_hack/

Development Pitfalls

17/ 34®

Difícil de achar ?

Development Pitfalls

18/ 34®

Difícil de achar ?

Development Pitfalls

19/ 34®

● Automação

Development Pitfalls

20/ 34®

Explorando tudo em massa

Development Pitfalls

21/ 34®

Dicas para evitar o pior

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

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

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

Development Pitfalls

25/ 34®

Validação

Development Pitfalls

26/ 34®

Validação

' or 2=2 --

Development Pitfalls

27/ 34®

Validação ● Sanitização

Development Pitfalls

28/ 34®

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

Development Pitfalls

30/ 34®

Agora tudo OK ?

Development Pitfalls

31/ 34®

Não falei tudo !

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”

Development Pitfalls

33/ 34®

Agradecimentos

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

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

● CONVISO

Development Pitfalls

34/ 34®