Gerenciando / tmp e / var / tmp, e por que não globalmente gravável?

1

Eu tenho tentado bloquear algumas vulnerabilidades de segurança no meu servidor, e cheguei ao ponto das pastas tmp. Ambos irão armazenar arquivos que são usados por outros recursos, ainda assim, lendo um pouco mais eu descobri que o / tmp poderia salvar alguns dados que envolvem o próprio servidor ao invés do / var / tmp.

Minha pergunta é: Quais são as implicações de proteger o acesso de gravação a / tmp e / var / tmp. Eu já tentei proteger o / var / tmp e até agora nada de ruim aconteceu.

É seguro bloquear / tmp e negar arquivos salvos que possam danificar meu servidor ou pode haver algum tipo de spam ou algo similar que afete minha segurança? Qual é a vulnerabilidade se eu permitir o acesso em meu servidor para essas pastas, digamos, gravável com permissões 777 (como elas vêm por padrão)

Obrigado

    
por jpganz18 14.09.2012 / 00:59

2 respostas

7

/tmp e /var/tmp são supostos para serem graváveis por todos, para que todos os programas / usuários possam criar seus arquivos temporários. O bit pegajoso garante que apenas o proprietário (e a raiz, é claro) pode mover / renomear / excluir o arquivo (consulte chmod(1) ). É claro que um aplicativo ainda pode definir permissões inseguras nos arquivos, permitindo acesso de leitura ou gravação ao (s) usuário (s) errado (s), mas isso depende do aplicativo e não tem nada a ver com as permissões nesses diretórios.

    
por 14.09.2012 / 01:12
3

/tmp e /var/tmp eram locais historicamente conhecidos onde os programas podiam armazenar arquivos temporários. No entanto, para funcionar adequadamente, eles precisam ser escritos mundialmente (e sticky ). Isso funciona, mas também abre uma ampla variedade de possíveis problemas de segurança com um programa gravando arquivos temporários que outro programa lerá, fazendo com que o segundo programa se comporte de maneira inesperada e indesejável.

A primeira "correção" para isso foi ter todos os programas gravando arquivos temporários para usar uma chamada do sistema para gerar nomes de arquivos aleatórios . Esse tipo de trabalho funciona, mas depende do (1) programa que está realmente usando; (2) ter um RNG seguro; e (3) sorte.

Há uma mudança no Projeto Fedora para que os serviços do sistema usem um diretório temporário particular independente, acessível somente a esse serviço. Cada programa vê e usa /tmp , mas eles são, na verdade, montagens de ligações com namespaces gerenciadas pelo sistema . Solução muito inteligente, e uma que eu suspeito que vai começar a aparecer em outras distribuições Linux em breve.

    
por 14.09.2012 / 06:14