FERRAMENTAS LINUX: Linux 7.3: Novas Restrições ao AF_ALG – O Fim de uma Era na Criptografia do Kernel?

terça-feira, 25 de agosto de 2026

Linux 7.3: Novas Restrições ao AF_ALG – O Fim de uma Era na Criptografia do Kernel?

 

Networking

Conheça as novas restrições do AF_ALG no Linux 7.3: entenda os riscos de segurança, o novo sysctl af_alg_restrict e como a mudança afeta seu sistema. Prepare-se agora! 


A segurança em sistemas Linux está em constante evolução, e uma das mudanças mais significativas dos últimos anos chegou com o Linux 7.3. O subsistema AF_ALG, que permitia que programas em espaço de usuário interagissem diretamente com a API de criptografia do kernel, recebeu novas e severas restrições. 

Mas o que isso significa na prática para administradores de sistemas, desenvolvedores e usuários finais? Este artigo detalha tudo o que você precisa saber sobre a mudança, seus impactos e como se preparar.


O que é o AF_ALG e por que ele está sendo restringido ?



F_ALG: A Ponte entre o Usuário e o Kernel


O AF_ALG (Address Family Algorithm) é uma interface do kernel Linux que permite que aplicações em espaço de usuário (userspace) acessem diretamente as rotinas de criptografia do núcleo do sistema operacional. 

Em outras palavras, ele funciona como uma ponte que permite que programas como daemons de rede ou ferramentas de disco utilizem os algoritmos criptográficos já implementados no kernel, sem precisar recorrer a bibliotecas externas como OpenSSL ou libgcrypt.

A ideia por trás do AF_ALG era simples e atraente: reutilizar código já existente, otimizado e supostamente seguro, evitando duplicação de esforços e melhorando a performance em alguns cenários, como no uso com o virtio-crypto. Na prática, no entanto, a história foi bem diferente.


Um "Pesadelo" de Segurança e Manutenção



O que parecia uma boa ideia se transformou em um verdadeiro "pesadelo" (nightmare) para a equipe de desenvolvimento do kernel. O especialista em criptografia do Google, Eric Biggers, autor da nova restrição, foi direto ao descrever a situação em seu patch:

O "AF_ALG é uma fonte frequente de vulnerabilidades e um pesadelo de manutenção. Ele expõe muito mais funcionalidade ao espaço de usuário do que jamais deveria ter sido exposta, especialmente para processos sem privilégios. 

Explorações recentes miraram em detalhes internos de implementação do kernel, como 'authencesn', que não têm caso de uso para acesso do usuário."

A crítica de Biggers revela o cerne do problema. O AF_ALG não apenas oferecia uma superfície de ataque massiva (massive attack surface), mas também expunha detalhes internos do kernel que deveriam permanecer isolados. 

Isso permitia que atacantes explorassem vulnerabilidades em partes do código que nunca foram projetadas para interação direta com o usuário.

Principais problemas do AF_ALG:

  • Superfície de ataque extensa: A interface expunha um grande número de algoritmos e funcionalidades internas.
  • Vulnerabilidades frequentes: A complexidade e o acesso direto a estruturas do kernel resultaram em inúmeras falhas de segurança.
  • Manutenção complexa: Manter a interface segura e funcional demandava um esforço desproporcional da equipe de desenvolvimento.

Produto Afiliado


Chega de sofrer com a falta de portas USB-A no seu notebook ou tablet! Com o Anker Adaptador OTG USB-C para USB 3.0 (pacote com 2), você expande as possibilidades do seu dispositivo de forma simples, rápida e inteligente.

Transforme qualquer porta USB-C em uma porta USB-A universal e conecte pendrives, mouses, teclados, HDs externos, impressoras e muito mais. E o melhor: com velocidade de transferência de até 5 Gbps, você move filmes, músicas e arquivos pesados em segundos.






Por que este é o adaptador que você precisa ?


🖥️ Design Ultra-Fino: Conecte dois adaptadores lado a lado nas portas USB-C do seu MacBook Pro ou notebook sem nenhum bloqueio.

🔩 Construção Premium: Feito em alumínio Space Gray resistente a arranhões, combinando perfeitamente com seus dispositivos e aguentando o uso do dia a dia.

💪 Durabilidade Extrema: Os conectores são projetados para suportar mais de 10.000 conexões e desconexões – ou seja, um adaptador para a vida toda.

✅ Conexão Confirmada: Um pequeno LED indica que o adaptador foi conectado com sucesso ao seu dispositivo.

🌍 Sustentável: Produto certificado com características sustentáveis reconhecidas por certificações confiáveis.

Por que escolher a Anker?
Junte-se aos mais de 55 milhões de usuários que confiam na tecnologia líder de mercado da Anker. Com 4,7 de 5 estrelas em mais de 23 mil avaliações na Amazon, este é um produto que entrega o que promete.

"Ótimo adaptador, excelente qualidade." – Avaliação de cliente.


Anker Adaptador otg USB-C para USB 3.0 pacote com 2, adaptador usb tipo c -> https://link.amazon/B0jcKV5Qa

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




O que muda no Linux 7.3 com o novo sysctl ?


A Solução: af_alg_restrict

Para conter os riscos, o Linux 7.3 introduz um novo parâmetro sysctl chamado af_alg_restrict. Este mecanismo oferece três níveis de controle sobre o AF_ALG, permitindo que administradores decidam o quão restritiva será a interface.


O que é permitido com af_alg_restrict=1 ?


Com a opção padrão (valor 1), o AF_ALG opera com uma lista de algoritmos permitidos (allowlist). 

Esta lista foi cuidadosamente selecionada para garantir a compatibilidade com aplicações conhecidas que ainda dependem da interface, como o daemon iwd (Intel Wireless Daemon) e o bluez (pilha Bluetooth do Linux).


Algoritmos de Hash Permitidos (padrão):


CMAC AES, HMAC MD5, HMAC SHA1, HMAC SHA224, HMAC SHA256, HMAC SHA384, HMAC SHA512, MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512.


Algoritmos de Criptografia Simétrica (skcipher) Permitidos:

Adiantum XChaCha12 AES, Adiantum XChaCha20 AES, CBC AES, CBC DES, CBC DES3_EDE, CTR AES, ECB AES, ECB DES, HCTR2 AES, XTS AES.

A lista pode ser ajustada no futuro, mas já atende aos casos de uso mais comuns, como o iwd e o cryptsetup.


Por que o padrão é 1 e não 2 ?

A escolha do valor 1 como padrão é um equilíbrio entre segurança e compatibilidade. Embora o ideal fosse desabilitar completamente o AF_ALG (valor 2), a equipe do kernel reconhece que algumas aplicações legítimas ainda dependem dele. 

Definir o valor 2 como padrão quebraria esses programas imediatamente, causando um impacto desnecessário.

O valor 1, por outro lado, permite que aplicações conhecidas (como o iwd) continuem funcionando, enquanto bloqueia o acesso a algoritmos e funcionalidades que não têm uso justificável no espaço do usuário. 

É uma medida transitória, um passo intermediário antes de uma eventual remoção completa do AF_ALG do kernel.


Como a restrição do AF_ALG afeta você ?


Impacto para Diferentes Perfis de Usuário

A mudança no AF_ALG afeta diferentes grupos de maneiras distintas. Entender seu perfil é essencial para saber como agir.


Administradores de Sistemas e DevOps

Para a maioria dos administradores, o impacto será mínimo ou nulo. A grande maioria das aplicações modernas utiliza bibliotecas criptográficas em espaço de usuário (como OpenSSL, GnuTLS ou libsodium) e não depende do AF_ALG.

O que fazer:

  • Mantenha o padrão: O valor 1 é seguro e adequado para a maioria dos ambientes.
  • Monitore logs: Fique atento a mensagens de erro relacionadas a AF_ALG ou ENOENT ao vincular sockets, pois podem indicar aplicações que dependem de algoritmos não permitidos.
  • Considere o valor 2: Se você tem certeza de que nenhuma aplicação em seu ambiente usa AF_ALG, pode definir o valor para 2 e desabilitar completamente a interface, aumentando a segurança.


Desenvolvedores de Aplicações


Se você é desenvolvedor e sua aplicação utiliza AF_ALG diretamente, é hora de agir. A mensagem do kernel é clara: o AF_ALG está obsoleto (deprecated desde o Linux 7.2) e seu fim está próximo.


O que fazer:

  • Migre para bibliotecas userspace: Substitua o uso de AF_ALG por bibliotecas criptográficas consolidadas como OpenSSL, libgcrypt ou a API nativa de criptografia da sua linguagem de programação.

  • Teste com o valor 1: Verifique se sua aplicação funciona com a lista de algoritmos permitidos no Linux 7.3.

  • Planeje a remoção completa: Prepare-se para um futuro onde o AF_ALG pode ser completamente removido do kernel.

Usuários Domésticos e Entusiastas


Para o usuário comum que utiliza distribuições como Ubuntu, Fedora ou Arch Linux, a mudança será transparente. As aplicações do dia a dia (navegadores, reprodutores de mídia, jogos) não utilizam AF_ALG.

O que fazer:

  • Nada: A menos que você utilize ferramentas muito específicas que dependam do AF_ALG (improvável), a atualização para o Linux 7.3 não trará problemas.
  • Mantenha-se informado: Acompanhe as notas de lançamento da sua distribuição para ficar ciente de quaisquer ajustes necessários.

O Futuro do AF_ALG: Depreciação e Remoção


O Início do Fim

A restrição no Linux 7.3 é apenas o capítulo mais recente de uma história de depreciação que começou no Linux 7.2. A trajetória é clara e inevitável:

  • 1. Linux 7.2: AF_ALG é oficialmente marcado como obsoleto (deprecated). Algumas funcionalidades, como o suporte a zero-copy, são removidas.
  • 2. Linux 7.3: O sysctl af_alg_restrict é introduzido, limitando severamente a interface por padrão (valor 1).
  • 3. Futuro próximo: É esperado que o valor padrão mude para 2 (completamente desabilitado).
  • 4.Futuro distante: A remoção completa do código AF_ALG do kernel.

Esta decisão não é isolada. Distribuições como o Fedora já estão planejando fases para eliminar o uso da API de criptografia do kernel por espaço de usuário. 

O movimento é global e reflete uma maturidade do ecossistema Linux, que prioriza segurança e manutenibilidade sobre conveniências pontuais.


Perguntas Frequentes (FAQ)


1. O que acontece se eu tentar usar um algoritmo não permitido com af_alg_restrict=1 ?


A tentativa de vincular (bind) um socket AF_ALG com um algoritmo que não está na lista de permitidos falhará com o erro ENOENT (Arquivo ou diretório não encontrado). 

A aplicação precisará lidar com essa falha ou migrar para uma biblioteca userspace.


2. Posso desabilitar completamente o AF_ALG no meu sistema ?


Sim. Basta definir o valor do sysctl para 2: echo 2 > /proc/sys/crypto/af_alg_restrict. Isso desabilitará completamente a interface, e qualquer tentativa de criar um socket AF_ALG resultará no erro EAFNOSUPPORT. 

Para tornar a mudança permanente, adicione a linha crypto.af_alg_restrict=2 ao arquivo /etc/sysctl.conf.


3. Minha aplicação quebra com o Linux 7.3. O que devo fazer ?


Primeiro, verifique se sua aplicação está na lista de casos de uso conhecidos (como iwd ou bluez). Se não estiver, a aplicação provavelmente está usando um algoritmo ou funcionalidade que foi bloqueada. 

A solução de longo prazo é migrar o código para usar uma biblioteca criptográfica em espaço de usuário (userspace). Como medida temporária, você pode definir af_alg_restrict=0 para restaurar o comportamento antigo, mas isso não é recomendado por razões de segurança.


Checklist para se preparar para o Linux 7.3:

Copie e use esse Ckecklist.

Verifique se suas aplicações críticas utilizam AF_ALG.

Identifique quais algoritmos são usados por essas aplicações.

Teste as aplicações em um ambiente com Linux 7.3 (ou com o patch aplicado) e af_alg_restrict=1.

Se uma aplicação quebrar, contate o desenvolvedor ou prepare uma migração para OpenSSL/libgcrypt.

Avalie a possibilidade de definir af_alg_restrict=2 em seus servidores para máxima segurança.

Mantenha-se atualizado sobre as discussões da comunidade Linux sobre o futuro do AF_ALG.


Conclusão e Próximos Passos


A restrição do AF_ALG no Linux 7.3 é uma medida necessária e bem-vinda para fortalecer a segurança do kernel.

Embora possa causar alguns transtornos para aplicações legítimas que ainda dependem dessa interface, o caminho traçado pela comunidade é o correto: priorizar a segurança e a manutenibilidade, incentivando a migração para bibliotecas em espaço de usuário.


Nenhum comentário:

Postar um comentário