Fazer login como usuário compartilhado é um mau hábito?


35

Eu trabalhei em organizações nas quais, em vez de criar um novo usuário do Ubuntu por pessoa que deseja fazer login em uma máquina, os administradores de sistemas simplesmente adicionam a chave ssh de cada usuário .ssh/authorized_keyse todos os usuários sshna máquina como ( por exemplo ) ubuntu@hostou ec2-user@host. (Aliás, eu também vi isso praticado em Mac minis compartilhados em um laboratório.) Essa prática é aceita ou é um antipadrão?

Os hosts em questão são usados ​​principalmente para teste, mas também são executadas ações que normalmente exigem configuração por usuário e são rastreadas como sendo executadas por um usuário específico, como criar e enviar confirmações git, que atualmente são feitas usando um git genérico do utilizador.


23
Enquanto muitas pessoas têm problemas com relacionamentos poli-amorosos, outras as tratam muito bem, então não acho que seja necessariamente um "mau hábito" compartilhar uma ... ah, deixa pra lá, você quis dizer conta de usuário .
21716 HopelessN00b

Awww, alguém editou o título clickbait .. :(
Burgi 12/02

Respostas:


42

Sim, é um mau hábito. Ele se baseia na suposição básica de que ninguém é malicioso (ou será) por perto e que ninguém comete erros. Ter uma conta compartilhada torna trivial que as coisas aconteçam sem responsabilidade e sem limite - um usuário que quebra algo quebra isso para todos.

Se o motivo desse esquema de compartilhamento de uid é simplesmente reduzir o custo administrativo da criação de novas contas e configuração de compartilhamento, talvez os administradores devam investir algum tempo em um sistema de automação como Ansible , Chef , Puppet ou Salt que cria coisas como criar usuários contas em várias máquinas extremamente simples.


4
Nem sequer é malícia, e também não é nem incompetência. Quando qualquer coisa que faço não funciona, não posso assumir que teria me lembrado de tudo o que foi feito nessa conta.
djechlin

Princípios de dados seguros: Integridade Confidencialidade Disponibilidade Responsabilidade. +1 para usar a palavra responsabilidade
DeveloperWeeks

7

Para começar, isso não me choca, e eu trabalho em um ambiente extremamente seguro. Todo mundo tem seu próprio usuário, máquina e chave ssh, e, para trabalhar em um servidor, efetuamos o ssh, como root ou como outro usuário, através de um relé de registro, se necessário. Tudo o que fazemos é registrado como tendo sido feito pelo proprietário da chave ssh, portanto, a prestação de contas está OK.

Qual seria a alternativa? Muitas coisas devem ser feitas como um determinado usuário, para não mencionar o root. Sudo? Não há problema em certas tarefas muito restritas, mas não na administração da máquina.

No entanto, não tenho certeza do seu último parágrafo, você quer dizer que alguém poderia enviar um git a um usuário genérico por enviar um git? Isso quebraria a responsabilidade, e quebrar a responsabilidade é ruim. Fazemos o git a partir da máquina em que estamos logados e autenticamos o git com nossa chave ssh ...

Autenticação, autorização e contabilidade (AAA) é a expressão clássica: você está autenticado com sua chave ssh, está autorizado a fazer qualquer coisa que o usuário genérico possa fazer porque sua chave está nas chaves_comentárias e você precisa de contabilidade para que você faça o que faz pode ser revisado após o fato.


3
Portanto, o usuário genérico possui algum tipo de autenticação (chave ssh?) Autorizada a modificar o repositório git? Isso realmente não é bom. Não apenas porque quebra a responsabilidade por esse commit, mas também porque qualquer pessoa pode copiar essa chave e usá-la de outro lugar. Quando tenho esse tipo de problema, copio o código ou o diff para minha máquina local e o comprometo a partir daí.
Law29

2
Por que exatamente não é sudoaceitável para administração geral de uma máquina?
Blacklight Shining

4
você instala como root em "um ambiente extremamente seguro" oO?
Xaa

@BlacklightShining Se você precisar fazer algo (chown, arquivos arbitrários do chmod, instalar servidores, montar sistemas de arquivos, não há nada a ganhar sshing como usuário e executando um sudo bash. e / ou log tudo para um servidor remoto com t.he proprietário da chave ssh que ssh'd no.
Law29

1
@xaa Sim, sim, e não vejo problema com isso. Tudo o que eu digito é registrado em outras máquinas. "Não trabalhe como root" é uma máxima totalmente inútil quando a máquina é um servidor em que tudo o que você pode querer fazer precisa que você seja root.
precisa saber é o seguinte

3

Depende claramente do caso de uso do sistema. Se é um sistema para testes de tempos em tempos, está bem para mim. Nós também temos esses sistemas. Se a empresa não possui nenhum tipo de gerenciamento de identidade (LDAP, IPA), criar um novo usuário sem nenhum controle remoto no sistema aleatório é um fardo.

Mas para o trabalho diário, quando alguém cometer erros, torna toda a empresa incapaz de operar, não é uma boa idéia.


Exatamente, se você não tem ou não pode ter um serviço de diretório, criar e gerenciar milhares de contas é impraticável.
Jim B

Mesmo que você não possa usar o LDAP, é provável que você tenha acesso SSH (ou Powershell no Windows). Você ainda precisará de uma maneira de gerenciar o arquivo allowed_keys em seus hosts para todas essas contas (a menos que você também esteja compartilhando senhas) e várias outras configurações. Tenho que me perguntar por que você não está usando algum tipo de gerenciamento de configuração (por exemplo, Puppet, Chef, Ansible). Se você tem tantos usuários ou servidores. Afasta esse fardo e oferece controle do processo, prestação de contas e auditoria em troca.
Martijn Heemels

3

Todas essas respostas abordam a preocupação de prestação de contas, que é um problema importante e real em si, mas o uso de uma conta compartilhada também permite ataques não tão sutis a outros usuários:

Considere um invasor criando um sshscript mal-intencionado que registra a senha digitada e a coloca PATHpara o usuário compartilhado (o que é feito facilmente). Agora, a próxima pessoa que fizer logon na máquina com o usuário compartilhado e decidir ir sshpara outro lugar (desta vez com sua conta pessoal, não compartilhada) pode ter uma surpresa desagradável.

Basicamente, usar uma conta compartilhada no computador é como beber no banho de pés na piscina pública.


1

Em geral, compartilhar uma conta é uma má ideia pelos seguintes motivos:

  1. Todas as configurações feitas para esse usuário afetam todos os que efetuam login. (Promt, aliases, ...)
    1. Você perde a possibilidade de descobrir quem fez o que (responsabilidade)
    2. Um erro na configuração da conta (por exemplo, excluir acidentalmente o ssh kay) afeta todos os usuários dessa conta de usuário (nesse exemplo, bloquear).

E com certeza há ainda mais desvantagens ... Mas não quero aprofundar mais.

O ponto é que talvez você esteja enfrentando a necessidade de compartilhar uma conta para gerenciar um serviço que é executado sob uma determinada conta de usuário na qual todos os administradores devem poder acessar.

Em tal configuração, você tem a possibilidade de compartilhar esta conta para fazer login (nas opções acima, eu preferiria não fazer isso) ou você faz o login individualmente e alterna o usuário para a conta compartilhada (eu sugeriria isso).

As ferramentas de auditoria ainda permitem rastrear quem executou o quê, mas ainda compartilha a mesma conta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.