
A ideia surgiu da necessidade de ter algo mais direto, leve e adaptado ao meu fluxo de trabalho, sem depender de ferramentas pesadas ou complexas demais para o que eu precisava.
O GoFence nasceu como um projeto pessoal para aprender mais sobre segurança ofensiva, programação em Go e construção de ferramentas práticas que eu pudesse usar nos meus próprios testes e estudos.
Por que criar uma ferramenta própria
Existem muitas ferramentas de pentest open source disponíveis, como Nmap, OWASP ZAP, Metasploit e outras. Porém, eu queria algo que fosse:
- Leve: rodando como um binário único, sem dependências externas.
- Rápido: aproveitando a concorrência do Go com goroutines.
- Simples: focado em tarefas específicas, sem excesso de funcionalidades.
- Educacional: um projeto para aprender mais sobre protocolos, redes e segurança.
Além disso, criar minha própria ferramenta me permitiu entender melhor como funcionam scanners, testes de vulnerabilidade e automação de tarefas de segurança.
O que o GoFence faz
O GoFence foi pensado para atuar como uma ferramenta de apoio em testes de segurança. Entre as funcionalidades que implementei ou planejo implementar estão:
- Varredura de portas: scanner TCP concorrente usando goroutines para identificar serviços expostos.
- Mapeamento de hosts: testes de conectividade e identificação de máquinas ativas na rede.
- Análise de headers HTTP: verificação de cabeçalhos de segurança em aplicações web.
- Busca de diretórios: brute-force de paths comuns em servidores web.
- Relatórios simples: saída em texto ou JSON para facilitar a integração com outros scripts.
A ideia não é competir com ferramentas consolidadas, mas oferecer algo ágil para testes rápidos e aprendizado.
Por que Go
Escolhi Go como linguagem principal por vários motivos:
- Binário único: fácil de distribuir e executar em diferentes sistemas.
- Concorrência nativa: goroutines e channels tornam simples criar scanners rápidos.
- Biblioteca padrão robusta: dá para trabalhar com TCP, HTTP e ICMP sem depender de pacotes externos.
- Performance: Go é rápido o suficiente para tarefas de rede e segurança.
Além disso, trabalhar com Go me ajudou a entender melhor conceitos como concorrência, tratamento de erros e construção de ferramentas CLI.
Aprendizados no desenvolvimento
Criar o GoFence me ensinou bastante sobre:
- Protocolos de rede: implementar scanners e testes me obrigou a estudar TCP, HTTP e ICMP de forma prática.
- Segurança ofensiva: entender como ferramentas de pentest funcionam por baixo do capô.
- Boas práticas: lidar com limites de taxa, evitar esgotamento de sockets e tratar erros de forma adequada.
- Ética: reforçar que a ferramenta deve ser usada apenas em ambientes autorizados e para fins educacionais.
Também foi uma oportunidade para aplicar conceitos de programação que venho estudando, como estruturas de dados, tratamento de erros e organização de código.
Próximos passos
Tenho algumas ideias para evoluir o GoFence, como:
- Adicionar mais módulos de teste.
- Melhorar a saída de relatórios.
- Criar uma documentação mais completa.
- Possivelmente abrir o código no GitHub para compartilhar com outras pessoas interessadas.
A ideia é continuar desenvolvendo a ferramenta aos poucos, sempre focando em aprendizado e utilidade prática.
Conclusão
O GoFence representa mais do que apenas uma ferramenta de pentest. É um projeto que combina meus interesses em programação, segurança e Linux, e me permite aprender na prática como funcionam muitas das ferramentas que uso no dia a dia.
Mais do que o resultado final, o processo de criar algo do zero tem sido extremamente valioso para meu crescimento como desenvolvedor e entusiasta de segurança.


