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_Lado
Co0L 2011 - Segurança em Sites de Compras Coletivas: Vulnerabilidades, Ataques e Contra-medidas
1. The OWASP Foundation
http://www.owasp.org
Segurança em Sites de
Compras Coletivas
Vulnerabilidades, Ataques e Contramedidas
Magno Logan
magno.logan@owasp.org
Líder do capítulo OWASP Paraíba
Membro do OWASP Portuguese Language Project
OWASP
BRASIL
A work in progress...
2. Magno Logan?
• Desenvolvedor + Segurança
• Analista da Politec
• Fundador do Capítulo OWASP Paraíba
• Praticante de Ninjutsu
• DJ nas horas vagas
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
8
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!
11
13. A2 – Cross Site Scripting (XSS)
13
• Dados não processados do atacante são enviados para um navegador de um usuário
inocente
Acontece a qualquer momento…
• Armazenados em banco de dados
• Refletidos de entrada da web (formulário, campo oculto, URL, etc…)
• Enviado diretamente ao cliente JavaScript
Dados brutos…
• Tente isto no seu navegador – javascript:alert(document.cookie)
Praticamente toda aplicação web tem este problema!
• 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
Impacto Típico
16. A3 – Falha de Autenticação e
Gerência de Sessões
16
• Significa que as credenciais deve ser enviadas a cada requisição
• Devemos utilizar SSL para tudo que necessite de autenticação
HTTP é um protocolo “stateless” (sem estado)
• 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
Falhas no controle das sessões
• Mudar minha senha, lembrar minha senha, esqueci minha senha, pergunta secreta,
logout, email, etc…
Cuidado com as alternativas!
• Contas de usuários comprometidas ou sessões de usuários sequestradas
Impacto Típico
17. A7 – Armazenamento com
Criptografia Insegura
17
• 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
Armazenando dados sensíveis de forma insegura
• 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
Impacto Típico
23. A9 – Fraca Proteção na Camada de
Transporte
• 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
Transmitindo dados sensíveis de forma insegura
• 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
Impacto Típico
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?
24
25. Custom Code
Empregados
Parceiros
Vítima Externa Backend Systems
Atacante Externo
1
Atacante
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...
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!
29
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
31
Captura de Sessões
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!
33
34. Modelo de Script
register({
name: “Site Alvo",
url: "http://sitealvo.com/login”,
domains: [ “sitealvocom" ],
sessionCookieNames: [ "JSESSIONID" ],
identifyUser: function () {
var resp = this.httpGet(this.siteUrl);
}
});
34
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?
35
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
38
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!
39