Desenvolvimento web seguro para leigos

Post on 09-Jul-2015

180 views 2 download

Transcript of Desenvolvimento web seguro para leigos

Desenvolvimento web seguro

Pedro José <pjneto@gmail.com>

Roteiro

▫ Quem sou

▫ Por que desenvolver código seguro?

▫ Onde estamos?

▫ O que eles sabem?

▫ O que posso fazer?

▫ Saiba mais!

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

Por que desenvolver código seguro?

▫ Quanto vale seu negócio?

▫ Quanto vale os dados de seus clientes?

▫ Valorização do profissional?

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?

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

O que posso fazer?

▫ Spoofing:

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

▫ Captchas

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

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

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)

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

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

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 :/

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

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()

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

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

O que posso fazer?

▫ Esteja Atualizado!!

▫ Use ferramentas para testar seu código

w3af

Acunetix

Pangolin

Hntool

GreenSQL

Samurai (distro live CD)

Saiba mais!

▫ Livros

Saiba mais!

▫ Livros

Dúvidas?

Pedro José <pjneto@gmail.com>