Noções básicas de autenticação e gerenciamento de chaves SSH
Noções básicas de autenticação e gerenciamento de chaves SSH

Noções básicas de autenticação e gerenciamento de chaves SSH

Última atualização em: 24 de abril de 2020

O que são chaves SSH (Secure Shell)?

Chaves SSH (Secure Shell) são credenciais de autenticação no protocolo SSH. Tecnicamente, elas são chaves criptográficas responsáveis pela criptografia, mas funcionalmente funcionam de maneira muito semelhante às senhas. Dentro de uma empresa, as chaves SSH são usadas principalmente para conceder acesso seguro a sistemas remotos. A autenticação baseada em chave, comumente conhecida como autenticação de chave pública, usa um par de chaves — uma chave pública e uma chave privada — para autenticar usuários em dispositivos remotos.

Chaves públicas ou chaves autorizadas são responsáveis por conceder acesso de login aos usuários que acessam o sistema remoto. Podemos imaginar chaves autorizadas como fechaduras, concedendo acesso àqueles que possuem a chave certa (neste caso, a chave privada correspondente). As chaves autorizadas são configuradas separadamente para cada conta de usuário e geralmente estão presentes no arquivo .ssh/authorized_keys no diretório inicial do usuário.

Chaves privadas ou chaves de identidade permitem que os usuários se autentiquem em um servidor SSH. Uma chave privada é análoga a uma chave real que, quando correspondida, pode abrir uma ou mais fechaduras. Ao contrário das chaves públicas, as chaves privadas precisam ser protegidas em um local seguro ou podem acabar nas mãos erradas, resultando em uso indevido de privilégios.

O que é o processo de autenticação de chave SSH?

A autenticação de chave pública baseada em SSH é obtida pela geração de um par de chaves distintas (uma pública e uma privada) para estabelecer conexão com sistemas remotos. O usuário que se autentica na máquina remota precisa possuir a chave privada, enquanto a chave pública deve ser colocada no(s) sistema(s) de destino aos quais o usuário deseja se conectar.

  • Gerar chaves de autenticação SSH: Efetue login no servidor a partir do qual a conexão remota será estabelecida. Gere um par de chaves usando uma ferramenta de geração de chaves SSH como o PuTTYgen. Você também pode adicionar uma senha opcional ao criar o par de chaves para fornecer uma camada adicional de segurança.
  • Copie as chaves públicas para sistemas remotos: Depois de gerar o par de chaves, transfira as chaves públicas para os sistemas remotos de destino. Certifique-se de que os arquivos de chave pública sejam colocados no diretório ~/.ssh/authorized_keys nos servidores remotos necessários. Aqui, você terá que fornecer a senha criada durante a etapa anterior.
  • Inicie sessões SSH remotas: Depois de implantar as chaves públicas nos servidores de destino, você pode abrir conexões SSH com esses servidores a partir do seu sistema.

Veja como o processo de autenticação da chave SSH acontece em segundo plano.

  • O cliente começa enviando um ID para o par de chaves que ele gostaria de autenticar no servidor remoto.
  • O servidor verifica se há chaves públicas com o mesmo ID de chave na conta na qual o cliente está tentando fazer login.
  • Se a chave pública correspondente for encontrada, o servidor gera um número aleatório, criptografa-o com a chave pública e o envia ao cliente.
  • O cliente descriptografa a mensagem com a chave privada e, juntamente com a ajuda das chaves de sessão, calcula o valor de hash MD5 da mensagem.
  • O cliente então criptografa o valor de hash e o envia ao servidor.
  • Enquanto isso, o servidor também calcula o valor de hash MD5 da mensagem enviada ao cliente (com a ajuda de chaves de sessão). Se esses dois valores corresponderem, isso prova que o cliente possui a chave privada correspondente e o cliente está autenticado no servidor.
Diagrama de fluxo de autenticação de chave SSH
Diagrama de fluxo de autenticação de chave SSH

Antes de iniciar o processo de autenticação da chave SSH, certifique-se de que tanto o cliente quanto o servidor tenham uma versão funcional do SSH instalada. Uma grande vantagem da autenticação baseada em chave é que, quando implementada corretamente, ela simplifica enormemente o processo de autenticação e aumenta sua segurança em várias partes.

Por que você precisa proteger suas chaves SSH?

Em média, uma grande organização armazena facilmente cerca de um milhão de chaves SSH. E apesar da conscientização criada em torno da má gestão e dos riscos das chaves SSH, a maioria das empresas segue uma abordagem descentralizada para a criação e o uso de chaves. Com o tempo, isso resulta na proliferação de chaves com muito menos visibilidade sobre a extensão do acesso que cada chave fornece. O gerenciamento incorreto de chaves SSH pode causar problemas para as empresas de várias maneiras, incluindo as seguintes:

  • Ataque externo: Quando um invasor obtém acesso a uma chave SSH órfã, ele consegue estabelecer uma posição e se mover facilmente dentro da rede, já que as redes baseadas em chaves são fortemente interligadas. O invasor pode então elevar seus privilégios para acesso root, desviar dados confidenciais de sistemas de missão crítica e criar backdoors para acesso permanente.
  • Ataque interno: O gerenciamento inadequado de chaves SSH também é um grande fator que contribui para ataques internos. Funcionários descontentes ou fornecedores ou contratados terceirizados mal-intencionados podem obter acesso a chaves que autenticam sistemas privilegiados e acabar roubando dados confidenciais.

Uma coisa complicada sobre esses ataques é que, como as chaves SSH raramente são rotacionadas, elas continuarão nas mãos erradas até que sejam descobertas de alguma forma e tenham seu acesso encerrado.

  • Riscos de não conformidade: O gerenciamento de chaves SSH também é essencial para que as empresas demonstrem conformidade com diversas regulamentações obrigatórias do setor, como SOX, FISMA, PCI e HIPAA. Deixar de incorporar um sistema adequado de gerenciamento de chaves SSH pode fazer com que as empresas infrinjam os requisitos de conformidade e lhes custar grandes penalidades.
 Obtenha visibilidade completa do seu ambiente SSH agora mesmo

Obtenha visibilidade completa do seu ambiente SSH agora.

Baixar resumo da solução

Gerenciamento de chaves SSH: Início

O gerenciamento de chaves SSH é o processo de proteger e automatizar o ciclo de vida das chaves SSH distribuídas por uma empresa, desde a criação até a implantação nos endpoints necessários, iniciando sessões remotas, monitorando mapeamentos de chaves e usuários, realizando a rotação de chaves e excluindo periodicamente as chaves não utilizadas ou indesejadas. As chaves SSH pertencem à categoria de ativos digitais cruciais que são constantemente subgerenciados. Implementar um processo de gerenciamento bem definido ajuda as empresas a obter visibilidade completa sobre seu ambiente SSH e evitar o uso indevido de privilégios decorrentes do acesso não autorizado às chaves SSH.

Agora vem a próxima pergunta óbvia: Mas por onde começar?

Aqui estão algumas etapas que ajudarão você a começar o processo de gerenciamento de chaves SSH.

descoberta ssh

Descobrir e consolidar

O primeiro passo para gerenciar suas chaves SSH é descobrir as chaves existentes em sua rede e consolidá-las em um repositório centralizado.

relação de confiança ssh

Mapear relacionamentos de confiança

Depois de reunir todas as suas chaves SSH em um único lugar, você precisa rastrear os relacionamentos de confiança existentes para ter uma ideia clara da extensão do acesso que cada chave concede. Em seguida, você precisa definir o mapeamento de usuários-chave, o que ajudará a identificar o número de usuários na sua rede que têm acesso root a contas privilegiadas.

implantação de chave ssh

Crie e implante novos pares de chaves SSH

Agora que você tem visibilidade completa do seu ambiente SSH, escaneie e remova as chaves SSH que não estão mais em uso. A melhor prática aqui é começar do zero excluindo todas as chaves SSH associadas às várias contas de usuário na sua rede e substituí-las por pares de chaves recém-criados.

Gerenciamento de chaves SSH: Criação de chave centralizada

Simplifique a criação e a implantação de chaves SSH

Para geração de chaves, é altamente recomendável que você simplifique o processo administrando uma estrutura centralizada que permita apenas que usuários com privilégios específicos criem e implantem chaves em sistemas dentro de sua rede. Dessa forma, você tem o controle sobre os relacionamentos de confiança dentro da sua organização e consegue manter a proliferação de chaves SSH sob controle.

acesso granular de chave ssh

Impor controles de acesso granulares

Depois que novos pares de chaves forem implantados nos sistemas de destino, é importante definir permissões para cada chave com base nas funções do usuário, ou seja, restrições sobre o host em que a chave pode ser usada e quais comandos a chave pode executar.

rotação de chaves ssh

Aplicar rotação periódica de chaves SSH

A rotação de chaves SSH é a prática de descartar a associação existente entre chave SSH e usuário e implantar novos pares de chaves de tempos em tempos para combater o infeliz evento de comprometimento da chave SSH. Tanto as chaves autorizadas (colocadas nos sistemas de destino) quanto as chaves de identidade precisam ser rotacionadas periodicamente para evitar possível uso indevido de privilégios.

auditoria e relatórios ssh

Audite todas as atividades do usuário e gere relatórios prontos

Configure um mecanismo de auditoria à prova de violação para rastrear todas as atividades do usuário envolvendo chaves SSH e gerar relatórios categorizados. Isso aumentará a sensibilidade e a legibilidade dos dados coletados e ajudará os administradores a tomar decisões comerciais informadas.

Gerenciamento de chaves SSH - Demonstração em vídeo
 
Gerenciamento de chaves SSH

A automação é a solução mais eficaz

Quando se trata de implementação prática e eficiência operacional, essas etapas são mais fáceis de dizer do que de fazer. Imagine a quantidade de carga de trabalho do administrador de TI que precisa realizar todas as operações mencionadas acima para um milhão de chaves SSH em seu ambiente! A melhor maneira de conseguir isso é por meio da automação, implementando uma solução centralizada de gerenciamento de chaves SSH que pode fazer todo o trabalho pesado para você.

O Key Manager Plus, a solução de gerenciamento de chaves SSH e certificados SSL baseada na Web da ManageEngine, ajuda você a descobrir, consolidar, criar, implantar, girar e rastrear chaves SSH a partir de um único painel. É uma solução completa que fornece aos administradores de TI visibilidade e controle completos sobre seus ambientes SSH, simplifica o gerenciamento e os ajuda a prevenir violações e problemas de conformidade.

Se quiser saber mais, envie um e-mail para keymanagerplus-support@manageengine.com e nossos especialistas em produtos entrarão em contato com você imediatamente!