É meu trabalho como administrador Linux abandonar os privilégios de raiz dos aplicativos ou o trabalho dos desenvolvedores de aplicativos? [fechadas]

6

Como administrador do Linux, um dos meus trabalhos é realizar algum tipo de tarefa para eliminar privilégios de root dos aplicativos em execução nos meus sistemas?

Ou simplesmente confio nos desenvolvedores de aplicativos para garantir que eles tenham escrito seu código para fazer isso?

    
por Duke Dougal 02.12.2016 / 06:26

3 respostas

9

As a Linux admin, is one of my jobs to carry out some sort of task to drop root privileges of the applications running on my systems?

Sim. É o seu trabalho, certifique-se de que está feito. Se o aplicativo não fizer isso, você terá que perceber que o aplicativo não está fazendo isso e faça você mesmo.

Or do I simply rely upon the application developers to ensure they have written their code to do this?

Não confie em desenvolvedores de aplicativos para fazer qualquer coisa. Há muitas ferramentas disponíveis para um administrador do sistema Linux para obter os fatos do que os aplicativos estão fazendo em tempo de execução.

    
por 02.12.2016 / 06:32
4

Eu diria que, como administradores de sistemas, é nosso trabalho dar o menor privilégio possível aos aplicativos e usuários (que permitem que eles façam seu trabalho).

Um usuário que implementa aplicativos Tomcat / Java, ou páginas da Web, ou que implementa um aplicativo com acesso a banco de dados raramente tem poucas ou poucas necessidades legítimas de acesso root.

A maioria dos frameworks também solta raiz por padrão hoje em dia.

Por exemplo, para devs aqui usando frameworks Java nós apenas damos acesso a um usuário não privilegiado capaz de implementar, e alguns comandos sudo restritos para (re) iniciar e parar alguns serviços chave.

Eu iria ainda mais longe que não é da conta do time de desenvolvimento lidar com servidores de produção.

A partir da minha experiência de vida, muitas vezes a equipe de desenvolvimento está apenas preocupada em fazer seu trabalho, e não é capaz de obter segurança e gerenciamento de capacidade sem planejamento, orientação e intervenção proativa da equipe de administradores de sistemas.

    
por 02.12.2016 / 08:21
3

É dever do programador do aplicativo garantir que o aplicativo descarte privilégios de root e opere com direitos não privilegiados. Se o aplicativo não fizer isso, não há nada que você possa fazer sobre isso - além de abster-se de usar o aplicativo, enviar um relatório de erro para o desenvolvedor ou implementar as alterações necessárias no código.

Por outro lado, é você , como administrador, quem escolhe como o usuário inicia o aplicativo; a regra de ouro é nunca conceder a um processo mais privilégios do que ele precisa executar. Assim, você pode criar um usuário sem privilégios - dê uma olhada em /etc/passwd para ter uma ideia das contas do sistema - e execute o aplicativo como este usuário. (Você raramente tem que fazer isso manualmente; geralmente, tudo isso é feito quando você instala um software por meio do gerenciador de pacotes.) No entanto, se o aplicativo exigir privilégios de root para iniciar, falhará em descartar esses privilégios no meio de a corrida, então está fora do seu controle.

Por exemplo, as versões mais antigas de sendmail exigiam a execução da SUID root, que era uma falha de segurança se um invasor remoto conseguisse explorar com sucesso uma vulnerabilidade do programa. Se você tivesse sendmail executando exclusivamente como retransmissão de e-mails, poderia executá-lo como um usuário sem privilégios.

    
por 02.12.2016 / 08:08