View
183
Download
2
Category
Preview:
Citation preview
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!
▫ OWASP http://www.owasp.org/index.php/Main_Page
▫ Microsoft http://msdn.microsoft.com/en-us/library/ff649874.aspx
▫ Google Code http://code.google.com/intl/es-ES/edu/security/index.html
Saiba mais!
▫ Livros
Saiba mais!
▫ Livros
Dúvidas?
Pedro José <pjneto@gmail.com>
Recommended