FERRAMENTAS LINUX: Como Proteger seu Alertmanager no Fedora contra Vazamento de Descritores de Arquivo

domingo, 21 de junho de 2026

Como Proteger seu Alertmanager no Fedora contra Vazamento de Descritores de Arquivo

 


Aprenda a corrigir a vulnerabilidade CVE-2026-45287 no Alertmanager do Fedora 43 com comandos práticos, script de automação e mitigação alternativa. Proteja seu monitoramento contra vazamento de descritores de arquivo e evite negação de serviço. Inclui dicas de segurança e recomendações de leitura.


Contexto (Apenas para Referência Histórica)

Em meados de 2026, foi identificada uma vulnerabilidade (CVE-2026-45287) no OpenTelemetry-Go, biblioteca utilizada pelo Prometheus Alertmanager

O problema afetava as versões anteriores à 0.0.17 do pacote go.opentelemetry.io/otel/schema, onde a função ParseFile abria arquivos de esquema sem fechá-los adequadamente. 

Cada chamada bem-sucedida consumia um descritor de arquivo do processo, e em aplicações de longa duração que processavam esquemas repetidamente, isso podia esgotar o limite de descritores do sistema, causando negação de serviço (DoS).

A correção foi disponibilizada na versão 0.33.0 do Alertmanager para o Fedora 43. O que importa não é a data, mas como garantir que seu sistema está seguro agora e no futuro. 

É isso que você vai aprender aqui.


Como Verificar se Você Está Vulnerável


Antes de aplicar qualquer correção, verifique a versão do Alertmanager em seu sistema Fedora:

bash
# Verifica a versão instalada do Alertmanager
dnf list installed alertmanager

# Ou, se preferir, veja detalhes do pacote
rpm -qi alertmanager | grep Version

Interpretação:

  • Se a versão for anterior à 0.33.0, seu sistema está vulnerável ao CVE-2026-45287.
  • Se for 0.33.0 ou superior, você já está protegido.

Para verificar se há vazamento de descritores em execução, monitore o uso de descritores do processo do Alertmanager:

bash
# Descubra o PID do Alertmanager
pgrep -f alertmanager

# Substitua <PID> pelo número encontrado e veja o consumo de descritores
ls -la /proc/<PID>/fd | wc -l

Se o número de descritores estiver crescendo continuamente ao longo do tempo (especialmente após recarregamentos de configuração), é um forte indício de que você está enfrentando o vazamento.


Script de Automação para Aplicar a Correção

Salve o script abaixo como fix-alertmanager.sh e execute com privilégios de root:

bash
#!/bin/bash
# fix-alertmanager.sh - Aplica a correção de segurança para o CVE-2026-45287 no Fedora
# Compatível com Fedora 43 e versões posteriores

set -e

echo "=== Correção de Segurança - Alertmanager (CVE-2026-45287) ==="

# 1. Verifica versão atual
CURRENT_VERSION=$(dnf list installed alertmanager 2>/dev/null | grep alertmanager | awk '{print $2}' | cut -d'-' -f1)
echo "Versão atual: $CURRENT_VERSION"

if [[ "$CURRENT_VERSION" == "0.33.0" ]] || [[ "$CURRENT_VERSION" > "0.33.0" ]]; then
    echo "✅ Sistema já está na versão segura (0.33.0 ou superior). Nada a fazer."
    exit 0
fi

echo "⚠️  Versão vulnerável detectada. Aplicando atualização..."

# 2. Faz backup da configuração atual (se existir)
if [ -f /etc/alertmanager/alertmanager.yml ]; then
    BACKUP_DIR="/root/alertmanager-backup-$(date +%Y%m%d)"
    mkdir -p "$BACKUP_DIR"
    cp -r /etc/alertmanager/* "$BACKUP_DIR/"
    echo "✅ Backup da configuração salvo em $BACKUP_DIR"
fi

# 3. Aplica a atualização via DNF
echo "📦 Instalando atualização..."
dnf upgrade --advisory FEDORA-2026-1ad4561f49 -y

# 4. Verifica se a atualização foi bem-sucedida
NEW_VERSION=$(dnf list installed alertmanager 2>/dev/null | grep alertmanager | awk '{print $2}' | cut -d'-' -f1)
if [[ "$NEW_VERSION" == "0.33.0" ]] || [[ "$NEW_VERSION" > "0.33.0" ]]; then
    echo "✅ Atualização concluída com sucesso para a versão $NEW_VERSION"
else
    echo "❌ Falha na atualização. Verifique manualmente com: dnf update alertmanager"
    exit 1
fi

# 5. Reinicia o serviço
echo "🔄 Reiniciando o Alertmanager..."
systemctl restart alertmanager

# 6. Verifica o status do serviço
if systemctl is-active --quiet alertmanager; then
    echo "✅ Serviço Alertmanager rodando normalmente."
else
    echo "⚠️  Serviço não está ativo. Verifique com: systemctl status alertmanager"
fi

echo "=== Correção aplicada com sucesso! ==="

Para executar:

bash
chmod +x fix-alertmanager.sh
sudo ./fix-alertmanager.sh

📗  Recomendação de Leitura


Segurança em servidores Linux: Ataque e Defesa  (anúncio) ->  https://link.amazon/B0hlDkNqk

Se você prefere estudar em português e quer aprender a "pensar como um hacker" para se antecipar a invasões, essa é a pedida! O livro ensina a usar as ferramentas prediletas dos invasores (como Nmap e Netcat) a seu favor, blindando seus sistemas.


Eu ganho uma comissão quando você faz uma compra.


Mitigação Alternativa (Caso Não Posso Atualizar Agora)


Se você não pode reiniciar o Alertmanager ou aplicar a atualização imediatamente, use estas medidas temporárias:

1. Aumentar o Limite de Descritores de Arquivo do Sistema

Isso não corrige o vazamento, mas dá mais tempo até que o limite seja atingido:

bash
# Verifica o limite atual
ulimit -n

# Aumenta temporariamente para 65535 (para a sessão atual)
ulimit -n 65535

# Para tornar permanente, edite /etc/security/limits.conf e adicione:
# alertmanager soft nofile 65535
# alertmanager hard nofile 65535

2. Reiniciar o Alertmanager Periodicamente (Cron Job)

Uma rotação programada do serviço libera os descritores vazados:

bash
# Agenda uma reinicialização semanal (aos domingos às 3h)
echo "0 3 * * 0 root systemctl restart alertmanager" >> /etc/crontab

3. Monitoramento Proativo com Script

Monitore o consumo de descritores e reinicie automaticamente se ultrapassar um limite seguro:

bash
#!/bin/bash
# monitor-alertmanager-fd.sh

MAX_FD=5000
PID=$(pgrep -f alertmanager)

if [ -n "$PID" ]; then
    FD_COUNT=$(ls -la /proc/$PID/fd 2>/dev/null | wc -l)
    if [ $FD_COUNT -gt $MAX_FD ]; then
        echo "⚠️  Descritores excedendo $MAX_FD ($FD_COUNT). Reiniciando Alertmanager..."
        systemctl restart alertmanager
    fi
fi


Conclusão


O CVE-2026-45287 é um lembrete de que mesmo bibliotecas amplamente utilizadas podem ter vazamentos de recursos sutis mas perigosos. A correção está disponível e é simples de aplicar: mantenha seu Alertmanager atualizado para a versão 0.33.0 ou superior. 

Use o script de automação fornecido para aplicar a correção de forma rápida e segura, e, se não puder atualizar agora, implemente as mitigações alternativas para ganhar tempo.

Lembre-se: em sistemas de monitoramento, a estabilidade é tão crítica quanto a coleta de métricas. Um Alertmanager que cai por falta de descritores pode significar alertas perdidos — e isso ninguém quer.




Nenhum comentário:

Postar um comentário