SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Fabiano Weimar dos Santos [Xiru]
xiru@xiru.org
Segurança no Plone
Segurança no Plone - Provedor PyTown.com 2
Roteiro
● Um pouco sobre mim...
● Introdução
● Como Plone É tão Seguro?
● Modelo de Segurança
● OWASP Top 10
Segurança no Plone - Provedor PyTown.com 3
Um pouco sobre mim...
● Os amigos me chamam de Xiru
● Já escrevi algumas linhas de código do
Plone, Archetypes e alguns Plone Products...
● Atualmente
● Consultor do Programa das Nações Unidas para
o Desenvolvimento – PNUD
● Sysadmin do provedor PyTown.com
● Ministro cursos a distância sobre Plone,
Segurança e Infraestrutura
Segurança no Plone - Provedor PyTown.com 4
Introdução
● Security is hard (Jim Fulton, chief Zope
architect)
● Falar de segurança com responsabilidade
não é uma tarefa simples
● Vou tentar simplificar... mas não é um
assunto “de balcão de bar” :)
Segurança no Plone - Provedor PyTown.com 5
Como Plone É tão Seguro?
● Arquitura totalmente orientada a objetos
● Não utiliza banco de dados relacional
– Impossível sofrer SQL Injection pois não utiliza SQL
● Modelo de segurança baseado em permissões
declarativas
– Todas as informações são representadas por objetos
(instancias de classes ou módulos)
– Métodos das classes são protegidos por permissões E
convenções
– Permissões são calculadas por papel (role)
– Roles são atribuidos aos usuários de acordo com o
contexto
Segurança no Plone - Provedor PyTown.com 6
Como Plone É tão Seguro?
● Não existe administração de permissões
● Todo controle de acesso aos conteúdos é
definido em um workflow
● Conteúdos mudam de estado de revisão do
workflow e tem permissões ajustadas
automaticamente
● Conteúdo que o usuário não pode ver não
é disponibilizado (aquilo que não pode ser
visto “não existe”)
Segurança no Plone - Provedor PyTown.com 7
Modelo de Segurança
● O projeto Plone se preocupa com
qualidade de código
● Segurança é resultado da forma como a
plataforma foi definida e da qualidade do
código fonte
● Não existe solução de segurança que resolva
problemas de implementação causados por
desenvolvedores
Segurança no Plone - Provedor PyTown.com 8
OWASP Top 10
● Open Web Application Security Project
● 501c3 not-for-profit (assim como a Plone
Foundation)
● Não defende nenhuma tecnologia ou
marca
● Foco na segurança como resultado de
boas práticas de desenvolvimento
● Publica o Top 10 de riscos de segurança
Segurança no Plone - Provedor PyTown.com 9
OWASP Top 10
● Análises quantitativas demonstrariam que
qualquer tecnologia possui mais
vulnerabilidades conhecidas do que o
Plone (basta consultar o CVE-MITRE)
● Isso não diz muita coisa, pois o Plone não é
um CMS tão popular quanto o wordpress...
● “given enough eyeballs, all bugs are shallow”
(Eric S. Raymond)
Segurança no Plone - Provedor PyTown.com 10
Segurança no Plone - Provedor PyTown.com 11
OWASP Top 10
● OWASP “Top 10 Web Application Security Risks” 2010
● A1: Injection
● A2: Cross-Site Scripting (XSS)
● A3: Broken Authentication and Session Management
● A4: Insecure Direct Object References
● A5: Cross-Site Request Forgery (CSRF)
● A6: Security Misconfiguration
● A7: Insecure Cryptographic Storage
● A8: Failure to Restrict URL Access
● A9: Insufficient Transport Layer Protection
● A10: Unvalidated Redirects and Forwards
Segurança no Plone - Provedor PyTown.com 12
Segurança no Plone - Provedor PyTown.com 13
Segurança no Plone - Provedor PyTown.com 14
Segurança no Plone - Provedor PyTown.com 15
Segurança no Plone - Provedor PyTown.com 16
Segurança no Plone - Provedor PyTown.com 17
Segurança no Plone - Provedor PyTown.com 18
import sha
# Gerador de boas CRIPTO_KEY
# openssl rand -base64 256
CRIPTO_KEY = """
eJFSIAdbIuw9DLGtRV+IJSKbTfdAvCBJVOT58AaoCyTSBOn36AQKBv1qERBA431T
jv4mQqC3c2RTsi4GY8phRYGiEKpfuTlBjNS5GEGR7pdPzLLI09ZIzvK4RHGXJcyc
XOjz/Nxoufq/otEMNZuJvfib6B4t2dNSgEAUS2vIqlUffgkVlClNP6MvdA0qv+OO
Du8G+vQnpvBG8/0ySiYo/FEQRrk0MAbtpIhDqg5pbvZM7XyppTFW66dMMxAolhqi
lFjF2DKAuZvmV0CNi7bR9nBVFc7cJihNAlxXAPiM7QeBfBasOxRafZyxKZ7iClfE
V83CeyQiBad3vKW/ETUCug==
"""
def member_name(self):
mtool = self.portal_membership
return str(mtool.getAuthenticatedMember())
def gera_tk(self):
txt = CRIPTO_KEY + member_name(self)
c = sha.new()
c.update(txt)
return c.hexdigest()
def gera_tag_csrf(self):
return """<input type="text" name="_authenticator" value="%s" />""" % gera_tk(self)
def verifica_tag_csrf(self, tag):
return tag == gera_tk(self)
Segurança no Plone - Provedor PyTown.com 19
Segurança no Plone - Provedor PyTown.com 20
Segurança no Plone - Provedor PyTown.com 21
Plone HotFix
http://plone.org/products/plone-hotfix
apenas 12 correções de segurança desde abril de 2006
Segurança no Plone - Provedor PyTown.com 22
Fabiano Weimar dos Santos
xiru@xiru.org
Twitter @xiru
Obrigado

Mais conteúdo relacionado

Destaque

Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingFabiano Weimar
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesFabiano Weimar
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone SecurityFabiano Weimar
 
CD research
CD researchCD research
CD researchtoyee
 
Breaking mobile is all about breaking how we work 2015
Breaking mobile is all about breaking how we work 2015Breaking mobile is all about breaking how we work 2015
Breaking mobile is all about breaking how we work 2015Mobile Marketing Association
 
Actividad integradora-12345 (1)
Actividad integradora-12345 (1)Actividad integradora-12345 (1)
Actividad integradora-12345 (1)David Valdez Dzul
 
I peter 3 14 22 commentary
I peter 3 14 22 commentaryI peter 3 14 22 commentary
I peter 3 14 22 commentaryGLENN PEASE
 
Mapa conceptual sistema de producción
Mapa conceptual sistema de  producciónMapa conceptual sistema de  producción
Mapa conceptual sistema de producciónrosanethsanchez
 

Destaque (15)

Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and Bikeshedding
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone Security
 
CD research
CD researchCD research
CD research
 
Mcommerce Breaking Mobile 2015
Mcommerce Breaking Mobile 2015Mcommerce Breaking Mobile 2015
Mcommerce Breaking Mobile 2015
 
Resume_Testing
Resume_TestingResume_Testing
Resume_Testing
 
Breaking mobile is all about breaking how we work 2015
Breaking mobile is all about breaking how we work 2015Breaking mobile is all about breaking how we work 2015
Breaking mobile is all about breaking how we work 2015
 
0525 wallis ppt
0525 wallis ppt0525 wallis ppt
0525 wallis ppt
 
Todos no sofá 1
Todos no sofá 1Todos no sofá 1
Todos no sofá 1
 
Actividad integradora-12345 (1)
Actividad integradora-12345 (1)Actividad integradora-12345 (1)
Actividad integradora-12345 (1)
 
Kender Rivero
Kender RiveroKender Rivero
Kender Rivero
 
I peter 3 14 22 commentary
I peter 3 14 22 commentaryI peter 3 14 22 commentary
I peter 3 14 22 commentary
 
หน้า2
หน้า2หน้า2
หน้า2
 
NYHQ ad
NYHQ adNYHQ ad
NYHQ ad
 
Mapa conceptual sistema de producción
Mapa conceptual sistema de  producciónMapa conceptual sistema de  producción
Mapa conceptual sistema de producción
 

Semelhante a Segurança no Plone: Modelo, OWASP Top 10 e Boas Práticas

Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosRuda Filgueiras
 
Backtrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testBacktrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testPaulo Renato Lopes Seixas
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de SoftwareJeronimo Zucco
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookGiovane Liberato
 
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosSegurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosLuis Cipriani
 
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...Anchises Moraes
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOpsTenchi Security
 
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...Alcyon Ferreira de Souza Junior, MSc
 
7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber
 7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber 7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber
7 Segredos sobre o PenTest e Software Livre que Todos deveriam SaberAlcyon Ferreira de Souza Junior, MSc
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...barros_val
 
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentasGustavo Lichti Mendonça
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneFabiano Weimar
 
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil Bruno Dantas
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Tania Andrea
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
 

Semelhante a Segurança no Plone: Modelo, OWASP Top 10 e Boas Práticas (20)

Pyramid - O Framework Web para Todos
Pyramid - O Framework Web para TodosPyramid - O Framework Web para Todos
Pyramid - O Framework Web para Todos
 
Backtrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testBacktrack: Solucão open source para pen test
Backtrack: Solucão open source para pen test
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de Software
 
OWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbookOWASP Top 10 - A web security cookbook
OWASP Top 10 - A web security cookbook
 
Pentest com Kali Linux - LatinoWare 2015
Pentest com Kali Linux  - LatinoWare 2015Pentest com Kali Linux  - LatinoWare 2015
Pentest com Kali Linux - LatinoWare 2015
 
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosSegurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
 
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...
Segurança em IoT é possível ! Dicas de desenvolvimento seguro de dispositivo...
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOps
 
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
 
7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber
 7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber 7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber
7 Segredos sobre o PenTest e Software Livre que Todos deveriam Saber
 
Palestra alcyon junior - LatinoWare 2016
Palestra alcyon junior - LatinoWare 2016Palestra alcyon junior - LatinoWare 2016
Palestra alcyon junior - LatinoWare 2016
 
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
 
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
Case Fábrica de Software: Metodologia de Desenvolvimento Híbrida e Ferramenta...
 
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas
2019 04-25 - ciclo de desenvolvimento seguro pessoas processos ferramentas
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo Plone
 
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil
CPBR11 - DevSecOps: Adotando uma cultura de segurança ágil
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 

Mais de Fabiano Weimar

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Fabiano Weimar
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Fabiano Weimar
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioFabiano Weimar
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com PloneFabiano Weimar
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Fabiano Weimar
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFabiano Weimar
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisFabiano Weimar
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOFabiano Weimar
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroFabiano Weimar
 
Plone na plataforma mobile
Plone na plataforma mobilePlone na plataforma mobile
Plone na plataforma mobileFabiano Weimar
 

Mais de Fabiano Weimar (15)

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveis
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDO
 
Novidades do plone 4
Novidades do plone 4Novidades do plone 4
Novidades do plone 4
 
O novo plone 4
O novo plone 4O novo plone 4
O novo plone 4
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiro
 
IPv6
IPv6IPv6
IPv6
 
Plone na nuvem
Plone na nuvemPlone na nuvem
Plone na nuvem
 
Plone na plataforma mobile
Plone na plataforma mobilePlone na plataforma mobile
Plone na plataforma mobile
 

Segurança no Plone: Modelo, OWASP Top 10 e Boas Práticas

  • 1. Fabiano Weimar dos Santos [Xiru] xiru@xiru.org Segurança no Plone
  • 2. Segurança no Plone - Provedor PyTown.com 2 Roteiro ● Um pouco sobre mim... ● Introdução ● Como Plone É tão Seguro? ● Modelo de Segurança ● OWASP Top 10
  • 3. Segurança no Plone - Provedor PyTown.com 3 Um pouco sobre mim... ● Os amigos me chamam de Xiru ● Já escrevi algumas linhas de código do Plone, Archetypes e alguns Plone Products... ● Atualmente ● Consultor do Programa das Nações Unidas para o Desenvolvimento – PNUD ● Sysadmin do provedor PyTown.com ● Ministro cursos a distância sobre Plone, Segurança e Infraestrutura
  • 4. Segurança no Plone - Provedor PyTown.com 4 Introdução ● Security is hard (Jim Fulton, chief Zope architect) ● Falar de segurança com responsabilidade não é uma tarefa simples ● Vou tentar simplificar... mas não é um assunto “de balcão de bar” :)
  • 5. Segurança no Plone - Provedor PyTown.com 5 Como Plone É tão Seguro? ● Arquitura totalmente orientada a objetos ● Não utiliza banco de dados relacional – Impossível sofrer SQL Injection pois não utiliza SQL ● Modelo de segurança baseado em permissões declarativas – Todas as informações são representadas por objetos (instancias de classes ou módulos) – Métodos das classes são protegidos por permissões E convenções – Permissões são calculadas por papel (role) – Roles são atribuidos aos usuários de acordo com o contexto
  • 6. Segurança no Plone - Provedor PyTown.com 6 Como Plone É tão Seguro? ● Não existe administração de permissões ● Todo controle de acesso aos conteúdos é definido em um workflow ● Conteúdos mudam de estado de revisão do workflow e tem permissões ajustadas automaticamente ● Conteúdo que o usuário não pode ver não é disponibilizado (aquilo que não pode ser visto “não existe”)
  • 7. Segurança no Plone - Provedor PyTown.com 7 Modelo de Segurança ● O projeto Plone se preocupa com qualidade de código ● Segurança é resultado da forma como a plataforma foi definida e da qualidade do código fonte ● Não existe solução de segurança que resolva problemas de implementação causados por desenvolvedores
  • 8. Segurança no Plone - Provedor PyTown.com 8 OWASP Top 10 ● Open Web Application Security Project ● 501c3 not-for-profit (assim como a Plone Foundation) ● Não defende nenhuma tecnologia ou marca ● Foco na segurança como resultado de boas práticas de desenvolvimento ● Publica o Top 10 de riscos de segurança
  • 9. Segurança no Plone - Provedor PyTown.com 9 OWASP Top 10 ● Análises quantitativas demonstrariam que qualquer tecnologia possui mais vulnerabilidades conhecidas do que o Plone (basta consultar o CVE-MITRE) ● Isso não diz muita coisa, pois o Plone não é um CMS tão popular quanto o wordpress... ● “given enough eyeballs, all bugs are shallow” (Eric S. Raymond)
  • 10. Segurança no Plone - Provedor PyTown.com 10
  • 11. Segurança no Plone - Provedor PyTown.com 11 OWASP Top 10 ● OWASP “Top 10 Web Application Security Risks” 2010 ● A1: Injection ● A2: Cross-Site Scripting (XSS) ● A3: Broken Authentication and Session Management ● A4: Insecure Direct Object References ● A5: Cross-Site Request Forgery (CSRF) ● A6: Security Misconfiguration ● A7: Insecure Cryptographic Storage ● A8: Failure to Restrict URL Access ● A9: Insufficient Transport Layer Protection ● A10: Unvalidated Redirects and Forwards
  • 12. Segurança no Plone - Provedor PyTown.com 12
  • 13. Segurança no Plone - Provedor PyTown.com 13
  • 14. Segurança no Plone - Provedor PyTown.com 14
  • 15. Segurança no Plone - Provedor PyTown.com 15
  • 16. Segurança no Plone - Provedor PyTown.com 16
  • 17. Segurança no Plone - Provedor PyTown.com 17
  • 18. Segurança no Plone - Provedor PyTown.com 18 import sha # Gerador de boas CRIPTO_KEY # openssl rand -base64 256 CRIPTO_KEY = """ eJFSIAdbIuw9DLGtRV+IJSKbTfdAvCBJVOT58AaoCyTSBOn36AQKBv1qERBA431T jv4mQqC3c2RTsi4GY8phRYGiEKpfuTlBjNS5GEGR7pdPzLLI09ZIzvK4RHGXJcyc XOjz/Nxoufq/otEMNZuJvfib6B4t2dNSgEAUS2vIqlUffgkVlClNP6MvdA0qv+OO Du8G+vQnpvBG8/0ySiYo/FEQRrk0MAbtpIhDqg5pbvZM7XyppTFW66dMMxAolhqi lFjF2DKAuZvmV0CNi7bR9nBVFc7cJihNAlxXAPiM7QeBfBasOxRafZyxKZ7iClfE V83CeyQiBad3vKW/ETUCug== """ def member_name(self): mtool = self.portal_membership return str(mtool.getAuthenticatedMember()) def gera_tk(self): txt = CRIPTO_KEY + member_name(self) c = sha.new() c.update(txt) return c.hexdigest() def gera_tag_csrf(self): return """<input type="text" name="_authenticator" value="%s" />""" % gera_tk(self) def verifica_tag_csrf(self, tag): return tag == gera_tk(self)
  • 19. Segurança no Plone - Provedor PyTown.com 19
  • 20. Segurança no Plone - Provedor PyTown.com 20
  • 21. Segurança no Plone - Provedor PyTown.com 21 Plone HotFix http://plone.org/products/plone-hotfix apenas 12 correções de segurança desde abril de 2006
  • 22. Segurança no Plone - Provedor PyTown.com 22 Fabiano Weimar dos Santos xiru@xiru.org Twitter @xiru Obrigado