Política de desenvolvimento seguro
Visão geral
A HeroStar é uma agência de desenvolvimento de sites utilizando o framework WordPress. Este documento é uma análise e uma explicação sobre o desenvolvimento dos arquivos básicos do WordPress e seus relativos processos de segurança, bem como um exame da segurança do próprio programa.
As informações neste documento estão atualizadas com a versão estável mais recente do programa, o WordPress 4.7 no momento da publicação, mas devem ser consideradas relevantes também para a maioria das versões mais recentes do programa, já que retrocompatibilidade é algo que recebe bastante atenção da equipe de desenvolvimento do WordPress. Medidas e mudanças específicas de segurança são registradas porque elas são adicionadas aos arquivos básicos em lançamentos específicos. É altamente recomendável executar a versão estável mais recente do WordPress para garantir a experiência mais segura possível.
Resumo executivo
O WordPress é um sistema de gerenciamento de conteúdo dinâmico e com código aberto, e é usado em milhões de sites, aplicações web e blogs. Atualmente ele é utilizado em mais de 43% dos primeiros 10 milhões de sites na internet. Sua usabilidade e extensibilidade, assim como o desenvolvimento sólido de sua comunidade, fazem do WordPress uma escolha popular e segura para sites de todos os tamanhos.
Desde sua criação em 2003, o WordPress vem trabalhando continuamente em sua segurança, de modo que seus arquivos básicos podem corrigir e mitigar ameaças comuns, incluindo a lista da The Open Web Application Security Project (OWASP) com as 10 principais e mais comuns vulnerabilidades de segurança, que são discutidas neste documento.
A Equipe de segurança do WordPress, em colaboração com os líderes da equipe responsável pelos arquivos básicos e apoiada pela comunidade global do WordPress, trabalha para identificar e resolver problemas de segurança dos arquivos do programa disponível para distribuição e instalação no WordPress.org, assim como para recomendar e documentar as melhores práticas de segurança para plugins de terceiros e autores de temas.
Desenvolvedores e administradores de sites devem prestar muita atenção ao uso correto das APIs dos arquivos básicos e às configurações do servidor por trás do site, que são a origem das vulnerabilidades mais comuns, e também garantir que todos os usuários utilizem senhas fortes para acessar o WordPress.
Visão geral do WordPress
O WordPress é um sistema de gerenciamento de conteúdo (CMS, Content Management System) gratuito e de código aberto. É o CMS mais usado no mundo, estando em mais de 43% dos primeiros 10 milhões de sites e ocupando uma fatia de mercado de 62% entre os sites que utilizam algum CMS.
O WordPress é licenciado sob a Licença Pública Geral (GPLv2 ou posterior), que fornece quatro liberdades fundamentais e que pode ser considerada a “declaração de direitos” do WordPress:
- A liberdade para executar o programa, para qualquer propósito.
- A liberdade de estudar como o programa funciona e alterá-lo para fazer dele o que você quiser.
- A liberdade de redistribuir.
- A liberdade de distribuir cópias das suas versões modificadas para outros.
A liderança da Equipe dos arquivos básicos do WordPress
O projeto WordPress é uma meritocracia, executada por líderes da equipe dos arquivos básicos e dirigida por seu co-criador e líder de desenvolvimento, Matt Mullenweg. A equipe gerencia todos os aspectos do projeto, incluindo o desenvolvimento dos arquivos básicos, o WordPress.org e as iniciativas da comunidade.
A liderança da Equipe dos arquivos básicos é composta pelo Matt Mullenweg, cinco desenvolvedores líderes e mais de uma dúzia de desenvolvedores com acesso a commits, isto é, alterações no código presente no repositório oficial. Estes desenvolvedores têm a autoridade final em decisões técnicas e conduzem as discussões sobre arquitetura e esforços de implementação.
Numeração das versões e atualizações de segurança
A versão maior do WordPress é identificada por seus dois primeiros grupos de números. Por exemplo, a versão 3.5 é uma versão maior, assim como 3.6, 3.7 ou 4.0. Não existe um “WordPress 3” ou um “WordPress 4” e cada versão maior é referenciada por sua numeração, por exemplo, “WordPress 3.9.”.
Versões maiores podem incluir novos recursos para os usuários e APIs para os desenvolvedores. No mundo dos programas normalmente uma versão “maior” significa poder quebrar a retrocompatibilidade, mas o WordPress se esforça para que isso nunca aconteça. A retrocompatibilidade é uma das filosofias mais importantes do projeto, com o objetivo de tornar as atualizações muito mais fáceis para usuários e desenvolvedores.
Uma versão menor do WordPress é identificável pelo terceiro grupo de números. A versão 3.5.1 é um lançamento menor, assim como a 3.4.23. Uma versão menor se destina a corrigir somente problemas de segurança e erros críticos. Desde que as novas versões do WordPress são lançadas mais frequentemente — o objetivo é uma versão maior a cada 4 ou 5 meses e versões menores sempre que necessário — estes são os tipos de lançamentos necessários.
Retrocompatibilidade de versões
O projeto WordPress tem um grande compromisso com a retrocompatibilidade. Este compromisso significa que temas, plugins e códigos personalizados continuam funcionando quando os arquivos básicos do WordPress são atualizados, encorajando proprietários de sites a manter as suas versões do WordPress atualizadas para o lançamento mais recente e seguro.
WordPress e segurança
A Equipe de segurança do WordPress
A Equipe de segurança do WordPress é formada por aproximadamente 50 especialistas, incluindo desenvolvedores líderes e pesquisadores da área de segurança, sendo quase metade formada por empregados da Automattic (criadores do WordPress.com, a maior e mais antiga plataforma de hospedagem WordPress na internet) e vários trabalhadores da área de segurança da rede. A equipe consulta renomados pesquisadores de segurança e empresas de hospedagem.
A Equipe de segurança do WordPress colabora frequentemente com outras equipes de segurança para corrigir problemas de dependências comuns, como resolvendo problemas de vulnerabilidade no interpretador XML do PHP, usado pela API XML-RPC e que faz parte do WordPress desde a versão 3.9.24. A solução para esta vulnerabilidade foi o resultado de um esforço em conjunto das equipes de segurança do WordPress e do Drupal.
Riscos, processos e história da segurança do WordPress
A Equipe de segurança do WordPress acredita em divulgação responsável, isto é, em um alerta imediato para a equipe de segurança sobre quaisquer potenciais vulnerabilidades. Potenciais vulnerabilidades de segurança podem ser enviadas para a Equipe de segurança através do HackerOne do WordPress .nA Equipe de segurança se comunica através de um canal privado do Slack e trabalha em um rastreador de problemas privado, testando e corrigindo erros e problemas de segurança.
Cada aviso de segurança é tratado assim que é recebido e a equipe trabalha para verificar a vulnerabilidade e determinar sua severidade. Se confirmada, a equipe de segurança então se planeja para criar a correção do problema, que pode ser integrada ao código na próxima versão do WordPress ou pode criar uma atualização de segurança imediatamente, dependendo da gravidade do problema.
Para atualizações imediatas de segurança, um comunicado é publicado pela Equipe de segurança no site WordPress.org News anunciando o lançamento e detalhando as mudanças. O crédito pela divulgação responsável da vulnerabilidade é dado no comunicado para encorajar e reforçar a continuidade das divulgações responsáveis no futuro.
Administradores de instalações do WordPress recebem uma notificação em seus painéis para atualizar quando uma nova versão está disponível e, depois de atualizar manualmente, os usuários são redirecionados para a tela Sobre do WordPress, que detalha as mudanças. Se as atualizações automáticas em segundo plano estiverem habilitadas, os administradores receberão um e-mail depois da conclusão da atualização.
Instalação automática em segundo plano de atualizações de segurança
A partir da versão 3.7, o WordPress introduziu atualizações automáticas em segundo plano para lançamentos menores, como 3.7.1 e 3.7.2. A Equipe de segurança do WordPress pode identificar, corrigir e enviar melhorias de segurança para o WordPress automaticamente, de modo que os proprietários de sites não precisem fazer nada, e a atualização de segurança será instalada automaticamente.
Quando uma atualização de segurança é enviada para a versão atual do WordPress, a equipe dos arquivos básicos do WordPress também enviará atualizações de segurança para todas as versões que são capazes de realizar atualizações em segundo plano (desde o WordPress 3.7), de forma que estas versões mais antigas do WordPress também receberão melhorias de segurança.
Proprietários de sites podem remover atualizações automáticas em segundo plano através de uma simples mudança em seus arquivos de configuração, mas manter esta funcionalidade é altamente recomendável pela equipe dos arquivos básicos, assim como executar sempre a versão estável mais recente do WordPress.
OWASP
O Open Web Application Security Project (OWASP, Projeto de segurança de aplicações web abertas em tradução livre) é uma comunidade on-line dedicada à segurança de aplicações web. A lista Top 10 do OWASP se dedica a identificar os riscos de segurança mais sérios para uma ampla lista de organizações. Os itens da lista Top 10 são selecionados e priorizados combinando as estimativas de explorabilidade, detectabilidade e impacto.
As seções a seguir discutem as APIs, recursos e políticas usadas pelo WordPress para fortalecer os arquivos básicos do programa e os plugins e temas de terceiros contra estes potenciais riscos.
A1 – Injeção
Existe um conjunto de funções e APIs disponíveis no WordPress para auxiliar o desenvolvimento da Hero Star a ter certeza de que código não autorizado não possa ser injetado, ajudando-os a validar e higienizar os dados. Melhores práticas e documentação estão disponíveis sobre como usar essas APIs para proteger, validar ou higienizar entrada e saída de dados em HTML, URLs, cabeçalhos HTTP e ao interagir com banco de dados ou sistema de arquivos. Através de filtros, os administradores também podem restringir os tipos de arquivos que podem ser enviados.
A2 – Autenticação interrompida e gerenciamento de sessões
Os arquivos básicos do WordPress gerenciam contas de usuários e a autenticação e os detalhes como o ID do usuário, nome e senha são gerenciados pelo lado do servidor, assim como os cookies de autenticação. Senhas são protegidas no banco de dados usando técnicas padrão de salto e alongamento. Sessões existentes são destruídas ao se desconectar em versões posteriores ao WordPress 4.0.
A3 – Execução de scripts de outros sites (XSS, Cross-Site Scripting)
O WordPress fornece uma série de funções que ajudam a garantir a segurança dos dados inseridos pelos usuários. Usuários confiáveis, ou seja, administradores e editores de uma instalação simples do WordPress e somente administradores de rede no WordPress Multisite, podem publicar JavaScript ou HTML sem filtros conforme a necessidade, seja em um post ou em uma página. Usuários não confiáveis ou conteúdos enviados por usuários são filtrados por padrão para remover entidades perigosas, usando a biblioteca KSES através da função wp_kses.
A4 – Referência direta e insegura a objeto
Frequentemente o WordPress fornece referência direta a objetos, como identificadores numéricos únicos de contas de usuários ou conteúdo disponível na URL ou em campos de formulários. Apesar destes identificadores exporem informações diretas do sistema, o rico sistema de permissões e controle de acesso do WordPress previne solicitações não autorizadas.
A5 – Erros nas configurações de segurança
A maioria das operações de configuração de segurança do WordPress estão limitadas a um único administrador autorizado. As configurações padrão do WordPress são continuamente avaliadas pela equipe dos arquivos básicos, que fornece documentação e melhores práticas para melhorar a segurança das configurações dos servidores que executam sites WordPress.
A6 – Exposição de dados sensíveis
As senhas das contas de usuário do WordPress são tratadas com técnicas de salto e alargamento do PHP Password Hashing. O sistema de permissões do WordPress é usado para controlar o acesso a informações privadas como as de usuários cadastrados, endereços de e-mail dos autores de comentários, conteúdo publicado privadamente, etc. No WordPress 3.7, um medidor nível de segurança das senhas foi incluído nos arquivos básicos do programa para informar aos usuários configurando suas senhas da necessidade de aumentar sua complexidade. O WordPress também tem uma configuração adicional e opcional para forçar o uso de HTTPS.
A7 – Controle de nível de acesso à função
O WordPress verifica se há autorização e permissões adequadas para qualquer solicitação de acesso no nível de função antes da ação que está sendo executada. O acesso ou a visualização de URLs administrativos, menus e páginas sem autenticação adequada é totalmente integrado ao sistema de autenticação para impedir o acesso de usuários não autorizados.
A8 – Falsificação de solicitação entre sites (CSRF, Cross Site Request Forgery)
O WordPress usa tokens criptográficos, chamados nonces, para validar a intenção de solicitações de ação de usuários autorizados para proteção contra potenciais ameaças CSRF. O WordPress fornece uma API para a geração desses tokens para criar e verificar tokens exclusivos e temporários, e o token é limitado a um usuário específico, uma ação específica, um objeto específico e um período de tempo específico, que pode ser adicionado a formulários e URLs, conforme necessário. Além disso, todos os nonces são invalidados no logout.
A9 – Uso de componentes com vulnerabilidades conhecidas
A equipe de desenvolvimento do WordPress monitora de perto as poucas bibliotecas externas que o WordPress utiliza em suas funções. No passado, a equipe já contribuiu para vários componentes de terceiros tornando-os mais seguros, como a atualização para corrigir uma vulnerabilidade no TinyMCE no WordPress 3.5.2.
Se necessário, a equipe pode decidir criar um fork, isto é, uma versão alterada, ou substituir um componente externo crítico, como o que aconteceu quando a biblioteca SWFUpload foi oficialmente substituída pela biblioteca Plupload na versão 3.5.2, e um fork seguro da SWFUpload foi disponibilizado pela equipe de segurança para aqueles plugins que continuaram usando a SWFUpload no curto prazo.
A10 – Redirecionamentos sem validação
O controle de acesso interno do WordPress e o sistema de autenticação fornecem proteção contra tentativas de acesso direto a destinos indesejados ou redirecionamentos automáticos. Esta funcionalidade também está disponível para desenvolvedores de plugins através de uma API: wp_safe_redirect().
Riscos e preocupações adicionais com segurança
Ataques no processamento de Entidades externas de XML (XXE, XML eXternal Entity)
Ao processar um XML, o WordPress desativa o carregamento de entidades XML personalizadas para prevenir tanto ataques por entidades externas quanto por expansões de entidades. Além da funcionalidade nativa do PHP, o WordPress não fornece aos autores de plugins uma API adicional para tratamento seguro de XML.
Ataques por Falsificação de requisições feitas pelo lado do servidor (SSRF, Server Side Request Forgery)
As requisições HTTP feitas pelo WordPress são filtradas para prevenir acesso a endereços IP privados. Adicionalmente, o acesso só é permitido a certas portas padrão do HTTP.
Segurança de temas e plugins do WordPress
O tema padrão
O WordPress precisa que um tema esteja habilitado para exibir conteúdo para o usuário. O tema padrão, que é distribuído junto com os arquivos básicos do WordPress (atualmente o “Twenty Twenty-Three”), tem sido vigorosamente revisado e testado em questões de segurança, tanto pela equipe de desenvolvedores de tema quanto pela equipe de desenvolvimento dos arquivos básicos.
O tema padrão pode servir de ponto de partida para o desenvolvimento de temas personalizados, e desenvolvedores de sites podem criar temas descendentes, que incluem alguma personalização, mas utiliza o tema padrão para a maior parte das funcionalidades e segurança. Se não for necessário, o tema padrão pode ser facilmente removido por um administrador.
A função do serviço de hospedagem na segurança
O WordPress pode ser instalado em diversas plataformas. Apesar dos arquivos básicos do WordPress fornecerem várias formas para operar uma aplicação web segura, as quais foram abordadas neste documento, as configurações do sistema operacional e do servidor por trás do programa são igualmente importantes para manter as aplicações WordPress seguras.
A HeroStar hospeda seus sites em ambiente seguro em servidores VPS da Hostgator.
https://newfold.com/privacy-center
Uma observação sobre a segurança do WordPress e do WordPress.com
O WordPress.com é a maior instalação do WordPress no mundo, e pertence e é gerenciada pela Automattic, Inc., fundada por Matt Mullenweg, o coautor do projeto WordPress. O WordPress.com executa os mesmos arquivos básicos do WordPress, mas possui seus próprios processos de segurança, gerenciamento de riscos e soluções. Este documento se refere à segurança do programa WordPress que pode ser baixado e hospedado por conta própria, disponível no WordPress.org e instalável em qualquer servidor no mundo.
Desenvolvimento seguro HeroStar
A HeroStar tem como compromisso desenvolver os projetos de websites utilizando aplicações wordpress assim como plugins licenciados de terceiros para garantir segurança e performance dos projetos desenvolvidos.