Desenvolvimento web seguro para leigos

22
Desenvolvimento web seguro Pedro José <[email protected]>

Transcript of Desenvolvimento web seguro para leigos

Page 1: Desenvolvimento web seguro para leigos

Desenvolvimento web seguro

Pedro José <[email protected]>

Page 2: Desenvolvimento web seguro para leigos

Roteiro

▫ Quem sou

▫ Por que desenvolver código seguro?

▫ Onde estamos?

▫ O que eles sabem?

▫ O que posso fazer?

▫ Saiba mais!

Page 3: Desenvolvimento web seguro para leigos

Quem sou?

▫ Pedro José

▫ Técnico em Desenvolvimento de Sistemas

▫ Graduando em ciências da computação

▫ Analista de sistemas na Moobi

▫ Técnico programador no Tribunal de Justiça/SE

Page 4: Desenvolvimento web seguro para leigos

Por que desenvolver código seguro?

▫ Quanto vale seu negócio?

▫ Quanto vale os dados de seus clientes?

▫ Valorização do profissional?

Page 5: Desenvolvimento web seguro para leigos

Onde estamos?

▫ WEB 2.0? E qual versão da sua segurança?

▫ Qualquer pessoa pode ser um “programador web”

▫ Por que não me falaram sobre desenvolvimento seguro?

Page 6: Desenvolvimento web seguro para leigos

O que eles sabem?

▫ Spoofing ▫ Tampering ▫ Cross-Site Scripting (XSS) ▫ SQL Injection ▫ Cookie Manipulation ▫ Path Transversal ▫ Error Management ▫ File Upload ▫ Code Execution ▫ Configuration Vulnerabilities ▫ Weak encryption

Page 7: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Spoofing:

Definição – “falsificação” ! ▫ Crítica aos dados

▫ Captchas

Page 8: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Data Tampering:

Definição – manipulação dos parâmetros na troca de dados entre usuário e aplicação!

▫ Crítica aos dados

▫ Validação de Permissões

Page 9: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Cross-Site Scripting (XSS):

Definição – injeção de tags HTML e Javascript ▫ Crítica na entrada dos dados

▫ Conversão de caracteres

▫ Formatação na saída dos dados

▫ Utilização de black-lists

Page 10: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ SQL Injection:

Definição – injeção de strings nas instruções SQL ▫ Crítica na entrada dos dados

▫ Utilização de consultas parametrizadas

▫ Stored procedures

▫ Firewall para bancos de dados(green sql)

Page 11: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Cookie Manipulation:

Definição – manipulação dos dados armazenados no cookie(tampering!!)

▫ Evitar armazenamento de dados no cookie

▫ Tratamento das informações armazenadas

▫ Utilização de criptografia

Page 12: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Path Transversal:

Definição – descoberta de informações no sistema de arquivos do servidor através da aplicação

▫ Crítica na entrada dos dados

▫ Validação de caracteres

Page 13: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ File Upload:

Definição – vulnerabilidades relacionadas ao upload de arquivos em nossos sites/sistema.

▫ Crítica na extensão dos arquivos

▫ Validação de conteúdo

▫ Validação de caracteres(nome do arquivo)

▫ Internet Explorer 7 :/

Page 14: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Error Management:

Definição – falhas no gerenciamento dos erros na aplicação web.

▫ Exibição de erros desativada em ambientes de produção

▫ Log e monitoramento dos logs para conhecer comportamento da aplicação e possíveis atacantes

Page 15: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Code Execution:

Definição – execução de instruções a parti de códigos injetados na aplicação

▫ Cuidado com a utilização de funções que executem código nativo. Ex: eval(), system(), exec(), shell_exec()

▫ Cuidado com a utilização de funções inseguras nas suas bases de dados. Ex: load_file(), xp_cmdshell()

Page 16: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Configuration Management:

Definição – erros relacionados a configuração de seu servidor/aplicação

▫ Desabilitar exibição de erros

▫ Alterar configurações padrões dos servidores

▫ Utilizar conexões SSL

▫ Weak Encription:

Definição – criptografia fraca ▫ MD5 está morto!!

Page 17: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Política de troca de senhas

▫ Força das senhas

▫ ACLs em nosso sistemas

▫ Logs e Auditoria

▫ Softwares livres X Minha segurança

Page 18: Desenvolvimento web seguro para leigos

O que posso fazer?

▫ Esteja Atualizado!!

▫ Use ferramentas para testar seu código

w3af

Acunetix

Pangolin

Hntool

GreenSQL

Samurai (distro live CD)

Page 20: Desenvolvimento web seguro para leigos

Saiba mais!

▫ Livros

Page 21: Desenvolvimento web seguro para leigos

Saiba mais!

▫ Livros

Page 22: Desenvolvimento web seguro para leigos

Dúvidas?

Pedro José <[email protected]>