BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

22
Análise de Vulnerabilidades em Aplicações WEB

Transcript of BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Page 1: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Análise de Vulnerabilidades em Aplicações WEB

Page 2: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Apresentação

Luiz Vieira

● Construtor 4Linux

● Analista e Consultor de Segurança

● 15 anos de experiência em TI

● Pen-Tester

● Articulista sobre Segurança de vários sites: VivaOLinux, SegurançaLinux, Imasters, HackProofing e etc

● Entusiasta do Software Livre

● Filósofo e Psicoterapeuta

Page 3: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

BotecoNet – Agenda

● Análise de Vulnerabilidades em Aplicações WEB - 24/06;

● Novidades sobre o PostgreSQL – PGCON2010 - 01/07;

● Java – Programando para fábrica de software - 08/07 ;

Page 4: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Tópicos de hoje

● Princípio de Sistemas Web● Ataques Web: Origem e Motivação● Princípios da Segurança Web● “all input is evil until proven otherwise”● OWASP e Top 10 OWASP● Vulnerabilidades Web● Principais Classes de Vulnerabilidades● Ferramentas para Análise e Auditoria● Cross-Site-Scripting● Cross Site Request Forgery● Armazenamento Inseguro de dados

Page 5: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Princípios de Sistemas Web

• Ótima escolha para mudança de plataforma das aplicações(?)

• A Internet não foi criada visando segurança

• Atualmente é considerada uma selva

Page 6: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Ataques Web: Origem e Motivação

● Roubo de informações– Benefício Próprio– Espionagem Industrial

● Defacement– Mass scaning/defacing

● (Ex-)Funcionários Insatisfeitos– Salários baixos ou demissões injustas

● Worms

Page 7: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Princípios da Segurança Web

● “all input is evil until proven otherwise”.

● Ter uma noção das falhas não é suficiente.

● White List vs Black List

Page 8: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

“all input is evil until proven otherwise”

● Entradas visíveis e de fácil manipulação– Campos texto– Variáveis de URL

● Entradas de manipulação intermediário– Campos hidden– Valores de cookies– Demais inputs (select, checkbox, radio etc)

● Entradas de difícil manipulação– Campos de cabeçalhos HTTP

Page 9: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

OWASP e Top 10 OWASP

● Significado:– Open Web Application Security Project

● Missão:– Tornar visível os riscos de segurança que uma aplicação pode sofrer.

● Livre para participação e material sob licença de Software Livre

● http://www.owasp.org

Page 10: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Ferramentas para Análise e Auditoria● Distribuições

- Backtrack 4- OWASP Live CD

● Ferramentas- WebScarab- Paros Proxy- Firebug- Muitas outras...

● Plugins- Firecat (para Firefox) http://migre.me/RyHN

● Wargames- Webgoat- Série HACME- www.hackerskills.com

Page 11: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Vulnerabilidades Web

● Caminho mais fácil de expor informação.

● Internet não é somente a Web (?)

● Preocupação com vulnerabilidades?– Dados valiosos?– E em outro host do mesmo servidor?

Page 12: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Vulnerabilidades Web

Page 13: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Principais Classes de Vulnerabilidades

● Injection● Cross Site Scripting (XSS)● Falha de Autenticação e gerenciamento de sessão● Referência Insegura à Objetos● CSRF● Falhas de configuração● Armazenamento Inseguro de Dados● Falha de Restrição de Acesso à URL● Proteção Insuficiente da Camada de Transporte● Redirecionamento e Encaminhamento Sem

Validação

Page 14: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Cross-Site-Scripting (XSS)● Alta ocorrência

● Baixo impacto (?)- Sequestro de sessão- Alteração de fluxo de dados- Defacement- Vetor para diversos outros ataques

● Execução arbitrária de códigos Javascript

● Má (ou não) filtragem dos dados que podem ser manipulador pelo usuário.

● Permite a criação de worms:– Vírus do Orkut (2007)

Page 15: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Métodos de Ataque

● Induzir a vítima a acessar o endereço:- http://localhost/AtaquesWeb/xss_exemplo1.php?busca=<script>alert('Vulneravel+a+XSS')</script>

Page 16: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Métodos de Ataque

● Procurar esconder (camuflar) a tentativa de ataque:– http://localhost/AtaquesWeb/xss_exemplo1.php?busca=%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%27%56%75%6c%6e%65%72%61%76%65%6c%20%61%20%58%53%53%27%29%3c%2f%73%63%72%69%70%74%3e

Page 17: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Cross Site Request Forgery

● Semelhante a XSS ● Qualquer sistema vulnerável a XSS está vulnerável a XSRF

● Nem toda aplicação vulnerável a XSRF está também vulnerável a XSS

● Permite alterar as informações enviadas ao navegados.

● Ataque client-side● Não se baseia em executar código JS● Se baseia em enviar requisições com as credenciais do usuário para o servidor.

Page 18: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Soluções

● Ineficiente:– Blacklist– addslashes() é ineficiente para XSRF

● Eficiente:– Evitar falhas de XSS– Controle próprio de tokens

Page 19: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Armazenamento Criptográfico Inseguro

Definições:● Funções Hash● Funcões Criptográficas

– Criptografia Simétrica– Criptografia Assimétrica

● Hash + Criptografia

Ataques:● Senhas fracas

– Brute-force● Senhas fortes

– Wordlist- Rainbowcrack + hash sites

Page 20: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Armazenamento Criptográfico InseguroRainbowCrack

● Brute-force Normal:– 350 milhões de senhas (texto puro) por segundo.

● Rainbow:– 62.223 milhões de senhas em texto puro por segundo

● http://www.md5crack.com/

Page 21: BotecoNet Analise de Vulnerabilidades Em Aplicacoes Web

Proteção de dados

● Armazenamento de Senha?

● Dados a serem recuperados?

● Hash puro?

● E criptografia? Proteja bem a chave.