Análise de Vulnerabilidades em Aplicações 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
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 ;
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
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
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
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
“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
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
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
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?
Vulnerabilidades 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
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)
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>
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
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.
Soluções
● Ineficiente:– Blacklist– addslashes() é ineficiente para XSRF
● Eficiente:– Evitar falhas de XSS– Controle próprio de tokens
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
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/
Proteção de dados
● Armazenamento de Senha?
● Dados a serem recuperados?
● Hash puro?
● E criptografia? Proteja bem a chave.
● Contato: [email protected]