ENSOL 2011 - OWASP e a Segurança na Web

36
The OWASP Foundation http://www.owasp.org OWASP e a Segurança na Web Magno Logan [email protected] Líder do capítulo OWASP Paraíba Membro do OWASP Portuguese Language Project OWASP Paraíba Será que estamos seguros?

description

ENSOL 2011 - OWASP e a Segurança na Web

Transcript of ENSOL 2011 - OWASP e a Segurança na Web

Page 1: ENSOL 2011 - OWASP e a Segurança na Web

The OWASP Foundation http://www.owasp.org

OWASP e a Segurança na Web

!!

Magno Logan [email protected]

Líder do capítulo OWASP Paraíba Membro do OWASP Portuguese Language Project

OWASP Paraíba

Será que estamos seguros?

Page 2: ENSOL 2011 - OWASP e a Segurança na Web

Magno Logan?

• Primeiro de tudo curioso! =)

• Analista de Sistemas

• Especialista em SegInfo

• Fundador do Capítulo OWASP Paraíba

• Praticante de Ninjutsu

• DJ nas horas vagas

Page 3: ENSOL 2011 - OWASP e a Segurança na Web

Agenda• OWASP?

• Segurança na Web

• OWASP Top 10

• Ferramentas

• Lulz Time!

3

Page 4: ENSOL 2011 - OWASP e a Segurança na Web

4

OWASP (Open Web Application Security Project)

!

• Organização internacional que recebe iniciativas de

todo o mundo

• Comunidade aberta dedicada a possibilitar a criação de

aplicações confiáveis

• Todas as ferramentas, documentos, fóruns e capítulos

são livres e abertos a todos interessados

http://www.owasp.org/index.php/About_OWASP !

Page 6: ENSOL 2011 - OWASP e a Segurança na Web

OWASP Paraíba

6

• Formado por desenvolvedores, sys admins,

estudantes e demais interessados

• Lista de Discussão: bit.ly/owasppb

• Twitter: @owasppb

Page 7: ENSOL 2011 - OWASP e a Segurança na Web

Como funciona?• Reuniões 1x por mês

• Aberta ao público!

• Discussões de assuntos relacionados à segurança de aplicações

• Palestras com profissionais da área

• Criações de projetos, ferramentas, artigos, etc...

7

Page 8: ENSOL 2011 - OWASP e a Segurança na Web

OWASP Top Ten 2010A1: Injection A2: Cross-Site

Scripting (XSS)

A3: Broken Authentication

and Session Management

A4: Insecure Direct Object References

A5: Cross Site Request

Forgery (CSRF)

A6: Security Misconfigurati

on

A7: Failure to Restrict URL

Access

A8: Insecure Cryptographic

Storage

A9: Insufficient Transport

Layer Protection

A10: Unvalidated

Redirects and Forwards

http://www.owasp.org/index.php/Top_10

Page 9: ENSOL 2011 - OWASP e a Segurança na Web

Vulnerabilidades

Page 10: ENSOL 2011 - OWASP e a Segurança na Web

10

Page 11: ENSOL 2011 - OWASP e a Segurança na Web

A1 – Falhas de Injeção

11

Injeção significa… • Enganar uma aplicação a incluir comandos nos dados enviados a um

interpretador

Interpretadores • Recebem strings e interpretam como comandos • SQL, OS Shell, LDAP, XPath, Hibernate, etc…

SQL injection ainda é muito comum! • Muitas aplicações ainda são suscetíveis (falha dos desenvolvedores) • Embora seja normalmente muito simples de evitar

Impacto Típico • Normalmente alto. Todo o banco de dados pode ser lido ou modificado. • Pode também permitir acesso à contas de usuário ou até mesmo acesso

a nível de SO.

Page 12: ENSOL 2011 - OWASP e a Segurança na Web

Exemplo de SQL InjectionFi

rew

all

Hardened OS

Web Server

App ServerFi

rew

all

Dat

abas

es

Lega

cy S

yste

ms

Web

Ser

vice

s

Dir

ecto

ries

Hum

an R

esrc

s

Billi

ng

Custom Code

ATAQUE DE APLICAÇÃO

Cam

ada

de R

ede

Cam

ada

de A

plic

ação

Acc

ount

s

Fina

nce

Adm

inis

trat

ion

Tran

sact

ions

Com

mun

icat

ion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bus.

Func

tions

HTTP request

!

SQL

query!

DB Table !

HTTP response

" ✇

"SELECT * FROM accounts WHERE

acct=‘’ OR 1=1--’"

1. Aplicação apresenta um formulário para o atacante

2. Atacante envia uma requisição no formulário

3. Aplicação repassa ataque para o banco de dados em uma query SQL

Account Summary !

Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293

4. Banco de dados executa query contendo o ataque e envia os

resultados para aplicação

5. Aplicação recebe os dados e envia os resultados para o usuário

Login:

Senha:

Login:

Senha:

Page 13: ENSOL 2011 - OWASP e a Segurança na Web

A1 – Evitando Falhas de Injeção

13

!

1. Não tente sanitizar as entradas no banco sozinho!

2. Use SQL statements parametrizados específicos da linguagem

3. Codifique todas as entradas dos usuários antes de passar para o

SGBD

• Sempre execute validação de entrada do tipo ‘white list’ em todas as

informações fornecidas pelo usuário

• Sempre minimize os privilégios do banco de dados para reduzir o

impacto de uma falha

Page 14: ENSOL 2011 - OWASP e a Segurança na Web

bobby-tables.com

14

Dicas de como evitar SQL Injection em diversas linguagens

Page 15: ENSOL 2011 - OWASP e a Segurança na Web

Casos famosos...• Fevereiro 2011 – HBGary

• Março 2011 - MySQL

• Março e Maio 2011 – Comodo

• Maio 2011 – PBS, Sony, Fox,

Infragard, Nintendo, CNN...

15

Page 16: ENSOL 2011 - OWASP e a Segurança na Web

16

Page 17: ENSOL 2011 - OWASP e a Segurança na Web

A2 – Cross Site Scripting (XSS)

17

Acontece a qualquer momento… • Dados não processados do atacante são enviados para um navegador de

um usuário inocente

Existem 3 tipos de XSS: • Armazenados em banco de dados (Stored) • Refletidos de entrada da web : formulário, campo oculto, URL, etc.

(Reflected) • Enviado diretamente ao cliente JavaScript (DOM Based)

Praticamente toda aplicação web tem este problema! • Tente isto no seu navegador – javascript:alert(document.cookie)

Impacto Típico • Roubo de sessão ou dados sensíveis, defacement ou redirecionar usuário

para sites de phishing ou malware • Mais severo: Instalar proxy XSS que permita atacante observar e

direcionar todo o comportamento do usuário em sites vulneráveis e forçar o usuário a outros sites

Page 18: ENSOL 2011 - OWASP e a Segurança na Web

Exemplo de XSS

Aplicação com vulnerabilidade de

Stored XSS

3

2

Atacante insere um script malicioso na

página que armazena dados no servidor

1

Script silenciosamente envia o cookie de sessão da vítima

Script roda dentro do navegador da vítima com total acesso ao

DOM e cookies

Custom Code

Acc

ount

s

Fina

nce

Adm

inis

trat

ion

Tran

sact

ions

Com

mun

icat

ion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bus.

Func

tions

Atacante prepara a armadilha – atualizar meu perfil

Vítima acessa a página – o perfil do atacante

Page 19: ENSOL 2011 - OWASP e a Segurança na Web

A2 – Evitando XSS

19

• Eliminar a falha

• Não inclua parâmetros de entrada nas páginas de resposta

• Defender contra a falha

• Recomendação Básica: Codifique todas as informações fornecidas pelos usuário!

• Realizar validações de entrada do tipo ‘white list’ em todas as entradas de

usuários que forem ser incluídas na página

• Para maiores tamanhos de HTML fornecido pelo usuário, utilize o projeto da

OWASP AntiSamy

(AntiSamy)

Page 20: ENSOL 2011 - OWASP e a Segurança na Web

A3 – Falha de Autenticação e Gerência de Sessões

20

HTTP é um protocolo “stateless” (sem estado) • Significa que as credenciais deve ser enviadas a cada requisição • Devemos utilizar SSL para tudo que necessite de autenticação

Falhas no controle das sessões • SESSION ID usado para controlar o estado já que o HTTP não faz • E é tão bom quanto as credenciais para o atacante… • SESSION ID é comumente exposto na rede, no navegador, nos logs, etc

Cuidado com as alternativas! • Mudar minha senha, lembrar minha senha, esqueci minha senha, pergunta

secreta, logout, email, etc…

Impacto Típico • Contas de usuários comprometidas ou sessões de usuários sequestradas

Page 21: ENSOL 2011 - OWASP e a Segurança na Web

Exemplo de Falha de Autenticação

Custom Code

Acc

ount

sFi

nanc

eA

dmin

istr

atio

nT

rans

acti

ons

Com

mun

icat

ion

Kno

wle

dge

Mgm

tE-

Com

mer

ceB

us. F

unct

ions1 Usuário envia suas

credenciais

2Site usa URL rewriting (coloca a sessão na URL)

3 Usuário clica no link http://www.hacker.com em um forum

www.twitter.com?JSESSIONID=9FA1DB9EA...

4

Hacker checa os logs de referência em www.hacker.com

e encontra o JSESSIONID do usuário

5 Hacker usa JSESSIONID e tem acesso à conta da

vítima

Page 22: ENSOL 2011 - OWASP e a Segurança na Web

A7 – Armazenamento com Criptografia Insegura

22

Armazenando dados sensíveis de forma insegura • Falha em identificar todos os dados sensíveis • Falha em identificar todos os locais onde os dados sensíveis são

armazenados • Falha em proteger devidamente estes dados em todos os locais

Impacto Típico • Atacantes acessam ou modificam informações privadas ou

confidenciais • Obtém segredos para usá-los em novos ataques • Embaraço da empresa, insatisfação dos clientes e perda de

confiança • Gastos para limpar o incidente • Empresas são processadas e/ou multadas

Page 23: ENSOL 2011 - OWASP e a Segurança na Web

Criptografar dados pra quê?

23

Page 24: ENSOL 2011 - OWASP e a Segurança na Web

Depois não vai chorar...

24

Page 25: ENSOL 2011 - OWASP e a Segurança na Web

Ferramentas

Page 26: ENSOL 2011 - OWASP e a Segurança na Web

OWASP ZAP

• Ferramenta para testes de invasão em

aplicações web (com versão em pt-BR!)

• Open source e Multiplataforma

• Recomendada para desenvolvedores e

profissionais de segurança

• Desenvolvido por Simon Bennetts

26

Page 27: ENSOL 2011 - OWASP e a Segurança na Web

OWASP MANTRA

27

!

!

!

• Framework open source de segurança

• Firefox + Add-ons de segurança

• Criado por um grupo de Indianos

• Se tornou um projeto da OWASP depois

Page 28: ENSOL 2011 - OWASP e a Segurança na Web

28

Page 29: ENSOL 2011 - OWASP e a Segurança na Web

Seu servidor é seguro?

29

Nikto2 – v 2.1.4

• Scanner de Servidores Web

• Verifica versões desatualizadas,

arquivos perigosos, problemas

de configuração

• Open Source (GPL) e fácil de usar!

• Desenvolvido por Chris Sullo e David Lodge

Page 30: ENSOL 2011 - OWASP e a Segurança na Web

E a sua aplicação?

!

!

!

• Framework de Ataque e Auditoria de Aplicações Web

• Procura e explora vulnerabilidades em aplicações web

• Open Source e Multiplataforma

• Desenvolvido por Andrés Riancho

30

Page 31: ENSOL 2011 - OWASP e a Segurança na Web

E o seu banco de dados?SQLmap

• Ferramenta open source que automatiza o processo

de detecção e exploração de falhas SQL Injection e

roubo de bancos de dados

• Acredita-se que foi uma das ferramentas utilizadas

nos ataques do LulzSecBrazil

• Chamando desenvolvedores

31

Page 32: ENSOL 2011 - OWASP e a Segurança na Web

Se protegendo…

HnTool

• Ferramenta de proteção de servidores Unix

• Varre o sistema e verifica vulnerabilidades

• Open source e em Python

• Desenvolvida por brasileiros,

melhor ainda, nordestinos!

32

Page 33: ENSOL 2011 - OWASP e a Segurança na Web

Lulz Time!

Page 34: ENSOL 2011 - OWASP e a Segurança na Web

Perguntas?

34

Page 36: ENSOL 2011 - OWASP e a Segurança na Web

www.owasp.org

36

46