Páginas

sexta-feira, 19 de junho de 2026

strongSwan no openSUSE: Guia Completo para Identificar e Corrigir Vulnerabilidades

 

openSUSE

Vulnerabilidades no strongSwan podem comprometer sua VPN no openSUSE. Aprenda a verificar, corrigir e mitigar falhas com comandos reais, script de automação e estratégias de contingência. Proteja seu servidor agora — e daqui a anos. Guia prático para administradores Linux.


Em junho de 2026, a SUSE divulgou o aviso de segurança SUSE-SU-2026:2459-1, que trouxe à tona oito vulnerabilidades no strongSwan — o popular daemon IPsec usado em VPNs e roteadores Linux. 

Duas delas, CVE-2026-35328 (loop infinito na extensão TLS) e CVE-2026-47895 (dupla liberação de memória), receberam classificação de gravidade importante.

Mas este artigo não é sobre a data. É sobre o que você faz agora — e daqui a seis meses, quando outra vulnerabilidade aparecer. O objetivo é que você saia daqui com comandos, scripts e estratégias para proteger seu openSUSE contra falhas no strongSwan, sejam elas de 2026, 2027 ou 2030.


1. O que aconteceu (contexto histórico)


Em 18 de junho de 2026, a SUSE lançou um pacote atualizado do strongSwan (versão 5.9.11-150500.5.23.2) para corrigir oito CVEs em produtos como openSUSE Leap 15.5 e SUSE Linux Enterprise Server 15 SP5. As falhas incluem:

CVE                                       Descrição resumida

CVE-2026-35328               Loop infinito ao processar extensão TLS

CVE-2026-35329               Desreferência de ponteiro nulo no PKCS#7

CVE-2026-35330               Estouro de inteiro em atributos EAP-SIM/AKA

CVE-2026-35331               Aceitação de certificados que violam restrições de nome

CVE-2026-35332               Ponteiro nulo no valor ECDH do TLS

CVE-2026-35333               Estouro de inteiro em atributos RADIUS

CVE-2026-35334               Possível ponteiro nulo na descriptografia RSA

CVE-2026-47895               Dupla liberação ao destruir identidades clonadas


O impacto prático? Um atacante remoto pode derrubar seu serviço VPN (DoS) ou, em cenários mais graves, executar código arbitrário.

2. Como verificar se você está vulnerável

Antes de aplicar qualquer correção, descubra se seu sistema está na linha de tiro.

2.1. Verifique a versão do strongSwan

bash
strongswan version

Ou, para sistemas baseados em RPM:

bash
rpm -qi strongswan | grep Version

Se a versão for anterior à 5.9.11-150500.5.23.2 e você estiver no openSUSE Leap 15.5 ou SUSE SLES 15 SP5, seu sistema está vulnerável.

2.2. Verifique se o patch já foi aplicado

bash
zypper patches | grep -i strongswan

A saída deve mostrar o patch SUSE-2026-2459 se já estiver instalado

2.3. Teste rápido com um script de diagnóstico

Salve o seguinte como check_strongswan.sh:
bash
#!/bin/bash
# check_strongswan.sh - Verifica versão e status do patch no openSUSE

echo "=== DIAGNÓSTICO strongSwan ==="

# Versão instalada
VERSION=$(rpm -qi strongswan 2>/dev/null | grep -i version | head -1 | awk '{print $3}')
if [ -z "$VERSION" ]; then
    echo "[ERRO] strongSwan não está instalado."
    exit 1
fi
echo "[OK] Versão instalada: $VERSION"

# Comparação com a versão segura (openSUSE Leap 15.5)
SAFE="5.9.11-150500.5.23.2"
if [ "$VERSION" == "$SAFE" ]; then
    echo "[OK] Versão segura (patch aplicado)."
elif [[ "$VERSION" < "5.9.11" ]]; then
    echo "[ALERTA] Versão ANTIGA - VULNERÁVEL!"
else
    echo "[INFO] Versão diferente da referência. Verifique manualmente."
fi

# Verifica se o patch específico está instalado
if zypper patches 2>/dev/null | grep -q "SUSE-2026-2459"; then
    echo "[OK] Patch SUSE-2026-2459 encontrado."
else
    echo "[ALERTA] Patch SUSE-2026-2459 NÃO encontrado."
fi

echo "================================"

Dê permissão de execução e rode:

bash
chmod +x check_strongswan.sh
./check_strongswan.sh

3. Script de automação para aplicar a correção



Se você identificou que está vulnerável, não atualize manualmente um por um. Use este script para aplicar o patch de forma segura e registrar tudo o que acontece.
bash
#!/bin/bash
# fix_strongswan.sh - Aplica a correção de segurança do strongSwan no openSUSE
# Uso: sudo ./fix_strongswan.sh

set -e  # Para o script se algum comando falhar

LOG_FILE="/var/log/strongswan_fix_$(date +%Y%m%d_%H%M%S).log"

echo "=== INÍCIO DA CORREÇÃO strongSwan ===" | tee -a "$LOG_FILE"
echo "Data: $(date)" | tee -a "$LOG_FILE"

# 1. Verifica se o usuário tem privilégios
if [ "$EUID" -ne 0 ]; then
    echo "[ERRO] Execute com sudo." | tee -a "$LOG_FILE"
    exit 1
fi

# 2. Faz backup da configuração atual
echo "[BACKUP] Salvando configurações em /etc/strongswan.backup.$(date +%Y%m%d)" | tee -a "$LOG_FILE"
cp -r /etc/strongswan "/etc/strongswan.backup.$(date +%Y%m%d)" 2>/dev/null || echo "[AVISO] Diretório /etc/strongswan não encontrado."

# 3. Atualiza os repositórios
echo "[ZYPPER] Atualizando repositórios..." | tee -a "$LOG_FILE"
zypper refresh | tee -a "$LOG_FILE"

# 4. Aplica o patch específico (openSUSE Leap 15.5)
echo "[PATCH] Aplicando SUSE-2026-2459..." | tee -a "$LOG_FILE"
zypper in -t patch SUSE-2026-2459=1 2>&1 | tee -a "$LOG_FILE"

# 5. Verifica se a instalação foi bem-sucedida
if [ $? -eq 0 ]; then
    echo "[SUCESSO] Patch aplicado com sucesso!" | tee -a "$LOG_FILE"
else
    echo "[ERRO] Falha na aplicação do patch. Verifique o log." | tee -a "$LOG_FILE"
    exit 1
fi

# 6. Reinicia o serviço (se estiver em execução)
if systemctl is-active --quiet strongswan; then
    echo "[SERVIÇO] Reiniciando strongSwan..." | tee -a "$LOG_FILE"
    systemctl restart strongswan | tee -a "$LOG_FILE"
else
    echo "[SERVIÇO] strongSwan não estava em execução. Inicie manualmente se necessário."
fi

# 7. Verifica a versão final
FINAL_VERSION=$(rpm -qi strongswan | grep -i version | head -1 | awk '{print $3}')
echo "[VERIFICAÇÃO] Versão atual: $FINAL_VERSION" | tee -a "$LOG_FILE"

echo "=== FIM DA CORREÇÃO ===" | tee -a "$LOG_FILE"
echo "Log salvo em: $LOG_FILE"

Como usar:

bash
chmod +x fix_strongswan.sh
sudo ./fix_strongswan.sh

O script faz backup automático das configurações, aplica o patch, reinicia o serviço e gera um log completo em /var/log/. Se algo der errado, você tem o backup para restaurar.

📗  Recomendação de Leitura


Segurança em servidores Linux: Ataque e Defesa  (anúncio) ->  https://amzn.to/4ewrCbr


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.


4. Mitigação alternativa (caso não possa atualizar agora)

Nem sempre é possível reiniciar um servidor em produção ou aplicar um patch imediatamente. Se você precisa de uma solução temporária, aqui estão três abordagens.

4.1. Restringir acesso via iptables

Impede que atacantes externos explorem as falhas antes da atualização:

bash
# Bloqueia conexões novas para a porta IPsec (500/4500) vindas de fora da rede interna
iptables -A INPUT -p udp --dport 500 -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p udp --dport 500 -j DROP
iptables -A INPUT -p udp --dport 4500 -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j DROP

Ajuste a rede (192.168.0.0/16) para sua realidade. Isso reduz drasticamente a superfície de ataque.

4.2. Desabilitar extensões TLS vulneráveis (se aplicável)

Algumas CVEs afetam o manuseio de extensões TLS. Você pode desabilitar TLS no strongSwan temporariamente:

ini
# No arquivo /etc/strongswan/strongswan.conf
charon {
    # Desabilita TLS para autenticação EAP
    tls {
        enable = no
    }
}

Reinicie o serviço: systemctl restart strongswan.

4.3. Usar AppArmor para limitar o processo

Crie um perfil AppArmor restritivo para o strongSwan:
bash
# Cria um perfil em modo reclamação
aa-genprof /usr/sbin/strongswan
# Depois de gerar, coloque em modo enforce
aa-enforce /usr/sbin/strongswan

Isso não corrige as falhas, mas limita o dano caso um atacante consiga explorá-las.


Conclusão


Vulnerabilidades no strongSwan não são novidade — e não serão a última. O que muda é a sua preparação:

  • Mantenha um processo de atualização automatizado (use o script acima).

  • Monitore versões com diagnósticos periódicos.

  • Tenha mitigações de contingência (iptables, AppArmor) para os dias em que o patch demora.

  • Invista em conhecimento — livros e labs práticos valem mais do que qualquer correção emergencial.

A data de 2026 é apenas um marco. O importante é que, daqui a dois anos, você continue seguro.

Nenhum comentário:

Postar um comentário