Existe alguma segurança obtida com um arquivo com 4xx permsion em vez de 6xx?

3

Se um arquivo só pode ser lido pelo seu proprietário (400), isso é mais seguro do que aquele arquivo ter permissões de leitura?

Na melhor das hipóteses isso não ajudaria a evitar que você cometesse erros estúpidos com seus próprios arquivos, em vez de adicionar alguma segurança real? Se você possui um arquivo, então você pode alterar suas permissões. Então, se alguém mal-intencionado obtivesse acesso a um usuário, ter um arquivo pertencente a esse usuário definido como 400 não impediria o invasor de alterar as permissões no arquivo e gravar nele?

Existe alguma segurança obtida com um arquivo não gravável por seu proprietário?

    
por Dom 31.01.2018 / 23:12

3 respostas

3

Se o seu modelo de ameaça for binário - a conta do usuário não está comprometida ou está totalmente comprometida (execução arbitrária de comando) - não há diferença. Como você observou, o invasor pode apenas chmod u+w do arquivo.

Compromisso parcial, no entanto, pode acontecer. Por exemplo, se o atacante só ganhar "gravar em qualquer arquivo", ele não poderá gravar no arquivo 0400. Este é um benefício questionável em muitos casos - "escrever em qualquer arquivo" pode ser elevado a um comando arbitrário com bastante facilidade (por exemplo, escrever para ~/.bashrc ).

Além disso, com permissão de gravação no diretório pai, você ainda pode excluir (desvincular) um arquivo de modo 0400. O que significa que um invasor pode excluir o arquivo existente e colocar um novo usando o mesmo nome.

O único uso de "segurança" que vem à mente é uma caixa de depósito FTP (etc.). Você poderia colocar um arquivo README lá, no modo 0400. Se o diretório pai da caixa de depósito estiver definido como a+rwxt , todos poderão adicionar novos arquivos (e devido a +t ) somente excluir os arquivos de sua propriedade. Então, seu README estaria protegido.

Então, acho que no geral é um recurso de prevenção de acidentes mais do que um recurso de segurança.

    
por 31.01.2018 / 23:26
2

Erros estúpidos destroem dados. Proteger contra erros estúpidos pode salvar seus dados. Não ter a permissão de gravação configurada nos arquivos que você realmente deseja manter está na mesma categoria que não usando -f on rm , tendo rm reclamando se você acidentalmente tentar rm -r / e não executando seu shell como root o tempo todo. Nenhum deles é necessário, se você sabe o que está fazendo, mas todos podem ser úteis em uma situação ou outra.

Mas, bem, as vulnerabilidades de segurança começam pequenas. A entrada do usuário pode ser usada para decidir sobre um nome de arquivo a ser acessado e, se não for analizado, ele poderá persuadir o programa a acessar algo que não deve ser acessado por usuários finais. (Algo como o clássico ../../../passwd stuff.)

Se um arquivo importante foi mantido sem permissão de gravação, apenas ser capaz de decidir sobre o nome do arquivo não permitiria escrever o dito arquivo. Quanto isso importa, depende de quais outros arquivos eles podem reescrever, no entanto. (E realmente, melhor corrigir esses usos de insumos não-analizados.)

    
por 31.01.2018 / 23:29
0

Em suma, não, você não está ganhando nada que valha a pena. Como você mencionou corretamente, qualquer pessoa que tenha conseguido ler o arquivo também pode alterar suas permissões.

Sempre há um equilíbrio entre segurança e usabilidade para levar em consideração, e neste caso eu me esforço para até mesmo ver um ganho, quanto mais para avaliar o esforço de manter essa solução.

    
por 19.02.2018 / 18:44