SlideShare uma empresa Scribd logo
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
Php Conference – São Paulo 28/11/2008
Wagner Elias
Research & Development Manager
Brazilian Chapter Leader
http://wagnerelias.comhttp://www.conviso.com.br
Agenda
 Um pouco de OWASP
 Top 10 2007
1 – XSS (Cross Site Scripting)
2 – Falhas de Injeção
3 – Execução Maliciosa de Arquivos
4 – Referência Direta a Objetos
5 – CSRF (Cross Site Request Forgery)
6 – Vazamento de Informações
7 – Furo de Autenticação
8 – Armazenamento Criptográfico
9 – Comunicação Insegura
10 – Restrição de Acesso a URL
 Encerramento
O que é OWASP?
Open Web Application Security Project
Educar e conscientizar segurança para desenvolvedores, designers,
arquitetos e organizações.
Como funciona?
Documentação
Wiki e Books
 Code Review, Testing Guide, Building, Top Ten, …
Code Projects
Projetos ferramentas ofensivas/defensivas
Processos, procedimentos …
Educação e outros
Chapters (Capítulos)
Grupo de usuários
+100 e crescendo
Conferências
Grandes e pequenos eventos ao redor do mundo
Brazilian Chapter (OWASP-BR)
 Positive Security Project
Melhorar a postura das empresas em relação a segurança em
aplicações
 Application Security Desk Reference Project (ASDR)
Guia de referência sobre segurança em aplicações web
Princípios, agentes de ameça, controles, vulnerabilidades e
ataques, impactos de negócio e técnicos
 Traduções
WebGoat
Top Ten Project
 Lista de discussão ativa, participe!
http://lists.owasp.org/mailman/listinfo/owasp-brazilian
 Acompanhe e colabore com o wiki do capítulo
http://www.owasp.org/index.php/Brazilian
Patrocinadores / Membros
Quem contribui?
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
Top 10 2007
O que é?
Estudo da OWASP que busca identificar e
classificar as 10 principais vulnerabilidades
encontradas em ambientes WEB
Traduzido para vários idiomas e atualizado
regularmente
 Pt-Br:http://www.owasp.org/images/4/42/OWASP_TOP_10_2007_PT-BR.pdf
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
1 – XSS (Cross Site Scripting)
1 - Cross Site Scripting (XSS)
Permite que um atacante insira um script na
página que será mostrada à vítima.
Afeta qualquer ambiente web
Efeitos:
Seqüestro de sessão
Inserção de código ou conteúdo hostil
Roubo de informações
Controle do navegador da vítima
Tipos de Cross Site Scripting
Refletido
Quando o site reflete para o usuário todo ou parte
do conteúdo da requisição
Armazenado
O script é armazenado em base de dados e é
mostrado às vítimas posteriormente
Inserção DOM
Os scripts da página são alterados
Tratando em php
Sanitize os dados usando
htmlentities() ou htmlspecialchars()
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
2 – Falha de Injeção
2 - Falhas de Injeção
Várias linguagens envolvidas:
SQL
LDAP
HTML
XSLT
XML
Comandos de interpretadores do sistema
operacional (cmd, shell, etc)
Falhas de Injeção
Como acontecem:
Dados fornecidos por usuários são usados como
parte de comandos ou consultas
Dados são manipulados para alterar os
comandos enviados ao interpretador
Atacante pode se utilizar das permissões da
aplicação para ler e/ou alterar dados
Pode permitir execução de programas
Falhas de Injeção
Ambientes afetados:
Quaisquer ambientes que utilizem interpretadores
Muito comum no acesso a bases de dados
 SQL Injection
Dicas
Valide sempre
Expressões regulares são sempre uma boa
Adote camada de abstração de dados
Bibliotecas de ORM são bastante eficazes para evitar
falhas de SQL Injection. Exemplo ADOdb, PDO.
Use procedimentos armazenados
Prepared Statements (Bind Variables)
Evite usar a chamada padrão de query do MySQL
(mysqli_multi_query()) use
mysqli_query()
Não confie
No usuário e no magic_quotes /addslashes() 
Tratando em php
Sanitize os dados usando
escapeshellcmd()
Tratando em php
Evite, mas se precisar interagir com shell
use
escapeshellarg()
Tratando em php
Referenciando path de forma segura,
evitando path traversal
realpath()
Tratando em php
Evitando SQL Injection com mysql_escape_string()
(não é uma solução definitiva, sujeito a SQL
Injection usando técnicas de encode.) Só Bind
Variables Salva 
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
3 – Execução Maliciosa de
Arquivos
3 - Execução Maliciosa de Arquivo
Execução de conteúdo externo ao código da
aplicação
Permite realizar
Execução remota de código
Instalação de rootkits
Execução Maliciosa de Arquivo
Ambientes afetados:
Sistemas que aceitam nomes de arquivos
Sistemas que recebem arquivos
Ambientes interpretados
Tratando em php
Desabilite estas funções que são habilitadas
por default
allow_url_fopen e allow_url_include
Cuidado com as funções
eval()
passthru()
Streams (stream_*)
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
4 – Referência Direta a
Objetos
4 - Referência Direta a Objeto
Ocorre quando a aplicação expõe referência
direta a objeto interno
Arquivo
Diretório
Registro de base de dados
URL
Parâmetro
Referência Direta a Objeto
Permite ao atacante manipular a referência e
burlar controles de acesso
Exemplo:
Aplicação utiliza CPF na URL para identificar
usuário
Atacante manipula a URL e altera o CPF
Atacante acessa dados de outros CPFs
Referência Direta a Objeto
Ambientes afetados:
Qualquer ambiente web
Solução
Usar sessões
Armazenar identificadores internos na sessão do
usuário
Usar identificadores de sessão aleatórios (token)
Tratando em php
O recurso de _autoload é uma boa opção
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
5 – CSRF (Cross Site Request
Forgery)
5 - Cross Site Request Forgery (CSRF)
Usar sessão já aberta pelo usuário para
enviar comandos para a aplicação
Usuário loga na aplicação alvo
Usuário acessa site do atacante
Scripts do atacante usam a sessão da aplicação
alvo
 Enviam comandos em nome do usuário na sessão já
aberta
Cross Site Request Forgery
Quando ocorre:
Não há verificação de autorização
Ação é executada quando credenciais são
enviadas na URL
As credenciais são submetidas automaticamente
 Cookies
Cross Site Request Forgery
A maioria das aplicações atuais estão
vulneráveis
Aplicações de Internet Banking pedem a senha
para operações de atualização
Ambientes afetados:
Todos os ambientes web
Tratando em php
Evite
Que funções críticas na aplicação sejam feitas
sem a necessidade de re-autenticação
Não use apenas $_REQUEST[‘input‘]
Utilize
 Corretamente $_COOKIE, $_GET e $_POST
 Token em todas as requisições
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
6 – Vazamento de Informações
6 - Vazamento de Informações
Nome completo:
Vazamento de informações e tratamento de erros
inapropriado
A própria aplicação informa ao atacante:
Configurações
Arquitetura interna
Plataformas
Dados sigilosos
Vazamento de Informações
Formas de vazamento:
Tempo de resposta
Respostas diferentes para diferentes entradas
 Página de erro com códigos diferentes
Páginas de erros com informações de debug
 Stack trace na página de erro
Ambientes afetados:
Todos
Tratando em php
Cuidado com informações sobre o ambiente
Phpinfo()
Server-Status
Configure no php.ini
log_errors = On
display_errors = Off
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
7 – Furo de Autenticação
7 - Furo de Autenticação
Nome completo:
Furo de autenticação e gerência de sessão
Problemas mais comuns:
Falhas de proteção de credenciais
Falha de proteção de identificadores de sessão
Ambientes afetados:
Todos os ambientes
Furo de Autenticação
Conseqüências:
Roubos de contas
Seqüestro de sessão
Violações de privacidade
Acessos não autorizados
Personificação de usuários (impersonation)
Dicas
Nunca faça
Armazenamento de senhas. Nem mesmo
criptografadas
Não use mais md5 e sha-1
Faça
Armazene apenas o hash + salt das senhas
Fortaleça as configurações de sessão
 session.save_path = [diretório protegido]
 session.cookie_httponly = 1 (acesso apenas por HTTP)
 session.cookie_secure = 1 (força o uso de HTTPS)
Números aleatórios
Cuidado com as funções geradoras de
números aleatórios
rand(), srand(), mt_rand(), mt_srand()
Uma falha na implementação destas funções
causou inúmeras falhas em sistemas de
autenticação em projetos open source
Tratando em php
Utilize outros algoritmos de hash
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
8 – Armazenamento
Criptográfico
8 - Armazenamento Criptográfico
Nome Completo:
Armazenamento Criptográfico Inseguro
Aplicações tem dados sensíveis
Algumas não criptografam
Outras criptografam de forma insegura
 Algoritmos mal concebidos
 Mecanismos inapropriados
 Erros no uso de criptografia
– Mesmo com algoritmos adequados
Armazenamento Criptográfico
Ambientes afetados
Todos
Problemas mais comuns:
Não criptografar dados sensíveis
Uso inseguro de algoritmos fortes
 Chaves fracas
Uso de algoritmos caseiros ou de algoritmos
fracos
Armazenar chaves em sistemas de
armazenamento desprotegidos
Tratando em php
Use
Mcrypt com algoritmos conhecidos de criptografia
Cuidados
Implementação do algoritmo
Armazenamento da chave
Cifra de César e XOR não funcionam
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
9 – Comunicação Insegura
9 - Comunicações inseguras
Todo o tráfego autenticado da aplicação
deve ser criptografado
Usar SSL ou equivalente:
 Entre aplicação e cliente
 Entre aplicação e back-end (base de dados)
Sempre autenticar (ou re-autenticar) antes
de transmitir dados sigilosos
Ambientes afetados:
todos
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
10 – Restrições de Acesso a
URL
10 - Restrições de acesso a URLs
Nome completo:
Falha ao restringir acesso a URLs
Aplicações tem páginas internas
Estas páginas só devem ser acessadas:
 Por usuários autenticados ou
 Após determinada operação
O acesso a páginas internas deve ser
controlado corretamente
Restrições de acesso a URLs
Ambientes Afetados:
Todos
Problemas:
Navegação forçada:
 Adivinhação de URLs
 Força bruta
Ocorre porque a página não verifica se
usuário deveria acessar
Tratando em php
Controle de acesso
Estabeleça um bom controle de acesso as
informações da aplicação
Hardening de sessão
A sessão é responsável por manter o estado das
conexões, garanta que as sessões terão
segurança adequada
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Tratando as vulnerabilidades
do Top 10 do OWASP
Encerrando
Fiquem de olho
Port do projeto ESAPI para php
Biblioteca completa para tratar as
vulnerabilidades do Top 10
AppSec Latin America 2009
Conferência que será realizada no Brasil e irá
unir especialistas do mundo todo para tratar de
segurança em aplicações WEB
REFERÊNCIAS
http://www.owasp.org
Code Review Guide
 www.owasp.org/index.php/Category:OWASP_Code_Review_Projec
t
Development Guide
 www.owasp.com.br/index.php/Category:OWASP_Guide_Project
Testing Guide
 www.owasp.com.br/index.php/Category:OWASP_Testing_Project
Application Security Desk Reference
 www.owasp.com.br/index.php/Category:OWASP_ASDR_Project
Top Ten Project
 www.owasp.com.br/index.php/Category:OWASP_Top_Ten_Project
http://br.php.net/manual/
Perguntas
Obrigado

Mais conteúdo relacionado

PPTX
Desenvolvimento de Software Seguro
PPTX
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
PDF
THE WebSec
PDF
Segurança em Aplicações Web conforme OWASP
PDF
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
PDF
Testes de segurança em aplicações web
PDF
Segurança em Aplicações Web
PDF
OWASP top 10 - Referência insegura direta a objeto
Desenvolvimento de Software Seguro
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
THE WebSec
Segurança em Aplicações Web conforme OWASP
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Testes de segurança em aplicações web
Segurança em Aplicações Web
OWASP top 10 - Referência insegura direta a objeto

Mais procurados (19)

ODP
PHP Seguro em 2013
PPT
Ameacas e Vulnerabilidades em Apps Web-2013
PPT
Tratando as vulnerabilidades do Top 10 com php
PDF
Segurança em aplicações web: pequenas ideias, grandes resultados
PPTX
Teste de segurança em aplicações web ( sites )
PDF
Teste seguranca aplicacoes web security testing
PPTX
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
PPT
Testes de Segurança de Software (tech-ed 2008)
PPTX
Segurança na web
PPTX
Workshop - Testes de Segurança
ODP
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
PDF
Quem tem medo do XSS
PDF
OWASP TOP 10 - Web Security
PPT
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
PPTX
OWASP Top Ten
PDF
Defensive Programming - by Alcyon Junior
PPTX
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
PPTX
Como se tornar um especialista em Desenvolvimento Seguro de Software
PDF
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
PHP Seguro em 2013
Ameacas e Vulnerabilidades em Apps Web-2013
Tratando as vulnerabilidades do Top 10 com php
Segurança em aplicações web: pequenas ideias, grandes resultados
Teste de segurança em aplicações web ( sites )
Teste seguranca aplicacoes web security testing
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Testes de Segurança de Software (tech-ed 2008)
Segurança na web
Workshop - Testes de Segurança
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Quem tem medo do XSS
OWASP TOP 10 - Web Security
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top Ten
Defensive Programming - by Alcyon Junior
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Como se tornar um especialista em Desenvolvimento Seguro de Software
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
Anúncio

Semelhante a Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias (20)

KEY
Segurança em PHP
PDF
Teste de Segurança: Vulnerabilidade de Aplicações Web
ODP
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
PPTX
Desenvolvendo sistemas seguros com PHP
PPT
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
PPT
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
PPT
Top 5 vulnerabilidades_em_aplicacoes_web
PDF
Website security
PDF
Site invadido
ODP
Web apis
PPTX
CJR Apresenta: OWASP TOP10
PDF
Webgoat como ferramenta de aprendizado
PPT
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
PPTX
Aula 1 - Testando a Segurança de Sua Aplicação Web
PPT
Owasp web app_flaws
PPTX
OWASP - Ferramentas
PDF
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
PDF
Antar ferreira
PDF
OWASP Top 10 2010 para JavaEE (pt-BR)
PDF
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Segurança em PHP
Teste de Segurança: Vulnerabilidade de Aplicações Web
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
Desenvolvendo sistemas seguros com PHP
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web
Website security
Site invadido
Web apis
CJR Apresenta: OWASP TOP10
Webgoat como ferramenta de aprendizado
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
Aula 1 - Testando a Segurança de Sua Aplicação Web
Owasp web app_flaws
OWASP - Ferramentas
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Antar ferreira
OWASP Top 10 2010 para JavaEE (pt-BR)
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Anúncio

Mais de Magno Logan (19)

PDF
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
PDF
Katana Security - Consultoria em Segurança da Informação
PDF
XST - Cross Site Tracing
PDF
OWASP Top 10 2007 for JavaEE
PDF
XPath Injection
PDF
SQL Injection
PDF
SQL Injection Tutorial
ODT
OWASP Top 10 2010 pt-BR
PPTX
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
PPTX
Co0L 2011 - Segurança em Sites de Compras Coletivas: Vulnerabilidades, Ataqu...
PDF
AppSec EU 2009 - HTTP Parameter Pollution by Luca Carettoni and Stefano di P...
PPT
AppSec EU 2011 - An Introduction to ZAP by Simon Bennetts
PDF
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
PPT
AppSec DC 2009 - Learning by breaking by Chuck Willis
PDF
Just4Meeting 2012 - How to protect your web applications
PPTX
GTS 17 - OWASP em prol de um mundo mais seguro
PDF
ENSOL 2011 - OWASP e a Segurança na Web
PDF
BHack 2012 - How to protect your web applications
PDF
AppSec Latam 2011 - Segurança em Sites de Compras Coletivas
DevSecOps - Integrating Security in the Development Process (with memes) - Ma...
Katana Security - Consultoria em Segurança da Informação
XST - Cross Site Tracing
OWASP Top 10 2007 for JavaEE
XPath Injection
SQL Injection
SQL Injection Tutorial
OWASP Top 10 2010 pt-BR
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
Co0L 2011 - Segurança em Sites de Compras Coletivas: Vulnerabilidades, Ataqu...
AppSec EU 2009 - HTTP Parameter Pollution by Luca Carettoni and Stefano di P...
AppSec EU 2011 - An Introduction to ZAP by Simon Bennetts
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
AppSec DC 2009 - Learning by breaking by Chuck Willis
Just4Meeting 2012 - How to protect your web applications
GTS 17 - OWASP em prol de um mundo mais seguro
ENSOL 2011 - OWASP e a Segurança na Web
BHack 2012 - How to protect your web applications
AppSec Latam 2011 - Segurança em Sites de Compras Coletivas

Último (16)

PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Arquitetura de computadores - Memórias Secundárias
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
COBITxITIL-Entenda as diferença em uso governança TI
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Arquitetura de computadores - Memórias Secundárias

Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias

  • 1. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP Php Conference – São Paulo 28/11/2008 Wagner Elias Research & Development Manager Brazilian Chapter Leader http://wagnerelias.comhttp://www.conviso.com.br
  • 2. Agenda  Um pouco de OWASP  Top 10 2007 1 – XSS (Cross Site Scripting) 2 – Falhas de Injeção 3 – Execução Maliciosa de Arquivos 4 – Referência Direta a Objetos 5 – CSRF (Cross Site Request Forgery) 6 – Vazamento de Informações 7 – Furo de Autenticação 8 – Armazenamento Criptográfico 9 – Comunicação Insegura 10 – Restrição de Acesso a URL  Encerramento
  • 3. O que é OWASP? Open Web Application Security Project Educar e conscientizar segurança para desenvolvedores, designers, arquitetos e organizações.
  • 4. Como funciona? Documentação Wiki e Books  Code Review, Testing Guide, Building, Top Ten, … Code Projects Projetos ferramentas ofensivas/defensivas Processos, procedimentos … Educação e outros Chapters (Capítulos) Grupo de usuários +100 e crescendo Conferências Grandes e pequenos eventos ao redor do mundo
  • 5. Brazilian Chapter (OWASP-BR)  Positive Security Project Melhorar a postura das empresas em relação a segurança em aplicações  Application Security Desk Reference Project (ASDR) Guia de referência sobre segurança em aplicações web Princípios, agentes de ameça, controles, vulnerabilidades e ataques, impactos de negócio e técnicos  Traduções WebGoat Top Ten Project  Lista de discussão ativa, participe! http://lists.owasp.org/mailman/listinfo/owasp-brazilian  Acompanhe e colabore com o wiki do capítulo http://www.owasp.org/index.php/Brazilian
  • 8. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP Top 10 2007
  • 9. O que é? Estudo da OWASP que busca identificar e classificar as 10 principais vulnerabilidades encontradas em ambientes WEB Traduzido para vários idiomas e atualizado regularmente  Pt-Br:http://www.owasp.org/images/4/42/OWASP_TOP_10_2007_PT-BR.pdf
  • 10. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 1 – XSS (Cross Site Scripting)
  • 11. 1 - Cross Site Scripting (XSS) Permite que um atacante insira um script na página que será mostrada à vítima. Afeta qualquer ambiente web Efeitos: Seqüestro de sessão Inserção de código ou conteúdo hostil Roubo de informações Controle do navegador da vítima
  • 12. Tipos de Cross Site Scripting Refletido Quando o site reflete para o usuário todo ou parte do conteúdo da requisição Armazenado O script é armazenado em base de dados e é mostrado às vítimas posteriormente Inserção DOM Os scripts da página são alterados
  • 13. Tratando em php Sanitize os dados usando htmlentities() ou htmlspecialchars()
  • 14. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 2 – Falha de Injeção
  • 15. 2 - Falhas de Injeção Várias linguagens envolvidas: SQL LDAP HTML XSLT XML Comandos de interpretadores do sistema operacional (cmd, shell, etc)
  • 16. Falhas de Injeção Como acontecem: Dados fornecidos por usuários são usados como parte de comandos ou consultas Dados são manipulados para alterar os comandos enviados ao interpretador Atacante pode se utilizar das permissões da aplicação para ler e/ou alterar dados Pode permitir execução de programas
  • 17. Falhas de Injeção Ambientes afetados: Quaisquer ambientes que utilizem interpretadores Muito comum no acesso a bases de dados  SQL Injection
  • 18. Dicas Valide sempre Expressões regulares são sempre uma boa Adote camada de abstração de dados Bibliotecas de ORM são bastante eficazes para evitar falhas de SQL Injection. Exemplo ADOdb, PDO. Use procedimentos armazenados Prepared Statements (Bind Variables) Evite usar a chamada padrão de query do MySQL (mysqli_multi_query()) use mysqli_query() Não confie No usuário e no magic_quotes /addslashes() 
  • 19. Tratando em php Sanitize os dados usando escapeshellcmd()
  • 20. Tratando em php Evite, mas se precisar interagir com shell use escapeshellarg()
  • 21. Tratando em php Referenciando path de forma segura, evitando path traversal realpath()
  • 22. Tratando em php Evitando SQL Injection com mysql_escape_string() (não é uma solução definitiva, sujeito a SQL Injection usando técnicas de encode.) Só Bind Variables Salva 
  • 23. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 3 – Execução Maliciosa de Arquivos
  • 24. 3 - Execução Maliciosa de Arquivo Execução de conteúdo externo ao código da aplicação Permite realizar Execução remota de código Instalação de rootkits
  • 25. Execução Maliciosa de Arquivo Ambientes afetados: Sistemas que aceitam nomes de arquivos Sistemas que recebem arquivos Ambientes interpretados
  • 26. Tratando em php Desabilite estas funções que são habilitadas por default allow_url_fopen e allow_url_include Cuidado com as funções eval() passthru() Streams (stream_*)
  • 27. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 4 – Referência Direta a Objetos
  • 28. 4 - Referência Direta a Objeto Ocorre quando a aplicação expõe referência direta a objeto interno Arquivo Diretório Registro de base de dados URL Parâmetro
  • 29. Referência Direta a Objeto Permite ao atacante manipular a referência e burlar controles de acesso Exemplo: Aplicação utiliza CPF na URL para identificar usuário Atacante manipula a URL e altera o CPF Atacante acessa dados de outros CPFs
  • 30. Referência Direta a Objeto Ambientes afetados: Qualquer ambiente web Solução Usar sessões Armazenar identificadores internos na sessão do usuário Usar identificadores de sessão aleatórios (token)
  • 31. Tratando em php O recurso de _autoload é uma boa opção
  • 32. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 5 – CSRF (Cross Site Request Forgery)
  • 33. 5 - Cross Site Request Forgery (CSRF) Usar sessão já aberta pelo usuário para enviar comandos para a aplicação Usuário loga na aplicação alvo Usuário acessa site do atacante Scripts do atacante usam a sessão da aplicação alvo  Enviam comandos em nome do usuário na sessão já aberta
  • 34. Cross Site Request Forgery Quando ocorre: Não há verificação de autorização Ação é executada quando credenciais são enviadas na URL As credenciais são submetidas automaticamente  Cookies
  • 35. Cross Site Request Forgery A maioria das aplicações atuais estão vulneráveis Aplicações de Internet Banking pedem a senha para operações de atualização Ambientes afetados: Todos os ambientes web
  • 36. Tratando em php Evite Que funções críticas na aplicação sejam feitas sem a necessidade de re-autenticação Não use apenas $_REQUEST[‘input‘] Utilize  Corretamente $_COOKIE, $_GET e $_POST  Token em todas as requisições
  • 37. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 6 – Vazamento de Informações
  • 38. 6 - Vazamento de Informações Nome completo: Vazamento de informações e tratamento de erros inapropriado A própria aplicação informa ao atacante: Configurações Arquitetura interna Plataformas Dados sigilosos
  • 39. Vazamento de Informações Formas de vazamento: Tempo de resposta Respostas diferentes para diferentes entradas  Página de erro com códigos diferentes Páginas de erros com informações de debug  Stack trace na página de erro Ambientes afetados: Todos
  • 40. Tratando em php Cuidado com informações sobre o ambiente Phpinfo() Server-Status Configure no php.ini log_errors = On display_errors = Off
  • 41. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 7 – Furo de Autenticação
  • 42. 7 - Furo de Autenticação Nome completo: Furo de autenticação e gerência de sessão Problemas mais comuns: Falhas de proteção de credenciais Falha de proteção de identificadores de sessão Ambientes afetados: Todos os ambientes
  • 43. Furo de Autenticação Conseqüências: Roubos de contas Seqüestro de sessão Violações de privacidade Acessos não autorizados Personificação de usuários (impersonation)
  • 44. Dicas Nunca faça Armazenamento de senhas. Nem mesmo criptografadas Não use mais md5 e sha-1 Faça Armazene apenas o hash + salt das senhas Fortaleça as configurações de sessão  session.save_path = [diretório protegido]  session.cookie_httponly = 1 (acesso apenas por HTTP)  session.cookie_secure = 1 (força o uso de HTTPS)
  • 45. Números aleatórios Cuidado com as funções geradoras de números aleatórios rand(), srand(), mt_rand(), mt_srand() Uma falha na implementação destas funções causou inúmeras falhas em sistemas de autenticação em projetos open source
  • 46. Tratando em php Utilize outros algoritmos de hash
  • 47. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 8 – Armazenamento Criptográfico
  • 48. 8 - Armazenamento Criptográfico Nome Completo: Armazenamento Criptográfico Inseguro Aplicações tem dados sensíveis Algumas não criptografam Outras criptografam de forma insegura  Algoritmos mal concebidos  Mecanismos inapropriados  Erros no uso de criptografia – Mesmo com algoritmos adequados
  • 49. Armazenamento Criptográfico Ambientes afetados Todos Problemas mais comuns: Não criptografar dados sensíveis Uso inseguro de algoritmos fortes  Chaves fracas Uso de algoritmos caseiros ou de algoritmos fracos Armazenar chaves em sistemas de armazenamento desprotegidos
  • 50. Tratando em php Use Mcrypt com algoritmos conhecidos de criptografia Cuidados Implementação do algoritmo Armazenamento da chave Cifra de César e XOR não funcionam
  • 51. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 9 – Comunicação Insegura
  • 52. 9 - Comunicações inseguras Todo o tráfego autenticado da aplicação deve ser criptografado Usar SSL ou equivalente:  Entre aplicação e cliente  Entre aplicação e back-end (base de dados) Sempre autenticar (ou re-autenticar) antes de transmitir dados sigilosos Ambientes afetados: todos
  • 53. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP 10 – Restrições de Acesso a URL
  • 54. 10 - Restrições de acesso a URLs Nome completo: Falha ao restringir acesso a URLs Aplicações tem páginas internas Estas páginas só devem ser acessadas:  Por usuários autenticados ou  Após determinada operação O acesso a páginas internas deve ser controlado corretamente
  • 55. Restrições de acesso a URLs Ambientes Afetados: Todos Problemas: Navegação forçada:  Adivinhação de URLs  Força bruta Ocorre porque a página não verifica se usuário deveria acessar
  • 56. Tratando em php Controle de acesso Estabeleça um bom controle de acesso as informações da aplicação Hardening de sessão A sessão é responsável por manter o estado das conexões, garanta que as sessões terão segurança adequada
  • 57. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Tratando as vulnerabilidades do Top 10 do OWASP Encerrando
  • 58. Fiquem de olho Port do projeto ESAPI para php Biblioteca completa para tratar as vulnerabilidades do Top 10 AppSec Latin America 2009 Conferência que será realizada no Brasil e irá unir especialistas do mundo todo para tratar de segurança em aplicações WEB
  • 59. REFERÊNCIAS http://www.owasp.org Code Review Guide  www.owasp.org/index.php/Category:OWASP_Code_Review_Projec t Development Guide  www.owasp.com.br/index.php/Category:OWASP_Guide_Project Testing Guide  www.owasp.com.br/index.php/Category:OWASP_Testing_Project Application Security Desk Reference  www.owasp.com.br/index.php/Category:OWASP_ASDR_Project Top Ten Project  www.owasp.com.br/index.php/Category:OWASP_Top_Ten_Project http://br.php.net/manual/