SlideShare una empresa de Scribd logo
1 de 41
Segurança de aplicações Web
Alex Hübner, CFUG-SP
alex@cfugsp.com.br
2
O que são aplicações web?
 Softwares (sites) na arquitetura
cliente/servidor em protocolo HTTP
 Cliente universal: o browser (IE/Netscape)
 Servidor: vários sabores e soluções
 Dividido em 3 camadas:
 Apresentação
 Aplicação
 Dados e armazenamento
3
O que são aplicações web?
Fonte: The Open Web Applications Security Project – http://www.owasp.org
4
O que são aplicações web?
 Exemplos de aplicações web:
 CNN.com, Internet Banking, Previsão do
Tempo, Google e Yahoo!, Intranets,
extranets, invente uma!
 Não confunda aplicações web com
produtos específicos (ex: Apache, IIS, JSP,
PHP, ColdFusion, Windows 2000 Server,
SQL Server, MySQL etc).
5
O que são webservices?
 Softwares arquitetura aplicação/aplicação
em protocolo SOAP (XML sobre HTTP)
 Cliente: outras aplicações web
 Servidor: vários sabores e soluções
 Apenas duas camadas:
 Aplicação
 Dados e armazenamento
6
Segurança de aplicações web
 Algumas afirmações paradoxais tiradas de
listas de discussão na web:
 “Não existe sistema operacional ou
aplicação insegura, existem administradores
inseguros...”
 “Os bons admistradores são bons pois
precisam lidar com aplicações e sistemas
que se parecem com queijos suíços...”
 Má notícia: ambas são verdadeiras!
7
Risco, ameaça e vulnerabilidade
 Vulnerabilidade → Ameaça → Risco
 Risco:
 “A possibilidade de sofrer dano, perda”
 Ameaça:
 “Um risco eminente, provável, factível”
 Vulnerabilidade:
 “Estar suscetível a uma ameaça”
8
Avaliando os Riscos
 Não existe uma métrica quantitativa exata
 Quanto a Microsoft perderia com o site
invadido?
 Quanto o “Toninho’s Armazém Online”
perderia com o site invadido?
 Conheça o negócio do cliente
 Avalie as vulnerabilidades, ameaças e
riscos inerentes
9
Avaliando os Riscos
 Pergunte-se:
 As ameaças são internas (funcionários) ou externas
(visitantes)? Cuidado, o mordomo é sempre
suspeito!
 Quais são as motivações para um ataque ao
site/aplicação (pessoais, financeiras, diversão)?
 Qual será o impacto financeiro se o site/aplicação
estiver fora do ar em conseqüência destes ataques
(ex: loja virtual)?
 Qual será o impacto na imagem e reputação do
negócio como um todo?
 Você é odiado por alguém?
10
Avaliando os Riscos
 Decida-se e defina:
 Quanto gastar com a proteção?
 Provedor de hospedagem de qualidade
comprovada (+ caro), arquitetura utilizada, firewall,
IDS, logs detalhados, código meticulosamente
preparado e testado (+ tempo de codificação) etc.
 Quem são os responsáveis pela proteção?
 O desenvolvedor/programador (webmaster)?
 O provedor de hospedagem?
 O cliente?
11
Avaliando os Riscos
 Avaliar riscos é uma arte, consultores
abastados que o digam!
 Use o bom senso na sua avaliação
 Não gaste milhões para proteger centavos
 Uma aplicação 100% segura é 100%
impraticável
 O segredo é ser paranóico na medida
certa, comece com o seu próprio código
12
Onde usar a paranóia?
 Onde uma aplicação web é mais
vulnerável?
 Camada de Apresentação
 HTML/formulários/input e output de dados de e
para o cliente. Servidores web IIS, Apache.
Browsers, pluggins, seu código
 Camada de Aplicação
 Sevidores de aplicação ASP, TomCat, IBM
WebSphere, ColdFusion, seu código
 Ambas são responsabilidades do
desenvolvedor
13
Aplicações web: riscos e vulnerabilidades
“Optei por um plano de hospedagem
Linux com PHP e MySQL porque é bem
mais seguro que hospedar num plano
Windows com ASP e SQL Server...”
Historinha para boi dormir...
14
Aplicações web: riscos e vulnerabilidades
“Agora posso dormir tranqüilo, meu site
está rodando atrás de um firewall muito
potente e calibrado. Atrás dele eu ainda
tenho um IDS (intrusion detection
system) de última geração, que custou
30 mil dolares...”
Cliente satisfeito é outra coisa...
15
Aplicações web: riscos e vulnerabilidades
 Para quê firewall e IDS mais moderno e eficiente
do mercado? O seu site roda na porta 1589?
 Esqueça aquela “distro” Linux ultra segura e
complicada que você comprou na banca de jornal.
Não sabendo usá-la, ela será mais perigosa que o
Windows 95 como servidor de hospedagem
 “Ignore” os patches do Windows 2000 Server. Sua
aplicação vai ser mais segura só por que a
Microsoft corrigiu a rebinboca da parafuseta do
sistema de autenticação XYZ do protocolo IPXext?
16
Aplicações web: riscos e vulnerabilidades
 Preocupe-se primeiro com o código de sua
aplicação. Ele é, em última instância, o que você
expõe ao público geral e também às figurinhas do
mundo underground da internet (script kiddies)
 Enquanto você perde seu tempo olhando os
fundos da casa, o ladrão está entrando pela porta
da frente (vamos chamá-la de porta 80), que ficou
aberta e desprotegida
 Um número absurdo de aplicações e sites na web
possuem algum tipo de vulnerabilidade
relacionadas à má codificação ou arquitetura ruim,
não seja o criador de um deles
17
Aplicações web: riscos e vulnerabilidades
 Como vão os formulários, parâmetros URL,
queries SQL e cookies do seu site?
 Você sabia que sua base de dados pode
ser totalmente deletada ou alterada (o que
é pior), através de um simples campo de
“preencha seu nome”?
 Sabia que usuários malandros podem se
passar por usuários legítimos apenas
colocando um cookie editado no browser
deles?
18
Aplicações web: riscos e vulnerabilidades
70%* das invasões de sites e aplicações web
começam ou se dão totalmente através da
má codificação das mesmas
* The Open Web Applications Security Project – http://www.owasp.org
19
Aplicações web: riscos e vulnerabilidades
“Este site é 100% seguro, usamos
criptografia de 128 bits, você pode
perceber isso clicando no “cadeado
fechado” na barra de status do seu
browser...”
Onze entre dez sites de comércio eletrônico...
20
Alguns exemplos
 Parâmetros inválidos | teoria
 Informações enviadas pelo usuário não
são devidamente validadas e checadas
quando recebidas e tratadas pela
aplicação/site
 Manipulação de campos de FORM
 Manipulação de cookies
 Manipulação de parâmetros URL
 Manipulação de headers HTTP
21
Alguns exemplos
 Parâmetros inválidos | exemplo
 http://www.site.com.br/cesta/fecha_pedido.php?IDprodu
to=12&valor=7763 (o produto custa isso mesmo?)
 <form action=“fecha_pedido.php” method=“post”>
<input type=“hidden” name=“IDproduto” value=“12”>
<input type=“hidden” name=“valor” value=“7763”>
</form>
 Cookie: lang=pt-br; ADMIN=no; y=1 ; time=10:30GMT
Cookie: lang=pt-br; ADMIN=yes; y=1 ; time=12:30GMT
(o usuário é mesmo um administrador?)
22
Alguns exemplos
 Controle de acesso falho | teoria
 Controle de acesso a uma aplicação/site
ruim e falho e pode ser burlado
 Profusão de sistemas e métodos de autenticação
facilitam muito
 Inconsistent and Past Control Checks: pastas
internas não protegidas como deveriam
 Inconsistência de credenciais/IDs inseguros
 Path traversal
 Permissão de arquivos
 Cache de browser não limpo
23
Alguns exemplos
 Controle de acesso falho | exemplo
 http://www.site.com.br/admin/ (ok)
http://www.site.com.br/admin/modulox (?)
http://www.site.com.br/admin/moduloy/action.asp (?)
 http://www.site.com.br/adm/pegar_arquivo.cfm?arquiv
o=../../../winnt/system32/certmgr.reg
 http://www.site.com.br/adm/upload_arquivo.cfm?arqui
vo=iislog_safado.dll&destino=../../../winnt/system32/ine
tserv/isslog.dll
24
Alguns exemplos
 Quebra de autenticação | teoria
 O usuário é capaz de burlar o sistema de
autenticação do site/aplicação
 Esqueceu a senha?
 Redefinição de senha
 Sequestro de sessão (tokens e cookies)
 Relações de confiança entre o front-end e o back-
end (banco de dados, LDAP, email etc) muito alta
comprometendo todas as outras aplicações do
servidor
25
Alguns exemplos
 Quebra de autenticação | exemplo
SELECT username, senha
FROM tb_usuarios
WHERE usuario=‘$INPUT[usr]’
AND senha=‘$INPUT[pwd]’
26
Alguns exemplos
 Cross-site Scripting | teoria
 Ataque que usa uma aplicação web para
atingir um outro visitante/usuário
 Stored
 Reflected
 É uma das vulnerabilidades mais
exploradas em aplicações web
27
Alguns exemplos
 Cross-site Scripting | exemplo
 Campo de
comentário (stored)
 Campo “envie esta
notícia por e-mail”
(reflected)
28
Alguns exemplos
 Buffer Overflows | teoria
 Depentendes do servidor de aplicação
 Difíceis de explorar, porém muito
divulgados
 Podem ser evitados ou minimizados com
o auxílio de filtragem de dados inseridos
pelo usuário
29
Alguns exemplos
 Buffer Overflows | exemplo
30
Alguns exemplos
 Command/SQL Injection | teoria
 Informações (parâmetros dinâmicos)
enviadas para construção de queries e
interações com o banco de dados não são
devidamente validadas e checadas
quando recebidas e tratadas pela
aplicação/site ou pelo banco de dados
 Bastante comum
 Muitos programadores a ignoram completamente
 Grande risco
31
Alguns exemplos
 Command/SQL Injection | exemplo
 http://www.site.com/noticia.cfm?id=122
 <cfquery name=“qNoticias”
datasource=“bancoDeNoticias”>
SELECT * FROM noticias
WHERE id=#url.id#
</cfquery>
 http://www.site.com.br/noticias.cfm?id=122
;DROP TABLE noticias
(tem certeza de que quer deletar a tabela de notícias?)
32
Alguns exemplos
 Tratamento de erros | teoria
 Informações ou operações que gerem
erros no site/aplicação não são
devidamente tratados e informados ao
usuário de forma crua e sem cuidado
 Muitos servidores de aplicação (ASP, PHP,
ColdFusion) possuem mensagens de erro
em formato debug, “informando” muita
coisa útil para quem tem más intenções
 Desabilite-as, trate os erros (try/catch)!
33
Alguns exemplos
 Tratamento de erros | exemplo
 O usuário
precisa saber de
tudo isso?
34
Alguns exemplos
 Erro no uso de criptografia | teoria
 Ocorre quando o webmaster/programador
não entende onde e como deve fazer uso
de criptografia (SSL, por exemplo) em
suas aplicações
 Envio de senha e informações sensíveis para só
depois criptografar a página/resultado
 Forwards estúpidos
 Acreditar que usando 128bits está “protegido”,
lembre-se de todos os outros exemplos!
35
Alguns exemplos
 Erro no uso de criptografia | exemplo
 HTTP HTTP HTTPS
(login) (autenticação) (aplicação)
“Este site é 100% seguro, usamos
criptografia de 128 bits, você pode
perceber isso clicando no “cadeado
fechado” na barra de status do seu
browser...”
36
Alguns exemplos
 Administração remota | teoria
 Quanto menor o número de “ferramentas”
disponíveis para uma invasão, melhor
 Não deixe o IISAdmin, ColdFusion Administrator,
MyPHPAdmin etc disponíveis nas suas posições
padrões. Proteja-os!
 Remova qualquer aplicação de exemplos ou
documentação sobre o que você têm instalado
 Limite ao máximo quem e como as interfaces de
administração remota são acessíveis (IPs
autorizados, por exemplo)
37
Alguns exemplos
 Administração remota | exemplo
 Um prato cheio...
 Com 5 horas de brute-
force foi possível
invadir uma interface
de administração
remota como esta
 Estamos apenas a um
mísero “password
field” de distância de
obter controle total do
servidor e aplicações
contidas nele
 Esconda tudo que
puder!
38
Alguns exemplos
 Má configuração do servidor | teoria
 Quando um servidor ou software necessário para
rodar uma aplicação é mal administrado ou mal
configurado
 IIS sem patches de correção
 Apache 1.3 em Windows (inseguro)
 Sistema Operacional “caixa preta”
 Etc!
 Responsabilidade do administrador de sistemas e do
programador em conhecer o ambiente em que
trabalha e certificar-se de que ele está devidamente
configurado para uma maior segurança
39
Moral da história
 Conheça, planeje e controle os riscos de manter sua
aplicação pública (disponível na web)
 Cuide primeiro da porta de entrada, depois dos
fundos
 Ao revisar seu código, use o boné do vândalo, e
tente quebrar sua aplicação pela porta da frente
 Sempre valide toda e qualquer entrada e saída de
dados da sua aplicação (forms, url, etc)
 Use e abuse de soluções/scripts prontos
 Use a cabeça e seja malvado na hora de escrever
códigos
 Estude e participe de listas de discussão sobre o
assunto
40
Perguntas e respostas
41
Referência básica sobre o assunto
 The Open Web Application Security Project
 http://www.owasp.org

Más contenido relacionado

La actualidad más candente

Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemKleber Silva
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemJoao Galdino Mello de Souza
 
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannMonitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannTchelinux
 
Workshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCSWorkshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCSLinux Solutions
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Análise comparativa de desempenho de FileSystems em ambientes virtualizados
Análise comparativa de desempenho de FileSystems em ambientes virtualizadosAnálise comparativa de desempenho de FileSystems em ambientes virtualizados
Análise comparativa de desempenho de FileSystems em ambientes virtualizadosKleber Silva
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openrukoÉverton Ribeiro
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMANEduardo Legatti
 

La actualidad más candente (19)

Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Entrega ebook-gratis
Entrega ebook-gratisEntrega ebook-gratis
Entrega ebook-gratis
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na Nuvem
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvem
 
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel BauermannMonitoramento da rede de A a ZABBIX - Daniel Bauermann
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
 
Workshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCSWorkshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCS
 
Zabbix 2010
Zabbix 2010Zabbix 2010
Zabbix 2010
 
Apresentacao_Zabbix
Apresentacao_ZabbixApresentacao_Zabbix
Apresentacao_Zabbix
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Análise comparativa de desempenho de FileSystems em ambientes virtualizados
Análise comparativa de desempenho de FileSystems em ambientes virtualizadosAnálise comparativa de desempenho de FileSystems em ambientes virtualizados
Análise comparativa de desempenho de FileSystems em ambientes virtualizados
 
shared_cfmx
shared_cfmxshared_cfmx
shared_cfmx
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
TRIO BC/DR
TRIO BC/DRTRIO BC/DR
TRIO BC/DR
 
Apostila asp
Apostila aspApostila asp
Apostila asp
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
The twelve factor apps and openruko
The twelve factor apps and openrukoThe twelve factor apps and openruko
The twelve factor apps and openruko
 
TechEd_OFC302
TechEd_OFC302TechEd_OFC302
TechEd_OFC302
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMAN
 

Similar a Segurança de aplicações Web

Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Os 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceOs 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceE-Commerce Brasil
 
Website security
Website securityWebsite security
Website securitythiagosenac
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebMagno Logan
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 
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
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
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
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerceSite Blindado S.A.
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?Eduardo Lanna
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Folder Site Blindado - Aumente a conversão das vendas online
Folder Site Blindado - Aumente a conversão das vendas onlineFolder Site Blindado - Aumente a conversão das vendas online
Folder Site Blindado - Aumente a conversão das vendas onlineSite Blindado S.A.
 
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais   Solução Astaro Para Segurança De Redes CorporativasAmeaças Digitais   Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativasosmarcorrea
 

Similar a Segurança de aplicações Web (20)

Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Os 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerceOs 10 erros mais comuns de segurança na operação de um ecommerce
Os 10 erros mais comuns de segurança na operação de um ecommerce
 
Website security
Website securityWebsite security
Website security
 
Segurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSourceSegurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSource
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
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
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes 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
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Folder Site Blindado - Aumente a conversão das vendas online
Folder Site Blindado - Aumente a conversão das vendas onlineFolder Site Blindado - Aumente a conversão das vendas online
Folder Site Blindado - Aumente a conversão das vendas online
 
Pentest com Kali Linux - LatinoWare 2015
Pentest com Kali Linux  - LatinoWare 2015Pentest com Kali Linux  - LatinoWare 2015
Pentest com Kali Linux - LatinoWare 2015
 
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais   Solução Astaro Para Segurança De Redes CorporativasAmeaças Digitais   Solução Astaro Para Segurança De Redes Corporativas
Ameaças Digitais Solução Astaro Para Segurança De Redes Corporativas
 

Más de Alex Hübner

Multicloud Reality Test
Multicloud Reality TestMulticloud Reality Test
Multicloud Reality TestAlex Hübner
 
Nubeliu Presentation in Peru v2
Nubeliu Presentation in Peru v2Nubeliu Presentation in Peru v2
Nubeliu Presentation in Peru v2Alex Hübner
 
O Papel do OpenStack na Transformação Digital das Teles/Telcos
O Papel do OpenStack na Transformação Digital das Teles/TelcosO Papel do OpenStack na Transformação Digital das Teles/Telcos
O Papel do OpenStack na Transformação Digital das Teles/TelcosAlex Hübner
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
Data Center Virtual Embratel - Plataforma VCE
Data Center Virtual Embratel - Plataforma VCEData Center Virtual Embratel - Plataforma VCE
Data Center Virtual Embratel - Plataforma VCEAlex Hübner
 
E-commerce - Oportunidades para PMEs
E-commerce - Oportunidades para PMEsE-commerce - Oportunidades para PMEs
E-commerce - Oportunidades para PMEsAlex Hübner
 

Más de Alex Hübner (7)

Multicloud Reality Test
Multicloud Reality TestMulticloud Reality Test
Multicloud Reality Test
 
Nubeliu Presentation in Peru v2
Nubeliu Presentation in Peru v2Nubeliu Presentation in Peru v2
Nubeliu Presentation in Peru v2
 
CFDJ_6-9_ALEX
CFDJ_6-9_ALEXCFDJ_6-9_ALEX
CFDJ_6-9_ALEX
 
O Papel do OpenStack na Transformação Digital das Teles/Telcos
O Papel do OpenStack na Transformação Digital das Teles/TelcosO Papel do OpenStack na Transformação Digital das Teles/Telcos
O Papel do OpenStack na Transformação Digital das Teles/Telcos
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Data Center Virtual Embratel - Plataforma VCE
Data Center Virtual Embratel - Plataforma VCEData Center Virtual Embratel - Plataforma VCE
Data Center Virtual Embratel - Plataforma VCE
 
E-commerce - Oportunidades para PMEs
E-commerce - Oportunidades para PMEsE-commerce - Oportunidades para PMEs
E-commerce - Oportunidades para PMEs
 

Segurança de aplicações Web

  • 1. Segurança de aplicações Web Alex Hübner, CFUG-SP alex@cfugsp.com.br
  • 2. 2 O que são aplicações web?  Softwares (sites) na arquitetura cliente/servidor em protocolo HTTP  Cliente universal: o browser (IE/Netscape)  Servidor: vários sabores e soluções  Dividido em 3 camadas:  Apresentação  Aplicação  Dados e armazenamento
  • 3. 3 O que são aplicações web? Fonte: The Open Web Applications Security Project – http://www.owasp.org
  • 4. 4 O que são aplicações web?  Exemplos de aplicações web:  CNN.com, Internet Banking, Previsão do Tempo, Google e Yahoo!, Intranets, extranets, invente uma!  Não confunda aplicações web com produtos específicos (ex: Apache, IIS, JSP, PHP, ColdFusion, Windows 2000 Server, SQL Server, MySQL etc).
  • 5. 5 O que são webservices?  Softwares arquitetura aplicação/aplicação em protocolo SOAP (XML sobre HTTP)  Cliente: outras aplicações web  Servidor: vários sabores e soluções  Apenas duas camadas:  Aplicação  Dados e armazenamento
  • 6. 6 Segurança de aplicações web  Algumas afirmações paradoxais tiradas de listas de discussão na web:  “Não existe sistema operacional ou aplicação insegura, existem administradores inseguros...”  “Os bons admistradores são bons pois precisam lidar com aplicações e sistemas que se parecem com queijos suíços...”  Má notícia: ambas são verdadeiras!
  • 7. 7 Risco, ameaça e vulnerabilidade  Vulnerabilidade → Ameaça → Risco  Risco:  “A possibilidade de sofrer dano, perda”  Ameaça:  “Um risco eminente, provável, factível”  Vulnerabilidade:  “Estar suscetível a uma ameaça”
  • 8. 8 Avaliando os Riscos  Não existe uma métrica quantitativa exata  Quanto a Microsoft perderia com o site invadido?  Quanto o “Toninho’s Armazém Online” perderia com o site invadido?  Conheça o negócio do cliente  Avalie as vulnerabilidades, ameaças e riscos inerentes
  • 9. 9 Avaliando os Riscos  Pergunte-se:  As ameaças são internas (funcionários) ou externas (visitantes)? Cuidado, o mordomo é sempre suspeito!  Quais são as motivações para um ataque ao site/aplicação (pessoais, financeiras, diversão)?  Qual será o impacto financeiro se o site/aplicação estiver fora do ar em conseqüência destes ataques (ex: loja virtual)?  Qual será o impacto na imagem e reputação do negócio como um todo?  Você é odiado por alguém?
  • 10. 10 Avaliando os Riscos  Decida-se e defina:  Quanto gastar com a proteção?  Provedor de hospedagem de qualidade comprovada (+ caro), arquitetura utilizada, firewall, IDS, logs detalhados, código meticulosamente preparado e testado (+ tempo de codificação) etc.  Quem são os responsáveis pela proteção?  O desenvolvedor/programador (webmaster)?  O provedor de hospedagem?  O cliente?
  • 11. 11 Avaliando os Riscos  Avaliar riscos é uma arte, consultores abastados que o digam!  Use o bom senso na sua avaliação  Não gaste milhões para proteger centavos  Uma aplicação 100% segura é 100% impraticável  O segredo é ser paranóico na medida certa, comece com o seu próprio código
  • 12. 12 Onde usar a paranóia?  Onde uma aplicação web é mais vulnerável?  Camada de Apresentação  HTML/formulários/input e output de dados de e para o cliente. Servidores web IIS, Apache. Browsers, pluggins, seu código  Camada de Aplicação  Sevidores de aplicação ASP, TomCat, IBM WebSphere, ColdFusion, seu código  Ambas são responsabilidades do desenvolvedor
  • 13. 13 Aplicações web: riscos e vulnerabilidades “Optei por um plano de hospedagem Linux com PHP e MySQL porque é bem mais seguro que hospedar num plano Windows com ASP e SQL Server...” Historinha para boi dormir...
  • 14. 14 Aplicações web: riscos e vulnerabilidades “Agora posso dormir tranqüilo, meu site está rodando atrás de um firewall muito potente e calibrado. Atrás dele eu ainda tenho um IDS (intrusion detection system) de última geração, que custou 30 mil dolares...” Cliente satisfeito é outra coisa...
  • 15. 15 Aplicações web: riscos e vulnerabilidades  Para quê firewall e IDS mais moderno e eficiente do mercado? O seu site roda na porta 1589?  Esqueça aquela “distro” Linux ultra segura e complicada que você comprou na banca de jornal. Não sabendo usá-la, ela será mais perigosa que o Windows 95 como servidor de hospedagem  “Ignore” os patches do Windows 2000 Server. Sua aplicação vai ser mais segura só por que a Microsoft corrigiu a rebinboca da parafuseta do sistema de autenticação XYZ do protocolo IPXext?
  • 16. 16 Aplicações web: riscos e vulnerabilidades  Preocupe-se primeiro com o código de sua aplicação. Ele é, em última instância, o que você expõe ao público geral e também às figurinhas do mundo underground da internet (script kiddies)  Enquanto você perde seu tempo olhando os fundos da casa, o ladrão está entrando pela porta da frente (vamos chamá-la de porta 80), que ficou aberta e desprotegida  Um número absurdo de aplicações e sites na web possuem algum tipo de vulnerabilidade relacionadas à má codificação ou arquitetura ruim, não seja o criador de um deles
  • 17. 17 Aplicações web: riscos e vulnerabilidades  Como vão os formulários, parâmetros URL, queries SQL e cookies do seu site?  Você sabia que sua base de dados pode ser totalmente deletada ou alterada (o que é pior), através de um simples campo de “preencha seu nome”?  Sabia que usuários malandros podem se passar por usuários legítimos apenas colocando um cookie editado no browser deles?
  • 18. 18 Aplicações web: riscos e vulnerabilidades 70%* das invasões de sites e aplicações web começam ou se dão totalmente através da má codificação das mesmas * The Open Web Applications Security Project – http://www.owasp.org
  • 19. 19 Aplicações web: riscos e vulnerabilidades “Este site é 100% seguro, usamos criptografia de 128 bits, você pode perceber isso clicando no “cadeado fechado” na barra de status do seu browser...” Onze entre dez sites de comércio eletrônico...
  • 20. 20 Alguns exemplos  Parâmetros inválidos | teoria  Informações enviadas pelo usuário não são devidamente validadas e checadas quando recebidas e tratadas pela aplicação/site  Manipulação de campos de FORM  Manipulação de cookies  Manipulação de parâmetros URL  Manipulação de headers HTTP
  • 21. 21 Alguns exemplos  Parâmetros inválidos | exemplo  http://www.site.com.br/cesta/fecha_pedido.php?IDprodu to=12&valor=7763 (o produto custa isso mesmo?)  <form action=“fecha_pedido.php” method=“post”> <input type=“hidden” name=“IDproduto” value=“12”> <input type=“hidden” name=“valor” value=“7763”> </form>  Cookie: lang=pt-br; ADMIN=no; y=1 ; time=10:30GMT Cookie: lang=pt-br; ADMIN=yes; y=1 ; time=12:30GMT (o usuário é mesmo um administrador?)
  • 22. 22 Alguns exemplos  Controle de acesso falho | teoria  Controle de acesso a uma aplicação/site ruim e falho e pode ser burlado  Profusão de sistemas e métodos de autenticação facilitam muito  Inconsistent and Past Control Checks: pastas internas não protegidas como deveriam  Inconsistência de credenciais/IDs inseguros  Path traversal  Permissão de arquivos  Cache de browser não limpo
  • 23. 23 Alguns exemplos  Controle de acesso falho | exemplo  http://www.site.com.br/admin/ (ok) http://www.site.com.br/admin/modulox (?) http://www.site.com.br/admin/moduloy/action.asp (?)  http://www.site.com.br/adm/pegar_arquivo.cfm?arquiv o=../../../winnt/system32/certmgr.reg  http://www.site.com.br/adm/upload_arquivo.cfm?arqui vo=iislog_safado.dll&destino=../../../winnt/system32/ine tserv/isslog.dll
  • 24. 24 Alguns exemplos  Quebra de autenticação | teoria  O usuário é capaz de burlar o sistema de autenticação do site/aplicação  Esqueceu a senha?  Redefinição de senha  Sequestro de sessão (tokens e cookies)  Relações de confiança entre o front-end e o back- end (banco de dados, LDAP, email etc) muito alta comprometendo todas as outras aplicações do servidor
  • 25. 25 Alguns exemplos  Quebra de autenticação | exemplo SELECT username, senha FROM tb_usuarios WHERE usuario=‘$INPUT[usr]’ AND senha=‘$INPUT[pwd]’
  • 26. 26 Alguns exemplos  Cross-site Scripting | teoria  Ataque que usa uma aplicação web para atingir um outro visitante/usuário  Stored  Reflected  É uma das vulnerabilidades mais exploradas em aplicações web
  • 27. 27 Alguns exemplos  Cross-site Scripting | exemplo  Campo de comentário (stored)  Campo “envie esta notícia por e-mail” (reflected)
  • 28. 28 Alguns exemplos  Buffer Overflows | teoria  Depentendes do servidor de aplicação  Difíceis de explorar, porém muito divulgados  Podem ser evitados ou minimizados com o auxílio de filtragem de dados inseridos pelo usuário
  • 29. 29 Alguns exemplos  Buffer Overflows | exemplo
  • 30. 30 Alguns exemplos  Command/SQL Injection | teoria  Informações (parâmetros dinâmicos) enviadas para construção de queries e interações com o banco de dados não são devidamente validadas e checadas quando recebidas e tratadas pela aplicação/site ou pelo banco de dados  Bastante comum  Muitos programadores a ignoram completamente  Grande risco
  • 31. 31 Alguns exemplos  Command/SQL Injection | exemplo  http://www.site.com/noticia.cfm?id=122  <cfquery name=“qNoticias” datasource=“bancoDeNoticias”> SELECT * FROM noticias WHERE id=#url.id# </cfquery>  http://www.site.com.br/noticias.cfm?id=122 ;DROP TABLE noticias (tem certeza de que quer deletar a tabela de notícias?)
  • 32. 32 Alguns exemplos  Tratamento de erros | teoria  Informações ou operações que gerem erros no site/aplicação não são devidamente tratados e informados ao usuário de forma crua e sem cuidado  Muitos servidores de aplicação (ASP, PHP, ColdFusion) possuem mensagens de erro em formato debug, “informando” muita coisa útil para quem tem más intenções  Desabilite-as, trate os erros (try/catch)!
  • 33. 33 Alguns exemplos  Tratamento de erros | exemplo  O usuário precisa saber de tudo isso?
  • 34. 34 Alguns exemplos  Erro no uso de criptografia | teoria  Ocorre quando o webmaster/programador não entende onde e como deve fazer uso de criptografia (SSL, por exemplo) em suas aplicações  Envio de senha e informações sensíveis para só depois criptografar a página/resultado  Forwards estúpidos  Acreditar que usando 128bits está “protegido”, lembre-se de todos os outros exemplos!
  • 35. 35 Alguns exemplos  Erro no uso de criptografia | exemplo  HTTP HTTP HTTPS (login) (autenticação) (aplicação) “Este site é 100% seguro, usamos criptografia de 128 bits, você pode perceber isso clicando no “cadeado fechado” na barra de status do seu browser...”
  • 36. 36 Alguns exemplos  Administração remota | teoria  Quanto menor o número de “ferramentas” disponíveis para uma invasão, melhor  Não deixe o IISAdmin, ColdFusion Administrator, MyPHPAdmin etc disponíveis nas suas posições padrões. Proteja-os!  Remova qualquer aplicação de exemplos ou documentação sobre o que você têm instalado  Limite ao máximo quem e como as interfaces de administração remota são acessíveis (IPs autorizados, por exemplo)
  • 37. 37 Alguns exemplos  Administração remota | exemplo  Um prato cheio...  Com 5 horas de brute- force foi possível invadir uma interface de administração remota como esta  Estamos apenas a um mísero “password field” de distância de obter controle total do servidor e aplicações contidas nele  Esconda tudo que puder!
  • 38. 38 Alguns exemplos  Má configuração do servidor | teoria  Quando um servidor ou software necessário para rodar uma aplicação é mal administrado ou mal configurado  IIS sem patches de correção  Apache 1.3 em Windows (inseguro)  Sistema Operacional “caixa preta”  Etc!  Responsabilidade do administrador de sistemas e do programador em conhecer o ambiente em que trabalha e certificar-se de que ele está devidamente configurado para uma maior segurança
  • 39. 39 Moral da história  Conheça, planeje e controle os riscos de manter sua aplicação pública (disponível na web)  Cuide primeiro da porta de entrada, depois dos fundos  Ao revisar seu código, use o boné do vândalo, e tente quebrar sua aplicação pela porta da frente  Sempre valide toda e qualquer entrada e saída de dados da sua aplicação (forms, url, etc)  Use e abuse de soluções/scripts prontos  Use a cabeça e seja malvado na hora de escrever códigos  Estude e participe de listas de discussão sobre o assunto
  • 41. 41 Referência básica sobre o assunto  The Open Web Application Security Project  http://www.owasp.org