SSH e RDP: Soluções e vulnerabilidades de acesso remoto.

O acesso remoto aumentou em uso nos últimos meses. Vemos um aumento no uso do Remote Desktop Protocol (RDP) e do Secure Shell (SSH) nos principais usos em vários campos e indústrias. No entanto, juntamente com o aumento do Acesso Remoto, também vemos a exposição de vulnerabilidades. 

Sempre que ocorre uma conexão de acesso remoto, ela precisa manter bases de segurança sólidas para mitigar os riscos e permitir uma conexão segura entre o usuário e a estação de trabalho ou servidor. 

Um fator de acesso remoto a ser levado em consideração é a autenticação dos usuários. Ao conceder aos usuários acesso específico de qualquer lugar do mundo, a conexão precisa ser protegida para não expor ou explorar recursos vulneráveis dentro de sua organização. Outro fator é a segurança do endpoint. Estudos recentes mostram um aumento de 127% na segurança de endpoints RDP, onde endpoints RDP não seguros são o principal alvo nos serviços online.

Esteja você usando RDP ou SSH, seu procedimento precisa ser seguro. Para compreender uma solução, devemos primeiro entender o que são esses protocolos e como eles funcionam. A partir daí, podemos identificar vulnerabilidades e criar uma solução adaptável para a infraestrutura específica utilizada em sua empresa.

O que é SSH?

O protocolo Secure Shell ou simplesmente SSH executa serviços de rede seguros em redes inseguras. O SSH é o protocolo a ser executado como um aplicativo no topo da camada TCP/IP e implementado por meio de aplicativos cliente e servidor separados, permitindo autenticação e negociação de protocolos antes de estabelecer uma conexão segura. SSH, em essência, fornece:

  • Autenticação criptográfica de host;
  • Autenticação de usuário;
  • Criptografia forte;
  • Proteção sólida da integridade dos dados;
  • Multitunelamento de canais de dados.

O SSH pode ser usado para logins remotos seguros, execução de comandos remotos seguros e transferência de arquivos remotas seguras com esses recursos. Além de controle de chave criptográfica, encaminhamento de porta TCP e agentes de autenticação, com vários outros componentes de compressão de dados e controle de acesso.

SSH em partes – Como funciona?

Neste exemplo, mostraremos como funciona a autenticação e criptografia do protocolo SSH.

Passo 1

O host do cliente se conecta aos hosts do servidor. Durante a troca, ambas as versões do protocolo de troca são suportadas.

Passo 2

O Servidor envia as informações de autenticação e os parâmetros de sessão para o Cliente; isso inclui os componentes de chave pública do Servidor de pares de chaves públicas e privadas e uma lista de modos de criptografia, compactação e autenticação que o Servidor suporta.

Passo 3

O host do cliente verifica a chave pública do servidor em relação à chave do cliente que ele possui na biblioteca de chaves públicas. Após identificar o Servidor, a chave de sessão secreta é gerada.

Passo 4

Uma vez que a chave de sessão secreta está no servidor e no host do cliente, a criptografia e a verificação de integridade são habilitadas durante este estágio.

Passo 5

O host do cliente e o usuário agora podem ser autenticados no host do servidor sem interceptação da transmissão entre os dois. Após a autenticação, o acesso apropriado ao Servidor é concedido ao usuário, e as duas máquinas são conectadas sob uma conexão segura e criptografada. Habilitando um túnel seguro para transmissões através do gateway de internet.

Passo 6

A conexão é estabelecida.


O que é RDP?

O protocolo de área de trabalho remota (Remote Desktop Protocol – RDP) é usado no sistema operacional Windows, para acessar servidores físicos ou virtuais. Ao contrário do SSH, o RDP possui uma interface gráfica de usuário. O RDP foi projetado para se conectar pela rede a outra máquina. Sua funcionalidade é transmitir dados do dispositivo de saída, por exemplo, monitor de tela/display, mouse e logs de teclado, para o dispositivo de entrada (máquina local).

RDP em partes – Como funciona?

A pilha de protocolos RDP consiste em ISO Transport Serice (TKPT), Connection-Oriented Transport Protocol (X.224) e o Multipoint Communication Service (T.125 MCS). O TPKT permite a troca de unidades de informação, enquanto o X.224 fornece o serviço de transporte em modo de conexão usado na solicitação de conexão inicial e na resposta dentro do RDP. O processo de envio e recebimento é bastante semelhante ao do modelo OSI de sete camadas, onde vemos os dados de um aplicativo ou serviço sendo transmitidos e passados pela pilha de protocolos.

A conexão RDP passa por várias etapas entre o Cliente e o Servidor. Aqui está um pequeno exemplo detalhado de como a conexão ocorre:

  1. Conexão – Ocorre usando a PDU de solicitação de conexão X.224 (unidade de dados de protocolo). O Cliente envia uma solicitação de conexão X.224 ao Servidor onde o pacote enviado contém a Solicitação de Negociação RDP e os protocolos de segurança que o Cliente suporta, ou seja, criptografia RSA RC4, TLS, RDSTLS ou CredSSP. Uma vez que o Servidor confirma a conexão, ele escolhe o protocolo de segurança da seleção de protocolo do Cliente. Todos os dados subsequentes são agrupados em PDU de dados X.224 a partir deste ponto.
  1. Troca de configurações básicas– Após a conexão com o Servidor, ocorre uma troca de configurações básicas entre o Cliente e o Servidor usando o MSC Connect Initial e o Connect Response PDU. Informações como dados principais, dados de segurança e dados de rede se enquadram na categoria de configurações básicas.

Dados principais – Versão do RDP, informações do teclado, nome do host, informações do software cliente, resolução da área de trabalho, etc.

Dados de segurança – métodos de criptografia, tamanho das chaves de sessão, certificado do servidor e servidor aleatório para criação de chave de sessão.

Dados de rede – contém informações sobre os canais virtuais alocados e os canais solicitados, juntamente com detalhes do tipo de solicitação, IDs, respostas, etc.

  1. Conexão de Canal – Uma vez que as configurações básicas foram trocadas e uma lista de canais virtuais foi estabelecida, a etapa seguinte garante que todos os canais sejam conectados.

Solicitação de Erect Domain do MCS

MCS Anexar Solicitação de Usuário

Confirmação de usuário anexado ao MCS

Solicitação e Confirmações de Ingresso no Canal MSC

  1. Início da Segurança

O estágio de início de segurança inicia a PDU do Security Exchange, que contém a chave pública criptografada aleatória do Cliente com o Servidor. Ambos usam números aleatórios para criar chaves de sessão criptografadas, em que o tráfego RDP subsequente pode ser criptografado em etapas adicionais.

  1. Troca de configurações de segurança

Permite que os dados criptografados da PDU de informações do cliente sejam enviados do cliente para o servidor. Os dados consistem em domínio de usuário, nome de usuário, senha, diretório de trabalho, tipos de compactação, etc.

  1. Licenciamento

O estágio de licenciamento permite que usuários autorizados se conectem ao servidor de terminal.

  1. Troca de Capacidades

O Servidor envia o Demand Active PDU onde os recursos suportados são enviados ao Cliente. Isso geralmente abrange a versão do sistema operacional, entrada de compactação, codecs de bitmap, canais virtuais, etc. Em seguida, o servidor pode enviar uma PDU de layout de monitor para entender os monitores de exibição no servidor. Nesta fase, o Cliente responde com um Confirm Active PDU.

  1. Finalização da Conexão

A penúltima etapa finaliza a conexão entre o Cliente e o Servidor. Nesta fase, o Cliente envia PDUs específicas para o Servidor e vice-versa.

Os seguintes PDUS são:

PDU de sincronização cliente/servidor – sincroniza identificadores de usuário entre cliente e servidor

PDU de controle cliente/servidor: envie a seguinte PDU para indicar o controle compartilhado sobre uma sessão.

PDU de Controle de Cliente (request/grant Control): O Cliente envia uma solicitação de controle enquanto o Servidor concede a solicitação.

Lista de Chaves Persistentes PDUs/PDUs: um estágio opcional onde o Cliente envia uma lista de chaves, cada uma identificando o bitmap em cache, permitindo mais saída gráfica do Servidor para o Cliente.

  1. Troca de dados

Após todas as etapas e trocas de PDUs, os dados primários são enviados entre o Cliente e o Servidor, onde o Servidor fará a entrada de dados e dados gráficos. A conexão RDP agora está pronta para ser usada pelo usuário final.


SSH e RDP: comparação, segurança e vulnerabilidade

Como agora entendemos como o RDP e o SSH funcionam, vamos nos concentrar na segurança e vulnerabilidade dos dois protocolos.

Tanto o RDP quanto o SSH são usados ​​para obter acesso remoto a uma máquina específica. Agora sabemos que podemos usar RDP e SSH para conectar com segurança a uma infraestrutura local e servidores baseados em nuvem. Embora sejam bastante semelhantes, existem diferenças fundamentais entre eles. O SSH é considerado mais seguro porque não requer ferramentas adicionais, como uma rede privada virtual (VPN) ou autenticação multifator (MFA), como o RDP. Além disso, o SSH é operado dentro do terminal, tornando difícil para o pessoal que não é de TI realizar operações com o SSH. Enquanto o RDP é baseado em uma interface gráfica de usuário (GUI), permitindo uso e operações mais fáceis para qualquer iniciante. Apesar das diferenças, ambos ainda possuem vulnerabilidades aumentando o risco de exploração. Escolher o método de conexão correto é crucial para qualquer organização e entender essas vulnerabilidades ajuda a proteger sua organização contra ameaças cibernéticas e mitigar riscos futuros.

SSH e RDP: Vulnerabilidade e exposições comuns

CVE-2019-0708: Habilitada a execução remota de código dentro do protocolo RDP. Um ataque não autenticado pode se conectar ao sistema de destino usando RDP e enviar solicitações criadas. Permitindo que o ataque execute código arbitrário no sistema alvo.

CVE-2021-34718: Encontrado no processo SSH Server no software Cisco IOS XR, permite que um usuário autenticado sobrescreva e leia arquivos arbitrários no dispositivo local. Com base nos argumentos de validação insuficientes. Um ataque com privilégios de nível inferior pode elevar seus privilégios e recuperar e fazer upload de arquivos no dispositivo quando explorado com êxito.

Embora esta seja apenas a superfície das vulnerabilidades para RDP e SSH, algumas ferramentas ajudam a evitar ataques de protocolos expostos ou vulneráveis. Soluções/ferramentas como o Privileged Access Management (PAM) ajudam a estabelecer uma conexão segura com os protocolos RDP e SSH e auxiliam na prevenção de ataques com base na exposição do protocolo com um ambiente de grade para recursos valiosos dentro das organizações. Suponha que uma vulnerabilidade de protocolo seja encontrada com base em políticas e acesso do usuário definido pelo PAM. O invasor não poderá se mover lateralmente na infraestrutura da empresa ou alterar quaisquer dados do sistema. As soluções PAM são ótimas para usuários privilegiados e não privilegiados e ajudam a proteger seus administradores, evitando qualquer violação de dados ou uso indevido de acesso.


cta 2