Manter plugins atualizados e acompanhar vulnerabilidades
Acompanhe os pacotes que você usa, escolha como quer ser avisado, deixe o seu composer.lock fazer o acompanhamento e aja sobre os alertas de vulnerabilidade antes que eles cheguem aos seus sites.
Sobre este guia
- Dificuldade
- Iniciante
- Tempo para concluir
- 15 minutos
- Tempo de leitura
- 4 min de leitura
Pré-requisitos
- Uma conta no MeteorGPL
- Um projeto que instala pacotes do MeteorGPL, e o
composer.lockdele
Neste guia
Instalar um plugin é a parte fácil. Saber quando ele precisa de uma atualização, e sobretudo de uma atualização de segurança, é o trabalho que nunca acaba. O MeteorGPL tem quatro ferramentas para isso: acompanhar pacotes, notificações, o painel de dependências e os alertas de vulnerabilidade. Este guia as configura nessa ordem e depois mostra como atualizar.
Passo 1 — Acompanhe os pacotes que você usa
Cada página de pacote tem um menu Acompanhar, como no GitHub:
| Opção | Você fica sabendo de |
|---|---|
| Toda a atividade | Novas versões, avisos de segurança e retiradas |
| Lançamentos | Novas versões (e retiradas) |
| Alertas de segurança | Avisos de segurança (e retiradas) |
| Personalizado | Os eventos que você escolher |
| Ignorar | Nada sobre este pacote |
Marcar um pacote com estrela também o acompanha para lançamentos; você pode desativar isso nas suas configurações de notificação. Configurações → Acompanhando lista todos os pacotes que você acompanha.
Passo 2 — Escolha como você é avisado
Em Configurações → Notificações você escolhe, para cada tipo de evento, se ele chega a você no aplicativo, como notificação push ou por e-mail. Por padrão:
- Novas versões chegam no aplicativo e por e-mail.
- Avisos de segurança chegam no aplicativo, por push e por e-mail.
- Retiradas chegam no aplicativo e por e-mail.
Também há um resumo semanal do que mudou nos pacotes que você marcou com estrela, desativado até que você o ative. As notificações push são ativadas por navegador, na mesma página.
Passo 3 — Deixe o arquivo lock fazer o acompanhamento
Acompanhar pacote por pacote funciona para alguns plugins. Para um site inteiro, deixe o arquivo lock falar por ele: crie um projeto em Configurações → Projetos e envie o composer.lock do site, à mão ou a partir do seu pipeline (veja Tokens do Composer no CI).
A página do projeto mostra cada pacote do repositório como:
- atualizado,
- desatualizado, com as entradas do registro de alterações que faltam para você,
- retirado, ou
- removido.
Nos seus projetos pessoais, os pacotes do arquivo lock podem ser acompanhados automaticamente para novas versões: marque Acompanhar novas versões destes pacotes na página do projeto. Envie o arquivo lock de novo depois de cada deploy, e o painel acompanha o que realmente está rodando.
Passo 4 — Aja sobre os alertas de vulnerabilidade
As vulnerabilidades publicadas em plugins e temas do WordPress, vindas do feed de vulnerabilidades do Wordfence Intelligence, são comparadas com o catálogo. Cada correspondência aparece:
- na página de avisos de segurança, que também tem um feed Atom;
- na seção Vulnerabilidades conhecidas da aba Segurança do pacote afetado, com as versões afetadas e, quando houver, a versão que corrige o problema e a linha de
composer requirepara obtê-la; - como notificação de segurança para as pessoas que acompanham o pacote ou usam uma versão afetada.
Os alertas publicados nos últimos 30 dias avisam imediatamente quem acompanha o pacote e as instalações conhecidas. Os mais antigos avisam você quando, mais tarde, você baixar uma versão afetada ou enviar um arquivo lock que a contenha, de modo que um site esquecido ainda é sinalizado na próxima vez que o arquivo lock dele chegar.
Antes de qualquer versão ser publicada, ela é limpa, comparada com o próprio código de licença do fornecedor, analisada com o ClamAV e com regras de padrões, e passa por lint; uma versão que falha não é publicada, e a aba Segurança mostra as verificações. Se um problema for encontrado depois, a versão é retirada, quem acompanha o pacote é avisado e os webhooks são disparados.
Passo 5 — Atualize
Liste o que tem versões mais novas e depois atualize um pacote ou todos eles dentro das suas restrições:
composer outdated "meteorgpl-plugin/*"
composer update meteorgpl-plugin/elementor-pro
Teste o site, faça commit do novo composer.lock e faça o deploy com composer install. Toda versão publicada continua disponível, então, se uma atualização se comportar mal, voltar atrás é um único comando:
composer require meteorgpl-plugin/elementor-pro:3.20.0
Passo 6 — Automatize com webhooks e feeds
Os webhooks (Configurações → Webhooks) enviam um POST quando um pacote que você escolher recebe uma nova versão, quando um aviso de segurança é emitido ou quando um pacote é retirado: JSON assinado, ou uma mensagem pronta para o Slack ou o Discord. Verifique as entregas em JSON com o cabeçalho X-MeteorGPL-Signature, o HMAC-SHA256 do corpo com o segredo do seu webhook. Um webhook JSON pode iniciar um workflow, por exemplo um que execute composer update e abra um pull request.
Os feeds Atom não exigem conta: cada pacote tem um para os seus lançamentos (na página dele), cada fornecedor tem um, e https://meteorgpl.ddev.site/releases.atom traz todas as novas versões do repositório.