O documento apresenta as principais vulnerabilidades em aplicações web e recomendações de acordo com o OWASP TOP10. Aborda riscos como injeção, quebra de autenticação, XSS e exposição de dados. Recomenda validar entradas, minimizar privilégios, usar HTTPS e inserir segurança no ciclo de desenvolvimento.
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29
1. 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 Medeiros
Diretor Executivo – iTFLEX Tecnologia
cdiego@itflex.com.br / cdiego@gmail.com
2. 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
3. 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)
4. 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
5. 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...)
7. 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
11. 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
13. 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/
14. 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 ?????
15. 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..
17. 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;
18. 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
20. 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)
22. 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)
23. 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
24. 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
25. 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
26. 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)
27. 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)
30. 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