co0l 2011 - segurança em sites de compras coletivas: vulnerabilidades, ataques e contra-medidas
DESCRIPTION
Co0L 2011 - Segurança em Sites de Compras Coletivas: Vulnerabilidades, Ataques e Contra-medidas Maio de 2011 em SP http://garoa.net.br/wiki/O_Outro_LadoTRANSCRIPT
The OWASP Foundationhttp://www.owasp.org
Segurança em Sites de Compras Coletivas
Vulnerabilidades, Ataques e Contramedidas
Magno [email protected]
Líder do capítulo OWASP ParaíbaMembro do OWASP Portuguese Language Project
OWASPBRASIL
A work in progress...
Magno Logan?
• Desenvolvedor + Segurança
• Analista da Politec
• Fundador do Capítulo OWASP
Paraíba
• Praticante de Ninjutsu
• DJ nas horas vagas
3
Agenda
• Compras Coletivas?
• Atenção!
• OWASP Top 10
• Vulnerabilidades
• Ataques
• Contramedidas
4
Compras Coletivas
Promoções por tempo limitado
5
6
Reconhece algum?
7
E esses?
8
Atenção!
Número mínimo de compradores
Limite máximo de vendas
Preço “real” maior na promoção
Não compre por impulso!
Leia o regulamento!
Verifique o tempo de duração da oferta
9
OWASP Top 10 (2010)
A1: Falhas de Injeção
A2: Cross-Site Scripting
(XSS)
A3: Falha de Autenticação e
Gerência de Sessões
A4: Referência Direta e
Insegura à Objetos
A5: Cross Site Request Forgery (CSRF)
A6: Falhas de Configuração de Segurança
A7 : Armazenamento com Criptografia
Insegura
A8: Falha de Restrição de
Acesso a URLs
A9: Fraca Proteção na Camada de Transporte
A10: Redirecioname
ntos Não Validados
Vulnerabilidades
11
O grande problema...
• Pequenas (máximo 8 caracteres)
• Sem exigências de segurança
• Senhas de 1 caracter?!
• Não se importam com a
proteção do usuário!
12
13
A2 – Cross Site Scripting (XSS)
Acontece a qualquer momento…• Dados não processados do atacante são enviados para um navegador de um usuário
inocente
Dados brutos…• Armazenados em banco de dados
• Refletidos de entrada da web (formulário, campo oculto, URL, etc…)• Enviado diretamente ao cliente JavaScript
Praticamente toda aplicação web tem este problema!
• Tente isto no seu navegador – javascript:alert(document.cookie)
Impacto Típico• Roubar a sessão do usuário, roubar dados sensíveis, reescrever a página web ou redirecionar usuário para sites de phishing ou malware• Mais severo: Instalar proxy XSS que permita atacante observar e direcionar todo o comportamento do usuário em sites vulneráveis e
forçar o usuário a outros sites
14
15
16
A3 – Falha de Autenticação e Gerência de Sessões
HTTP é um protocolo “stateless” (sem estado)
• Significa que as credenciais deve ser enviadas a cada requisição• Devemos utilizar SSL para tudo que necessite de autenticação
Falhas no controle das sessões• SESSION ID usado para controlar o estado já que o HTTP não faz
• E é tão bom quanto as credenciais para o atacante…• SESSION ID é comumente exposto na rede, no navegador, nos logs, etc
Cuidado com as alternativas!• Mudar minha senha, lembrar minha senha, esqueci minha senha, pergunta secreta, logout,
email, etc…
Impacto Típico• Contas de usuários comprometidas ou sessões de usuários sequestradas
17
A7 – Armazenamento com Criptografia Insegura
Armazenando dados sensíveis de forma insegura
• Falha em identificar todos os dados sensíveis• Falha em identificar todos os locais onde os dados sensíveis são armazenados
• Falha em proteger devidamente estes dados em todos os locais
Impacto Típico
• Atacantes acessam ou modificam informações privadas ou confidenciais• Obtém segredos para usá-los em novos ataques
• Embaraço da empresa, insatisfação dos clientes e perda de confiança• Gastos para limpar o incidente
• Empresas são processadas e/ou multadas
18
A7 – Armazenamento com Criptografia Insegura
Texto planoMD5
SHA-1Email
19
20
21
Criptografar dados pra quê?
22
Depois não vai chorar...
A9 – Fraca Proteção na Camada de Transporte
Transmitindo dados sensíveis de forma insegura
• Falha em identificar todos os dados sensíveis• Falha em identificar todos os locais que estes dados são enviados• Falha em devidamente proteger estes dados em todos os locais
Impacto Típico
• Atacantes acessam ou modificam informações privadas ou confidenciais• Atacantes obtém segredos para usar em ataques futuros
• Embaraço da empresa, insatisfação dos clientes e perda de confiança• Custos de limpar o incidente (forense)
• Empresas são processadas e/ou multadas
24
A9 – Fraca Proteção na Camada de Transporte
• HTTP não é seguro!
• Dados trafegam abertamente na
rede
• Sites dizem utilizar “protocolo
seguro”
• HTTPS não é lento! Porque não usar?
Custom Code
Empregados
ParceirosVítima Externa Backend
Systems
Atacante Externo
1Atacante externo
rouba dados e credenciais
da rede
2 Atacante interno rouba
dados e credenciais da rede interna
Atacante Interno (Insider)
Dados trafegam abertamente na rede...
26
Cadê o protocolo seguro?
27
Único que utiliza?!
Ataques
29
Engenharia Social
• Pessoas são o elo fraco da
segurança
• Utilizar um cupom falso ou já
utilizado
• Estabelecimentos raramente
verificam autenticidade das
informações
• “Teoricamente” não há
consequências!
30
É difícil forjar um desses?
31
• Facilmente realizado em redes sem fio
• Utilizando sniffers ou o Firesheep
• Captura as sessões do usuários
• Imprime os cupons e pronto!
• Sites permitem a mudança no nome do cupom
Captura de Sessões
32
Ainda não usa SSL?
33
Como fazer?
• Firesheep + TamperData
• Escolher um alvo
• Obter o nome do cookie de sessão
• Criar o script para o Firesheep
• Começar a capturar!
34
Modelo de Scriptregister({
name: “Site Alvo",
url: "http://sitealvo.com/login”,
domains: [ “sitealvocom" ],
sessionCookieNames: [ "JSESSIONID" ],
identifyUser: function () {
var resp = this.httpGet(this.siteUrl);
}
});
35
Site Falso
• Criar um site de compra coletiva falso
• Obter as senhas dos usuários
• Testar em outros sites (senhas iguais?)
• Obter os emails dos cadastrados
• Enviar spam ou malware
• Quantos cadastros você tem?
36
Você compraria neste site?
Contramedidas
38
Na hora da compra...
1. Visite o site do estabelecimento
2. Telefone
3. Verifique como funciona a desistência.
4. Conheça a política de privacidade
5. Fique atento à página de pagamento
6. Procure saber o telefone ou o endereço
39
Dicas Simples
• Não salvar os dados do cartão de crédito
• E utilizar um cartão específico (baixo limite)
• Não informar dados pessoais:
• CPF, RG, Data de Nasc, Endereço, Tel
• Não clicar em ofertas recebidas por email
• São facilmente forjáveis!
40
Dicas Técnicas
Desenvolvedores/Compras Coletivas
• Utilizar HTTPS para comunicação
• Realizar a validação de paramêtros
• Armazenar senhas em Hash + Salt
• Realizar testes de invasão e
auditorias
41
Dicas Técnicas
Usuários/Consumidores
• Add-ons Firefox ou Chrome
42
Caso ainda tenha problemas...
43
Projetos Futuros
• Analisar e-commerces que
implementam CaaS (Cashier-as-a-
Service) brasileiros
• PagSeguro, Mercado Pago,
Pagamento Digital
• Estudar Protocolo 3-D Secure
• Verified by Visa e MasterCard
SecureCode
Perguntas?
44
45
Referênciashttp://www.owasp.org/index.php/Top_10_2010-Main
http://www.baixaki.com.br/tecnologia/5995-como-funcionam-os-sites-de-compras-coletivas-e-quais-cuidados-devemos-tomar.htm
http://www.higorjorge.com.br/258/comercio-eletronico-crimes-ciberneticos-e-procedimentos-preventivos
http://miguelalmeida.pt/2010/12/comprar-na-internet-com-seguran%C3%A7a.html
http://safeandsavvy.f-secure.com/2010/09/29/shop-savvy-7-practices-to-shop-safely-online
www.owasp.org
|46
46