Pesquisa de sites

Após uma vulnerabilidade recente no SSH, o Systemd reduz dependências


Backdoor recente no sshd/xz (CVE-2024-3094) revela riscos na libsystemd do systemd, suscitando debate sobre a redução de dependências.

À luz dos acontecimentos recentes, surgiu um debate significativo sobre as vulnerabilidades nas quais o systemd está indiretamente envolvido, especialmente durante o incidente do backdoor sshd/xz (CVE-2024-3094), que destacou os potenciais riscos de segurança associados às dependências do libsystemd, uma biblioteca crucial para integrar serviços com o systemd.

O cerne da questão reside na observação de que o libsystemd, ao estar ligado a todos os serviços do systemd e a quaisquer serviços de terceiros que desejem comunicar com o systemd, introduz dependências adicionais que podem servir como fontes de vulnerabilidades.

A solução proposta para esta preocupação com a vulnerabilidade é uma redução substancial das dependências do libsystemd para incluir apenas a libc, a biblioteca padrão C, diminuindo assim a superfície de ataque para potenciais ameaças de segurança. As implementações atuais incluem várias outras bibliotecas, que podem não ser necessárias para implementar as funcionalidades principais do libsystemd.

Em resposta a estas preocupações, foi levantado um pedido de funcionalidade para que o systemd minimize as dependências do libsystemd apenas à libc. A razão por trás deste pedido é reduzir o libsystemd às suas funcionalidades essenciais, diminuindo assim o risco de vulnerabilidades que possam comprometer a segurança do sistema.

No entanto, esta abordagem pode envolver a reorganização do libsystemd em várias bibliotecas, cada uma dedicada a APIs específicas, e garantir que apenas as dependências necessárias sejam incluídas onde realmente são necessárias.

Lennart Poettering, uma figura chave por trás do systemd, abordou as preocupações destacando alterações recentes que atenuam algumas dessas preocupações de segurança. Segundo ele, o libsystemd já não exige bibliotecas de compressão como dependências obrigatórias na versão mais recente do ramo principal do git.

Além disso, estão em curso planos para remover o libgcrypt como uma dependência rígida, simplificando ainda mais o libsystemd e melhorando a segurança do sistema. Adicionalmente, foi notado que o sshd implementou a função sd_notify() de forma independente, uma medida que Poettering recomenda para projetos desse tipo.

Finalmente, a discussão também abordou a possibilidade de expor informações de carregamento dinâmico (dlopen) de uma forma que pudesse ser lida a partir dos metadados ELF, oferecendo uma forma mais transparente de compreender e gerir dependências.

Esta proposta sugere uma abordagem colaborativa, incentivando a contribuição e o apoio de várias partes interessadas no ecossistema Linux, incluindo os mantenedores de pacotes e os construtores de sistemas.

Os detalhes de toda a discussão e proposta estão disponíveis para acompanhamento no repositório do projeto no GitHub.