Onde eu trabalho todo mundo se conecta como root

7

Onde eu trabalho agora, sou forçado a usar a conta root, assim como todo mundo faz. Não há outros usuários. Nem mesmo nos bancos de dados. Meus idosos explicaram-me que isso é feito por conveniência.

Eu realmente sei que isso é errado, mas eu realmente gostaria de ter um exemplo da vida real ou um exemplo teórico muito convincente para que eu possa provar a eles o quanto isso é errado. Não por retaliação ou algo parecido, mas talvez ajude-os a entender melhor o risco e a melhorar nossa segurança.

Na verdade, é muito estressante trabalhar como root. Na minha rede doméstica (e garoto, é uma grande rede de casa vm) nem me atrevo a logar como root ..

Eles estão cientes da ameaça de apagamento ou modificação acidental de arquivos e pastas cruciais. Da ameaça de mudanças de permissão acidentais.

Eles insistem que devemos verificar nossos programas e nosso comportamento antes de pressionar o botão "entrar".

O que mais poderia dar errado?

Eu suspeito de um ataque externo (apache sábio). Também um programa desonesto.  Um programa nocivo pode assumir o controle através das permissões incorretas do apache?

O que mais é possível? Obrigada!

    
por ioctl 21.03.2013 / 21:20

4 respostas

6

Vamos apenas apagar alguns logs antigos do servidor web. Não há necessidade de fazer o login como a conta da web, temos raiz.

rm -rf / var/www/logs/2010.log

Opa! Não deveria ter sido root.

    
por 21.03.2013 / 21:23
0

Hm .. Eu fiz muitas coisas ruins como root. Uma vez eu escrevi um script que deveria (entre outras coisas) limpar periodicamente um diretório chamado /foo . Então o script estava sendo executado como root e fez algo assim:

cd /foo
rm -rf *

Um dia, o diretório /foo não existia devido a alguns problemas com nossa SAN. Resultado: catástrofe.

Agora, isso é apenas um roteiro mal escrito; deveria ter sido:

cd /foo  &&  rm -rf *

mas mostra como é fácil fazer algo seriamente ruim se você tem privilégios demais.

O outro problema que você tem quando todos fazem login como root é que você perde toda a questão de rastreabilidade / auditabilidade. Quem sabe quem fez o quê? Isso é realmente aceitável?

A pergunta a ser feita (e ao seu empregador) é: o que você precisa fazer requer que você seja raiz?

Neste tópico em particular, eu realmente prefiro o Solaris ao Linux. (por favor, não flame, estou falando apenas sobre o tópico do usuário root). Mesmo que você não esteja no Solaris, acredito que há coisas a serem aprendidas de como o Solaris faz isso. Você pode ser capaz de imitar parte disso no Linux.

O Solaris (versões posteriores) não permite, por padrão, fazer login de fora como root. De fato, a raiz se tornou um papel em vez de um usuário comum. Se você tem o privilégio suficiente e sabe a senha do root, então você pode logar no root, mas somente depois de ter logado no host como você mesmo primeiro e então su na raiz. Desta forma, você sempre pode ver quem usou a conta root.

Além disso, você tem toda a configuração de privs finos no Solaris, por exemplo, você pode atribuir o privilégio de vincular a um soquete < 1024 a um determinado serviço. No Linux, esse processo deve ser iniciado pelo root. Em segundo lugar, você tem RBAC e delegação de privilégios SMF (o direito de iniciar, interromper ou administrar um determinado serviço). Com isso, raramente é necessário que qualquer coisa seja realmente feita como root.

O Solaris realmente - a propósito, ele é configurado imediatamente, assim como os recursos que ele oferece - desestimula o uso de root e facilita nunca usar a conta root. Espero um dia ver os mesmos avanços no Linux.

O contra-argumento de seu chefe para tudo isso é que levará algum tempo para definir e configurar. Isso é verdade, mas seu site parece muito grande. Então a palavra chave é padronização . Defina essas funções de uma vez por todas, utilizando os recursos que o seu sistema operacional lhe oferece. Em seguida, padronize todos os seus servidores. A outra palavra-chave que gostaria de trazer para a tabela é o princípio do menor privilégio . Você nunca deve ter mais privilégios do que o seu trabalho requer. Infelizmente, você está à mercê de quão bem o modelo de privilégio e o modelo de delegação do seu sistema operacional é lido nele e provavelmente verá que o seu sistema operacional fez grandes avanços nessa área nos últimos 10 a 15 anos, então talvez não haja mais uma necessidade de você fazer o login como root?

O httpd do Apache não deve ser executado como root. Período! Se o seu servidor web for invadido, o intruso repentinamente terá privilégios de root. Seu sistema operacional pode forçá-lo a iniciá-lo como root, mas o httpd apache tem um recurso para mudar imediatamente para outro usuário. Veja as configurações de User e Group no arquivo de configuração do Apache httpd.

    
por 25.07.2013 / 00:59
0

Absoluta estupidez! isso é só pedir problemas. Eu acho que os idosos precisam ser demitidos por conveniência.

Além de fazer algo errado acidentalmente (como rm -rf / , que teria efeitos limitados se você não fosse root) se alguém for demitido por cometer um erro estúpido que mata um servidor crítico. Eles podem ficar com raiva e fazer login remotamente e derrubar a rede ou alterar a senha do root para que ninguém possa fazer login e criptografar a partição raiz ou, de outra forma, mexer na sua rede! Adivinha? Ninguém teria a menor ideia de quem fez isso porque usaram a conta root que todos conhecem a senha, incluindo todos os ex-funcionários.

Eu sugiro que você configure algum tipo de conta de usuário e somente para aqueles que precisam desse acesso. Onde o acesso root é necessário, use o sudo. Você também pode limitar por usuário ou por grupo o que eles podem fazer com o sudo, quais programas podem ser executados, etc.

Agora, se um funcionário sair, você poderá remover o usuário simplesmente excluindo a conta.

    
por 25.07.2013 / 01:51
0

Isso é tão idiota que é difícil explicar por que isso é tão ruim.

Você pediu exemplos do que poderia dar errado. Aqui está um:

  • Se todos os aplicativos que usam o servidor de banco de dados fizerem logon com uma conta que tenha acesso de leitura / gravação a TODOS os bancos de dados, um único aplicativo da Web (como um site WordPress com um plug-in com bug ou desatualizado) pode conceder acesso a todos os bancos de dados. Os dados podem ser roubados ou excluídos.

E, apenas dizendo, talvez a senha de root do sistema operacional e a senha de root do banco de dados sejam as mesmas?

    
por 02.05.2016 / 00:09

Tags