Você está na página 1de 11

O CMS Seguro

Mestrado em Software de Cdigo Aberto o Segurana em Redes de Computadores: c


Rui Figueiredo
ISCTE-IUL - Instituto Universitrio de Lisboa a rui.figueiredo@gmail.com http://www.iscte-iul.pt

Resumo O presente artigo enquadra-se no mbito de analisar qual dos a projectos CMS existentes o mais seguro. Ser realizado uma bateria de e a testes em laboratrio, com o apoio de plataformas open-source e como plementando com estat sticas e com ferramentas de analise de falhas de segurana. A analise ser efectuada com base em c a ndices de vulnerabilidade, relacionada com o top 10 da owasp.

Introduo ca

A diversidade existente de projectos CMS Content Management Systems, d a a possibilidade de livre escolha, de optar pelo que se adapta melhor `s nossas a necessidades. A facilidade de criar, editar, gerir os contedos um dos princiu e pais factores de escolha. No entanto a sua seleco pode ser uma deciso dif ca a cil. As necessidades/funcionalidades so levadas em conta na maior, as aplicaes a co web so desenvolvidas por programadores que esto sobre presso de mercado, a a a no entanto empresas de TOPO j mencionam na ampla gama de necessidades a diferentes factores onde a segurana se tornou como um imperativo. A WSAC rec centemente demonstrou que, 99% das aplicaes web no cumprem com os PCI co a DSS Standards. 80 - 96%, tm n e veis de risco elevado vulnerabilidades e 13% pode ser comprometida automaticamente. A alta frequncia de vulnerabilidades e nas aplicaes web faz do teste (em vez de vericao atravs do modelo formal) co ca e uma soluo mais produtiva na identicao de vulnerabilidades de segurana.[1] ca ca c Ao longo dos tempos sentimos a necessidade de aprender como proteger as nossas casas de poss veis assaltos, o mesmo se aplica para as aplicaes web[2]. A co internet sempre foi vulnervel a ataques, com a evoluo das novas tecnologias, a ca os hackers melhoram constantemente as suas tcnicas, que se tornaram bastante e sosticadas [3] . E necessario permanecer consciente do facto de que as solues co de cdigo aberto so mais propensas a ataques do que outras solues. Existe o a co um maior grau de vulnerabilidades por o cdigo pode ser acedido por qualquer o pessoa, dando a oportunidade a hackers analisarem o ncleo da aplicao, devido u ca a isso necessria um controlo permanente e recursivo, desenvolver correces e a co que so indispensveis para a escolha do CMS.[2] Os projectos de opensource so a a a muito mais amplos nas necessidades/funcionalidades e a sensibilizao da comuca nidade opensource preza a sua continuidade, organizando-se e contribuindo para

Rui Figueiredo

a segurana dos projectos envolvidos. devido a isso poss provar que existem c e vel projectos muito seguros devido a ateno dos seus seguidores. E que este artigo ca traga sustentabilidade e que contribua na escolha da plataforma ideal de gesto a de contedos No artigo ser analisado o CMS open-source mais popular, e ser u a a testado num ambiente LAMP1 . 1. Wordpress www.wordpress.com 2. Joomla www.joomla.org 3. Drupal www.drupal.org

(a) Wordpress Logo

(b) Joomla Logo

(c) Drupal Logo

Figura 1: Logotipos dos CMS

CMS Media Semanal Worpress 983,625 Joomla 113,836 Drupal 33,671

Tabela 1: Mdia downloads 2010 e

CMS em analise

No presente capitulo ser apresentada a situao actual relacionada com o worda ca press, joomla e drupal. 2.1 Wordpress

Wordpress um gestor de contedos open-source desenvolvido em PHP pela e u wordpress.com. A ideia principal do projecto, foi criar uma plataforma ideal para a construo e publicao de um blog, no entanto esta soluo demonstra ca ca ca grande simplicidade na gesto das tarefas de administrao base da plataforma, a ca e devido ao desenvolvimento de extenses/plugins a plataforma tornou-se numa o plataforma geral de gesto de contedos, onde existe a possibilidade de criar a u mais do que um simples blog.
1

Linux-Apache-MySQL-PHP

O CMS Seguro

2.2

Joomla

Joomla um gestor de contedos open-source desenvolvido em PHP pela joomla.org. e u A ideia principal do projecto,foi dar possibilidades de quem no programador a e (exemplo: um gestor de vendas, gestor de marketing, um empresrio,..) poder a actualizar os conteudos no seu site, sem ter que recorrer ` ajuda de um prograa mador. Se existir necessidade de alterar funcionalidades, ento ser necessria a a a a ajuda de um programador, nas tarefas mais simples como alterar um paragrafo no texto, ou inserir uma imagem, o gestor de marketing consegue facilmente cumprir esse tipo de tarefas. As solues desenvolvidas por programadores exco ternos so chamados packages(pacotes). a 2.3 Drupal

Drupal um sistema de gesto de contedos, que faz uso de mdulos que ajudam e a u o o administrador a organizar e a mostrar os contedos, manipulando a aparncia u e e administrando as tarefas, como a administrao dos utilizadores da plataforma. ca O drupal desenvolvido em PHP e pode ser implementado em windows, Mac e OS X, Linux e outros sistemas operativos. Qualquer pessoa pode criar mdulos o para o drupal, e esto dispon a veis vrios mdulos desde galerias de fotos a lojas a o e-comerce. O projecto est bem sustentado pela comunidade, onde existe um a largo numero de tutoriais e documentao dispon no site drupal, As solues ca vel co desenvolvidas por programadores externos so chamados mdulos. a o

Rui Figueiredo

Wordpress Joomla Drupal - Funciona em - Funciona em - Funciona em ambientes de alojamento ambientes de alojamento ambientes de alojamento partilhado partilhado partilhado - Fcil de a - Fcil de a - Fcil de a compreender e compreender e compreender e utilizar as utilizar as utilizar as extenses o extenses o extenses o - Plugins poderosos - Plugins poderosos - Bem documentado - Facilidade de - Facilidade de - Bem Documentado utilizaao para c utilizaao para c - Alta qualidade utilizadores sem utilizadores sem da plataforma no desempenho conhecimentos de conhecimentos de do servidor programaao c programaao c - Ideal para multi-sites - Versionamento (para projectos - Sistema de multi-sites no necessariamente) a temas poderoso e - Sistema de temas e ex vel poderoso e ex vel Qualquer tema existente em XHTML ou CSS pode ser adaptado ao drupal - Taxonomias - Versionamento - Escalabilidade

Tabela 2: Vantagens

Wordpress - Mais vocacionado para blogues

Joomla Drupal - Bons mdulos so o a - No fcil de iniciar a e a pagos para um utilizador comum sem - Se for necessrio a um pouco de conhecimentos criar contedos mais u de programaao c avanados, joomla limitado c e - Algumas denies co - Multi-sites numa s o devem ser alteradas instalaao no c a e para mais fcil a suportado a adaptaao c - Estrutura da programaao c

Tabela 3: Desvantagens

O CMS Seguro

Segurana c

De seguida alguns exemplos de vulnerabilidades de segurana relacionados com c os trs sistemas de gesto de contedos. Estes downloads tm como base o ano e a u e 2010, e so referenciados no site da Secunia2 . Esta parte do capitulo, demonstra a que as equipas de segurana dos trs sistemas de gesto de contedos, esto atenc e a u a tas e que demonstram capacidade de resposta `s investidas dos hackers, visto a que disponibilizam actualizaes ao detectarem fraquezas nas suas plataformas, co aps a disponibilizao da actualizao, os utilizadores podem car seguros relo ca ca ativamente ` vulnerabilidade identicada. Visto que ambas as equipas fazem a testes de qualidade antes da sua disponibilizao, as equipas esto organizadas ca a e disponibilizam informao atravs dos seus principais links. ca e 1. Wordprocess: http://en.support.wordpress.com/security/ 2. Joomla: http://developer.joomla.org/security.html 3. Drupal: http://drupal.org/security-team

Quais os Riscos

Figura 2: Diagrama de arquitectura owasp.

Em certas ocasies os caminhos mencionados so triviais para encontrar e o a explorar e so em certas alturas extremamente dif a ceis. Os danos podem causar o m do projecto, poss avaliar a probabilidade associada a cada agente de e vel ameaa, o inicio de um ataque, em conjunto com a falha de segurana e relacionar c c com uma estimativa de impacto tcnico e de negcios do seu projecto3 . e o
2 3

Secunia Stay Secure http://www.secunia.com National Center for Biotechnology Information http://www.ncbi.nlm.nih.gov

Rui Figueiredo

4.1

Relatrio de Vulnerabilidades o

Nesta parte do artigo esto identicadas algumas vulnerabilidades reportadas a em mail lists. 4.2 Wordpress

1. XSS Vulnerability (less critical A1 Figura 3) Esta vulnerabilidade podia ser encontrada nowp-admin/edit-post-rows.php e afectava a visualizao do site. ca Estado: Regularizado, na verso 2.3.1. Fix nais de 2007 a 2. SQL Injection (critical - A2 Figura 3) Esta vulnerabilidade podia facilitar o acesso sem autorizao de utilizadores no registados ao site, e ao servidor. ca a Estado: Regularizado, na verso 2.3.1. Fix nais de 2008 a 4.3 Joomla

1. SQL Injection (critical - A2 Figura 3) A falha foi reportado no componente RSS Feed iJoomla para o joomla, que pode ser utilizado para provocar injeco ca de dados atravs de SQL injection. Estado: No regularizado, reportado a 16 e a de Junho 2009 2. Local File Disclosure (moderated Critical A6 Figura 3) A vulnerabilidade foi reportada no componente MooFAQ, que expem as informaes potencialo co mente sens veis. Estado: No regularizado, reportado a 11 de Junho 2009 a 3. Broken Authentication control (Critical A7 Figura 3) Existia esta vulnerabilidade que poderia contornar determinadas restries de segurana e manipuco c lar dados, o acesso indevido a componentes como \ com user\ models\ reset.php. Esta falha afectava o sistema de autenticao do joomla, e alterar a password do ca administrador Estado: Regularizado, na verso 1.5.6. Fix 13 de Agosto de 2008 a 4.4 Drupal

1. Script insertion vulnerability( less critical A1 Figura 3) A vulnerabilidade foi reportada no modulo Gesto de Taxonomias, que pode ser explorada por a

Figura 3: O top 10 de vulnerabilidades, classicada pela owasp.

O CMS Seguro

utilizadores maliciosos, para inserir dados sem autorizao. Possibilidade de inca troduzir html e scripts Estado: Regularizado, em todas as verses at 6.x.1.1 o e ou 5.x-1-2 afectadas. Fix 19 de Junho de 2009 2. Security Bypass(less critical A1 Figura 3) A vulnerabilidade foi reportada no mdulo Views as operaes em massa para o drupal, a vulnerabilidade o co podia modicar os NOS espec cos ou classes de NOS sem autorizao. Estado: ca Regularizado, em todas as verses at 5.x-1-X at 5.x-1.4 e 6.x-1.7 . Fix 22 de o e e Maio de 2009 2 Analise Pratica

Analise Prtica a

No presente capitulo esto vis a veis testes prticos com a ajuda da aplicao a ca open-source NIKTO O Nikto um projecto open-source que ajuda a realizar e testes nas aplicaes web, o Nikto contem uma base de dados de 3300 de scripts co vulnerabilidades, est em constante actualizao devido a sua comunidade, e a ca identica as vulnerabilidades e relacionadas com a base de dados open-source OSVDB4 5.1
$ $ $ $ $ $

Como instalar o nikto:

mkdir / s r c cd / s r c wget c h t t p : //www . c i r t . n e t / n i k t i o / n i k t o c u r r e n t . t a r . g z t a r x z v f n i k t o c u r r e n t . t a r . gz mv n i k t o 1.35/ / u s r / l o c a l / n i k t o . / n i k t o . p l update

5.2

Como aceder ao help

$ . / n i k t o . p l h

5.3

Iniciar os testes de segurana e gerar o relatrio no c o cheiro report.txt

$ . / n i k t o . p l h { u r l } C o f i c h e i r o r e p o r t . t x t

Teste Prtico a

Ser realizado um teste a cada cms instalado no servidor apache local. a


4

The Open Source Vulnerability Database http://www.osvdb.org

Rui Figueiredo

6.1

CMS: Wordpress 3.2

r u i @ t o s h i b a / u s r / l o c a l / n i k t o $ . / n i k t o . p l h h t t p : // l o c a l h o s t / w o r d p r e s s / C a l l o r e p o r t w o r d p r e s s . t x t Nikto v2 . 1 . 4 \ tableofcontents + Target IP : 127.0.0.1 + Target Hostname : localhost + Target Port : 80 + S t a r t Time : 20110706 1 7 : 4 0 : 2 6 + S e r v e r : Apache / 2 . 2 . 1 7 ( Ubuntu ) + R e t r i e v e d xpoweredby h e a d e r : PHP/5.3.5 1 ubuntu7 . 2 + Root page / r e d i r e c t s t o : h t t p : // l o c a l h o s t / w o r d p r e s s / + Apache / 2 . 2 . 1 7 a p p e a r s t o be o u t d a t e d ( c u r r e n t i s a t l e a s t Apache / 2 . 2 . 1 9 ) . Apache 1 . 3 . 4 2 ( f i n a l r e l e a s e ) and 2 . 0 . 6 4 are also current . + Allowed HTTP Methods : GET, HEAD, POST, OPTIONS + OSVDB12184: / i n d e x . php?=PHPB8B5F2A03C9211d3A3A94 C7B08C10000 : PHP r e v e a l s p o t e n t i a l l y s e n s i t i v e i n f o r m a t i o n v i a c e r t a i n HTTP r e q u e s t s t h a t c o n t a i n s p e c i f i c QUERY strings . + OSVDB3092: / xmlrpc . php : xmlrpc . php was found . + /wpc o n t e n t / p l u g i n s / a k i s m e t / readme . t x t : The WordPress Akismet p l u g i n Tested up t o v e r s i o n u s u a l l y matches t h e WordPress v e r s i o n + / readme . html : This WordPress f i l e r e v e a l s t h e i n s t a l l e d version . + OSVDB3092: / l i c e n s e . t x t : L i c e n s e f i l e found may i d e n t i f y s i t e software . + /wpl o g i n / : Admin l o g i n page / s e c t i o n found . + 6456 i t e m s c he ck ed : 0 e r r o r ( s ) and 9 item ( s ) r e p o r t e d on remote h o s t + End Time : 20110706 1 7 : 4 1 : 3 4 ( 6 8 s e c o n d s ) + 1 host ( s ) tested

6.2

CMS: Joomla 1.6

r u i @ t o s h i b a / u s r / l o c a l / n i k t o $ . / n i k t o . p l h h t t p : // l o c a l h o s t / j o o m l a C a l l o r e p o r t j o o m l a l o c a l . t x t Nikto v2 . 1 . 4 + Target IP : 127.0.0.1 + Target Hostname : localhost

O CMS Seguro

+ Target Port : 80 + S t a r t Time : 20110706 1 9 : 1 5 : 5 9 + S e r v e r : Apache / 2 . 2 . 1 7 ( Ubuntu ) + R e t r i e v e d xpoweredby h e a d e r : PHP/5.3.5 1 ubuntu7 . 2 + r o b o t s . t x t c o n t a i n s 17 e n t r i e s which s h o u l d be manually viewed . + ETag h e a d e r found on s e r v e r , i n o d e : 1 9 9 2 4 4 6 6 , s i z e : 8 4 9 , mtime : 0 x 4 9 f f 8 e d e 8 b 7 c 0 + Apache / 2 . 2 . 1 7 a p p e a r s t o be o u t d a t e d ( c u r r e n t i s a t l e a s t Apache / 2 . 2 . 1 9 ) . Apache 1 . 3 . 4 2 ( f i n a l r e l e a s e ) and 2 . 0 . 6 4 a r e a l s o c u r r e n t . + Allowed HTTP Methods : GET, HEAD, POST, OPTIONS + DEBUG HTTP verb may show s e r v e r debugging i n f o r m a t i o n . See h t t p : //msdn . m i c r o s o f t . com/enus / l i b r a r y / e 8 z 0 1 x d h%28VS .80%29. a s p x for d e t a i l s . + OSVDB3092: /web . c o n f i g : ASP c o n f i g f i l e i s a c c e s s i b l e . + OSVDB8193: / i n d e x . php? module=e w f i l e m a n a g e r&type=admin&f u n c =manager&p a t h e x t = . . / . . / . . / e t c : EW FileManager f o r PostNuke allows arbitrary f i l e r e t r i e v a l . + OSVDB12184: / i n d e x . php?=PHPB8B5F2A03C9211d3A3A94 C7B08C10000 : PHP r e v e a l s p o t e n t i a l l y s e n s i t i v e i n f o r m a t i o n via certain HTTP r e q u e s t s t h a t c o n t a i n s p e c i f i c QUERY s t r i n g s . + OSVDB3092: / a d m i n i s t r a t o r / : This might be i n t e r e s t i n g . . . + OSVDB3092: / i n c l u d e s / : This might be i n t e r e s t i n g . . . + OSVDB3092: / l o g s / : This might be i n t e r e s t i n g . . . + OSVDB3092: /tmp / : This might be i n t e r e s t i n g . . . + OSVDB3092: /README: README f i l e found . + OSVDB3092: /LICENSE . t x t : L i c e n s e f i l e found may i d e n t i f y s i t e software . + / h t a c c e s s . t x t : D e f a u l t Joomla ! h t a c c e s s . t x t f i l e found . This s h o u l d be removed o r renamed . + / a d m i n i s t r a t o r / i n d e x . php : Admin l o g i n page / s e c t i o n found . + / c o n f i g u r a t i o n / : Admin l o g i n page / s e c t i o n found . + 6456 i t e m s c he ck ed : 4 e r r o r ( s ) and 18 item ( s ) r e p o r t e d on remote h o s t + End Time : 20110706 1 9 : 1 9 : 3 9 ( 2 2 0 s e c o n d s ) + 1 host ( s ) tested + 1 host ( s ) tested

6.3

CMS: Drupal 7.4

r u i @ t o s h i b a / u s r / l o c a l / n i k t o $ . / n i k t o . p l h h t t p : // l o c a l h o s t / d r u p a l 7 C a l l o r e p o r t d r u p a l l o c a l . t x t Nikto v2 . 1 . 4

10

Rui Figueiredo

+ Target IP : 127.0.0.1 + Target Hostname : localhost + Target Port : 80 + S t a r t Time : 20110706 1 9 : 3 3 : 2 8 + S e r v e r : Apache / 2 . 2 . 1 7 ( Ubuntu ) + R e t r i e v e d xpoweredby h e a d e r : PHP/5.3.5 1 ubuntu7 . 2 + r o b o t s . t x t c o n t a i n s 35 e n t r i e s which s h o u l d be manually viewed . + ETag h e a d e r found on s e r v e r , i n o d e : 1 2 5 9 7 3 4 7 , s i z e : 1 5 3 1 , mtime : 0 x4a6e3b3bae680 + Apache / 2 . 2 . 1 7 a p p e a r s t o be o u t d a t e d ( c u r r e n t i s a t l e a s t Apache / 2 . 2 . 1 9 ) . Apache 1 . 3 . 4 2 ( f i n a l r e l e a s e ) and 2 . 0 . 6 4 are also current . + Allowed HTTP Methods : GET, HEAD, POST, OPTIONS + DEBUG HTTP verb may show s e r v e r debugging i n f o r m a t i o n . See h t t p : //msdn . m i c r o s o f t . com/enus / l i b r a r y / e 8 z 0 1 x d h%28VS .80%29. a s p x f o r d e t a i l s . + OSVDB3092: /web . c o n f i g : ASP c o n f i g f i l e i s a c c e s s i b l e . + OSVDB12184: / i n d e x . php?=PHPB8B5F2A03C9211d3A3A94 C7B08C10000 : PHP r e v e a l s p o t e n t i a l l y s e n s i t i v e i n f o r m a t i o n v i a c e r t a i n HTTP r e q u e s t s t h a t c o n t a i n s p e c i f i c QUERY strings . + OSVDB3268: / d r u p a l 7 / i n c l u d e s / : D i r e c t o r y i n d e x i n g found . + OSVDB3092: / i n c l u d e s / : This might be i n t e r e s t i n g . . . + OSVDB3268: / d r u p a l 7 / misc / : D i r e c t o r y i n d e x i n g found . + OSVDB3092: / s c r i p t s / : This might be i n t e r e s t i n g . . . p o s s i b l y a system s h e l l found . + OSVDB3268: / d r u p a l 7 / s i t e s / : D i r e c t o r y i n d e x i n g found . + 6456 i t e m s c he ck ed : 0 e r r o r ( s ) and 13 item ( s ) r e p o r t e d on remote h o s t + End Time : 20110706 1 9 : 3 4 : 4 0 ( 7 2 s e c o n d s ) + 1 host ( s ) tested

6.4

Analise de logs

No report de cada analise poss identicar referncias como OSVDB-3092 e vel e que esto relacionadas com a base de dados existente no site osvdb5 , com o a suporte da base de dados, podemos vericar a denio da situao e qual a ca ca melhor forma de a corrigir.

Concluso a

Analisamos as vulnerabilidades dos trs CMS mais consultados na internet e que e fazem parte de muitos projectos existentes nas nossas empresas. Ser de todo a
5

The Open Source Vulnerability Database http://www.osvdb.org

O CMS Seguro

11

importante ter ateno `s vulnerabilidades existentes, tanto como o seu n de ca a vel criticidade. Contudo ser bastante positivo reportar/alertar as falhas que sejam a encontradas, para que a equipa de segurana e a prpria comunidade tome mec o didas e colabore na sua correco. Alerto tambm que um factor importante a ca e e boa pratica aplicada na instalao de cada aplicao, e tambm do seu servidor ca ca e web, visto que pode proteger signicativamente a aplicao de vulnerabilidades. ca Existem projectos que no divulgam as vulnerabilidades ou resolues para o a co mesmo grau, como os projectos que mencionei no presente artigo. O numero de vulnerabilidades conhecidas pode ser visto como um indicador, de que o cdigo o menos seguro quando divulgado pelo projecto. E importante entender que e e no divulgar vulnerabilidades, no ser uma boa pratica de segurana. Falta de a a a c informao de vulnerabilidades no indica que a aplicao no tem vulnerabilica a ca a dades e vulnerabilidades anteriores no se pode considerar que a aplicao no a ca a ter um bom desempenho de futuro. Ao divulgar uma vulnerabilidade, pode ser a compreendida como um conselho de segurana. Um alerta de segurana na maioc c ria das hipteses, fornece aos administradores dos projectos um caminho imedio ato para a sua correco, com patches, uma verso actualizada, ou instrues de ca a co mitigao. Desta forma, a politica de divulgao de uma vulnerabilidade, diminui ca ca os riscos de segurana para a prpria aplicao. A causa comum de maior perc o ca centagem de vulnerabilidades causada pela m pratica de utilizao da API, no e a ca desenvolvimento de novos componentes/mdulos/extenses. E importante como o preender que a segurana um processo e no um produto esttico, e que h c e a a a sempre espao para melhorias. As vulnerabilidades como XSS so muito comuns c a e melhores praticas de segurana no so sucientemente bem compreendidos c a a ou divulgados. Alguns projectos como o drupal verso 7 j tem desenvolvido a a padres mais seguros. Segurana no impede o desenvolvimento local e a sua o c a implementao. Para garantir a segurana, dever ser aplicada em todo o ciclo ca c a de vida do software, metodologias apropriadas, na actualizao do software. ca

Referncias e
1. Fu, X. Relational Constraint Driven Test Case Synthesis for Web Applications. Electronic Proceedings in Theoretical Computer Science 35 (Sept. 2010), 3950. 2. Harman, M., Mansouri, S. A., and Zhang, Y. Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications. Engineering (2009), 178. 3. Lancor, L., and Workman, R. Using google hacking to enhance defense strategies. ACM SIGCSE Bulletin 39, 1 (Mar. 2007), 491.

Você também pode gostar