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>

Desenvolvimento web seguro para leigos

  • 1.
    Desenvolvimento web seguro PedroJosé <pjneto@gmail.com>
  • 2.
    Roteiro ▫ Quem sou ▫Por que desenvolver código seguro? ▫ Onde estamos? ▫ O que eles sabem? ▫ O que posso fazer? ▫ Saiba mais!
  • 3.
    Quem sou? ▫ PedroJosé ▫ 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
  • 4.
    Por que desenvolvercódigo seguro? ▫ Quanto vale seu negócio? ▫ Quanto vale os dados de seus clientes? ▫ Valorização do profissional?
  • 5.
    Onde estamos? ▫ WEB2.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?
  • 6.
    O que elessabem? ▫ Spoofing ▫ Tampering ▫ Cross-Site Scripting (XSS) ▫ SQL Injection ▫ Cookie Manipulation ▫ Path Transversal ▫ Error Management ▫ File Upload ▫ Code Execution ▫ Configuration Vulnerabilities ▫ Weak encryption
  • 7.
    O que possofazer? ▫ Spoofing:  Definição – “falsificação” ! ▫ Crítica aos dados ▫ Captchas
  • 8.
    O que possofazer? ▫ 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
  • 9.
    O que possofazer? ▫ 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
  • 10.
    O que possofazer? ▫ 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)
  • 11.
    O que possofazer? ▫ 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
  • 12.
    O que possofazer? ▫ 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
  • 13.
    O que possofazer? ▫ 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 :/
  • 14.
    O que possofazer? ▫ 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
  • 15.
    O que possofazer? ▫ 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()
  • 16.
    O que possofazer? ▫ 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!!
  • 17.
    O que possofazer? ▫ Política de troca de senhas ▫ Força das senhas ▫ ACLs em nosso sistemas ▫ Logs e Auditoria ▫ Softwares livres X Minha segurança
  • 18.
    O que possofazer? ▫ Esteja Atualizado!! ▫ Use ferramentas para testar seu código  w3af  Acunetix  Pangolin  Hntool  GreenSQL  Samurai (distro live CD)
  • 19.
    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
  • 20.
  • 21.
  • 22.