apresentação owasp - ubi, covilhã
Post on 24-May-2015
2.244 Views
Preview:
TRANSCRIPT
Copyright © 2004 - The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License.
The OWASP Foundationhttp://www.owasp.org
OWASPOpen Web Applications Security ProjectProjectos, Documentos e Ferramentas
Carlos SerrãoOWASP PortugalISCTE/DCTI/Adetti/NetMuST
carlos.serrao@iscte.ptcarlos.j.serrao@gmail.com
Joaquim MarquesOWASP PortugalEST/IPCB
carlos.serrao@iscte.ptcarlos.j.serrao@gmail.com
OWASP
Sumário
Introdução ao OWASPOWASP e OWASP PortugalProjectos
DocumentaçãoProjectos
DocumentaçãoOWASP Top 10Webscarab e Webgoat
Conclusões
2
OWASP
Introdução ao OWASP
3
OWASP
O que é segurança de Aplicações Web?
Não é Segurança de RedesSegurança do “código” criado para implementar a aplicação
webSegurança de bibliotecasSegurança de sistemas de back-endSegurança de servidores web e aplicacionais
Segurança de Redes ignora o conteúdo do tráfego de HTTPFirewalls, SSL, Intrusion Detection Systems, Operating
System Hardening, Database Hardening
4
OWASP
O código faz parte do perímetro de segurança
5
Firewall
Hardened OSWeb ServerApp Server
Firewall
Dat
abas
es
Lega
cy S
yste
ms
Web
Ser
vice
s
Dire
ctor
ies
Hum
an R
esrc
s
Bill
ingCustom Developed
Application CodeAPPLICATION
ATTACK
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
Net
wor
k La
yer
App
licat
ion
Laye
r
O seu perímetro de segurança possui buracos enormes na camada
aplicacional
OWASP
Isto é preocupante?
Vamos lá pensar…Qual a probabilidade de sucesso de um ataque contra uma
aplicação web? Probabilidade elevada Fácil de explorar sem conhecimento e ferramentas especiais Quase indetectável Existem milhares de programadores web, pouco preocupados
com segurançaConsequências?
Corrupção de dados ou destruição de BD Acesso root a servidores web ou aplicacionais Perda de autenticação e de controlo de acesso de utilizadores Descaracterização (Defacement) Ataques secundários a partir da própria aplicação web
OWASP
Isto é preocupante?
A Segurança de Aplicações Web é tão importante como a Segurança de RedesPorque é que grande parte do investimento em Segurança é
canalizado para a segurança das redes?
OWASP 2
O que é o OWASP?
Open Web Application Security ProjectPromove o desenvolvimento seguro de softwareOrientado para o desenvolvimento de serviços
baseados na webFocado principalmente em aspectos de
desenvolvimento do que em web-designUm fórum aberto para discussãoUm recurso gratuito e livre para qualquer equipa
de desenvolvimento
OWASP 3
O que é o OWASP?
Open Web Application Security Project an open community dedicated to enabling
organizations to develop, purchase, and maintain applications that can be trustedPromover o desenvolvimento seguroAuxiliar a tomada de decisão quanto ao riscoOferecer recursos gratuitosPromover a contribuição e partilha de informação
OWASP 4
O que é o OWASP?
Open Web Application Security ProjectOrganizaçã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
OWASP
Organização do OWASP
OWASP 6
O que é o OWASP?
O que oferece?Publicações
OWASP Top 10 OWASP Guide to Building Secure Web Applications
Software WebGoat WebScarab oLabs Projects .NET Projects
Chapters Locais Orientação das comunidades locais
OWASP
OWASP Ferramentas e Tecnologias
7
OWASP 8
Publicações OWASP
Características ComunsTodas as publicações OWASP estão disponíveis para
download gratuíto em http://www.owasp.orgTodas as publicações são licenciadas em GNU “Lesser” GNU
Public License (LGPL), ou em GNU Free Documentation License (GFDL)
Documentação “viva” Actualizada sempre que necessário Projectos evolutivos
As publicações do OWASP são o resultado de trabalho cooperativo entre os membros
OWASP 9
Publicações OWASP – OWASP Top 10
Top 10 Web Application Security VulnerabilitiesUma lista dos 10 aspectos de segurança mais críticosActualizado numa base annualCrescente aceitação pela indústria
Federal Trade Commission (US Gov) US Defense Information Systems Agency VISA (Cardholder Information Security Program)
Está a ser adoptado como um standard de segurança para aplicações web
OWASP 11
Publicações OWASP - OWASP Top 10
Top 10 (versão 2007)A1. Cross Site Scripting (XSS)A2. Injection FlawsA3. Malicious File ExecutionA4. Insecure Direct Object ReferenceA5. Cross Site Request Forgery (CSRF)A6. Information Leakage and Improper Error HandlingA7. Broken Authentication and Session ManagementA8. Insecure Cryptographic StorageA9. Insecure CommunicationsA10. Failure to Restrict URL Access
OWASP 12
Publicações OWASP - OWASP Guide
Guia para o Desenvolvimento Seguro de Web AppsOferece um conjunto de linhas gerais para o desenvolvimento
de software seguro Introdução à segurança em geral Introdução à segurança aplicacional Discute áreas-chave de implementação
– Arquitectura– Autenticação– Gestão de Sessões– Controlo de Acesso e Autorização– Registo de Eventos– Validação de Dados
Em contínuo desenvolvimento
OWASP 13
Publicações OWASP – Projectos em Curso
Projectos em CursoProjecto de Métricas & Medidas
Tenta desenvolver um conjunto de métricas de segurança que podem ser usadas para suportar decisões críticas de negócio
Projecto de Testes Tenta produzir uma framework de “boas práticas” Tenta produzir uma framework de testes de “baixo nível” que permite
identificar certos aspectosAppSec Faq
FAQ para programadores que se foca em segurança aplicacional Oferece respostas a questões sobre segurança aplicacional
OWASP 14
Software OWASP
Características ComunsTodo o software OWASP é oferecido e pode ser obtido em
http://www.owasp.orgO software está licenciado com uma licença GNU “Lesser”
GNU Public License (LGPL)Projectos Activos
Actualizados sempre que necessário Projectos em curso Multiplos programadores a contribuirem e a menterem
O software OWASP pode ser descarregado livremente e pode ser usado por indivíduos e empresas
OWASP 15
Software OWASP - WebGoat
WebGoatEssencialmente é uma aplicação de treinoOferece
Uma ferramenta educacional usada para ensinar e aprender sobre segurança aplicacional
Uma ferramenta para testar ferrementas de segurançaO que é?
Uma aplicação web J2EE disposta em diversas “Lições de Segurança” Baseado no Tomcat e no JDK 1.5 Orientada para o ension
– Fácil de usar– Ilustra cenários credíveis– Ensina ataques realistas e soluções viáveis
OWASP 16
Software OWASP - WebGoat
WebGoat – O que se pode aprender?Um número crescente de ataques e de soluções
Cross Site Scripting SQL Injection Attacks Thread Safety Field & Parameter Manipulation Session Hijacking and Management Weak Authentication Mechanisms Mais ataques vão sendo adicionados
Obter a ferramenta http://www.owasp.org/software/webgoat.html Descarregar, descomprimir, e executar
OWASP 17
Software OWASP - WebScarab
WebScarabUma framework para analizar tráfego HTTP/HTTPSEscrito em JavaMúltiplas utilizações
Programador: fazer o debug das trocas entre o cliente e servidor Analista de Segurança: analiza o tráfego e identifica vulnerabilidades
Ferramenta técnica Focada em programadores de software Arquitectura extensível de plug-ins Open source; de fácil expansão Poderosa
Obter a ferramenta http://www.owasp.org/software/webscarab.html
OWASP
OWASP Summer of Code – SoC 2009
Projectos inovadoresAlcançar qualidade para publicação
6 ferramentas/ 7 documentaçãoInvestimentos:
Autumm of Code 2006 9 projetos / US$20K
Spring of Code 2007 21 projetos / US$117K
Summer of Code 2008 33 projetos / US$126K
18
OWASP 19
Chapters locais da OWASP
Desenvolvimento de comunidadesOs Chapters locais proporcionam oportunidades para os
membros OWASP poderem partilhar ideias e aprender mais sobre segurança da informação
Aberto a *TODOS*Oferecer um fórum para discussão de assuntos em contextos
locais/regionaisOferecer o local para convidados poderem apresentar novas
ideias e projectos
OWASP 20
Chapters locais da OWASP
OWASP
Actividade
Chapter PortuguêsNasce a 24 Outubro de 2007Actividade quase nula
2008OWASP EU Summit 08Albufeira, Algarve, Portugal
2009KOMManter reuniões regularesLançar projectos e ideias
5
OWASP
OWASP EU Summit 08
O *maior* evento OWASP de sempre1 semana, +100 pessoas (de todo o Mundo)Apresentação de ProjectosSessões de TrabalhoFormação+ 1 dia de Demo na UAlg
6
OWASP
OWASP EU Summit 08
O *maior* evento OWASP de sempre1 semana, +100 pessoas (de todo o Mundo)Apresentação de ProjectosSessões de TrabalhoFormação+ 1 dia de Demo na UAlg
6
Sim, estivemoslá também…
OWASP
Antes de mais…
… alguns dados
Membros26 membros
Web-sitehttp://www.owasp.org/index.php/Portuguese
Mailling-Listowasp-portuguese@lists.owasp.org
Chapter LeaderCarlos Serrão (carlos.serrao@iscte.pt,
carlos.j.serrao@gmail.com)
2
OWASP
Reuniões
Objectivos:Manter um calendário de reuniões periódicas
Ideal: 1 reunião por mês Realista: 1 reunião a cada 3 ou 4 meses
Promover a missão da OWASPPromover os projectos, ferramentas e documentação da OWASPPromover a troca livre e disseminação livre de informação sobre
segurança de informação e segurança de aplicações e sistemas web-based
Promover o lançamento de novas ideias e de novos projectosEnvolver os membros em projectos on-going
7
OWASP
OWASP em Números
420.000 page views por mês230 GB de download por mês4.618 utilizadores do wiki200 actualizações por dia124 capítulos (chapters)16.000 membros nas mailings lists48 projectos de ferramentas e documentos100 membros individuais48 membros corporativos/educacionais2 empregados
21
OWASP 22
Chapters Locais da OWASP
O que oferecem?Reuniões regularesMailing ListsApresentações e GruposAmbientes independentes do vendedorFóruns de discussão aberta
OWASP 23
Chapters Locais da OWASP
O que oferecem?Como contribuir?
Através das ML, reuniões e dos grupos de discussão Os membros são encorajados a levantarem questões Os membros são encorajados a participar em projectos OWASP
– Contribuir para projectos existentes– Propor novos projectos– Lançar novas iniciativas
O Chapter Local deve trabalhar no sentido de manter a organização como um recurso livre, aberto e orientado tecnicamente para o público em geral e para os membros
OWASP
Sponsors
24
OWASP
OWASP Top 10
34
OWASP 35
OWASP Top 10
As 10 Mais críticas vulnerabilidades em aplicações web
2007 Release (2nd) Não é um standard, mas um
conjunto de recomendações
OWASP
OWASP Top 10
1. Cross Site Scripting (XSS)2. Falhas de Injecção3. Inclusão Remota e Insegura de Ficheiros4. Referência Directa e Insegura a Objectos5. Cross Site Request Forgery (CSRF)6. Revelação de Informação e Tratamento de Erros
Inadequado7. Quebra da Gestão de Sessões e da Autenticação8. Armazenamento criptográfico inseguro9. Comunicações inseguras10.Falha na restrição de acesso a URL
36
OWASP 37
1. Cross-Site Scripting (XSS)
DescriçãoO problema que mais tem prevalecido em termos de
segurança nas aplicações webPermite que os atacantes possam executar código no
browser da vítimaAmbientes afectados
Todas as frameworks de aplicações web estão sujeitas a este tipo de ataque
OWASP 38
1. Cross-Site Scripting (XSS)
Vulnerabilidades3 tipos:
Reflectidos Armazenados DOM injection
Os ataques são normalmente realizados através de Javascript, ou através da manipulação directa dos pedidos HTTP
OWASP 39
1. Cross-Site Scripting (XSS)
Verificar a SegurançaTodos os parâmetros de entrada devem ser validados ou
codificadosRevisões de CódigoMecanismo central de validação ou de codificação
ProtecçãoCombinar um conjunto de validações de todos os dados de
entrada e a codificação de todos os dados de saída
OWASP 40
2. Falhas de Injecção
DescriçãoA 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 comumAmbientes Afectados
Todas as frameworks de aplicações web que usam interpretadores são vulneráveis a ataques de injecção.
OWASP 41
2. Falhas de Injecção
VulnerabilidadesSe 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 queris dinâmicas
PHP: $sql = "SELECT * FROM table WHERE id = '" . $_REQUEST['id’] . "’";
e se $_REQUEST[‘id’]=” ’ OR 1=1 -- ”
SELECT * FROM table WHERE id = ‘’ OR 1=1 --’
OWASP 42
2. Falhas de Injecção
Verificação de SegurançaVerificar que o utilizador não pode modificar comandos ou queries
enviadas para qualquer interpretador usado pela aplicaçãoRevisões de Código
Protecção Impedir o acesso a interpretadores sempre que possível “Correr com o menor privilégio possível”As stored procedures são igualmente afectadasValidação das entradas do utilizador
OWASP 43
3. Inclusão Remota e Insegura de Ficheiros
DescriçãoPermite que os atacantes possam realizar execução remota
de código, comprometendo ficheiros de inputCausado frequentemente por se confiar em ficheiros de input
Ambientes afectadosTodas as frameworks de aplicações web que permitem a
inclusão de ficheiros para serem executados (especialmente o PHP)
Ambientes são susceptíveis se permitirem o upload em directorias web.
OWASP 44
3. Inclusão Remota e Insegura de Ficheiros
VulnerabilidadesDados hostis a serem carregados para ficheiros de sessão ou
dados de execuçãoPHP é mais comum, mas outras linguagens são igualmente
susceptíveis Java e .Net DTD hostis em documentos XML
require_once($_POST[‘unsafe_filename’] . ‘inc.php’);
OWASP 45
3. Inclusão Remota e Insegura de Ficheiros
Verificação de SegurançaRevisões de CódigoFerramentas automáticas de pesquisa
ProtecçãoNunca permitir que um ficheiro enviado pelo utilizador possa
usar recursos do servidorImplementação de protocolos de segurança devidamente
configuradosValidar o input do utilizador
OWASP 46
4. Referência Directa e Insegura a Objectos
DescriçãoOcorre 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
Ambientes afectadosTodas as frameworks de aplicações web são vulneráveis a
referências directas e inseguras a objectos
OWASP 47
4. Referência Directa e Insegura a Objectos
VulnerabilidadesExposição de referências internas de objectosAtacantes modificam os parâmetros para alterar as
referências e violarem as políticas de controlo de acessos construídas na aplicações
As referências a chaves de base de dados são frequentemente expostas
<select name="language"><option value="fr">Français</option></select>… require_once ($_REQUEST['language’]."lang.php");
e se $_REQUEST[‘language’] = “../../../.../../etc/passwd%00” ?
OWASP 48
4. Referência Directa e Insegura a Objectos
Verificação de SegurançaRemover qualquer referência directa a objectos que possa ser
manipulada por um atacante determinadoAnálise e revisão do código (difícil e morosa quer por
métodos manuais ou automáticos)Protecção
A melhor protecção é evitar expor referências directas a objectos aos utilizadores
Verificar a autorização de acesso a todos os objectos referenciados
OWASP 49
5. Cross Site Request Forgery (CSRF)
DescriçãoUm 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
Ambientes afectadosTodas as frameworks de aplicações web são vulneráveis a
CSRF.
OWASP 50
5. Cross Site Request Forgery (CSRF)
VulnerabilidadesNum forum, o ataque pode dirigir o utilizador a invocar uma
função de logoutPode ser combinado com XSS
<img src="http://www.example.com/logout.php">
<img src="http://www.example.com/transfer.do?frmAcct=document.form.frmAcct& toAcct=4345754&toSWIFTid=434343&amt=3434.43">
OWASP 51
5. Cross Site Request Forgery (CSRF)
Verificação de SegurançaUsar tokens de autenticação que não sejam automaticamente
submetidos pelo browser
ProtecçãoEliminar as vulnerabilidades de XSS da aplicaçãoAcrescentar 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 framework de aplicações web a ser usada
Solicitar écrans de login adicionais para dados mais sensíveisNão usar pedidos GET para dados mais sensíveis
OWASP 52
6. Revelação de Informação e Tratamento de Erros InadequadoDescrição
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
Ambientes AfectadosTodas as frameworks de aplicações web são vulneráveis à
revelação de informação ou tratamento incorrecto de erros.
OWASP 53
6. Revelação de Informação e Tratamento de Erros InadequadoVulnerabilidades
Mensagens de Erro com demasiado detalhe Stack Traces SQL Statements
Registo desapropriado de mensagens detalhadas
OWASP 54
6. Revelação de Informação e Tratamento de Erros InadequadoVerificação de Segurança
O objectivo é que uma aplicação não dê demasiada informação sobre os erros
Exige uma verificação manual do código para ver qual o detalhe das mensagens
ProtecçãoTestes para gerar mensagens de erro e outras verificações no
desenvolvimentoDesactivar ou limitar as mensagens de erro
display_errors = Off
OWASP 55
7. Quebra da Gestão de Sessões e da AutenticaçãoDescrição
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.
Ambientes AfectadosTodas as frameworks de aplicações web são vulneráveis a
falhas de autenticação e de gestão das sessões
OWASP 56
7. Quebra da Gestão de Sessões e da AutenticaçãoVulnerabilidades
Falha do mecanismo principal de controlo de acessoGestão de passwordsTimeout de Sessões
OWASP 57
7. Quebra da Gestão de Sessões e da Autenticação 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 Combinação de Revisões de Código e de Testes
Protecção Manter a comunicação segura e armazenamento de credenciais Usar sempre um mecanismo de autenticação sempre que 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
OWASP 58
8. Armazenamento criptográfico inseguro
DescriçãoA 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
Ambientes AfectadosTodos os ambientes de aplicações web são vulneráveis a este
tipo de falha.
OWASP 59
8. Armazenamento criptográfico inseguro
VulnerabilidadesNão cifrar dados sensíveisUsar algoritmos inventadosUso inseguro de algoritmos criptográficos fortes 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
OWASP 60
8. Armazenamento criptográfico inseguro
Verificação de SegurançaVerificar que a aplicação cifra de forma adequada a informação
sensívelFerramentas de verificação automática não oferecem grande ajudaRevisões de código são a forma mais eficiente de verificação
ProtecçãoUsar apenas algoritmos públicos aprovadosVerificar para ter a certeza de que toda a informação sensível está a
ser cifrada
OWASP 61
9. Comunicações Inseguras
DescriçãoAs aplicações frequentemente não cifram o tráfego de dados
quando é necessário proteger comunicações sensíveisSSL deve ser usado para todas as ligações autenticadas
Ambientes afectadosTodas as frameworks de aplicações web são vulneráveis a
este problema.
OWASP 62
9. Comunicações Inseguras
VulnerabilidadesSniffing da redeTodo o tráfego autenticado deve passar por SSL, porque o
HTTP contem credenciais de autenticação, ou tokens de sessão em cada pedido; e não apenas no pedido de login
Usar sempre o SSL para proteger a transmissão de dados sensíveis
OWASP 63
9. Comunicações Inseguras
Verificação de SegurançaVerificar que a aplicação cifra de forma apropriada todas as
comunicações autenticadas e sensíveisFerramentas de scanning de vulnerabilidades podem verificar
se o SSL está a ser usado no front-end, e encontrar os problemas de segurança
Revisões de código ajudam a perceber o uso apropriado do SSL para todas as ligações de backend
ProtecçãoUsar sempre o SSL para proteger dados sensíveis
OWASP 64
10. Falha na restrição de acesso a uma URL
DescriçãoDepender de segurança por obscuridade para restringir o
acesso a URLNão usar verificações de controlo de acesso para URLs
Ambientes afectadosTodas as frameworks de aplicações web são vulneráveis a
este tipo de falha
OWASP 65
10. Falha na restrição de acesso a uma URL
VulnerabilidadesNavegação forçadaURLs e ficheiros escondidosMecanismo de segurança ultrapassadoAvaliar os privilégios apenas no cliente
OWASP 66
10. Falha na restrição de acesso a uma URL
Verificação de SegurançaVerificar que o controlo de acesso é utilizado de forma consistente em
todas as URL da aplicaçãoFerramentas de verificação automática têm algumas dificuldades em
verificar istoUma combinação de revisões de código e testes são mais eficazes
ProtecçãoDesenhar e implementar os diferentes perfis de acesso a URLAssegurar que todas as URL fazem parte deste processoNão usar URL escondidas
OWASP
WebgoatWebScarab
67
OWASP
Conclusões
68
OWASP
Sistemas de Informação Web-based
69
OWASP
Segurança de Redes+
Segurança Aplicacional
70
OWASP
Security by Design
71
OWASP
Developers, developers,
developers... developers.
72
OWASP
Educação, Formação, Treino
73
OWASP
Filter input; Escape output.
74
OWASP
Seguir standards, recomendações internacionais, boas práticas
75
OWASP
OWASPOpen Web Applications Security Project
Projectos, Documentos, Ferramentas
76
OWASP
Questões?
77
OWASP
Obrigado pela vossa atenção!
78
http://www.owasp.org/index.php/Portuguese
http://webappsec.netmust.eu
owasp-portuguese@lists.owasp.org
top related