Páginas

quarta-feira, 17 de junho de 2026

Debian Asterisk DLA-4631-1: Guia Definitivo para Corrigir Buffer Overflows no Seu PBX

 


 Aprenda a identificar, corrigir e se proteger contra as vulnerabilidades CVE-2025-65102, CVE-2026-25994 e CVE-2026-26203 no Asterisk para Debian 11. Comandos práticos, script de automação e medidas de mitigação para manter seu PBX seguro agora e no futuro.


O Que Aconteceu (Contexto Histórico)

Em junho de 2026, a Debian LTS lançou o boletim DLA-4631-1, corrigindo múltiplas vulnerabilidades críticas no Asterisk, o popular sistema de PBX (central telefônica) open source.


Os problemas afetam o módulo PJSIP, utilizado para comunicação SIP, e incluem:


  • CVE-2025-65102: estouro de buffer no codec Opus, que pode causar falha inesperada do aplicativo.

  • CVE-2026-25994: estouro de buffer baseado em pilha no PJNATH ICE Session, permitindo negação de serviço ou execução remota de código.

  • CVE-2026-26203: problemas relacionados a certificados inválidos ou não confiáveis.

A versão corrigida para o Debian 11 (bullseye) é a 1:16.28.0~dfsg-0+deb11u10.


Como verificar se você está vulnerável


Verifique a versão atual do Asterisk

                                                                                                                               Conecte-se ao console do Asterisk e execute:

bash
asterisk -rx "core show version"

Exemplo de saída vulnerável:

text
Asterisk 16.28.0~dfsg-0+deb11u4

Se a versão for anterior à 1:16.28.0~dfsg-0+deb11u10, seu sistema está vulnerável

                                                                                                                                    Verifique o pacote instalado no Debian

bash
dpkg -l | grep asterisk

Ou, para mais detalhes:

bash
apt-cache policy asterisk

Verifique se há pacotes com atualização disponível

bash
apt list --upgradable | grep asterisk

Consulte o tracker de segurança da Debian

Acesse: https://security-tracker.debian.org/tracker/asterisk


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


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

bash
#!/bin/bash
# fix-asterisk.sh - Script para atualizar o Asterisk no Debian 11 (bullseye)
# Compatível com Debian LTS - use com sudo ou como root

set -e

echo "=== Iniciando correção do Asterisk (DLA-4631-1) ==="

# Verifica se está rodando como root
if [[ $EUID -ne 0 ]]; then
   echo "Este script precisa ser executado como root. Use: sudo ./fix-asterisk.sh"
   exit 1
fi

# Verifica a versão atual
CURRENT_VERSION=$(dpkg -l | grep asterisk | awk '{print $3}' | head -1)
echo "Versão atual: $CURRENT_VERSION"

# Faz backup da configuração antes de atualizar
echo "Criando backup das configurações..."
BACKUP_DIR="/root/asterisk-backup-$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
cp -r /etc/asterisk "$BACKUP_DIR/" 2>/dev/null || echo "Diretório /etc/asterisk não encontrado"
echo "Backup salvo em $BACKUP_DIR"

# Atualiza a lista de pacotes
echo "Atualizando lista de pacotes..."
apt-get update

# Atualiza apenas o Asterisk
echo "Aplicando atualização do Asterisk..."
apt-get install --only-upgrade asterisk -y

# Verifica a nova versão
NEW_VERSION=$(dpkg -l | grep asterisk | awk '{print $3}' | head -1)
echo "Nova versão: $NEW_VERSION"

# Reinicia o Asterisk
echo "Reiniciando o serviço Asterisk..."
systemctl restart asterisk

# Verifica se o serviço está rodando
if systemctl is-active --quiet asterisk; then
    echo "✅ Asterisk reiniciado com sucesso!"
else
    echo "❌ Falha ao reiniciar o Asterisk. Verifique os logs: journalctl -u asterisk"
    exit 1
fi

echo "=== Correção concluída ==="
echo "Versão instalada: $NEW_VERSION"
echo "Para verificar: asterisk -rx 'core show version'"

Como executar:

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


📗  Recomendação de Leitura



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


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 Possa Atualizar Agora)


Se você não pode aplicar a atualização imediatamente, implemente estas medidas de contenção:


 Restringir Acesso por Firewall (iptables)


O primeiro passo é limitar quais IPs podem acessar as portas SIP do seu servidor:

bash
#!/bin/bash
# iptables-rules-asterisk.sh - Regras de firewall para mitigação temporária

# Permitir apenas IPs confiáveis na porta SIP (5060 UDP)
# Substitua 192.168.1.0/24 pelo seu range de IPs confiáveis
TRUSTED_NETWORK="192.168.1.0/24"

# Limpa regras existentes para a porta SIP
iptables -D INPUT -p udp --dport 5060 -j ACCEPT 2>/dev/null

# Permite apenas redes confiáveis
iptables -A INPUT -p udp --dport 5060 -s $TRUSTED_NETWORK -j ACCEPT

# Bloqueia todo o resto na porta SIP
iptables -A INPUT -p udp --dport 5060 -j DROP

# Faz o mesmo para a porta SIP TLS (5061)
iptables -A INPUT -p tcp --dport 5061 -s $TRUSTED_NETWORK -j ACCEPT
iptables -A INPUT -p tcp --dport 5061 -j DROP

# Salva as regras (Debian)
iptables-save > /etc/iptables/rules.v4

echo "✅ Regras de firewall aplicadas. Apenas $TRUSTED_NETWORK pode acessar o SIP."


Desabilitar Codec Opus (Mitigação para CVE-2025-65102)


No arquivo /etc/asterisk/pjsip.conf, desabilite o codec Opus nas configurações de endpoint:

ini
[seu-endpoint]
type = endpoint
; Desabilita Opus para evitar o buffer overflow
allow = !opus,ulaw,alaw,g722

Reinicie o Asterisk após a alteração.


Desabilitar DNS no PJSIP (Mitigação para outras CVEs)

Para usuários que não podem atualizar, uma alternativa é desabilitar a resolução DNS no PJSIP:


No arquivo /etc/asterisk/pjsip.conf, adicione:

ini
[global]
nameserver_count = 0


AppArmor para Isolamento


Crie um perfil AppArmor restritivo para o Asterisk:

bash
# Instale o AppArmor se não estiver instalado
apt-get install apparmor apparmor-utils -y

# Crie um perfil em modo reclamação para aprender o comportamento
aa-genprof /usr/sbin/asterisk

Depois de aprender o comportamento normal, coloque o perfil em modo de enforce:

bash
aa-enforce /usr/sbin/asterisk

Conclusão


As vulnerabilidades corrigidas pelo DLA-4631-1 são sérias e afetam diretamente a segurança do seu PBX. A atualização para a versão 1:16.28.0~dfsg-0+deb11u10 é a única solução definitiva. Enquanto isso não for possível, implemente as medidas de mitigação propostas.

Lembre-se: segurança em sistemas VoIP não é um evento único, mas um processo contínuo. Mantenha-se atualizado, monitore logs e revise regularmente suas configurações de segurança.







Nenhum comentário:

Postar um comentário