Back-End

29 abr, 2015

O impacto das atualizações do WordPress e seus componentes para a segurança

Publicidade

Iniciativa WordPress Seguro

Criamos uma iniciativa chamada #WordPressSeguro para divulgar e colaborar com o que diz respeito à segurança para WordPress. Além de informações, disponibilizamos um Guia Prático de Implementações para Segurança em WordPress.

O cenário

Praticamente 60% das instalações WordPress estão desatualizadas. O número é alarmante, uma vez que manter o WP em sua última versão é garantir o uso de um software com as mais recentes correções de bug, segurança e, claro, desfrutar de novos recursos.

A regra deve ser estendida para os plugins, temas, sistema operacional e demais programas em questão. Uma versão desatualizada pode estar deixando a porta dos fundos, ou a da frente, aberta ou com a chave na fechadura e essa responsabilidade não pode ser creditada à aplicação.

WordPress e segurança na mídia

É comum noticiarem que milhões de instalações da plataforma de gestão de conteúdo mais utilizada do mundo estão vulneráveis. Mas poucos percebem o por quê. Na maioria dos casos são complementos desatualizados que tiveram brechas recentes descobertas, sejam plugins ou bibliotecas de sistemas operacionais, por exemplo.

As notícias ilustradas abaixo são emblemáticas quanto a isso, observe:

Captura de Tela 2015-03-28 às 08.16.22

Destaque para a vulnerabilidade GHOST, que afeta servidores Linux e por conseguinte aplicações PHP – e claro, o WordPress por ser desenvolvido nessa linguagem. Mas é importante ficar claro que a brecha afeta milhares de softwares na referida linguagem. E para corrigir o problema basta uma atualização da biblioteca no Linux e pronto.

Captura de Tela 2015-03-28 às 08.16.00

Casos como a segunda notícia é muito recorrente, em brechas em plugins são divulgadas. E quando esses são muito populares, podem afetar milhões de instalações. O core da plataforma está seguro e o recurso adicional trouxe a surpresa desagradável. Atualizando o plugin, se disponibilizado a correção, o problema será corrigido e pronto!

Alguns plugins são bem codificados e adotam boas práticas de desenvolvimento e segurança. Melhor ainda os que praticam um processo de atualização constante, como foi o caso recente do WordPress SEO e WooCommerce em que brechas foram divulgadas e rapidamente corrigidas.

Outros plugins são lançados e não têm manutenção e quem faz uso acaba ficando comprometido. O importante são os desenvolvedores serem mais criteriosos com suas escolhas.

As atualizações automáticas

A partir da versão 3.7, lançada em 24 de outubro de 2013, foi implementado o recurso de atualização automática do core para versões de manutenção e correções de segurança. Por exemplo, se você está fazendo uso da versão 4.1 e se lançado a versão 4.1.1, essa última será implementada automaticamente e de forma silenciosa.

A prática aumenta a possibilidade de diminuir a quantidade de usuários com instalações antigas e demonstra os esforços da plataforma em adotar práticas importantes de segurança e auxílio aos usuários.

Versionamento e deploy automatizado

Atualizações automáticas não é para todo mundo. Permitir a atualização via painel pelo próprio cliente também não.

A gestão do seu projeto pode (e deveria) estar integrada com um controle de versão (Git, SVN, etc) e isso requer um controle do seu lado e deixar a plataforma trabalhar sozinha ou permitir que o usuário interfira pode atrapalhar o processo.

Prefira as atualizações, remoção ou adição de plugins através de versionamento e continuos delivery, ao contrário de atualizações através do Dashboard da aplicação. Com essa prática é possível validar as atualizações em outros ambientes antes de aplicar as mudanças em produção. Além disso, reverter para uma versão anterior será possível e prático caso o processo falhe ou aconteça algo indesejado.

Constantes no wp-config.php para você se dar bem

Através de constantes do PHP inseridas no arquivo wp-config.php é possível definir o comportamento que o WordPress deve ter em relação às atualizações e, assim, definir sua política sobre o assunto.

define( 'DISALLOW_FILE_EDIT', true );

Desativar somente o editor de tema e plugin. É o mínimo que você deve considerar. Além de não permitir que os usuários alterem os códigos de plugins e temas, adiciona-se uma camada de segurança para se proteger de usuários mal intencionados que possam ter ganhado acesso à administração e queiram alterar arquivos para implantar malwares.

define( 'DISALLOW_FILE_MODS', true );

Fazer uso da constante DISALLOW_FILE_MODS é para radicalizar onde nenhuma alteração nos arquivos será possível, ou seja, o editor de tema e plugin será desativado, a possibilidade de atualizar o core, plugins e temas e até mesmo de instalar temas ou plugins.

 define( 'AUTOMATIC_UPDATER_DISABLED', true );

Semelhante ao exemplo anterior, mas restrito somente às atualizações automáticas diversas. Como o core, pacotes de linguanges, temas, plugins além de desativar os alertas por e-mail das atualizações disponíveis.

Para manipular as atualizações do core existem constantes específicas e mais direcionadas.

// Desabilita todas as atualizações do core
define( 'WP_AUTO_UPDATE_CORE', false );
// Permite todas as atualizações do core. Sejam as principais (major) ou menores (minor)
define( 'WP_AUTO_UPDATE_CORE', true );

O valor padrão da constante WP_AUTO_UPDATE_CORE é “minor” indicando as atualizações automáticas das versões menores focadas em correções de bug e segurança.

O impacto das atualizações do WordPress e seus componentes é grande para garantir uma maior segurança ao seu site. Defina suas políticas, trace a melhor abordagem sobre o assunto e mantenha tudo up-to-date.