É possível ignorar permissões de arquivo NFS usando um cliente NFS de espaço de usuário

2

Existem alguns clientes NFS baseados no espaço do usuário (por exemplo, link ). Posso ignorar as permissões de arquivo usando esse cliente?

Por exemplo:

O Server1 possui sistema de arquivos exportado pelo nfs com arquivos

-rwxr-xr-x  user1  file1
-rwx------  user2  file2

O Client1 usa o cliente NFS usual (baseado no modo kernel) e o usuário1 @ cliente1 pode ler apenas file1 , mas não file2 . Pelo que entendi, client1 envia uid na solicitação nfs, server1 faz uma verificação de permissões com base nos dados da solicitação. Então, eu sugiro que é possível ter um client2:

O Client2 usa o cliente do espaço do usuário e o hacker @ client2 conhece os uids do user1 e do user2; Se ele quiser ler file1 ele pode enviar o uid do usuário1; se ele quiser ler o arquivo2, ele envia o uid do usuário2.

O esquema é possível?

    
por osgx 04.07.2011 / 17:21

1 resposta

2

Não, até que hacker @ client2 seja raiz, porque a segurança do NFS é baseada na porta de origem TCP da solicitação. Se a biblioteca de espaço do usuário for iniciada a partir do hacker @ client2, mas não do root @ client2, ela não poderá usar as portas TCP < = 1024. O sinalizador secure em / etc / exports indicará ao servidor1 que não atenderá às solicitações do tcp portas > 1024. Este sinalizador é definido por padrão.

Autenticação de usuário típica no servidor nfs (v3) no Linux é AUTH_NONE e AUTH_USER. A segunda significa que o servidor confia no UID e no GID na solicitação.

O NFSv4 fez com que esse ataque não fosse possível, porque os servidores nfs exigem que o usuário tenha um tíquete Kerberos válido.

Livro usado: link

    
por 04.07.2011 / 17:25