As chaves SSH (ou SSH Keys) são uma medida extremamente importante para as organizações comunicarem e gerirem sistemas de forma segura. Porém, para que este procedimento proporcione o nível de segurança necessário, é fundamental a adoção de boas práticas.
Para começar, aqui estão duas notícias sobre credenciais SSH violadas:
Caso 1: Go Daddy
O primeiro caso ocorreu em 2019, mas só foi identificado em 2020, e envolve a empresa hospedeira de sites GoDaddy. O registrador de domínios anunciou que foi alvo de uma violação que afetou as credenciais SSH de aproximadamente 28.000 usuários na época. Um ator mal-intencionado poderia ter contornado seus sistemas de segurança e acessado dados de login SSH hospedados em seus servidores.
Felizmente, não houve grandes problemas, mas seus usuários foram notificados. A empresa teve que redefinir os nomes de usuário e senhas expostos e bloquear a parte não autorizada.
Caso 2: GitHub
O segundo caso foi em 2021, quando o GitHub recebeu um aviso do desenvolvedor Axosoft sobre a vulnerabilidade de uma dependência em seu cliente git GUI – GitKraken, que estava gerando chaves fracas. Portanto, revogou todas as chaves geradas por versões de clientes vulneráveis usadas em GitHub.com.
Outras chaves possivelmente fracas geradas por outros clientes que poderiam ter usado a mesma dependência vulnerável também foram revogadas. A empresa ainda precisava implementar salvaguardas para evitar que versões vulneráveis do GitKraken adicionassem chaves SSH fracas criadas por versões mais antigas.
Veja também: Guia completo de Gestão de Superfície de Ataque
Estes dois estudos de caso demonstram que grandes organizações podem gerir o seu protocolo SSH de forma inadequada e aumentar a vulnerabilidade ao risco dos seus sistemas.
Para ajudar, criamos para você este artigo sobre chaves SSH, e dividimos o texto nos seguintes tópicos:
- Protocolo SSH: o que é e por que é importante?
- História do SSH
- Benefícios da autenticação de Chaves SSH
- Quais são os Tipos de chave SSH?
- Como as chaves SSH são geradas
- Como funciona o acesso às chaves SSH
- Como fortalecer a segurança das chaves SSH
- Categorias de criptografia de chave SSH
- Dados de segurança da chave SSH
- Gerenciamento de chaves SSH do senhasegura
- Conclusão
Atualmente utilizado em servidores e ambientes de data center, o SSH é um protocolo que permite a transmissão de dados, possibilitando o encapsulamento de aplicações.
Com chaves SSH, administradores de sistema e desenvolvedores de aplicativos têm acesso interativo a sistemas remotos com segurança. É um recurso amplamente utilizado em atualizações de bancos de dados, backups, gerenciamento automatizado de sistemas e aplicativos de monitoramento da integridade do sistema.
Na prática, as chaves SSH desempenham um papel muito importante no funcionamento das redes digitais automatizadas utilizadas em data centers e empresas em geral.
Esta solução garante conexões criptografadas com outros sistemas, plataformas e redes que podem ser distribuídas em diversos ambientes, seja remotamente ou na nuvem.
As chaves SSH substituem técnicas de segurança isoladas que são úteis para criptografar transferências de dados. No entanto, esta utilização necessita de ser devidamente protegida, analisada periodicamente, documentada e gerida de forma sistemática. Se este processo não for levado a sério, a segurança de todo o ambiente estará em risco.
A primeira versão do protocolo SSH foi criada na década de 1990 pelo pesquisador Tatu Ylonen, da Universidade de Helsinque. Na época, foi descoberto um Sniffing Attack na rede da universidade, capaz de interceptar e registrar o tráfego da rede e revelar nomes de usuário e senhas a atores maliciosos.
Como resultado, milhares de credenciais foram violadas. O pesquisador começou a buscar formas de tornar as redes mais seguras e desenvolveu o protocolo SSH.
Atualmente, as chaves SSH são usadas para fazer login de um sistema para outro remotamente. Além disso, a segurança proporcionada pela criptografia possibilita a execução de funções como: emitir comandos remotos e gerenciar remotamente a infraestrutura de rede e outros componentes vitais do sistema. Portanto, esta ferramenta é essencial nos dias de hoje, caracterizados pela tendência do trabalho remoto.
Antes de usar chaves SSH, é necessário instalar algum software. Embora os sistemas remotos devam necessariamente ter um software chamado daemon SSH, o sistema usado para emitir comandos e gerenciar servidores remotos requer um software conhecido como cliente SSH. Esta é a única maneira de criar um canal de comunicação apropriado utilizando o protocolo SSH.
A função das chaves SSH é criptografar o tráfego entre servidor e cliente. Na prática, isso significa que se alguém decidir espionar esse tráfego, não conseguirá descriptografar os dados adequadamente.
Esta solução também protege contra ataques de força bruta e vetores de ataque usados para acessar máquinas remotas. Com a criptografia de chave pública, não há necessidade de envio de senhas pela rede, o que proporciona mais segurança.
Outra vantagem das chaves SSH é a possibilidade de manter uma empresa em conformidade com as normas de segurança, mas para isso é necessário gerá-las, armazená-las, gerenciá-las e removê-las seguindo algumas diretrizes que garantem a proteção necessária.
Há uma grande quantidade de chaves SSH que podem ser usadas a qualquer momento por uma organização. Portanto, recomenda-se a utilização de softwares para gerenciá-los e reduzir riscos.
As chaves SSH fornecem segurança e economia de custos para a nuvem e outros serviços dependentes de computador, se gerenciadas adequadamente.
Esse recurso tem função semelhante à das senhas, pois concedem acesso, controlando quem acessará o sistema. Para realizar esse gerenciamento é necessário adotar políticas de segurança, como deve ser feito com contas de usuários e senhas.
Ressaltamos também que o controle de chaves SSH proporciona disponibilidade, confidencialidade e integridade contínuas aos sistemas, desde que seja utilizada criptografia de chave pública.
Essas chaves são categorizadas de acordo com sua função: chaves de usuário, host e sessão.
- User Keys
Estas são chaves autorizadas e de identidade usadas para conceder acesso de login aos usuários. Seu mecanismo de autenticação é conhecido como autenticação de chave pública.
Essas chaves de identidade são usadas por clientes SSH para permitir que os usuários se autentiquem ao fazer login em servidores SSH.
- Host Keys
Este tipo de chave tem como objetivo autenticar computadores, evitando ataques man-in-the-middle. Esta autenticação é baseada em certificados e pode ser muito útil para organizações.
Essas chaves de autenticação devem proteger todas as conexões, e uma das características do SSH é lembrar a chave do host ao conectar-se a ele pela primeira vez.
- Session Keys
As chaves de sessão têm a função de criptografar a maioria dos dados em uma conexão. Esta chave é negociada durante a inicialização da conexão. Em seguida, é usado com um algoritmo de criptografia simétrica e um algoritmo de código de autenticação que garante a proteção dos dados.
As chaves SSH são geradas em pares que reúnem uma chave “pública” e uma “privada”. Algoritmos complexos são usados neste processo para que seja improvável falsificar ou identificar a chave privada, mesmo que a chave pública seja conhecida.
As chaves privadas devem ser mantidas em segredo e usadas apenas por um usuário autorizado, enquanto as chaves públicas podem ser compartilhadas com outras pessoas.
Para gerar chaves SSH, é necessário inserir informações como senhas. Geralmente, frases curtas são usadas para gerar chaves públicas e privadas.
Para iniciar uma conexão via SSH, é realizada a negociação do protocolo, dos algoritmos de criptografia e da chave de sessão, além de autenticar o servidor com uma chave de host e o usuário com uma chave pública ou autenticação por senha. Depois disso, as informações são trocadas, incluindo gráficos, arquivos e dados do terminal.
A autenticação de chave pública garante mais segurança do que outros meios de autenticação, como senhas. Este tipo de autenticação é amplamente utilizado para acesso privilegiado humano e máquina a máquina.
Chaves SSH gerenciadas incorretamente podem ser usadas por agentes mal-intencionados para invadir a infraestrutura sem serem detectados. Comprometer apenas uma chave privada pode resultar em configurações de backdoor e violações de dados difíceis de identificar.
O gerenciamento inadequado de chaves SSH cria vulnerabilidades classificadas no NIST Interagency Report 7966 (NISTIR 7966) “Security of Interactive and Automated Access Management Using Secure Shell (SSH)”, preparado por Paul Turner da Venafi, juntamente com outros autores.
A implantação incorreta do SSH pode causar vulnerabilidades que são aproveitadas para obter acesso não autorizado aos servidores. O mesmo vale para chaves de usuário SSH vazadas, roubadas, derivadas e não terminadas.
Backdoors feitos com chaves de usuários autorizados para driblar acessos privilegiados podem passar despercebidos por muito tempo. Além disso, é possível utilizar chaves de identidade para finalidades diferentes das originais.
Um grande obstáculo à segurança dos sistemas que utilizam chaves SSH é o erro humano, que ocorre devido à complexidade do gerenciamento do SSH e à falta de conhecimento dos usuários. Geralmente é necessário treinamento extensivo.
Algumas medidas são recomendadas para fortalecer a segurança do protocolo SSH, incluindo recomendações do NIST IR 7966, destinadas a auditores, empresas e organizações governamentais.
A rotação manual de chaves SSH não deve ser uma opção, mesmo em ambientes não complexos. Isso porque a prática não ajuda a identificar o usuário que possui a chave privada que corresponde a uma chave pública.
O ideal, praticado por organizações que investem em segurança cibernética, é utilizar uma tecnologia voltada ao gerenciamento de chaves SSH ou gerenciamento automatizado de senhas privilegiadas (PPM) que permita criar pares de chaves exclusivos para os sistemas.
Isso porque as soluções automáticas simplificam a geração e rotação de chaves SSH. Assim, eliminam sua dispersão, proporcionando produtividade com segurança.
Melhores práticas para garantir a segurança das chaves SSH:
- Identifique todas as chaves SSH e coloque-as sob gerenciamento ativo. Este é o primeiro passo para eliminar a dispersão de chaves SSH e avaliar os riscos. Este é o momento de estabelecer quais usuários terão acesso às diversas chaves e como elas serão utilizadas.
- Vincule chaves SSH a um único usuário e não a uma conta acessada por várias pessoas. Dessa forma, pode-se ter uma fiscalização mais assertiva e garantir o controle de acesso.
- Garantir que cada utilizador tenha acesso apenas aos sistemas de que necessita para realizar as suas atividades, tendo em conta o princípio do menor privilégio (PoLP). Esta medida reduz a frequência de uso indevido de chaves SSH.
- Implementar rotação de chaves SSH, exigindo que os usuários gerem novas chaves regularmente e não autorizando o uso das mesmas senhas em mais de uma conta. Isso ajuda a proteger a organização contra ataques de criminosos que se aproveitam da reutilização de senhas. Mas atenção: se sua organização tiver muitas chaves SSH, isso deverá ser feito a partir de uma solução automatizada.
- Não use chaves SSH criptografadas: esse tipo de credencial pode ser incorporada ao código, criando backdoors perigosos para malware e invasões de criminosos cibernéticos. Chaves incorporadas associadas a senhas simples as tornam vulneráveis à adivinhação de senhas. Por esta razão, estas chaves devem ser eliminadas.
- Todas as sessões privilegiadas iniciadas com autenticação de chave SSH ou outras formas de autenticação devem ser registradas e auditadas. O gerenciamento de uma sessão privilegiada pode incluir a captura de pressionamentos de teclas e telas, o que permite visualização e reprodução ao vivo. Além disso, é recomendado o controle em tempo real de sessões privilegiadas para reforçar a segurança cibernética
A comunicação segura por meio de chaves SSH depende de criptografia. Existem quatro categorias de criptografia, algumas das quais fornecem a segurança necessária:
- DSA: Trata-se de uma criptografia considerada insegura, pois se torna vulnerável diante da tecnologia informática atual. Este tipo de criptografia não é usado desde o Openssh 7.
- ED25519: Esta é a opção de criptografia mais segura atualmente, pois possui um algoritmo matemático muito forte.
- ECDSA: O uso desta criptografia é desaconselhado pela agência governamental não reguladora da Administração de Tecnologia do Governo dos EUA (NIST). Sabe-se que essa criptografia possui um backdoor instalado pela Agência de Segurança Nacional (NSA).
- RSA: Este tipo de criptografia é amplamente utilizado e sua segurança depende da quantidade de bits da chave utilizada. Por hoje, a criptografia de 3.072 ou 4.096 bits seria a mais adequada. Chaves SSH com criptografia inferior a 2048 são consideradas inseguras
Uma pesquisa da Venafi apontou que a maioria das empresas não utiliza o protocolo SSH de maneira adequada. Abaixo estão os dados desta pesquisa, na qual foram entrevistados mais de 400 profissionais de segurança cibernética:
- 61% dos entrevistados afirmaram que não limitam o número de administradores que podem gerenciar o SSH e nem mesmo realizam monitoramento.
- Apenas 35% destas instituições proíbem os utilizadores de configurar chaves autorizadas, o que torna os sistemas vulneráveis a invasões.
- 90% dos profissionais entrevistados afirmaram não possuir um registro preciso das chaves SSH, ou seja, é impossível identificar se existe alguma chave não confiável ou mesmo violada.
- Recomenda-se que as chaves sejam alternadas periodicamente para evitar que hackers as acessem. No entanto, apenas 23% dos entrevistados afirmaram seguir esta prática. O número dos que afirmaram rodar ocasionalmente ou não rodar corresponde a 40%.
- O encaminhamento de porta para SSH permite que invasores contornem firewalls e alcancem outras partes de uma rede alvo, mas 51% dos profissionais de segurança da informação entrevistados disseram que não fazem nada para evitar que isso aconteça.
- 54% deles revelaram que não limitam os locais onde o SSH pode ser usado, o que possibilita que invasores usem chaves SSH comprometidas remotamente.
- 60% das organizações não estão preparadas para identificar a introdução de novas chaves SSH nas suas redes.
- As chaves SSH nunca expiram. Como resultado, 46% das empresas nunca fizeram a rotação das suas chaves.
- 76% não possuem sistemas de segurança que utilizem chaves SSH na nuvem.
- De acordo com o Ponemon Institute, três em cada quatro organizações são vulneráveis a ataques no nível da raiz.
- Grupos de administradores de sistemas compartilham chaves SSH, portanto, a falta de responsabilidade de uma única pessoa pode comprometer a segurança de todo o protocolo.
- Normalmente, os servidores estão bem protegidos, ao contrário das estações de trabalho. No entanto, o arquivo da chave privada permanece nas estações de trabalho e pode ser violado.
- As principais agências governamentais enfrentam riscos de segurança relacionados com as ações dos seus funcionários, agentes maliciosos e vírus existenciais. O mesmo se aplica a praticamente todas as organizações da Fortune 500 e à maioria das 10.000 empresas com mais de 10.000 funcionários que existem em todo o mundo.
- Em 2011 e 2012, o uso de credenciais roubadas foi o terceiro motivo mais recorrente de ataques e, em 2013, tornou-se o primeiro vetor.
O senhasegura PAM oferece funcionalidades que possibilitam controlar com segurança o ciclo das chaves SSH por meio de armazenamento, rotação e controle de acesso para proteger essas chaves.
Seus benefícios incluem bloquear o acesso não autorizado a contas privilegiadas por meio de chaves SSH, controlar e rastrear seu uso e gerenciar relações de confiança entre chaves e sistemas.
Na prática, a solução centraliza o gerenciamento das chaves SSH, rotacionando automaticamente seus pares de acordo com as políticas de segurança da sua empresa. Suas principais funções incluem:
- Verificação de servidores Linux e identificação de chaves SSH
- Organização do relacionamento de conexões entre servidores
- Redefinição de chaves com publicação manual
- Publicação de chaves SSH
- Relatórios de mapeamento de teclado SSH
- Relatórios e registros de acesso sobre o uso dessas chaves
Gostaria de assistir a uma demonstração deste serviço e ver em primeira mão o poder do senhasegura? Clique aqui.
Conclusão
Ao ler este artigo, você adquiriu conhecimento sobre as chaves SSH, bem como sua história e sua importância para a segurança cibernética. Se nosso conteúdo foi útil para você, compartilhe-o com outras pessoas que também possam se interessar pelo assunto.