development pitfalls
DESCRIPTION
Armadilhas comuns em desenvolvimento...TRANSCRIPT
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®