FERRAMENTAS LINUX: A chegada do pidfd_getfd no Linux 5.6 com casos de uso do LXD para navegadores

quinta-feira, 30 de janeiro de 2020

A chegada do pidfd_getfd no Linux 5.6 com casos de uso do LXD para navegadores



Confira !



Além da nova chamada do sistema openat2 () no Kernel Linux 5.6, o pidfd_getfd () alcançou um interesse crescente de muitas partes diferentes pelo que será um syscall cada vez mais usado no futuro.

A chamada do sistema pidfd_getfd () fornece um meio direto e fácil de acessar descritores de arquivos de outros processos via pidfd. Foi possível acessar descritores de arquivos de outros processos nos kernels Linux existentes, mas de maneiras confusas, causando complicações desnecessárias.
Este syscall obtém uma cópia de um descritor de arquivo de outro processo com base no pidfd e no número do descritor de arquivo. Requer que o processo de chamada tenha a capacidade de rastrear o processo representado pelo pidfd. O processo que está tendo seu descritor de arquivo copiado não é afetado.

Quanto aos possíveis casos de uso de pidfd_getfd (), alguns deles foram apresentados na solicitação de recebimento já respeitada , que atingiu o Linux 5.6 Git da noite para o dia.
Atualmente, existem dois usuários principais que esperam em pidfd_getfd () e um usuário futuro:

- A Netflix, disse Sargun, está trabalhando em uma malha de serviço em que os usuários devem poder se conectar a um VIP baseado em DNS. Quando um usuário se conecta a, por exemplo, 1.2.3.4:80 que executa, por exemplo, o serviço "foo", ele será redirecionado para um processo enviado. Essa malha de serviço usa notificações do usuário seccomp e pidfd para interceptar todas as chamadas de conexão e, em vez de conectá-las ao 1.2.3.4:80, as conecta, por exemplo, a 127.0.0.1:8080.
- O LXD usa fortemente o notificador seccomp para interceptar e emular syscalls mknod () e mount () para contêineres / processos sem privilégios. Com pidfd_getfd (), mais casos de uso, por exemplo, conexões de soquetes de ponte serão possíveis.
- O patchset também teve algum interesse no canto do navegador. No momento, o Firefox está usando uma sandbox SECCOMP_RET_TRAP gerenciada por um processo do broker. No futuro, o glibc começará a bloquear todos os sinais durante o dlopen (), tornando esse tipo de sandbox impossível. Portanto, no futuro, o Firefox mudará para uma sandbox baseada em seccomp-user -ofofation, que também utiliza a recuperação de descritores de arquivos.

Essa nova chamada de sistema pidfd_getfd () foi liderada pela Sargun Dhillon da Netflix.

O Linux 5.6 certamente está se tornando um lançamento espetacular de recursos e ainda não estamos na primeira semana da janela de mesclagem.


Fonte

Até a próxima !1

Nenhum comentário:

Postar um comentário