2

Honeypots em Redes Internas: Como Criar Portas Falsas para Detectar Varreduras e Movimentação Lateral

Fala pessoal!

A maior parte dos artigos de segurança foca em proteger o perímetro externo: configurar firewall, fechar portas do roteador e colocar autenticação em dois fatores.

Mas tem um problema gravíssimo que quase ninguém monitora: e quando o perigo já está dentro da rede local?

Hoje em dia, qualquer casa ou escritório tem dezenas de aparelhos conectados: lâmpadas inteligentes, TV boxes genéricas, câmeras IP, aspiradores-robô e smart TVs. Muitos desses aparelhos rodam versões antigas do Android ou firmwares Linux fechados que vêm com malwares pré-instalados de fábrica, buscando ativamente outros computadores na rede para minerar cripto ou roubar arquivos de compartilhamento SMB.

Uma das técnicas mais eficazes e baratas para pegar isso no pulo é o Honeypot Interno.

O que é e como funciona?

Diferente de um honeypot exposto para a internet, um honeypot interno roda dentro da sua sub-rede privada (ex: 192.168.1.100) e abre portas falsas de serviços que ninguém deveria acessar no uso comum da casa (portas 21 de FTP, 23 de Telnet ou 445 de SMB do Windows).

Como nenhum dispositivo normal tem motivo para tentar conectar no Telnet do seu servidor de arquivos, se qualquer pacote bater nessa porta, você sabe com 100% de precisão que tem algum aparelho fazendo scan na sua LAN.

Script mínimo em Python (asyncio):

import asyncio

PORTS = {
    21: b"220 ProFTPD 1.3.5 Server\r\n",
    23: b"Login: ",
    445: b"\x00\x00\x00\x2f\xff\x53\x4d\x42"
}

async def handle_connection(reader, writer, port, banner):
    client_ip, _ = writer.get_extra_info('peername')
    print(f"🚨 [ALERTA] Varredura detectada vinda de {client_ip} na porta {port}!")
    writer.write(banner)
    await writer.drain()
    writer.close()

async def main():
    servers = [
        await asyncio.start_server(
            lambda r, w, p=port, b=banner: handle_connection(r, w, p, b),
            '0.0.0.0', port
        ) for port, banner in PORTS.items()
    ]
    await asyncio.gather(*[s.serve_forever() for s in servers])

asyncio.run(main())

Escrevi o artigo completo com técnicas de isolamento em VLANs e mitigação de tráfego lateral lá no meu blog:

👉 Tutorial Completo no Vexis Sentinel

Vocês já pegaram algum dispositivo IoT estranho fazendo barulho na rede interna de vocês? Como costumam isolar esses aparelhos?

Carregando publicação patrocinada...