Cibersegurança com Go - Parte I
A Segurança Informática ou Cibersegurança tornou-se uma preocupação crítica para indivíduos e organizações. A necessidade de desenvolver aplicações e ferramentas seguras, eficientes e confiáveis tem levado à busca constante por tecnologias que possam atender a esses requisitos.
Neste contexto, a linguagem de programação Go surgiu como uma opção promissora devido à sua combinação de simplicidade, desempenho e recursos de segurança integrados.
Go: uma breve descrição
Go teve uma rápida adoção em uma ampla variedade de campos, especialmente em segurança de TI. Graças à sua sintaxe clara e concisa, Go é um aliado acessível e amigável que acelera significativamente o processo de desenvolvimento.
Um elemento distintivo é o seu compilador, capaz de gerar binários altamente otimizados e eficientes, uma característica crítica na criação de aplicações de segurança que exigem respostas ágeis e uma ótima gestão de recursos.
Vantagens do Go em Cibersegurança
Desempenho e eficiência: No campo da segurança informática, a velocidade é essencial. Go oferece desempenho excepcional devido ao seu compilador altamente otimizado e à ausência de uma máquina virtual. Isto permite a criação de ferramentas capazes de analisar grandes volumes de dados em tempo real, identificando potenciais ameaças de forma eficiente.
Concorrência: Go adiciona goroutines e canais, facilitando a criação de programas simultâneos e paralelos. Isto é essencial em aplicações de segurança que devem lidar com múltiplas tarefas simultaneamente, como análise de tráfego de rede ou monitoramento de eventos.
Segurança Integrada: Go se esforça para evitar vulnerabilidades comuns, considerando aspectos de segurança em seu design. Por exemplo, seu forte sistema de digitação e manipulação de ponteiros ajudam a evitar erros de programação que podem levar a vulnerabilidades.
Bibliotecas Padrão: Go possui uma biblioteca padrão rica e bem documentada que inclui pacotes para criptografia, autenticação, comunicação segura e muito mais. Isso permite que os desenvolvedores de segurança criem aplicativos sólidos em bases confiáveis.
Casos de uso em segurança de computadores
Ferramentas de análise de vulnerabilidade: Go é usado para desenvolver ferramentas que verificam aplicativos em busca de vulnerabilidades potenciais, facilitando a detecção precoce e a correção.
Gosec
Gosec é uma ferramenta de análise estática de código (SAST) escrita em Go. Ela é usada para identificar possíveis problemas de segurança no código-fonte de aplicativos escritos em Go, como vulnerabilidades de injeção de SQL, problemas de autorização inadequada e muito mais.
Instalação do Gosec
Antes de começar, certifique-se de ter o Go instalado em seu sistema. Neste caso, deve-se destacar que é utilizado o sistema operacional Kali Linux. Então, você pode instalar o Gosec executando o seguinte comando em seu terminal:
Para verificar se o Gosec foi instalado com sucesso, digite o seguinte comando:
Com o exposto, verificamos que o Gosec já está instalado corretamente em nosso sistema.
Exemplo 1: Verificando um arquivo simples com Gosec
Criamos um arquivo de código Go chamado exemplo.go e, para uso de demonstração, adicionamos o seguinte conteúdo a ele:
Criamos um segundo arquivo chamado exemplo2.go e executamos o seguinte comando:
No primeiro exemplo, Gosec analisará o arquivo e mostrará quaisquer possíveis problemas de segurança que encontrar (como o armazenamento de senhas em texto simples), enquanto no segundo exemplo destacará a conexão de banco de dados não criptografada. Ressalta-se que o Gosec não recebe como argumento um arquivo, mas sim uma pasta, ou seja, neste caso foi utilizado o parâmetro ./; O que significa que estamos dizendo para ele fazer a varredura no caminho atual.
Ferramentas de enumeração em aplicações web e servidores com Go
Gobuster
No vasto cenário digital de aplicativos e servidores Web, muitas vezes surgem desafios na identificação de recursos ocultos ou diretórios confidenciais que podem ser explorados por invasores mal-intencionados. É aqui que entra o Gobuster, uma ferramenta que facilita a pesquisa abrangente de recursos, examinando o alvo selecionado com diferentes padrões e palavras-chave.
Características do Gobuster
Enumeração de diretório e arquivo: Gobuster é especializado em enumerar diretórios e arquivos para um alvo específico. Isto é essencial para identificar potenciais pontos de entrada que podem ser alvo de ataques.
Diversidade de Ataque: A ferramenta permite configurar vários modos de ataque, como força bruta baseada em dicionário, que testa combinações de palavras-chave predefinidas para encontrar recursos ocultos. Também é possível especificar o tamanho das palavras-chave, o que amplia ainda mais as possibilidades de descoberta.
Suporte a protocolo: Gobuster não se limita apenas a aplicativos da web. Ele pode funcionar com uma variedade de protocolos, incluindo HTTP, HTTPS, FTP e muito mais, expandindo seu escopo de enumeração em diversos contextos.
Personalização de Requisitos: A ferramenta permite personalizar critérios como extensão de arquivo, códigos de status HTTP específicos e tempo limite entre solicitações. Isso permite ajustar os resultados e reduzir o ruído na saída.
Uso prático do Gobuster em segurança de computadores
Exemplo 1. Descobrindo diretórios ocultos em um aplicativo Web com Gobuster
Digamos que você teste a segurança em um aplicativo Web no domínio http://testphp.vulnweb.com. Você deseja ter certeza de que não há diretórios ocultos ou recursos confidenciais que não sejam visíveis para usuários normais. Você pode usar o Gobuster para procurar diretórios que possam ter sido perdidos.
1- Instale Gobuster no Kali Linux com o seguinte comando:
2- Abra seu terminal e execute o seguinte comando para iniciar uma varredura com Gobuster:
no comando anterior:
- dir indica que você deseja executar uma varredura de diretório.
- -u http://testphp.vulnweb.com Especifique o URL de destino que você deseja verificar.
- -w /usr/share/wordlists/fasttrack.txt fornece o caminho para o arquivo de dicionário que Gobuster usará para teste. Um dicionário é uma lista de palavras-chave que o Gobuster tentará encontrar nos diretórios.
Gobuster começará a verificar o URL fornecido usando as palavras-chave do dicionário. Você verá que o Gobuster mostrará no terminal os diretórios que encontrar no servidor. Por exemplo, se o dicionário contiver palavras como admin, secret, backup, etc., Gobuster tentará acessar a diretórios como http://testphp.vulnweb.com/admin, etc.
Na imagem acima você pode ver os resultados da verificação. Gobuster mostrará os códigos de resposta HTTP para cada solicitação feita. Preste atenção aos códigos de resposta 200 (OK) e 301 (redirecionamento), pois podem indicar a presença de um diretório ou recurso oculto.
Neste contexto, a linguagem de programação Go surge como uma aliada confiável. Sua combinação de eficiência, simultaneidade e foco na segurança fazem dele uma ferramenta poderosa para o desenvolvimento de aplicações e ferramentas resilientes e ágeis. Go não apenas simplifica o processo de desenvolvimento, mas também aborda vulnerabilidades potenciais desde o design.
Até aqui abordamos alguns tópicos sobre o que é Go e quão eficiente é seu uso na segurança informática, além de alguns exercícios práticos focados do ponto de vista ético. Concluímos a primeira parte da Cibersegurança com Go.
Até logo!
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.