Valor real dos modelos MAC no Linux

Sep 12 2020

Eu li sobre MAC vs. DAC na Internet, mas ainda não consigo entender de que tipo de ataque é impossível se proteger se alguém usar os recursos DAC + em comparação com os recursos MAC + DAC +. Se um processo não for executado como root e não tiver CAP_DAC_OVERRIDE, CAP_FOWNER e outros recursos perigosos, ele não pode superar a propriedade já atribuída e ACLs dos recursos que usa. Por outro lado, se um processo é executado como root e possui CAP_MAC_ADMIN, ele pode sobrescrever o contexto de segurança imposto pelo MAC.

Então, o MAC é "apenas uma camada adicional de proteção" sem nenhuma vantagem real no sistema Linux moderno?

Update1 Vou adicionar aqui minhas "respostas" a argumentos particulares aqui. Presumo que nenhum dos processos seja executado como root e tenha recursos desnecessários (exceto para os processos / scripts de inicialização do sistema).

Um argumento : você pode proteger um servidor web da execução de comandos de shell arbitrários.

Resposta : (Deixando de lado os aplicativos da web em contêineres), pode-se adicionar uma ACL de permissão para todos os comandos que o UID / GID do servidor pode acessar e uma ACL de proibição para o restante dos comandos no host.

Um argumento : um usuário pode ter um arquivo com as permissões 0777 [e essencialmente vazá-lo para todos no sistema].

Resposta : O script de inicialização do sistema pode definir ACL padrão para o diretório onde este arquivo é criado, de modo que tudo o que o processo do usuário criar naquele diretório sempre obterá essas ACLs herdadas. Em geral, ter 7 em "outros" parece uma má ideia e se o arquivo obtiver tais permissões, a política discricionária pode ser aplicada aqui no lançamento do sistema (instalação da distribuição), ou mesmo na inicialização, toda vez que o sistema inicializa.

Respostas

ManuelHerrera Sep 13 2020 at 23:06

A diferença está em quem decide as permissões dos arquivos. Um DAC dá ao proprietário do arquivo o controle total das permissões do arquivo. O MAC usa rótulos para impor um controle centralizado, o que significa que há uma camada adicional de segurança que não cabe ao proprietário do arquivo decidir. Por exemplo, um usuário pode ter um arquivo com permissões rwxrwxrwx (777), mas o MAC impõe seu rwx apenas a um conjunto específico de rótulos de segurança, substituindo efetivamente o DAC.

Saustin Sep 21 2020 at 06:03

O DAC não cobre todas as situações potenciais de permissão de segurança que o MAC cobriria. ACLs são muito flexíveis em comparação com DAC.

Para simplificar, o DAC só permite que você controle rwx, certo? Com o DAC, você pode ser muito mais explícito e controlar no nível do syscall o que é permitido. Por exemplo, você pode permitir que alguém anexe a um arquivo, mas não o sobrescreve / exclui.