Práticas recomendadas de segurança do WordPress

Publicados: 2022-03-10

Existem muitos mitos e FUD (medo, incerteza e dúvida) sobre a segurança do WordPress por aí. E há muito a considerar ao proteger um site contra possíveis ataques. Então, como as empresas podem aprender as melhores práticas de segurança do WordPress que lhes darão a melhor proteção possível na web?

Na semana passada, organizei uma conversa de webinar para desmistificar as preocupações de segurança do WordPress. Juntando-se a mim para a sessão estavam Ayush Malakar (desenvolvedor full-stack e WordPress da Fresh Consulting) e Sean O'Shaughnessy (líder de engenharia de soluções VIP do WordPress).

Por meio de quatro perguntas orientadoras, esses dois especialistas exploraram as práticas recomendadas de segurança que desenvolvedores, administradores, proprietários de sites e executivos devem ter em mente. Vamos recapitular o que falamos.

O software de código aberto é seguro?

Nem todo código aberto é criado igual. Mas como o WordPress existe há 18 anos e alimenta mais de 40% dos sites do mundo, fica claro que a adoção está crescendo. Mas mesmo com o software de código aberto mais popular do mundo surgem dúvidas sobre suas vulnerabilidades de segurança. Todo esse código, aberto, não é vulnerável a ataques?

Não necessariamente, diz Ayush: “Como temos tantos olhos olhando para ele, é mais seguro”.

Embora possa parecer contra-intuitivo, o software de código aberto pode realmente ser mais seguro do que o software proprietário de código fechado. Aqui está o porquê.

Mais olhos em ameaças potenciais

Como o código aberto opera em aberto, não há nada a esconder. Muitos desenvolvedores da comunidade estão olhando para ele e fazendo atualizações, inspirando confiança. Se uma vulnerabilidade for encontrada, ela será corrigida o mais rápido possível, geralmente em um ou dois dias.

Testes de código contínuos e recompensas de bugs

Qualquer pessoa pode contribuir com o WordPress, e o código é testado pela comunidade de milhares de colaboradores principais do WordPress. Como o código é continuamente testado, ele se torna cada vez mais confiável.

Além disso, os programas de recompensa de bugs incentivam o público a encontrar brechas e vulnerabilidades, incluindo ataques de força bruta, DDoS, phishing e muito mais.

Atualizações de segurança

Quando as atualizações de segurança acontecem, cabe aos desenvolvedores do site garantir que o código principal seja mantido atualizado e protegido contra os vetores de ataque mais recentes. Atualizações automáticas também estão disponíveis, e os desenvolvedores corporativos devem considerar se são a escolha certa para cada projeto.

Meu código é seguro?

O núcleo do WordPress é apenas um dos “baldes” de código que compõem um site WordPress. Acima do software desenvolvido pela comunidade está o código do aplicativo de um site – seu tema ou front-end e plugins.

Embora o código principal do WordPress de código aberto seja desenvolvido pela comunidade, o código do aplicativo escrito ou implantado em sites individuais também pode apresentar vulnerabilidades de segurança.

Existem várias medidas que você pode tomar para garantir que o código do seu aplicativo seja o mais protegido possível contra ataques. Embora você possa tomar decisões diferentes para projetos diferentes, dependendo do nível de risco aceitável, o mais importante é estar ciente dos possíveis vetores de ataque.

Aqui, nossos especialistas em webinars têm alguns conselhos.

Ferramentas para segurança do WordPress

Existem várias ferramentas que os desenvolvedores podem empregar para ajudar a identificar falhas de segurança no código primário e de terceiros.

“Sempre que falamos de ferramentas, precisamos entender quais são os prós e contras dessas ferramentas e como devemos usar melhor as ferramentas a nosso favor?”

— Ayush Malakar, Fresh Consulting

Essas ferramentas podem realizar análises de código estáticas ou dinâmicas. A análise estática é feita sem executar nenhum código e geralmente pode detectar cerca de 85% das falhas no código. A análise dinâmica de código depende do estudo de como o código se comporta durante a execução e tem a capacidade adicional de encontrar problemas de segurança causados ​​pela interação do código com outros componentes do sistema, como bancos de dados SQL, servidores de aplicativos ou serviços da Web.

É importante pesar os benefícios de humanos versus máquinas realizando essa análise de código. O aprendizado de máquina (ML) e a inteligência artificial (IA) podem ser usados ​​como primeira linha de defesa para garantir que os valores mobiliários comuns sejam identificados. Mas também vale a pena dar uma olhada humana no código depois. Isso garante que os humanos possam trabalhar em diferentes aspectos, como vulnerabilidade baseada em recursos, casos extremos, etc.

Algumas ferramentas que nossos especialistas recomendam:

  • WPScan é uma ferramenta CLI que os desenvolvedores podem usar para escanear seu código em busca de falhas de segurança. Ayush recomenda que os desenvolvedores executem isso em um cron job.
  • O PHP_CodeSniffer (PHPCS) inspeciona o código e destaca os problemas que vão desde a sintaxe até as vulnerabilidades de segurança. Há um conjunto de padrões específicos para WordPress. Isso pode ser configurado para ser executado em um pipeline de Integração Contínua (CI) e executado em todos os repositórios VIP do WordPress.
  • O Sonar Cloud, usado pela Fresh Consulting para análise de código estático, verifica o código PHP e JS em busca de vulnerabilidades e uma implementação mais segura.

“Estamos fazendo a quantidade certa de validação de entrada? Estamos higienizando adequadamente qualquer tipo de saída que teremos em nosso código?”

— Sean O'Shaughnessy, WordPress VIP

Plugins de segurança e WordPress

Ao escolher plug-ins de terceiros, procure um plug-in que tenha boas críticas e classificações, um alto número de downloads e flexibilidade para usar em seu site. Verifique se o plug-in está atualizado e é compatível com a versão mais recente do WordPress.

Não use um plugin que você mesmo pode escrever. Especialmente nos casos em que apenas uma pequena quantidade de código é necessária, escreva esse código em seu tema em vez de usar um plugin. Isso garantirá que nenhuma vulnerabilidade seja introduzida ao atualizar o plug-in.

“O que eu recomendaria é escrever o código dentro do próprio tema, porque o que eu vi no passado são plugins que fazem um trabalho mínimo para fazer qualquer atualização. E as chances são de que, à medida que a tecnologia evolui, esses plugins não. O potencial desses plugins que introduzem vulnerabilidades pode ser maior do que prevemos.”

— Ayush Malakar, Fresh Consulting

Como sempre, é importante manter seu código atualizado. Fique atento às atualizações do núcleo e dos plugins e mantenha o WordPress, plugins e temas atualizados.

Segurança e endpoints do WordPress

XML-RPC e a API REST são endpoints que o WordPress usa para se comunicar com outros sistemas ou com o front-end de um aplicativo. É importante ter uma compreensão desses endpoints e se eles serão importantes para seu aplicativo, pois são vetores de ataque em potencial que podem ser desativados se não forem necessários.

XML-RPC como um potencial vetor de ataque

XML-RPC é uma especificação que permite a comunicação entre o WordPress e outros sistemas. Nas primeiras versões do WordPress, o XML-RPC era desativado por padrão. Mas desde a versão 3.5, ele está habilitado por padrão. A principal razão para isso foi permitir que o aplicativo móvel do WordPress converse com sua instalação do WordPress.

A API REST como possível vetor de ataque

Certifique-se de usar as melhores práticas de segurança ao usar a API REST do WordPress. Embora as empresas possam precisar mantê-los abertos, por exemplo, em uma arquitetura headless em que o conteúdo precisa fluir para um front-end desacoplado, certifique-se de que os restantes expostos tenham a autenticação e autorização adequadas.

“Você tem esse castelo, WordPress, seu aplicativo, e a presença de uma ponte levadiça não torna seu aplicativo inerentemente seguro. Mas é uma avenida. É um caminho para aquele castelo. Portanto, apenas ter uma boa compreensão, conhecer e contabilizar essas coisas é definitivamente vital para ter uma melhor postura em relação à segurança de seus aplicativos.”

— Sean O'Shaughnessy, WordPress VIP

Minha hospedagem é segura?

Há muitas considerações a serem feitas ao determinar se seu host é seguro o suficiente para suas necessidades. É uma boa ideia considerar todas as opções de segurança disponíveis e não se esqueça da importância do suporte rápido em caso de emergências, como uma atualização de plugin causando um incidente de segurança.

“Seu provedor de hospedagem está oferecendo suporte rápido e proativo? Além disso, como eles estão respondendo quando as vulnerabilidades de aplicativos ou plugins são publicadas?”

— Sean O'Shaughnessy, WordPress VIP

No geral, procure uma plataforma que considere hospedar uma responsabilidade compartilhada. Alguns recursos a serem considerados incluem:

Permissões do sistema de arquivos

Alguns hosts oferecem um sistema de arquivos somente leitura, em vez de poder gravar arquivos. Isso impede que os usuários de processos da Web possam gravar arquivos em qualquer lugar, fechando um possível vetor de ataque.

Conteinerização

Procure um host que isole os recursos do seu site dos sites de outros clientes. Embora essa não seja uma medida de segurança abrangente, a conteinerização fornece uma medida básica de segurança. Como bônus, também permite recursos dedicados para escalabilidade horizontal ou até vertical.

Controle de versão

Quando uma plataforma de hospedagem WordPress bloqueia o SFTP e permite atualizações de código por meio de um sistema com controle de versão, elas diminuem a superfície de ataque do seu aplicativo. Além disso, o gerenciamento do código-fonte do aplicativo por meio do controle de versão fornece uma cópia “incrível” do código como a fonte da verdade, juntamente com um histórico completo, auditável e rico em contexto desse código.

Como minha empresa pode aplicar a segurança do WordPress?

A segurança não é apenas uma consideração no nível do código ou do host. Existem também fatores humanos, e as empresas podem incorporar processos como verificações regulares de segurança e regras de higiene de senha, que ajudarão muito a aumentar a segurança do seu site.

“No nível organizacional, é importante pensar em termos de implementação de várias camadas de autenticação ou validação contínuas.”

— Sean O'Shaughnessy, WordPress VIP

Confiança zero e gerenciamento de acesso com menos privilégios

Por meio de funções cuidadosamente consideradas e gerenciamento de acesso, as organizações podem equipar as pessoas para fazer seu trabalho com o mínimo de privilégios – portanto, o mínimo de risco – possível. Certifique-se de definir e atribuir adequadamente as funções e recursos dos usuários. Esse recurso vem com o WordPress pronto para uso e pode ser estendido para qualquer caso de uso.

Higiene de senha

Os usuários devem criar senhas únicas e difíceis de adivinhar para cada aplicativo. Sean gosta particularmente deste quadrinho, que defende o uso de uma coleção de palavras aleatórias, em vez de uma combinação de letras, números e símbolos:

Quadrinhos XKCD

2FA e SSO

Embora as tecnologias de autenticação de dois fatores (2FA) e logon único (SSO) não aumentem inerentemente a segurança do seu site, elas oferecem o benefício do gerenciamento centralizado de usuários em todos os aplicativos suportados.

Principais conclusões de segurança do WordPress

  • O código aberto tem benefícios de segurança
  • Mantenha o WordPress e plugins atualizados
  • Usar controle de versão
  • Entenda os endpoints do WordPress
  • Procure um host que seja responsável pela segurança
  • Adote práticas de segurança maduras no nível da organização

Cobrimos muito mais sobre a segurança do WordPress no webinar de uma hora. Se você perdeu ao vivo, encorajo você a conferir a gravação aqui.