Buscar

Clavis Auditoria de Segurança em WebApp EAD Apostila EAD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Rafael Soares Ferreira 
Sócio Diretor Técnico 
rafael@clavis.com.br 
Auditoria de Segurança em 
Aplicações Web 
Apresentação 
•  Grupo Clavis 
•  Sócio Diretor Técnico 
•  Testes de invasão em redes, sistemas e 
aplicações 
Contatos 
rafaelsoaresferreira@gmail.com 
 
rafaelsoaresferreira 
 
@rafaelsferreira 
 
www.facebook.com/rafaelsoaresferreira 
Disclaimer 
O Curso de Auditoria de Segurança em 
Aplicações Web da Academia Clavis tem o 
objetivo único de capacitar profissionais 
para as práticas de testes e análises de 
segurança de redes, sistemas e aplicações 
por meio de ataques e invasões, 
real izados com consentimento do 
proprietário ou possuidor da rede, sistema 
ou aplicação. 
Modelo do Curso 
•  Aulas ao vivo (on line) 
•  Aulas gravadas para revisão 
•  Ambientes para testes 
•  Material complementar 
•  Avaliação 
Agenda 
•  Introdução 
•  Principais Ameaças 
•  Testes de Segurança 
•  Ferramentas 
•  Estudos de Casos 
Introdução 
Parte 1 - Introdução 
•  Utilização 
•  Benefícios 
•  Arquitetura 
•  Protocolos e Tecnologias 
•  Segurança básica 
•  Compras 
•  Redes Sociais 
•  Internet Banking 
•  Webmail 
•  Outras... 
Utilização 
•  Protocolo leve e simples 
•  E “stateless”! 
•  Anytime, Anywhere 
•  Independe de plataforma 
•  Atualizações centralizadas 
Benefícios 
Arquitetura 
Arquitetura 
•  O protocolo HTTP 
HTTP 1.0 - RFC-1945 
HTTP 1.1 – RFC-2616 
 
RFC 1945: 
...is an application-level protocol with the lightness and speed 
necessary for distributed, collaborative, hypermedia 
information systems. It is a generic, stateless, object-
oriented protocol which can be used for many tasks, such 
as name servers and distributed object management 
systems, through extension of its request methods 
(commands)... 
 
Protocolos e Tecnologias 
•  “Lightness” 
•  Protocolo em texto puro 
•  Simples de implementar um cliente 
•  “Stateless” 
•  Servidor responde a requisição e 
•  Encerra a conexão 
Protocolos e Tecnologias 
Cookies 
•  Gestão de Sessão 
•  Faz o servidor “lembrar” do cliente 
•  Preferências do usuário 
•  Possível Capturar / Manipular / Forjar! 
Protocolos e Tecnologias 
Como funciona 
Protocolos e Tecnologias 
1) URL digitada no browser 
 
2) Separa-se o que é host e o que é path 
•  Pergunta ao DNS o IP do host 
•  O servidor DNS retorna o IP do host 
Protocolos e Tecnologias 
Como REALMENTE funciona 
3) O browser envia a requisição ao IP 
•  Se nenhuma porta foi dada, é usada a 80 
•  O Path é usado para determinar qual arquivo 
enviar 
•  O servidor responde à requisição 
Protocolos e Tecnologias 
Como REALMENTE funciona 
4) O browser lê o arquivo HTML e todos os arquivos 
referenciados (que podem ser imagens, JavaScript, 
CSS, etc) 
 
OBS: Tais arquivos podem estar em outros 
hosts 
 
5) O browser monta as peças e exibe ao 
usuário 
Protocolos e Tecnologias 
Como REALMENTE funciona 
Métodos HTTP 1.0 
•  GET – requisições 
•  POST – submissões 
•  HEAD – igual ao GET mas sem o body 
Protocolos e Tecnologias 
HTTP 1.1 adicionou mais alguns 
•  PUT – para uploads 
•  DELETE – remoção de arquivos 
•  OPTIONS – listagem de métodos 
•  TRACE – retorna a requisição 
•  CONNECT – Tunelamento via proxies 
Protocolos e Tecnologias 
Códigos de Status: 
1XX – Informacional 
2XX – Sucesso 
3XX – Redirecionamentos 
4XX – Erros client-side 
5XX – Erros server-side 
Protocolos e Tecnologias 
O básico: 
HTML, CSS, Javascript 
 
Outras tecnologias: 
XML, AJAX, RSS, WAP 
 
Protocolos e Tecnologias 
•  Não confiar em dados externos 
•  Tudo pode ser forjado/modificado 
•  Validar todos os dados 
•  Prever e Tratar erros 
•  Testar segurança, revisar 
Segurança Básica 
Mudança de Paradigma 
 
•  What is a secure site? 
“a site that uses the HTTPS protocol...” 
•  Segurança da comunicação é apenas 1 
dos problemas 
Segurança Básica 
Erros Comuns 
•  Falta de Canonicalização 
•  Verificações Client-Side 
•  Segurança por Obscuridade 
Segurança Básica 
Canonicalização 
•  Decisões baseadas em nomes 
•  Representação de forma única 
•  Muitas representações para caracteres 
•  ASCII, hexadecimal, UTF-8, unicode ... 
Segurança Básica 
Canonicalização – Exemplo 
•  SecureIIS do eEye 
http://www.exemplo.com/ver.asp?arquivo=../../../winnt/repair/sam 
•  Evasão 
http://www.exemplo.com/ver.asp?arquivo=%2e%2e/%2e%2e/%2e
%2e/winnt/repair/sam 
Segurança Básica 
Verificações Client-Side 
•  Facilmente contornadas 
•  Desabilitar javascript 
•  Usar um proxy 
•  Plugins de browser 
Segurança Básica 
Verificações Client-Side 
•  Tamper data 
Segurança Básica 
Segurança por Obscuridade 
•  Esconder o problema não resolve 
•  Pode ser usada como camada adicional 
•  Nunca como SOLUÇÃO de segurança 
Segurança Básica 
Segurança por Obscuridade 
•  Trocando a string do Apache 
 ServerSignature Off 
 SecServerSignature “Meu Servidor“ 
Segurança Básica 
Principais Ameaças 
Parte 02 - Principais Ameaças 
•  Injeções 
•  Quebra de Autenticação / Sessão 
•  Cross-Site Scripting (XSS) 
•  Referência direta à objetos 
•  Falhas de Configuração 
Principais Ameaças 
Parte 02 - Principais Ameaças 
•  Exposição de Dados Sensíveis 
•  Falhas de Controle de Acesso 
•  Cross Site Request Forgery (CSRF) 
•  Uso de Componentes Vulneráveis 
•  Redirecionamentos Não-Validados 
•  OWASP Top10 
 
•  Principais Ameaças a Aplicações Web 
•  Consenso entre profissionais da área 
•  Edições Trienais 
Principais Ameaças 
Principais Ameaças 
Principais Ameaças 
Injeções 
Descrição 
•  Envio de dados não tratados para algum 
serviço interno. 
•  Pode ser feita via SQL, LDAP, Xpath, comandos 
de sistema operacional, argumentos de 
programas, etc. 
•  Descoberta por varreduras e/ou fuzzers 
SQL Injection 
Exemplo 
SQLi: 
•  Aplicação: OcoMon 
•  Versão: 2.0-RC6 
•  Bypass de autenticação via SQLi 
•  Validação de entradas feita client-side 
Exemplo 
•  Página inicial filtrando caracteres 
especiais através de javascript. 
Exemplo 
•  É possível editar a função de validação, ou 
impedi-la de ser executada no navegador. 
Exemplo 
•  Sem a função de validação é possível 
submeter a string admin ‘ or ‘ -- que possibilita 
acesso ao sistema. 
Impactos 
•  Dependendo do tipo de injeção os danos 
causados podem ser: 
ü  Perda ou corrupção de dados 
ü  Negação de Serviço 
ü  Falhas de autenticação 
ü  Execução arbitrária de código e até 
comprometimento total do sistema. 
Como se Prevenir 
•  Não utilizar dados não confiáveis em 
comandos e/ou queries. 
•  Rotinas de validação ou “escape” de 
caracteres. 
•  É aconselhável o uso de validação positiva 
nas entradas. 
•  Utilizar canonicalização de dados. 
Quebra de Autenticação / 
Sessão 
Principais Ameaças 
•  Restrição de conteúdos / recursos 
•  Autenticação HTTP: 
 Basic -> credenciais concatenadas 
 separadas por “:” e codificadas em base64 
 
 Digest -> hash MD5 
Definição 
•  Identificadores de Sessão (“SESSION ID") 
expostos 
•  Lembretes de Senha ou “logout” vulneráveis 
Definição 
Exemplo 
Cookie: 
[...] 
Authorization: Basic dGVzdGU6ZHVtbXlwYXNzd29yZA== 
[...] 
 
Decodificando: 
$ echo "dGVzdGU6ZHVtbXlwYXNzd29yZA==" | base64 –d 
teste:dummypassword 
Exemplo 
•  Tunelamento por SSL 
•  Políticas de segurança 
•  CAPTCHA 
•  Proteger Cookie 
 
Como se Prevenir 
Principais Ameaças 
XSS – Cross SiteScripting 
Descrição 
•  Ocorre quando uma aplicação inclui 
dados não tratados em um objeto enviado ao 
navegador. 
•  Existem 3 principais tipos: 
ü  Stored 
ü  Reflected 
ü  DOM based XSS 
Impactos 
•  Roubo de informações de sessão 
 
•  Pichação de Sites 
 
•  Redirecionamento de usuários e etc. 
 
•  Exposição de informações dos usuários 
Descrição 
Stored: 
•  Código injetado é armazenado 
permanentemente na aplicação vulnerável 
(comentários, posts, logs, etc) 
•  A vítima recebe o código malicioso junto com 
alguma requisição feita. 
Stored XSS 
Exemplo 
Stored: 
 
•  Aplicação: dotProject 
•  Versão: 2.1.5 
•  Múltiplas Vulnerabilidades de XSS e SQLi 
Exemplo 
•  Na submissão de arquivos é possível 
inserir um código malicioso no campo 
descrição. 
Exemplo 
<script>alert('xss')</script> 
Exemplo 
•  O código então será submetido a todos que 
visualizarem a descrição de tal arquivo. 
Descrição 
Reflected: 
 
•  O código é “refletido” para o usuário através de 
respostas que contenham dados não tratados 
recebidos pela aplicação (resultado de buscas, 
mensagens de erro, etc). 
•  Geralmente disseminado através de links 
maliciosos. 
Reflected XSS 
Exemplo 
Reflected: 
 
•  Acunetix test site: 
http://testasp.vulnweb.com/search.asp 
•  Aplicação com exemplos de vulnerabilidades 
Exemplo 
Reflected: 
 
•  O código submetido na busca é retornado ao 
usuário na página de resultado sem nenhum 
tratamento. 
Exemplo 
Reflected: 
 
•  No caso de submissão de um código html por 
exemplo, o mesmo será exibido para o usuário 
como se pertencesse a página em questão. 
Exemplo 
Reflected: 
 
•  A submissão pode ser feita pels busca: 
<br><br>Entre aqui com suas credenciais:<form 
action="destination.asp"><table><tr><td>Nome:</td><td><input type=text 
length=20 name=nome></td></tr><tr><td>Senha:</td><td><input type=text 
length=20 name=senha></td></tr></table><input type=submit 
value=Acessar></form>!
•  Ou pela URL: 
http://testasp.vulnweb.com/search.asp?tfSearch=%3Cbr%3E%3Cbr%3EEntre
+aqui+com+suas+credenciais%3A%3Cform+action%3D%22destination.asp%22%3E
%3Ctable%3E%3Ctr%3E%3Ctd%3ENome%3A%3C%2Ftd%3E%3Ctd%3E%3Cinput+type
%3Dtext+length%3D20+name%3Dnome%3E%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd
%3ESenha%3A%3C%2Ftd%3E%3Ctd%3E%3Cinput+type%3Dtext+length%3D20+name
%3Dsenha%3E%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E%3Cinput+type%3Dsubmit
+value%3DAcessar%3E%3C%2Fform%3E+!
Descrição 
DOM based XSS: 
 
•  Ocasionado por uma modificação no ambiente 
DOM do navegador da vítima. 
•  O código executado é legítimo, porém devido a 
essa alteração no ambiente sua execução é 
feita de maneira anômala. 
Exemplo 
DOM based XSS: 
 
•  O seguinte código é executado no navegador 
(client-side) 
Exemplo 
DOM based XSS: 
 
•  A variável “name” pode ser manipulada 
conforme o exemplo a seguir: 
Como se Prevenir 
•  “Escapar” caracteres vindo de fontes não 
confiáveis e que serão utilizados no contexto do 
navegador (body, atributos, JavaScript, CSS, 
URL). 
 
•  A validação positiva é sempre interessante mas 
é preciso atentar para peculiaridades da 
aplicação em questão pois caracteres especiais 
e codificações diversas podem fazer parte da 
rotina da aplicação. 
Referência Direta a 
Objetos 
Principais Ameaças 
•  Apenas proteção na camada de apresentação 
não funciona 
•  Atacante simplesmente altera parâmetros e 
consegue acessar o conteúdo 
Definição 
Exemplo 
Como prevenir 
•  Trocar referências diretas por um valor de 
mapeamento aleatório temporário 
•  Verificar se o parâmetro está dentro do padrão 
•  Verificar se o usuário tem permissão de acesso 
•  Verificar se o usuário pode executar a ação que 
deseja em um determinado objeto 
Falhas de 
Configuração 
Principais Ameaças 
•  Aplicações rodam em cima de serviços que 
rodam em cima de SOs 
•  Todos podem ser vetores de ataque 
•  Exploits (e patchs!) se aplicam à qualquer tipo 
de software 
Definição 
•  “Hardening” de servidores 
•  Patchs e atualizações 
•  Homologação de mudanças 
•  Vulnerability Management 
Como se Prevenir 
Exposição de dados 
sensíveis 
Principais Ameaças 
Descrição 
•  Falha mais comum e grave: simplesmente 
não criptografar dados sensíveis 
•  Falhas quando a criptografia é empregada: 
-  Geração e armazenamento inseguros de chaves 
-  Não implantar políticas de rotação de chaves 
-  Utilizar algoritmos de criptografia fracos 
-  Utilizar métodos de criptografia em uma só via (hash) 
fracos ou sem salto para proteger senhas. 
Descrição 
•  Falha em proteger o tráfego de rede onde 
passam os dados da aplicação 
•  Utilização de criptografia somente na 
autenticação (expondo dados e IDs de seção) 
•  Utilização de certificados expirados ou mal 
configurados 
•  Falhas básicas de fácil detecção, bastando 
observar o tráfego de rede do site. 
•  Frequentemente comprometem todos os 
dados protegidos por criptografia 
•  Tipicamente, estes dados incluem, mas não 
estão limitados à: 
-  Credenciais de acesso 
-  Dados pessoais 
-  Registros de saúde 
-  Cartões de crédito, etc. 
Impacto 
•  Algoritmos de criptografia e chaves utilizados 
devem ser apropriadamente fortes. 
•  Senhas devem armazenadas em hash com um 
algoritmo de criptografia em uma só via, forte e 
com um salto apropriado. 
•  Proteger o transporte de dados adequadamente 
pode afetar o projeto do site. Em geral, é mais 
simples forçar o uso de criptografia em todo o 
site. 
Como se Prevenir 
Falha no controle de 
acesso 
Principais Ameaças 
Falha no controle de acesso 
•  Usuário autorizado modifica um parâmetro 
ou URL e acessa uma função privilegiada 
•  Usuário anônimo acessa funções desprotegidas 
•  Impacto 
•  Acesso a contas e dados de outros 
usuários 
•  Realizar ações de privilégio maior do que 
devido 
Falha no controle de acesso a 
nível de função 
Como prevenir 
•  Restringir acesso a usuários autenticados 
 
•  Mostrar somente o que for designado ao usuário 
ou ao grupo 
•  Negar qualquer requisição a páginas não 
autorizadas 
•  Não utilizar abordagens de análise automatizada 
•  Deve-se negar todo o conteúdo (DENY ALL) 
Cross Site Request 
Forgery 
Principais Ameaças 
•  Browsers enviam alguns tipos de credenciais 
automaticamente 
 
-  Cookies 
-  Cabeçalhos 
-  Endereço IP 
-  Certificados SSL 
Definição 
•  A vítima acessa um site malicioso enquanto está 
logada no sistema vulnerável 
•  O atacante força a vítima a fazer tal requisição 
Impacto 
Cross Site Request Forgery(CSRF) 
•  Autenticações forçadas em requisições 
sensíveis 
•  Controle exposição de dados utilizados como 
credenciais 
•  Adicionar um token secreto, não automático, 
para todas requisições importantes 
Como se Prevenir 
Utilização de componentes 
vulneráveis 
Principais Ameaças 
Utilização de componentes 
vulneráveis 
•  Componentes bibliotecas e frameworks 
•  Demora na divulgação da vulnerabilidade 
•  Muitos produtores não lançam uma correção 
(hot fix) 
•  Monitorar versões de todos os componentes, 
incluindo todas dependências 
•  Manter componentes sempre atualizados 
•  Organizar uma política de segurança 
•  Buscar uma alternativa enquanto uma correção 
não aparece 
Como se Prevenir 
Redirecionamentos e 
repasses não validados 
Principais Ameaças 
Descrição 
•  Falha em validar o destino de 
redirecionamentos ou repasses utilizados 
•  Problemas mais comuns: 
-  Ausência de validação do destinode um 
redirecionamento ou repasse 
-  Similaridade entre redirecionamento para destinos 
internos (da própria aplicação) e externos 
l  Redirecionamentos podem induzir usuários 
a instalar malware ou revelar informações 
sensíveis. 
l  Repasses inseguros podem permitir contornar 
controles de acesso. 
Impacto 
l  Evitar estas falhas é extremamente 
importante, pois elas são os alvos favoritos de 
phishers tentando ganhar a confiança de um 
usuário. 
l  Recomendações básicas para utilizar 
redirecionamentos e repasses: 
-  Não envolver parâmetros de usuário para calcular o 
destino 
-  Se não puder ser evitar, validar o parâmetro e verificar 
autorização do usuário 
Como se Prevenir 
Testes de Segurança 
Parte 03 - Testes de Segurança 
•  Exposição de Informação 
•  Configurações e Manutenção 
•  Autenticação 
•  Gerenciamento de Sessões 
•  Autorização 
Testes de Segurança 
Parte 03 - Testes de Segurança 
•  Funcionalidades e Lógica 
•  Validação de Dados 
•  Disponibilidade 
•  Web Services 
•  AJAX 
•  Visa obter o máximo de informação possível 
sobre o alvo 
•  Ações “passivas” mesmo que interagindo com a 
aplicação 
•  Fontes externas e internas 
Exposição de Informação 
Spiders, Robots, e Crawlers 
 
•  Robots.txt 
•  Restrição para indexadores web 
•  Restrição não obrigatória 
•  Pode expor detalhes sobre a aplicação 
Exposição de Informação 
Spiders, Robots, e Crawlers 
 
Exemplo: 
 
User-agent: * 
Allow: /arquivo/inofensivo 
Disallow: /arquivo/ultra/secreto 
Exposição de Informação 
Sites de Busca 
•  Provavelmente o alvo já foi indexado 
•  Operadores para restrição de buscas: 
 site: 
 intitle: 
 filetype: 
Exposição de Informação 
Sites de Busca 
 
•  Google Hacking 
 
 Google Hacking Data Base 
 Google Hacking for Pentesters 
 
 http://johnny.ihackstuff.com/ghdb/ 
Exposição de Informação 
•  Mapeamento superficial 
 
•  Potenciais vetores de ataque 
•  Caminho de menor resistência 
•  Dados recebidos do usuário 
Identificação de pontos de entrada 
•  Variáveis em Cookies 
•  Campos ocultos 
•  Códigos de Status não comuns 
(300's, 400's, 500) 
Identificação de pontos de entrada 
•  Métodos GET e HTTP POST 
•  Utilizar um proxy 
•  requisições 
•  headers 
•  parâmetros 
•  Colocar resultados em uma planilha 
Identificação de pontos de entrada 
Identificação de pontos de entrada 
•  HTTP GET: 
GET https://www.banco.com.br/transferencia.jsp?
CONTA=123&QUANTIA=1000&PARA=124 
Host: www.banco.com.br 
Cookie: 
SESSIONID=csavSADSascklNOnmsslkGhya 
 
Conta, Quantia, Para e SessionID são relevantes 
neste request. 
 
•  HTTP POST: 
POST https://www.banco.com.br 
Host: www.banco.com.br 
Cookie: 
SESSIONID=bggbfgbfgCNJasnsnJCKoAsybucAO
==CustomCookie=00meu00ip00verdadeiro00192.1
68.0.100user=Root&password=Segredo!&IP=true 
 
user, password, IP, Cookie e CustomCookie são 
relevantes neste request 
Identificação de pontos de entrada 
•  Determina quais tecnologias estão sendo 
utilizadas 
•  Informações providas explicitamente pelo 
servidor 
•  Análise comportamental 
Fingerprinting 
•  Detecção de serviços e aplicações 
•  Vetores alternativos de ataque 
•  Proporcionam posição privilegiada 
•  Depende do escopo do teste 
Discovery 
•  Tratadas ou não 
•  Geralmente servem para debugging 
•  Mensagens em HTML ou ASP.Net carregam 
bastante informação em comentários 
Mensagens de Erro 
Principais testes: 
•  HTTP 404 
•  Listagem de diretório 
Mensagens de Erro 
•  Servidores e infraestrutura 
•  Fora do escopo do programador 
•  Conformidade com boas práticas de 
administração segura de servidores 
•  Total acesso à aplicação 
Configurações e Manutenção 
•  Proteção do canal de comunicação 
•  Força das cifras utilizadas para o tunelamento 
•  Cifras clássicas foram comprometidas 
SSL/TLS 
•  Legislação de alguns países limitam a força 
das cifras 
•  O túnel é negociado entre as partes 
•  O cliente pode oferecer apenas cifras fracas e 
forçar o servidor a estabelecer um túnel 
vulnerável 
SSL/TLS 
•  Oracle: TNS listener 
•  Serviço para conexão remota no banco 
•  TNS = Transparent Network Substrate 
•  Default port 1521 (2483 & 2484 also) 
DB Listener 
•  DoS no serviço de listener 
•  Hijack do banco através de comprometimento da 
senha de acesso 
•  Vazamento de informações sobre o DB 
DB Listener 
•  Controles e mecanismos de segurança 
-  WAF (Web Application Firewall) 
-  Load Balancer 
-  Proxy 
-  Servidor de Aplicação 
-  Interface administrativa 
Configurações da Infraestrutura 
•  Arquivos de exemplo e samples 
Ex: IIS - CodeBrws.asp 
•  Comentários em códigos client-side 
•  Diretórios padrão 
Configuração da Aplicação 
•  Geralmente verificações automáticas 
 
-  Nikto 
-  Nessus 
-  Qualys 
 
 
Configuração da Aplicação 
•  Define quem e como os recursos serão 
tratados 
•  Ação para extensões desconhecidas 
•  Geralmente essa ação é o envio do arquivo para 
o cliente 
Extensões de Arquivo 
•  Falha de configuração pode possibilitar 
downloads arbitrários 
•  Ex: .asa, .inc, .java, .cs, .swp 
•  Scanners automatizados costumam fazer este 
tipo de teste 
Extensões de Arquivo 
•  Todo arquivo contido no diretório raiz do 
servidor web é servido aos clientes 
•  Backups, arquivos de Log, relatórios, arquivos 
temporários... 
•  .old, ~, bak, txt, src, dev, old, inc, orig, copy, tmp 
Arquivos não referenciados 
•  NUNCA : 
x  .asa 
x  .inc 
x  .java 
x  .bak, .old e outras extensões que indiquem 
backup 
Extensões de Arquivo 
•  Checar: 
ü  .zip, .tar, .gz, .tgz, .rar, ... 
ü  .txt 
ü  .pdf 
ü  .doc, .rtf, .xls, .ppt, ... 
Extensões de Arquivo 
•  Geralmente protegido por obscuridade 
•  Métodos de identificação: 
- Enumeração de arquivos e diretórios 
- Código fonte e robots.txt 
- Documentação 
- Parâmetros 
Interfaces Administrativas 
•  PUT 
•  DELETE 
•  CONNECT 
•  TRACE 
Métodos HTTP e XST 
•  Verifica a identidade do usuário 
•  Geralmente através de login/senha 
•  Análise do modelo 
•  Identificação de pontos de falha: 
-  Escalada 
-  Bypass 
-  Impersonation 
Autenticação 
Autenticação 
Transporte de Credenciais 
•  Interceptação 
•  Vai além da força da cifra 
•  Atributos de ação em formulários 
•  Método utilizado 
Autenticação 
Transporte de Credenciais 
•  Existe SSL? É obrigatório? Sempre? 
•  Envio “transparente” de credenciais 
-  AJAX 
-  JavaScript 
Autenticação 
Listagem de usuários 
 
•  Identificação de usuários válidos 
•  Análise de login válido 
-  Status code retornado 
-  Indicadores de sucesso 
-  Alterações em cookies 
Autenticação 
Listagem de usuários 
•  Análise de falha no login 
-  Senha incorreta 
-  Login inexistente 
•  Como a aplicação reage a cada caso 
•  Verificação de URLs e Redirects 
 
Autenticação 
Senhas Previsíveis 
 
•  Contas: 
-  Default 
-  Teste 
-  Demo 
•  Informações obtidas em etapas anteriores 
Autenticação 
Força Bruta 
 
•  Autenticação via HTTP ou Form 
•  Ataque dicionário 
•  Ataque Combinatória 
•  Ataque incremental 
Autenticação 
Testes de “bypass” 
•  Requisições direta 
•  Session ID Prediction 
•  Alteração do workflow esperado 
•  SQL Injection 
•  Manipulação de Parâmetros 
Autenticação 
Lembrete/Reset de senhas 
 
•  Envio para email cadastrado 
-  Senha atual 
-  Nova senha (a ser trocada no 1º login) 
-  Senha temporária•  Pergunta Secreta 
-  Perguntas Pré--definidas 
-  Dicas cadastradas pelo usuário 
Autenticação 
Logout e cache de Browser 
 
•  Evento de logout nem sempre é explícito 
•  Time out, Cache do Browser 
•  Reutilização de sessões 
•  Fim da sessão / Inutilização do Cookie 
Autenticação 
CAPTCHA 
 
•  Completely Automated Public Turning test to tell 
Computers and Humans Apart 
•  Visa Controlar ataques automatizados 
Autenticação 
CAPTCHA 
 
•  Previsibilidade / Limitação de possibilidades 
•  Codificação Fraca ou inexistente 
•  Reutilização 
Autenticação 
Autenticação de Multifator 
 
•  “O que você sabe” 
•  “O que você tem” 
•  “O que você é” 
Autenticação 
Autenticação de Multifator 
•  Roubo de Credenciais 
•  Credenciais Fracas 
•  Engenharia Social (Phishing, Trojan) 
Autenticação 
Autenticação de Multifator 
•  One-time password 
•  Grid Card 
•  Token/SmartCard 
•  Envio de senha por meios alternativos 
Gerenciamento de Sessões 
Cookies 
•  Cookies - RFC 2965 
•  Enviado pelo cliente a cada requisição 
•  Facilmente manipuláveis 
•  Tratamento de parâmetros e valores 
Gerenciamento de Sessões 
Cookies 
 
•  Atributo Secure 
•  Canais criptografados 
•  Persistência e Validade 
•  Controle de Cache 
Gerenciamento de Sessões 
Cookies 
 
•  Principais atributos: 
-  secure – força HTTPS 
-  HttpOnly – protege contra JavaScript 
-  domain – controla a origem do cookie 
-  path – locais onde o cookie é válido 
-  expires – Validade 
•  Primeira Autenticação 
User = Exemplo; password = 123456 
Cookie=TSFoweC3821 
•  Segunda Autenticação 
User = Exemplo; password = 123456 
Cookie=TSFoweC3823 
•  Terceira Autenticação 
User = Exemplo; password = 123456 
Cookie=TSFoweC3825 
Cookie provável: Cookie=TSFoweC3827 
 
Gerenciamento de Sessões 
Gerenciamento de Sessões 
CSRF - Cross Site Request Forgery 
 
•  Utiliza sessões já autenticadas 
•  Funciona principalmente quando requisições 
GET podem modificar dados 
•  Método Post dificulta a execução 
Gerenciamento de Sessões 
CSRF - Cross Site Request Forgery 
 
•  Links forjados acessados por usuários 
autenticados 
•  Gestão e tokens por requisição 
•  OWASP CSRFGuard 
Autorização 
Path Traversal 
 
•  Referência a arquivos 
-  Parâmetros 
-  Cookies 
-  Variáveis 
•  Caminhos relativos 
-  ../../../../../../../../../../../../etc/passwd 
Autorização 
Bypass 
 
•  Requisições pós-autenticação 
•  Diferentes usuários 
•  Diferentes privilégios 
•  Recursos e dados 
Autorização 
Escalada de Privilégio 
 
•  Vertical: 
-  Usuário com maior nível de privilégios 
-  User -> Admin 
-  Editor -> Publisher 
 
•  Horizontal 
-  Outro usuário de mesmo nível 
Autorização 
Escalada de Privilégio 
 
•  Site maps em diferentes níveis 
•  Parâmetros que indiquem grupos 
•  Valores contidos em cookies e JavaScript 
Funcionalidades e Lógica 
•  Testes “não técnicos” 
•  Requer criatividade e pensamento lateral 
•  Exemplos: 
-  Pulando passos 
-  Quantidades negativas 
-  Requisições simultâneas 
Validação de Dados 
XSS Não Persistente 
 
•  Exposição de parâmetros 
•  Teste caracteres que deveriam estar filtrados: 
'';!--"<>=&{()} 
•  Parâmetros sem tratamento 
Validação de Dados 
XSS Persistente 
 
•  Perfis 
•  Comentários 
•  Posts 
•  Rich Format 
Validação de Dados 
SQL Injection 
 
•  Campos de Busca 
•  Formulários 
•  Teste de parâmetros: 
 1' or '1' = '1 
 ' or 1=1-- 
 ') or ('1'='1-- 
Disponibilidade 
•  SQL Wildcard 
•  Trancamento de Contas 
•  Buffer Overflow 
•  Loops 
•  Limitação de Uploads 
Web Services 
•  WSDL - Web Services Description Language 
•  Códigos XML 
•  Anexos SOAP 
AJAX 
•  Local Proxy 
•  Firefox Addons (FireBug) 
•  Requisições parciais 
•  Interceptação de XMLHttpRequest (XHR) 
Dúvidas? 
Perguntas? 
Críticas? 
Sugestões? 
Siga a Clavis 
Rafael Soares Ferreira 
Sócio Diretor Técnico 
 
Muito Obrigado! 
rafael@clavis.com.br 
@rafaelsferreira

Outros materiais