VIva, obrigado, foi igualmente uma honra ter podido participar. Para a próxima, vou tentar trazer umas aplicações (Webgoat) para demonstrar alguns dos ataques.
Boa dia. Venho felicitá-lo pela excelente apresentação que fez ontem na 9ª edição do cTIC em Viseu. Tenho a certeza que a mensagem passou para a audiência, apesar do tema não proporcionar tanto 'show off' como os restantes. Foi uma honra para a organização, poder contar consigo.
Agradecer o convite aos organizadores da cTIC2009;
In terms of OWASP Tools and Technology, our coverage is a bit spotty, but we’re actively working to remedy that.
We have a lot of tools for automated verification, but we lag behind the commercial tools a bit here. We have 3 SoC projects to build better static and dynamic tools, so look for some advances here.
Our manual verification tools are quite good, with WebScarab listed as one of the most popular security tools anywhere.
In the security architecture area, we do not have a lot of tools or technology, although the Enterprise Security API is an important part of this key area.
We have a number of tools to encourage security coding, including several appsec libraries and many guards and filters.
Our appsec management tools are fairly weak, although the OWASP Report Generator shows some promise
And in the AppSec Education area, the WebGoat tool has been very successful, although this region is yellow because we can and should do more in the education areas.
cTIC2009 - Segurança em Aplicações Web-based e RIA - Presentation Transcript
Segurança em Aplicações
Web-based e em Rich
Internet Applications
cTIC 2009
IX Conferência sobre Tecnologias de Informação e Comunicação
Carlos Serrão
ISCTE-IUL, DCTI | www.iscte.pt
Adetti/NetMuST | www.adetti.pt
OWASP Portugal | www.owasp.org Viseu, Maio de 2009
2
Obrigado
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
3
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
3
Desenvolvimento de Aplicações e
Sistemas de Informação Web-based
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
3
Desenvolvimento de Aplicações e
Sistemas de Informação Web-based
Cliente-Servidor
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
3
Desenvolvimento de Aplicações e
Sistemas de Informação Web-based
Cliente-Servidor
Browser Web como Interface único
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
3
Desenvolvimento de Aplicações e
Sistemas de Informação Web-based
Cliente-Servidor
Browser Web como Interface único
no browser
RIA
standalone
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
4
RIA
(Rich Internet Applications)
Relacionadas Relacionadas
Desktop Web
com Desktop com Web
processamento
Aplicações de
client-side
Desktop
Clássicas Cliente Rico e
Fat/ Aplicação
Internet-enable
Cliente
inteligente
Web 2.0
processamento
server-side
Cliente
thin
Aplicações web
e sites clássicos
definição abrangente de RIA
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto
Arquitecturas Cliente-
5
Servidor
Distributed Remote Distributed Remote Data Distributed
Presentation Presentation Logic Management Database
Server
Data Data Data Data Data
Logic Logic Logic
Presentation Network
Network
Network
Network Data
Logic Logic Logic
Presentation Presentation Presentation Presentation Presentation
Client
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
Hardware
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
Sistema
Hardware
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Sistema
Hardware
Client-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema
Hardware
Servidor Web/
Aplicacional
Hardware
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
6
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
Vectores de Ataque 7
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema Operativo
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
Vectores de Ataque 7
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema Operativo
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
Vectores de Ataque 7
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema Operativo
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
Vectores de Ataque 7
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema Operativo
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Contexto de Segurança
Vectores de Ataque 7
Web-browser
Aplicações
(web-browser)
(standalone)
RIDA
RIA
Servidor de Base
de Dados
Sistema Operativo
Sistema Operativo
Hardware
Servidor Web/
Aplicacional
Hardware
Network
Sistema Operativo
Hardware Client-Side
Server-Side
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Segurança
8
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Segurança
8
Desktop
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Segurança
8
Rede
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Segurança
8
Aplicação
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Aplicações
9
RIA
(Rich Internet Applications)
Relacionadas Relacionadas
Desktop Web
com Desktop com Web
processamento
C++/C#
client-side
Java Rich Client/ Java Applet
.Net
Javascript
ULC
JavaFX/
Java Web Start Echo Flash (browser)
AIR
GWT Silverlight
Ajax
processamento
server-side
Adobe Flex/
OpenLaszlo
HTML/DHTML
CSS
definição abrangente de RIA
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
10
A WWW foi desenvolvida
com poucas preocupações ao
nível da segurança
aplicacional.
10
O actual modelo da WWW
apresenta sérias vulnerabilidades,
que podem ser exploradas por
atacantes determinados.
10
11
Aplicações Web
RIAs
Web-Services
11
Common Vulnerabilities and
Exposures
12
Common Vulnerabilities and Exposures
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Common Vulnerabilities and
Exposures
12
Common Vulnerabilities and Exposures
7000
5250
3500
1750
2000 2001
2002 2003 0
2004
2005
CVE é um directório de informação
2006
pública sobre vulnerabilidades e
2007
2008
falhas de segurança.
cve.mitre.org
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Common Vulnerabilities and
Exposures
13
OWASP Top 10 XSS
SQL injection
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Common Vulnerabilities and
Exposures
13
OWASP Top 10 XSS
SQL injection
1500
1125
750
375
2000 2001
2002 2003 2004 0
2005
2006
2007
cve.mitre.org
2008
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Frameworks RIA
14
Java Adobe Google Silver-
RIA Framework JFX AIR
Applet Flash Gears light
Controlos - a framework RIA tem acesso a outros objectos no DOM? N Y LSO LD ? Y
Dispositivos - permite acesso a câmaras ou microfones? N LF N LD N Y
DNS Pinning - protege contra o DNS pinning? N N N LD N N
DOM - tem acesso ao DOM? Y Y Y ? Y Y
Exchange - usa formatos que misturam dados e código (HTML, JSON) N N ? LD Y Y
Ficheiros - acesso ao filesystem local? N N N LD LU Y
Nativo - acesso a código nativo local ou executáveis? N N N LD N Y
Persistência - permite que os dados persistam no cliente? N LF LSO LD LU Y
Pipes - comunicação entre RIAs no cliente? Y N N ? N Y
Auto-modificável - pode a RIA modificar a framework? N N ? LD N Y
Partilha - permite o upload de informação? LSO LSO Y LS LSO Y
Sockets - acesso a sockets de rede? LSO LSO LSO LD N Y
Windows - permite a criação de janelas? LF N N LD N Y
Y - Permitido pela framework RIA LD - Limitado por programador
LF - Limitado pela framework LU - Limitado por utilizador
LSO - Limitado pela mesma política da origem N - Não permitido pela framework RIA
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Frameworks RIA
14
Java Adobe Google Silver-
RIA Framework JFX AIR
Applet Flash Gears light
Controlos - a framework RIA tem acesso a outros objectos no DOM? N Y LSO LD ? Y
Dispositivos - permite acesso a câmaras ou microfones? N LF N LD N Y
DNS Pinning - protege contra o DNS pinning? N N N LD N N
DOM - tem acesso ao DOM? Y Y Y ? Y Y
Exchange - usa formatos que misturam dados e código (HTML, JSON) N N ? LD Y Y
Ficheiros - acesso ao filesystem local? N N N LD LU Y
Nativo - acesso a código nativo local ou executáveis? N N N LD N Y
Persistência - permite que os dados persistam no cliente? N LF LSO LD LU Y
Pipes - comunicação entre RIAs no cliente? Y N N ? N Y
Auto-modificável - pode a RIA modificar a framework? N N ? LD N Y
Partilha - permite o upload de informação? LSO LSO Y LS LSO Y
Sockets - acesso a sockets de rede? LSO LSO LSO LD N Y
Windows - permite a criação de janelas? LF N N LD N Y
www.owasp.org
Y - Permitido pela framework RIA LD - Limitado por programador
LF - Limitado pela framework LU - Limitado por utilizador
LSO - Limitado pela mesma política da origem N - Não permitido pela framework RIA
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Vulnerabilidades
15
Vulnerabilidades
A MITRE indica que no total de
Não-Cobertas
todos os vendedores de produtos
55%
Vulnerabilidades
de segurança aplicacional cobrem
Cobertas
apenas 45% das vulnerabilidades
45%
descobertas (mais de 600)
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Mitos
16
• Estamos seguros
porque temos uma
firewall...
• 75% das
vulnerabilidades
da Internet
existem ao nível
da camada das
aplicações web Gartner Group, 2002
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Mitos
17
Jeremiah Grossman, BlackHat 2001
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Mitos
18
• Estamos seguros
porque usamos o
protocolo SSL
• apenas permite a
segurança dos dados
em trânsito
• não resolve as
vulnerabilidades em
• browser
• servidor web
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Mitos
19
Jeremiah Grossman, BlackHat 2001
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Aplicação faz parte do perímetro de
segurança
20
O seu perímetro de segurança possui
buracos enormes na camada
aplicacional
Application Layer
Legacy Systems
Human Resrcs
Web Services
Directories
Databases
Billing
Custom Developed
Application Code
APPLICATION
ATTACK
App Server
Web Server
Network Layer
Hardened OS
Firewall
Firewall
Não é possível usar protecção ao nível da camada de rede (firewall, SSL, IDS, hardening) para parar ou
detectar ataques ao nível aplicacional
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
21
Soluções (?)
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
22
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
22
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
Formação 22
Percepção
Orientações
Testes
Automáticos Desenvolvimento
Seguro
Revisão da
Firewalls
Segurança do Código
Aplicacionais
Configuração Testes de Segurança
Segura
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
23
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
23
•Segurança “desde o primeiro dia”
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
23
•Segurança “desde o primeiro dia”
•Segurança no Software Development
Life Cycle
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
23
•Segurança “desde o primeiro dia”
•Segurança no Software Development
Life Cycle
•Formar e Informar os programadores
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Pessoas, Processos e Tecnologia
23
•Segurança “desde o primeiro dia”
•Segurança no Software Development
Life Cycle
•Formar e Informar os programadores
•Usar standards, recomendações e
boas práticas aceites
internacionalmente (OWASP, IEEE,
MITRE, CERT, ...)
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Secure Software Development
Lifecycle (SSDLC)
24
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
OWASP?
25
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
OWASP?
25
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
OWASP?
25
• Open Web Application Security Project
• Organização sem fins lucrativos, orientada para esforço voluntário
• Todos os membros são voluntários
• Todo o trabalho é “doado” por patrocinadores
• Oferecer recursos livres para a comunidade
• Publicações, Artigos, Normas
• Software de Testes e de Formação
• Chapters Locais & Mailing Lists
• Suportada através de patrocínios
• Suporte de empresas através de patrocínios financeiros ou de
projectos
• Patrocínios pessoais por parte dos membros
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
OWASP Ferramentas e Tecnologias
7
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Chapters locais da OWASP
20
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10 (2007)
28
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10 (2007)
28
4'.))%B+*(%B0'+<C&9%JPBBK%
!\"#$\")%/(%8&O(0,-.%
8&0#6)-.%2(5.*\"%(%8&)(96'\"%/(%!+0$(+'.)%
2(E('L&0+\"%M+'(0*\"%(%8&)(96'\"%/(%N@O(0*.)%
4'.))%B+*(%2(H6()*%!.'9('I%J4B2!K%
2(D(#\",-.%/(%8&E.'5\",-.%(%F'\"*\"5(&*.%/(%G''.)%8&\"/(H6\"/.%
?6(@'\"%/(%A()*-.%/(%B())7()%(%/(%:6*(&C0\",-.%
:'5\";(&\"5(&*.%4'+<*.9'=>0.%8&)(96'.%
4.56&+0\",7()%8&)(96'\")%
!\"#$\"%&\"%'()*'+,-.%/(%\"0()).%\"%123%
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
29
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
29
0 7.5 15 22.5 30
Cross Site Scripting
Falhas de Injecção
Inclusão Remota e Insegura de Ficheiros
Referência Directa e Insegura de Objectos
Cross Site Request Forgery
Rev. Inf. e Tratamento Inadequado de Erros
Quebras de Sessões e de Autenticação
Armazenamento Criptográfico Inseguro
Comunicações Inseguras
Falha na restrição de acesso a URL
www.mitre.org
www.owasp.org
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
30
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
30
!\"#$$%&'()%
&*\"'+,-.%/0&&1%
O p r o b l e m a q u e m a i s t e m
prevalecido em termos de
segurança nas aplicações web
Permite que os atacantes possam
executar código no browser da
vítima
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
30
Vulnerabilidades
3 tipos:
!\"#$$%&'()% Reflectidos
&*\"'+,-.%/0&&1% Armazenados
DOM injection
Os ataques são normalmente realizados
através de Javascript, ou através da
manipulação directa dos pedidos HTTP
Verificação de Segurança
O p r o b l e m a q u e m a i s t e m
prevalecido em termos de Todos os parâmetros de entrada devem ser
validados ou codificados
segurança nas aplicações web
Revisões de Código
Mecanismo central de validação ou de
Permite que os atacantes possam
codificação
executar código no browser da
Protecção
vítima
Combinar um conjunto de validações de
todos os dados de entrada e a codificação
de todos os dados de saída
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
31
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
31
!\"#$\"%&'(&&
)*+(,-./&
A injecção ocorre quando dados
fornecidos pelo utilizador é enviada
para um interpretador como parte
de um comando ou query
Injecção de comandos de SQL é o
mais comum
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
31
Vulnerabilidades
Se o input do utilizador for passado
!\"#$\"%&'(&& directamente para um interpretador sem
validação ou codificação, a aplicação fica
)*+(,-./& vulnerável.
Verificar se o input do utilizador é passado
directamente a queries dinâmicas
Verificação de Segurança
A injecção ocorre quando dados Verificar que o utilizador não pode modificar
fornecidos pelo utilizador é enviada comandos ou queries enviadas para qualquer
interpretador usado pela aplicação
para um interpretador como parte
Revisões de Código
de um comando ou query
Protecção
Impedir o acesso a interpretadores sempre que
Injecção de comandos de SQL é o
possível
mais comum
“Correr com o menor privilégio possível”
As stored procedures são igualmente afectadas
Validação das entradas do utilizador
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
32
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
32
!\"#$%&'()*+,(-.)
+)!\"&+/%0.)1+)
23#4+30(&)
Permite que os atacantes possam
realizar execução remota de código,
comprometendo ficheiros de input
Causado frequentemente por se confiar
em ficheiros de input
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
32
Vulnerabilidades
!\"#$%&'()*+,(-.) Dados hostis a serem carregados para
ficheiros de sessão ou dados de execução
+)!\"&+/%0.)1+) PHP é mais comum, mas outras
23#4+30(&) linguagens são igualmente susceptíveis
Java e .Net
DTD hostis em documentos XML
Verificação de Segurança
Permite que os atacantes possam Revisões de Código
realizar execução remota de código, Ferramentas automáticas de pesquisa
comprometendo ficheiros de input
Protecção
Nunca permitir que um ficheiro enviado
Causado frequentemente por se confiar pelo utilizador possa usar recursos do
em ficheiros de input servidor
Implementação de protocolos de
segurança devidamente configurados
Validar o input do utilizador
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
33
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
33
!\"#\"$%&'()*
+($\"',)*\"*-&.\"/0$)*
)*123\"',4.*
Ocorre quando o programador expõe
uma referência não validada a um
objecto interno da implementação, tal
como um ficheiro, directoria, registo
ou chave de uma base de dados, com
uma URL ou parâmetro num
formulário
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
33
Vulnerabilidades
!\"#\"$%&'()* Exposição de referências internas de objectos
+($\"',)*\"*-&.\"/0$)* Atacantes modificam os parâmetros para
alterar as referências e violarem as políticas de
)*123\"',4.* controlo de acessos construídas na aplicações
As referências a chaves de base de dados são
frequentemente expostas
Verificação de Segurança
Ocorre quando o programador expõe Remover qualquer referência directa a
uma referência não validada a um objectos que possa ser manipulada por um
objecto interno da implementação, tal atacante determinado
como um ficheiro, directoria, registo Análise e revisão do código (difícil e morosa
quer por métodos manuais ou automáticos)
ou chave de uma base de dados, com
uma URL ou parâmetro num Protecção
formulário A melhor protecção é evitar expor referências
directas a objectos aos utilizadores
Verificar a autorização de acesso a todos os
objectos referenciados
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
34
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
34
!\"#$$%&'()%
*)+,)$(%-#\".)\"/%
0!&*-1%
Um ataque que engana a vítima a
carregar uma página que contém um
pedido malicioso
Também conhecidos como Session
Riding, One-Click Attacks, Cross Site
Reference Forgery, Hostile Linking, e
Automation Attack
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
34
Vulnerabilidades
!\"#$$%&'()% Num forum, o ataque pode dirigir o
*)+,)$(%-#\".)\"/% utilizador a invocar uma função de logout
Pode ser combinado com XSS
0!&*-1% Verificação de Segurança
Usar tokens de autenticação que não sejam
automaticamente submetidos pelo browser
Um ataque que engana a vítima a Protecção
carregar uma página que contém um Eliminar as vulnerabilidades de XSS da aplicação
pedido malicioso Acrescentar um “nonce” na URL por cada pedido
e em todos os formulários em adição à sessão
tradicional - se isto já não estiver presente na
Também conhecidos como Session
framework de aplicações web a ser usada
Riding, One-Click Attacks, Cross Site
Solicitar écrans de login adicionais para dados
Reference Forgery, Hostile Linking, e mais sensíveis
Automation Attack Não usar pedidos GET para dados mais sensíveis
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
35
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
35
!\"#\"$%&'()*\")
+,-(./%&'()\")
0.%1%/\",1()*\")2..(3)
+,%*\"45%*())
As aplicações podem sem intenção,
revelar informação sobre a sua
configuração, forma funcionamento
interno, ou violar a privacidade
através de diversos problemas da
aplicação
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
35
!\"#\"$%&'()*\") Vulnerabilidades
Mensagens de Erro com demasiado detalhe
+,-(./%&'()\") Stack Traces
0.%1%/\",1()*\")2..(3) SQL Statements
+,%*\"45%*()) Registo desapropriado de mensagens
detalhadas
Verificação de Segurança
O objectivo é que uma aplicação não dê
As aplicações podem sem intenção,
demasiada informação sobre os erros
revelar informação sobre a sua
Exige uma verificação manual do código para ver
configuração, forma funcionamento
qual o detalhe das mensagens
interno, ou violar a privacidade
Protecção
através de diversos problemas da
aplicação Testes para gerar mensagens de erro e outras
verificações no desenvolvimento
Desactivar ou limitar as mensagens de erro
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
36
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
36
!\"#$%&'(#'
)#**+#*'#'
,\"-#./0&123'
Falhas na autenticação e gestão de
sessões envolvem frequentemente a
falha de protecção das credenciais e
tokens de sessão ao longo do seu
ciclo de vida.
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
36
Vulnerabilidades
!\"#$%&'(#' Falha do mecanismo principal de controlo de
acesso
)#**+#*'#' Gestão de passwords
,\"-#./0&123' Timeout de Sessões
Verificação de Segurança
A Aplicação de deve autenticar os utilizadores de forma
apropriada e proteger as suas credenciais
Difícil de conseguir através de ferramentas automáticas
Falhas na autenticação e gestão de Combinação de Revisões de Código e de Testes
sessões envolvem frequentemente a Protecção
falha de protecção das credenciais e Manter a comunicação segura e armazenamento de
credenciais
tokens de sessão ao longo do seu Usar sempre um mecanismo de autenticação sempre que
ciclo de vida. se aplique
Criar uma nova sessão após a autenticação
Assegurar que o link de logout destrói toda a informação
pertinente
Não expor quaisquer credenciais na URL ou nos logs
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
37
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
37
!\"#$%&'$#&'()*
+\",-().\"/01)*
2'3&.4\")*
A falha de não proteger dados
sensíveis recorrendo a criptografia é
um defeito recorrente
As aplicações que usam criptografia
frequentemente, usam algoritmos
mal concebidos - ou usando cifras
não apropriadas ou cometendo
sérios erros na sua aplicação
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
Vulnerabilidades 37
Não cifrar dados sensíveis
!\"#$%&'$#&'()* Usar algoritmos inventados
+\",-().\"/01)* Uso inseguro de algoritmos criptográficos
fortes
2'3&.4\")* Continuar a usar algoritmos que já provaram
ser fracos (MD5, RC3, RC4, etc…)
Usar chaves hard-coded, e armazenar chaves
em repositórios não-seguros
Verificação de Segurança
A falha de não proteger dados
Verificar que a aplicação cifra de forma adequada a
sensíveis recorrendo a criptografia é
informação sensível
um defeito recorrente
Ferramentas de verificação automática não oferecem
grande ajuda
As aplicações que usam criptografia Revisões de código são a forma mais eficiente de
frequentemente, usam algoritmos verificação
mal concebidos - ou usando cifras
Protecção
não apropriadas ou cometendo
Usar apenas algoritmos públicos aprovados
sérios erros na sua aplicação
Verificar para ter a certeza de que toda a informação
sensível está a ser cifrada
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
38
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
38
!\"#$%&'()*+,-
.%,+/$0(,-
As aplicações frequentemente não
cifram o tráfego de dados quando é
necessário proteger comunicações
sensíveis
SSL deve ser usado para todas as
ligações autenticadas
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
Vulnerabilidades 38
Sniffing da rede
Todo o tráfego autenticado deve passar por
!\"#$%&'()*+,- SSL, porque o HTTP contem credenciais de
autenticação, ou tokens de sessão em cada
.%,+/$0(,- pedido; e não apenas no pedido de login
Usar sempre o SSL para proteger a transmissão
de dados sensíveis
Verificação de Segurança
Verificar que a aplicação cifra de forma
As aplicações frequentemente não
apropriada todas as comunicações autenticadas
cifram o tráfego de dados quando é e sensíveis
necessário proteger comunicações Ferramentas de scanning de vulnerabilidades
sensíveis podem verificar se o SSL está a ser usado no
front-end, e encontrar os problemas de
segurança
SSL deve ser usado para todas as Revisões de código ajudam a perceber o uso
apropriado do SSL para todas as ligações de
ligações autenticadas
backend
Protecção
Usar sempre o SSL para proteger dados
sensíveis
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
39
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
39
!\"#$\"%&\"%'()*'+,-.%
/(%\"0()).%\"%123%
D e p e n d e r d e s e g u r a n ç a p o r
obscuridade para restringir o acesso a
URL
Não usar verificações de controlo de
acesso para URLs
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Top 10
39
Vulnerabilidades
!\"#$\"%&\"%'()*'+,-.% Navegação forçada
URLs e ficheiros escondidos
/(%\"0()).%\"%123% Mecanismo de segurança ultrapassado
Avaliar os privilégios apenas no cliente
Verificação de Segurança
Verificar que o controlo de acesso é utilizado de
D e p e n d e r d e s e g u r a n ç a p o r forma consistente em todas as URL da aplicação
obscuridade para restringir o acesso a Ferramentas de verificação automática têm algumas
dificuldades em verificar isto
URL
Uma combinação de revisões de código e testes são
mais eficazes
Não usar verificações de controlo de Protecção
acesso para URLs Desenhar e implementar os diferentes perfis de
acesso a URL
Assegurar que todas as URL fazem parte deste
processo
Não usar URL escondidas
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Ferramentas
40
•WebGoat
•WebScarab
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Ferramentas
41
•WebGoat
•WebScarab
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
Ferramentas
42
•Application Security Verification
Standards
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
43
Conclusões
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
44
Sistemas de Informação Web-based
Rich Internet (Desktop) Applications
Software As A Service (SaaS)
Cloud Computing
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
45
Segurança de Redes
+
Segurança Aplicacional
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
46
Security by Design
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
47
Developers,
developers,
developers...
developer Steve Ballmer, Microsoft CEO
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
48
Educação, Formação,
Treino
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
49
Filter input; Escape
output. Chris Shiflett, OmniTI
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
50
Seguir standards,
recomendações
internacionais, boas
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
51
OWASP
Open Web Applications Security Project
Projectos, Documentos,
Ferramentas
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
52
Questões?
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
53
Obrigado
cTIC2009 - IX Conferência sobre Tecnologias de Informação e Comunicação IPViseu, Viseu, Maio 2009
2 comments
Comments 1 - 2 of 2 previous next Post a comment