Evento: Confraria 0day 2015
Data: 24/03/2015
Palestrante: Lenon Leite
Quando esta desenvolvendo, desde o iniciante ao expert, se você não sabe não lembra, qual é a primeira ideia que vem a cabeça?!
O novo pai dos burros, mas quem é o pai dos burros nos novos tempos, antes as casas tinham enciclopédias, existia a profissão de vendedor de enciclopédia, hoje em dia é o google, apesar de ter muitos outros buscadores o google ainda domina.
E se eu disser e mostrar a vocês que muito ensinamento voltado para o desenvolvimento vem com falha de segurança. E eu digo tutorias de sites conhecidos e famosos, que por um motivo ou outro deixam de lado um teste de segurança ante de postar, acho q hoje vou arrumar alguns inimigos, mas vou mostrar como nem tudo que eles ensinam estão seguros, pode funcionar perfeitamente mas nem sempre seguro.
Boas práticas de programação com Object Calisthenics
Palestra - Confraria 0day 2015 - Fatos e mitos sobre desenvolvimento seguro
1. Fatos e mitos sobre
desenvolvimento seguro
O que a internet diz...
2. Quem sou...
● Desenvolvedor Web
● Pesquisador e Entusiasta da Segurança da
Informação
● Aszone
● Amazonense...
● Da terra da Mangaba…
● =)
3. Introdução
Quando temos dúvida, onde recorremos ?
Antes enciclopédia, hoje temos
Google/Bing/Yandex/Baidu.
Qual a principal diferença?
Agora as referências também têm equivocos e
erros.
5. Mitos
"Nem tudo que reluz é ouro"
Nem todo site relevante tem verdade plena
"A pressa é inimiga da perfeição"
Rapidez pode ser o seu pior inimigo, com crt+c | crt+v
"As aparências enganam"
Teste nunca é demais, ataque seu código
7. Sql Injection
É Inserção de uma série
de instruções SQL
dentro de uma consulta
(query) para retorno de
qualquer tipo de dados
que não era para ser
retornado.
13. Sql Injection
Segredo do Bypass:
*_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”
Bypass:
“Sele*ct login,senha frofromm tabela_x” =>
“Select login,senha from tabela_x”
15. Fatos
Resultado:
Solução do Sql Injection:
Se for um id:
valide com is_numeric, ou is_bool se for
boleano;
Se o request for uma string:
mysql_real_escape_string();
17. Fatos
● Utilização de frameworks ou cms
● Utilização de padrões de projetos ( DAO )
● Camada de proteção de erros (50*)
● Aplicação de pentest / code review
● Implementação de logs e notificações
● Filtros nas entradas e saídas de dados
● Metodologia de desenvolvimento seguro