O que é um soquete bruto?
Um soquete de rede é um ponto de extremidade para troca de dados em uma rede. Pense em um soquete como um endereço físico: as informações que passam pela rede do computador são roteadas para um soquete específico no próprio computador. Um soquete bruto é um tipo de soquete de rede que permite que um aplicativo de software no computador envie e obtenha pacotes de informações da rede sem usar o sistema operacional do computador como intermediário. Em outras palavras, ele permite a comunicação direta entre um programa e uma fonte externa sem a intervenção do sistema operacional principal do computador.
A principal vantagem do uso da manipulação de rede de soquete bruto é que ele elimina o intermediário. Como o sistema operacional não trata os dados especificamente, reduz a sobrecarga na rede, economizando ciclos da unidade central de processamento (CPU) e diminuindo o estresse no hardware do sistema. Um soquete bruto fornece um túnel expresso entre um aplicativo e uma fonte externa. Nem o sistema operacional nem qualquer outro programa no computador tem a capacidade de interferir com uma conexão bruta.
As interfaces de rede de soquete bruto têm uma desvantagem. Apesar. Os hackers geralmente usam conexões brutas de soquete para organizar ataques de protocolo de controle de transmissão (TCP) em uma rede. Durante um ataque de TCP, um hacker envia um bit forjado de dados para a rede através de uma conexão de soquete bruto. Esses dados falsificados contêm um sinal de redefinição para a conexão TCP, que por sua vez interrompe e trava as conexões de rede atuais no computador.
Por esse motivo, alguns sistemas operacionais retiraram o suporte para soquetes brutos. A lógica para isso é que ela pode ajudar a garantir a segurança da rede. As empresas de software podem restringir a capacidade dos usuários de usar soquetes brutos empregando o que é chamado de "hotfix", uma atualização permanente para o sistema operacional. Essas atualizações não tiveram um impacto negativo significativo na experiência do usuário, porque os benefícios dos soquetes brutos diminuíram à medida que a tecnologia melhorou.
Para computadores modernos, a quantidade de processamento extra necessária para lidar com conexões de soquete regulares, em oposição aos soquetes brutos, é tão mínima que é amplamente irrelevante. Com os processadores modernos em variedades de duplo, quádruplo e até seis núcleos, as chances de conexões regulares de soquete de rede com atraso no computador são desprezíveis. Por esse motivo, a menos que haja uma justificativa específica para o uso de uma conexão de soquete bruto em um soquete de rede padrão, o risco representado por hackers e ataques TCP na rede superam quaisquer vantagens.