SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Apresenta: www.cjr.org.br @CJR_UnB
10 maiores riscos em aplicações Web Leandro Silva dos Santos Thiago Stuckert leandrosantos@inbrax.com thiago.melo.stuckert@gmail.com.br Novembro - 2010 2
Open Web Application Security Project (OWASP) Organização sem fins lucrativos. Desenvolve projetos na área de teste de segurança de aplicações e serviços Web. Site OWASP: http://www.owasp.org/ CapítuloBrasília: http://goo.gl/iN9u4 3
OWASP TOP 10 Documento de conscientização. Amplo consenso sobre as falhas de segurança. Link para o projeto - http://goo.gl/8OAK 4
A1 - Falhas de Injeção OWASP TOP 10 5
O que é? Injetar código que modifica a semântica da consulta.  Toda entrada é má até que se prove o contrário.  Falta de validação na entrada. 6
Injeção de SQL Structured Query Language (SQL) Inserir SQL em uma entrada de dados. Insert/Update/Delete ou operações administrativas.  7
Cenário Account:  SKU:  Account:         SKU:  "SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’" Account Summary Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293 DB Table   HTTP response   HTTP request SQL query Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Databases Legacy Systems Web Services Directories Billing Human Resrcs Application Layer APPLICATIONATTACK Custom Code 1. Aplicaçãoapresenta um formuláriopara o usuário. 2. Usuárioenviaumaentradamaliciosaatravés do formulário. App Server 3. Aplicaçãotransmite a consulta SQL para o BD. Web Server Hardened OS 4. BD executa a consulta e retorna o resultadopara a aplicação. Network Layer 5. Aplicaçãoapresenta o resultadopara o usuário. Firewall Firewall 8
Injeção de SQL às cegas Mensagens  genéricas. Consultas SQL retornam verdadeiro ou falso.  101 AND (SELECT ASCII(SUBSTR(first_name,1,1)) FROM user_data WHERE userid=15613) =$ -- $ = [65, 122] (Todas as letras do alfabeto). Demo:  Video 9
Proteção PreparedStatements (Consultas parametrizadas). Stored Procedures. Verificar todos os dados fornecidos pelo usuário. Enterprise Security API (ESAPI) Validação no lado do cliente. 10
Whitelist x Blacklist Blacklist é uma lista de entradas maliciosas.  Whitelist é uma lista de entradas válidas. Whitelist é a mais recomendada. Expressões regulares. 11
Referências The real dirtyofwhitelist– http://goo.gl/ETxO9 OWASP Sqli- http://goo.gl/p0zea OWASP SqliProteção -http://goo.gl/X8nI OWASP BlindSqli - http://goo.gl/JmnhW OWASP Enterprise Security API-http://goo.gl/uAUq7 RsnakeSqliCheat Sheet: http://goo.gl/iXkxg Outra cheat sheet - http://goo.gl/Obdz 12
A2 - Cross Site Scripting (XSS) OWASP TOP 10 13
O que é? 14 ,[object Object]
 Origem do termo.
Existem três tipos de XSS:
Não-Persistente. (Refletido)
Persistente. (Armazenado)
Baseado em DOM (persistente ou não),[object Object]
Demo XSS persistente.  Objetivo: Mostrar o cookie do usuário. Cookie permite o armazenamento da seção. Video 16
Impactos do XSS Sequestro de sessão de usuário. Roubo de dados sensíveis.  Reescrita de página Web. Redirecionamento de página para sites falsos e/ou malware. 17
Proteção Fazer validação dos dados inseridos pelo usuário. Não renderizar dados digitados pelo usuário sem validação. 18
Referências OWASP XSS: http://goo.gl/OQjw0 OWASP DOM Based XSS: http://goo.gl/DRP5n Artigo DOM Based XSS: http://goo.gl/A6Yka Rsnake XSS Cheat Sheet: http://goo.gl/oNbL Livro “XSS Attacks: Cross Site Scripting Exploits and Defense” -  http://goo.gl/unsrC NoScript: http://goo.gl/HgJ8 19
A3 - Falhas de autenticação e gerenciamento de sessão OWASP TOP 10 20
O que é? HTTP é um protocolo stateless. SESSION ID. Logout, gerenciamento da senha e timeouts.  Complicado de implementar de maneira segura. 21
Cenário Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code 1 Usuário envia credenciais www.boi.com?JSESSIONID=9FA1DB9EA... Páginautilizareescrita de url Ex: Coloca a sessãona URL 2 3 Usuárioclica no link http://www.hacker.comem um fórum Atacantecheca o log de www.hacker.com e encontra o JSESSIONID da vítima 4 5 Atacanteutiliza o JSESSIONID e tomacontrole da conta da vítima 22
Demo A aplicação não implementa o SESSION ID de forma aleatória. O atacante utiliza um ataque força bruta para descobrir um SESSION ID válido. Video 23
Proteção ,[object Object]
Utilize SSL paraprotegercredenciais e session id`s.Verifique o certificado SSL. Examinetodas as funçõesrelacionadas à autenticação. ,[object Object],24
Referências OWASP Authentication Cheat_Sheet- http://goo.gl/AVNQ6  ESAPI Authenticator API- http://goo.gl/zHVDk Common WeaknessEnumeration (CWE) CWE Entry 287 on Improper Authentication- http://goo.gl/VVKY0 25
A4 - Referência direta insegura aos objetos  OWASP TOP 10 26
O que é? Oacessodireto a um objetonão é verificado. Exemplo:  http://www.exemplo.com/index.php?permissao=atendente	 Modificar ‘permissao’ para ‘admin’. 27
Demo ,[object Object]
Elemodifica o númeropara 6066.
O atacanteacessainformaçõesdaconta de outrousuário.https://www.onlinebank.com/user?acct=6065 28
Erros comuns Listar apenas objetos que o usuário possui acesso, sem reforçar uma validação no acesso dos objetos os quais ele não possui acesso. Esconder em campos ocultos as referências dos objetos e não reforçar a autorização de acesso. ,[object Object],Acesso a arquivos não autorizados. 29
Proteção Validação de referência direta Verifique se o valor do parâmetro está formatado apropriadamente. Verifique se o usuário tem permissão de acesso ao objeto referenciado. Verifique se o usuário possui permissão ao modo de acesso (leitura, escrita, alteração e exclusão). 30
Referências ESAPI Access Control API- http://goo.gl/wSB1k Application Security Verification Standard (ASVS) ASVS requirements area for Access Control (V4)- http://goo.gl/wAGr6 CWE Entry 639 on Insecure Direct Object References- http://goo.gl/ACOdx CWE Entry 22 on Path Traversal- http://goo.gl/VqXlV 31
A5 - Cross Site Request Forgery (CSRF)  OWASP TOP 10 32
O que é? Atacante forja uma requisição de um usuário já autenticado. Navegador da vítima é forçado a executar uma ação sem seu consentimento.  Impactos típicos: acesso a informações sensíveis, modificação de dados da conta. 33
Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code Demo Atacantecriaumaarmadilhaem um site ou email 1 Aplicação com umavulnerabilidade CSRF Escondeemuma tag <img> um ataque contra umaaplicaçãovulnerável Quandologada no site vulnerável,  a vítimavisita o site do atacante 2 3 O aplicaçãovulnerávelrecebe a requisiçãolegítima da vítima e executa o comando da requisição A tag <img> carregadapelonavegadorenviaumarequisição GET incluíndo as credenciaispara a aplicaçãovulnerável Video 34
Proteção ,[object Object],Adicionar um token secretosensível a requisição. ,[object Object],35
Referências Curso sobre CSRF- http://goo.gl/pGOZJ OWASP CSRF Proteção- http://goo.gl/uJ43O OWASP CSRFTester-CSRF Testing Tool- http://goo.gl/pq1zS ESAPI HTTPUtilitiesClass with AntiCSRFTokens- http://goo.gl/3Cq0t Evitarataques de CSRF emjava por Lucas Ferreira- http://goo.gl/AjrDv 36
A6 - ConFiguraçãoinapropriada de segurança OWASP TOP 10 37
O que é? Ocorrequandopáginas do sistemaestãodisponíveisparaseremacessadasporqualquerusuário. Exemplo: O usuáriotentaacessarurlspadrões de páginas de configuração. http://exemplo.com/config 38
Proteção Verifique a configuração de todo o sistema, se há versões de bibliotecas desatualizadas. Analise os efeitos dos patches inseridos no seu ambiente. 39
Referências OWASP Development Guide: Chapter on Configuration http://goo.gl/6zc5e ASVS requirements area for Security Configuration (V12) http://goo.gl/wAGr6 CWE Entry 2 on Environmental Security Flaws http://goo.gl/53vEl CIS Security ConfigurationGuides/Benchmarks http://goo.gl/vC73u 40
A7 - ArmazenamentoInseguro - Criptografia OWASP TOP 10 41
O que é? Armazenar informação sensível de forma insegura. Quais são as informações sensíveis? Aonde armazená-las? Estão protegidas em todos os lugares?  Conhecer as premissas de segurança do protocolo. 42
Impacto Típico ,[object Object]
Atacantes extraem informações secretas para utilizar em outros ataques.
Perda de credibilidade da empresa.43
Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code Cenário Vítimaentra com o número do cartão de créditoem um formulário 1 Log files Um desenvolvedormaliciosorouba o número de várioscartões de crédito 4 2 Ocorre um erronaaplicação e o número do cartão de crédito do usuário é armazenado no log 3 Os logs sãoacessíveispelosdesenvolvedores da aplicaçãoporpropósitos de depuração de erros 44
Proteção ,[object Object],Identifique o lugar aondeos dados serãoarmazenados. Use algoritmos fortes e bemconhecidos. Gerencie corretamente as chaves. 45
Referências ESAPI EncryptorAPI - http://goo.gl/y5FI5 OWASP Development Guide: Chapter on Cryptography - http://goo.gl/0SaiU OWASP CodeReviewGuide: ChapteronCryptography - http://goo.gl/KdBys CWE Entry 310 on Cryptographic Issues - http://goo.gl/QRO2E 46
A8 - Falha de restrição de acesso à URL OWASP TOP 10 47
O que é? Algumaspáginasnãofazemverificação de acesso. Complemento da vulnerabilidadeA4 - Referência direta insegura aos objetos  48
Cenário ,[object Object]
http://exemplo.com/informacao/index.php
http://exemplo.com/admin_informacao/index.php49
Proteção Para cada URL: Restrinja o acesso para usuários autenticados (se não for público). Aplique regras baseadas em permissões. Desabilite o acesso de usuários não autenticados a páginas que contenham logs, configurações e outros. 50
Referências OWASP Development Guide: Chapter on Authorization - http://goo.gl/bWfvF OWASP Article on Forced Browsing - http://goo.gl/I7jNs CWE Entry 285 on Improper Access Control (Authorization) - http://goo.gl/ZmcFO 51
A9 - Proteção insuficiente na camada de transporte OWASP TOP 10 52

Weitere ähnliche Inhalte

Was ist angesagt?

Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 
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
 
Quem tem medo do XSS
Quem tem medo do XSSQuem tem medo do XSS
Quem tem medo do XSSWilliam Costa
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingCristiano Caetano
 
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
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedoresAtaques MITM a aplicativos android: abusando da confiança dos desenvolvedores
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedoresivanjokerbr
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasPaulo Pires
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoEr Galvão Abbott
 
OWASP Top 10 2010 para JavaEE (pt-BR)
OWASP Top 10 2010 para JavaEE (pt-BR)OWASP Top 10 2010 para JavaEE (pt-BR)
OWASP Top 10 2010 para JavaEE (pt-BR)Magno Logan
 

Was ist angesagt? (20)

Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 
Segurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSourceSegurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSource
 
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
 
Quem tem medo do XSS
Quem tem medo do XSSQuem tem medo do XSS
Quem tem medo do XSS
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
PHP Seguro em 2013
PHP Seguro em 2013PHP Seguro em 2013
PHP Seguro em 2013
 
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
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedoresAtaques MITM a aplicativos android: abusando da confiança dos desenvolvedores
Ataques MITM a aplicativos android: abusando da confiança dos desenvolvedores
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
OWASP Top 10 2010 para JavaEE (pt-BR)
OWASP Top 10 2010 para JavaEE (pt-BR)OWASP Top 10 2010 para JavaEE (pt-BR)
OWASP Top 10 2010 para JavaEE (pt-BR)
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 

Ähnlich wie 10 maiores riscos em aplicações Web

Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2William Costa
 
Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilWilliam Costa
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...Thiago Dieb
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebMarcio Roberto de Souza Godoi
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebCarlos Serrao
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebMagno Logan
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...As Zone
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemAlcyon Ferreira de Souza Junior, MSc
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 

Ähnlich wie 10 maiores riscos em aplicações Web (20)

Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasil
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Webgoat como ferramenta de aprendizado
Webgoat como ferramenta de aprendizadoWebgoat como ferramenta de aprendizado
Webgoat como ferramenta de aprendizado
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a Web
 
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
 
Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometem
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 

Mehr von CJR, UnB

XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasCJR, UnB
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsCJR, UnB
 
Apresentação Age 2.0
Apresentação Age 2.0Apresentação Age 2.0
Apresentação Age 2.0CJR, UnB
 
Treinamento para Eventos - DIREX
Treinamento para Eventos - DIREXTreinamento para Eventos - DIREX
Treinamento para Eventos - DIREXCJR, UnB
 
Treinamento sobre Eventos - CJR
Treinamento sobre Eventos - CJRTreinamento sobre Eventos - CJR
Treinamento sobre Eventos - CJRCJR, UnB
 
Por que ser um empresário júnior?
Por que ser um empresário júnior?Por que ser um empresário júnior?
Por que ser um empresário júnior?CJR, UnB
 
SVN Básico
SVN BásicoSVN Básico
SVN BásicoCJR, UnB
 

Mehr von CJR, UnB (8)

XP Programming
XP ProgrammingXP Programming
XP Programming
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
Apresentação Age 2.0
Apresentação Age 2.0Apresentação Age 2.0
Apresentação Age 2.0
 
Treinamento para Eventos - DIREX
Treinamento para Eventos - DIREXTreinamento para Eventos - DIREX
Treinamento para Eventos - DIREX
 
Treinamento sobre Eventos - CJR
Treinamento sobre Eventos - CJRTreinamento sobre Eventos - CJR
Treinamento sobre Eventos - CJR
 
Por que ser um empresário júnior?
Por que ser um empresário júnior?Por que ser um empresário júnior?
Por que ser um empresário júnior?
 
SVN Básico
SVN BásicoSVN Básico
SVN Básico
 

10 maiores riscos em aplicações Web

  • 2. 10 maiores riscos em aplicações Web Leandro Silva dos Santos Thiago Stuckert leandrosantos@inbrax.com thiago.melo.stuckert@gmail.com.br Novembro - 2010 2
  • 3. Open Web Application Security Project (OWASP) Organização sem fins lucrativos. Desenvolve projetos na área de teste de segurança de aplicações e serviços Web. Site OWASP: http://www.owasp.org/ CapítuloBrasília: http://goo.gl/iN9u4 3
  • 4. OWASP TOP 10 Documento de conscientização. Amplo consenso sobre as falhas de segurança. Link para o projeto - http://goo.gl/8OAK 4
  • 5. A1 - Falhas de Injeção OWASP TOP 10 5
  • 6. O que é? Injetar código que modifica a semântica da consulta. Toda entrada é má até que se prove o contrário. Falta de validação na entrada. 6
  • 7. Injeção de SQL Structured Query Language (SQL) Inserir SQL em uma entrada de dados. Insert/Update/Delete ou operações administrativas. 7
  • 8. Cenário Account: SKU: Account: SKU: "SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’" Account Summary Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293 DB Table   HTTP response   HTTP request SQL query Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Databases Legacy Systems Web Services Directories Billing Human Resrcs Application Layer APPLICATIONATTACK Custom Code 1. Aplicaçãoapresenta um formuláriopara o usuário. 2. Usuárioenviaumaentradamaliciosaatravés do formulário. App Server 3. Aplicaçãotransmite a consulta SQL para o BD. Web Server Hardened OS 4. BD executa a consulta e retorna o resultadopara a aplicação. Network Layer 5. Aplicaçãoapresenta o resultadopara o usuário. Firewall Firewall 8
  • 9. Injeção de SQL às cegas Mensagens genéricas. Consultas SQL retornam verdadeiro ou falso. 101 AND (SELECT ASCII(SUBSTR(first_name,1,1)) FROM user_data WHERE userid=15613) =$ -- $ = [65, 122] (Todas as letras do alfabeto). Demo: Video 9
  • 10. Proteção PreparedStatements (Consultas parametrizadas). Stored Procedures. Verificar todos os dados fornecidos pelo usuário. Enterprise Security API (ESAPI) Validação no lado do cliente. 10
  • 11. Whitelist x Blacklist Blacklist é uma lista de entradas maliciosas. Whitelist é uma lista de entradas válidas. Whitelist é a mais recomendada. Expressões regulares. 11
  • 12. Referências The real dirtyofwhitelist– http://goo.gl/ETxO9 OWASP Sqli- http://goo.gl/p0zea OWASP SqliProteção -http://goo.gl/X8nI OWASP BlindSqli - http://goo.gl/JmnhW OWASP Enterprise Security API-http://goo.gl/uAUq7 RsnakeSqliCheat Sheet: http://goo.gl/iXkxg Outra cheat sheet - http://goo.gl/Obdz 12
  • 13. A2 - Cross Site Scripting (XSS) OWASP TOP 10 13
  • 14.
  • 15. Origem do termo.
  • 19.
  • 20. Demo XSS persistente. Objetivo: Mostrar o cookie do usuário. Cookie permite o armazenamento da seção. Video 16
  • 21. Impactos do XSS Sequestro de sessão de usuário. Roubo de dados sensíveis. Reescrita de página Web. Redirecionamento de página para sites falsos e/ou malware. 17
  • 22. Proteção Fazer validação dos dados inseridos pelo usuário. Não renderizar dados digitados pelo usuário sem validação. 18
  • 23. Referências OWASP XSS: http://goo.gl/OQjw0 OWASP DOM Based XSS: http://goo.gl/DRP5n Artigo DOM Based XSS: http://goo.gl/A6Yka Rsnake XSS Cheat Sheet: http://goo.gl/oNbL Livro “XSS Attacks: Cross Site Scripting Exploits and Defense” - http://goo.gl/unsrC NoScript: http://goo.gl/HgJ8 19
  • 24. A3 - Falhas de autenticação e gerenciamento de sessão OWASP TOP 10 20
  • 25. O que é? HTTP é um protocolo stateless. SESSION ID. Logout, gerenciamento da senha e timeouts. Complicado de implementar de maneira segura. 21
  • 26. Cenário Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code 1 Usuário envia credenciais www.boi.com?JSESSIONID=9FA1DB9EA... Páginautilizareescrita de url Ex: Coloca a sessãona URL 2 3 Usuárioclica no link http://www.hacker.comem um fórum Atacantecheca o log de www.hacker.com e encontra o JSESSIONID da vítima 4 5 Atacanteutiliza o JSESSIONID e tomacontrole da conta da vítima 22
  • 27. Demo A aplicação não implementa o SESSION ID de forma aleatória. O atacante utiliza um ataque força bruta para descobrir um SESSION ID válido. Video 23
  • 28.
  • 29.
  • 30. Referências OWASP Authentication Cheat_Sheet- http://goo.gl/AVNQ6 ESAPI Authenticator API- http://goo.gl/zHVDk Common WeaknessEnumeration (CWE) CWE Entry 287 on Improper Authentication- http://goo.gl/VVKY0 25
  • 31. A4 - Referência direta insegura aos objetos OWASP TOP 10 26
  • 32. O que é? Oacessodireto a um objetonão é verificado. Exemplo: http://www.exemplo.com/index.php?permissao=atendente Modificar ‘permissao’ para ‘admin’. 27
  • 33.
  • 35. O atacanteacessainformaçõesdaconta de outrousuário.https://www.onlinebank.com/user?acct=6065 28
  • 36.
  • 37. Proteção Validação de referência direta Verifique se o valor do parâmetro está formatado apropriadamente. Verifique se o usuário tem permissão de acesso ao objeto referenciado. Verifique se o usuário possui permissão ao modo de acesso (leitura, escrita, alteração e exclusão). 30
  • 38. Referências ESAPI Access Control API- http://goo.gl/wSB1k Application Security Verification Standard (ASVS) ASVS requirements area for Access Control (V4)- http://goo.gl/wAGr6 CWE Entry 639 on Insecure Direct Object References- http://goo.gl/ACOdx CWE Entry 22 on Path Traversal- http://goo.gl/VqXlV 31
  • 39. A5 - Cross Site Request Forgery (CSRF) OWASP TOP 10 32
  • 40. O que é? Atacante forja uma requisição de um usuário já autenticado. Navegador da vítima é forçado a executar uma ação sem seu consentimento. Impactos típicos: acesso a informações sensíveis, modificação de dados da conta. 33
  • 41. Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code Demo Atacantecriaumaarmadilhaem um site ou email 1 Aplicação com umavulnerabilidade CSRF Escondeemuma tag <img> um ataque contra umaaplicaçãovulnerável Quandologada no site vulnerável, a vítimavisita o site do atacante 2 3 O aplicaçãovulnerávelrecebe a requisiçãolegítima da vítima e executa o comando da requisição A tag <img> carregadapelonavegadorenviaumarequisição GET incluíndo as credenciaispara a aplicaçãovulnerável Video 34
  • 42.
  • 43. Referências Curso sobre CSRF- http://goo.gl/pGOZJ OWASP CSRF Proteção- http://goo.gl/uJ43O OWASP CSRFTester-CSRF Testing Tool- http://goo.gl/pq1zS ESAPI HTTPUtilitiesClass with AntiCSRFTokens- http://goo.gl/3Cq0t Evitarataques de CSRF emjava por Lucas Ferreira- http://goo.gl/AjrDv 36
  • 44. A6 - ConFiguraçãoinapropriada de segurança OWASP TOP 10 37
  • 45. O que é? Ocorrequandopáginas do sistemaestãodisponíveisparaseremacessadasporqualquerusuário. Exemplo: O usuáriotentaacessarurlspadrões de páginas de configuração. http://exemplo.com/config 38
  • 46. Proteção Verifique a configuração de todo o sistema, se há versões de bibliotecas desatualizadas. Analise os efeitos dos patches inseridos no seu ambiente. 39
  • 47. Referências OWASP Development Guide: Chapter on Configuration http://goo.gl/6zc5e ASVS requirements area for Security Configuration (V12) http://goo.gl/wAGr6 CWE Entry 2 on Environmental Security Flaws http://goo.gl/53vEl CIS Security ConfigurationGuides/Benchmarks http://goo.gl/vC73u 40
  • 48. A7 - ArmazenamentoInseguro - Criptografia OWASP TOP 10 41
  • 49. O que é? Armazenar informação sensível de forma insegura. Quais são as informações sensíveis? Aonde armazená-las? Estão protegidas em todos os lugares? Conhecer as premissas de segurança do protocolo. 42
  • 50.
  • 51. Atacantes extraem informações secretas para utilizar em outros ataques.
  • 52. Perda de credibilidade da empresa.43
  • 53. Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code Cenário Vítimaentra com o número do cartão de créditoem um formulário 1 Log files Um desenvolvedormaliciosorouba o número de várioscartões de crédito 4 2 Ocorre um erronaaplicação e o número do cartão de crédito do usuário é armazenado no log 3 Os logs sãoacessíveispelosdesenvolvedores da aplicaçãoporpropósitos de depuração de erros 44
  • 54.
  • 55. Referências ESAPI EncryptorAPI - http://goo.gl/y5FI5 OWASP Development Guide: Chapter on Cryptography - http://goo.gl/0SaiU OWASP CodeReviewGuide: ChapteronCryptography - http://goo.gl/KdBys CWE Entry 310 on Cryptographic Issues - http://goo.gl/QRO2E 46
  • 56. A8 - Falha de restrição de acesso à URL OWASP TOP 10 47
  • 57. O que é? Algumaspáginasnãofazemverificação de acesso. Complemento da vulnerabilidadeA4 - Referência direta insegura aos objetos 48
  • 58.
  • 61. Proteção Para cada URL: Restrinja o acesso para usuários autenticados (se não for público). Aplique regras baseadas em permissões. Desabilite o acesso de usuários não autenticados a páginas que contenham logs, configurações e outros. 50
  • 62. Referências OWASP Development Guide: Chapter on Authorization - http://goo.gl/bWfvF OWASP Article on Forced Browsing - http://goo.gl/I7jNs CWE Entry 285 on Improper Access Control (Authorization) - http://goo.gl/ZmcFO 51
  • 63. A9 - Proteção insuficiente na camada de transporte OWASP TOP 10 52
  • 64. O que é? Transmissão de dados sensíveis de forma insegura. Firesheep 53
  • 65. Demo Parceiro de negócio Vítimaexterna Backend Systems Custom Code Empregados 2 1 Um atacante externo rouba credenciais e dados da rede externa Um atacanteinternoroubacredenciais e dados da redeinterna Atacanteexterno Atacante interno Video 54
  • 66. Proteção Usar SSL/TLS emtodas as conexões com dados sensíveis. Assinarmensagens antes de transmiti-las. Gerenciarchavescorretamente. Verificarcertificados SSL antes de usá-los. (origem, autoassinados) 55
  • 67. Referências Firesheep - http://goo.gl/yEcU Blacksheep- http://goo.gl/3dagf HTTPS Everywhere - http://goo.gl/fsKV OWASP ProteçãonaCamada de Transporte - http://goo.gl/McooF 56
  • 68. A10 - encaminhamento e redirecionamento sem validação OWASP TOP 10 57
  • 69. Finance Transactions Accounts Administration Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code Redirecionamento sem validação 1 Atacanteenvia um email parasuavítima From: ServiçosinternosSubject: Suarestituição de impostosNossosregistrosmostramque o senhorpossuiimpostos a restituir, por favor clique aqui. 3 A aplicaçãoredireciona a vítima A vítimaclica e o endereçopossue um parâmetrosemvalidação 2 A requisiçãoenviapara o site vulnerável o parâmetro,semservalidado. Redirecionando a vítimapara o site do atacante. Evil Site 4 Evil site instala um malware navítima http://www.irs.gov/taxrefund/claim.jsp?year=2006&… &dest=www.evilsite.com 58
  • 70. Encaminhamento sem validação 1 O atacanteenvia um ataqueparaumapáginavulnerável A páginarequisitadapossuiacesso a umaárearestrita. E o atacanteconseguiserencaminhadoparaestapágina, burlando o controle de acesso. public void sensitiveMethod( HttpServletRequest request, HttpServletResponse response) { try { // Do sensitive stuff here. ... } catch ( ... A aplicaçãoautoriza a requisição 2 Filtro 3 Falha a autorização do encaminhamento e o atacanteburla o controle de acesso. public void doPost( HttpServletRequest request, HttpServletResponse response) { try { String target = request.getParameter( "dest" ) ); ... request.getRequestDispatcher( target ).forward(request, response); } catch ( ... 59
  • 71. Proteção Use encaminhamento e redirecionamento, somente quando necessário. Caso use, não permita que o usuário defina destino na URL. Valide cada parâmetro para garantir sua corretude e permissão de acesso. 60
  • 72. Referências OWASP Article on Open Redirects -http://goo.gl/vEAKE ESAPI SecurityWrapperResponsesendRedirect() method - http://goo.gl/UzsA9 CWE Entry 601 on Open Redirects - http://goo.gl/z93EU WASC Article on URL Redirector Abuse - http://goo.gl/tshz9 61
  • 73. 2007 x 2010 = = + = + - - 62
  • 74. Perguntas? Obrigado! leandrosantos@inbrax.com thiago.melo.stuckert@gmail.com.br Apoio: 63