Sobre a Ferramenta
Esta ferramenta oferece uma visão detalhada do funcionamento interno de um site. O objetivo é ajudá-lo a descobrir potenciais vetores de ataque, analisar a arquitetura do servidor, visualizar configurações de segurança e aprender quais tecnologias um site está utilizando para que você possa entendê-lo, otimizá-lo e protegê-lo com mais facilidade.
Atualmente, o painel de controle (dashboard) exibe as seguintes informações:
- Informações de IP e localização do servidor
- Cadeia de certificados SSL
- Registros DNS e extensões de segurança DNS (DNSSEC)
- Cookies e Cabeçalhos (Headers)
- Informações do domínio (Whois)
- Regras de rastreamento (robots.txt) e mapa do site
- Redirecionamentos
- Portas abertas e Traceroute
- Desempenho do site e métricas de qualidade
- Rastreadores (Trackers) e tecnologias utilizadas
- Nomes de host associados
- Pegada de carbono
Demonstração: web-check.as93.net Código Fonte (Espelho): codeberg.org/alicia/web-check
Funcionalidades Detalhadas
Esta seção descreve as principais funcionalidades, explicando por que cada dado é útil e fornecendo links para aprender mais.
Informações de IP
- Descrição: Mostra o endereço IP (Protocolo de Internet) associado a um domínio. O IP é o rótulo numérico de cada dispositivo conectado à internet.
- Casos de Uso: Encontrar o IP é o primeiro passo para investigações mais profundas. Permite mapear a infraestrutura de rede, identificar a localização física do servidor, o serviço de hospedagem e até outros domínios hospedados no mesmo IP.
Cadeia SSL (SSL Chain)
- Descrição: Analisa os certificados SSL, que autenticam a identidade de um site e permitem a comunicação criptografada (HTTPS).
- Casos de Uso: Além de garantir a segurança, os certificados fornecem dados valiosos, como a autoridade emissora, o período de validade do domínio e detalhes da organização. É útil para verificar a autenticidade de um site e descobrir subdomínios associados.
- Nota para você: Como você usa o AutoSSL com Let’s Encrypt™ em seu WHM, esta seção é particularmente útil para verificar rapidamente se seus certificados foram emitidos e configurados corretamente em seus domínios.
Registros DNS (DNS Records)
- Descrição: Consulta os registros no Sistema de Nomes de Domínio (DNS), que traduz nomes de sites (como google.com) em endereços IP.
- Casos de Uso: Registros DNS revelam muita informação: registros A mostram os IPs do servidor, MX indicam o provedor de e-mail e TXT podem, por vezes, vazar informações administrativas internas.
Cookies
- Descrição: Examina os cookies HTTP que um site armazena no navegador do usuário. Eles guardam dados como preferências, informações de sessão e rastreamento.
- Casos de Uso: A análise de cookies pode revelar como o site gerencia sessões de usuários e quais ferramentas de análise (analytics) ou rastreamento ele utiliza, oferecendo insights sobre suas práticas de segurança e privacidade.
Regras de Rastreamento (Crawl Rules)
- Descrição: Analisa o arquivo robots.txt, que instrui robôs de mecanismos de busca (como o Googlebot) sobre quais páginas não devem ser rastreadas.
- Casos de Uso: Este arquivo pode acidentalmente revelar diretórios ou páginas que o proprietário do site não queria que fossem facilmente encontrados, como áreas administrativas ou de teste.
Cabeçalhos (Headers)
- Descrição: Extrai e interpreta os cabeçalhos HTTP enviados pelo servidor. Eles contêm diretivas importantes sobre como o navegador deve lidar com os dados, incluindo políticas de cache, tipos de conteúdo e configurações de segurança.
- Casos de Uso: Os cabeçalhos podem revelar a tecnologia do servidor (ex: Apache, Nginx), medidas de segurança implementadas e potenciais vulnerabilidades.
Localização do Servidor (Server Location)
- Descrição: Determina a localização física do servidor com base em seu endereço IP, mostrando-a em um mapa com informações como fuso horário e moeda local.
- Casos de Uso: Ajuda a otimizar a entrega de conteúdo, garantir conformidade com leis de residência de dados (como a GDPR) e identificar possíveis problemas de latência para usuários em diferentes regiões geográficas.
Portas Abertas (Open Ports)
- Descrição: Verifica quais portas de comunicação estão abertas no servidor. Cada porta corresponde a um serviço específico (ex: porta 80 para HTTP, 443 para HTTPS).
- Casos de Uso: Saber quais portas estão abertas informa sobre os serviços em execução no servidor, o que é útil para entender possíveis vulnerabilidades do sistema.
Traceroute
- Descrição: É uma ferramenta de diagnóstico que rastreia o caminho que um pacote de dados percorre do seu computador até o servidor do site, registrando cada “salto” (hop) entre roteadores.
- Casos de Uso: Ajuda a identificar gargalos na rede, possíveis censuras ou manipulações de tráfego e fornece uma visão geral da estrutura da rede que suporta o site.
Pilha de Tecnologias (Tech Stack)
- Descrição: Identifica as tecnologias com as quais um site foi construído (ex: WordPress, React, Nginx). Isso é feito analisando o código do site em busca de “impressões digitais” deixadas por diferentes tecnologias.
- Casos de Uso: Ajuda a avaliar a segurança de um site (ao expor vulnerabilidades conhecidas em certas tecnologias), informa análises competitivas e orienta estratégias de marketing personalizadas.
Detecção de Firewall (Firewall Detection)
- Descrição: Verifica se um site está protegido por um WAF (Web Application Firewall), que filtra o tráfego HTTP para se proteger contra ataques comuns como XSS e injeção de SQL.
- Casos de Uso: Saber se um site usa um WAF e qual software ele utiliza fornece uma visão sobre sua proteção contra vários vetores de ataque, mas também pode revelar vulnerabilidades no próprio firewall.
Outras Funcionalidades
- Métricas de Qualidade: Usa o Lighthouse do Google para medir desempenho, acessibilidade, SEO e boas práticas.
- Hosts Associados: Lista todos os domínios e subdomínios associados ao domínio principal.
- Cadeia de Redirecionamento: Rastreia a sequência de redirecionamentos de uma URL até seu destino final.
- Pegada de Carbono: Estima a emissão de carbono do site com base na transferência de dados e no consumo de energia do servidor.
- Informações do Domínio (Whois): Recupera registros Whois, que podem conter informações de contato do registrante do domínio, datas de criação e expiração.
- Extensões de Segurança DNS (DNSSEC): Verifica se o DNS está protegido contra falsificação, o que poderia levar usuários a sites de phishing.
- Segurança de E-mail (SPF, DKIM, DMARC): Avalia a configuração de segurança de e-mail do domínio para prevenir spoofing e phishing.
- Recursos de Segurança HTTP: Verifica se cabeçalhos de segurança importantes como HSTS e CSP estão configurados corretamente.
- Histórico de Arquivo: Busca o histórico completo de capturas do site no serviço Wayback Machine.
Como Usar a Ferramenta
Implantação (Deployment)
Você pode implantar sua própria instância da ferramenta de várias maneiras:
- Opção 1 e 2: Netlify ou Vercel
- Clique nos botões de implantação no repositório original para uma configuração automática.
- Opção 3: Docker
- Execute o comando docker run -p 3000:3000 lissy93/web-check e acesse localhost:3000 no seu navegador.
- Opção 4: A partir do Código-Fonte
- Clone o repositório: git clone https://github.com/Lissy93/web-check.git
- Entre no diretório: cd web-check
- Instale as dependências: yarn install
- Compile o aplicativo: yarn build
- Inicie o servidor: yarn serve
Configuração
Por padrão, nenhuma configuração é necessária. No entanto, você pode definir variáveis de ambiente opcionais para habilitar verificações adicionais ou aumentar os limites de uso de algumas APIs externas.
Chaves de API (Opcionais):
- GOOGLE_CLOUD_API_KEY: Para métricas de qualidade do site.
- REACT_APP_SHODAN_API_KEY: Para exibir nomes de host associados a um domínio.
- REACT_APP_WHO_API_KEY: Para obter registros WhoIs mais completos.
- E outras para serviços como Security Trails, Cloudmersive, etc.
Você pode adicionar essas chaves em um arquivo .env na raiz do projeto ou através da interface do seu serviço de hospedagem (Netlify, Vercel, Docker).
Método 1: Implantação com Docker (Recomendado)
Este método é o mais simples, pois o Docker isola a aplicação e todas as suas dependências em um contêiner, evitando conflitos com outros softwares no seu servidor.
Pré-requisitos:
- Um servidor Ubuntu (versão 20.04 ou mais recente é ideal).
- Acesso ao terminal com privilégios
sudo.
Passo 1: Atualizar o Sistema Sempre comece atualizando a lista de pacotes e os pacotes já instalados.
Bash
sudo apt update && sudo apt upgrade -y
Passo 2: Instalar o Docker Se você ainda não tem o Docker instalado, execute os comandos abaixo para instalar a versão oficial.
Bash
# Instala pacotes necessários para adicionar o repositório do Docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
# Adiciona a chave GPG oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Adiciona o repositório do Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instala o Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
# Adiciona seu usuário ao grupo do Docker para não precisar usar 'sudo'
sudo usermod -aG docker ${USER}
# Para aplicar a alteração, saia e entre novamente no servidor ou execute:
newgrp docker
Passo 3: Baixar e Executar o Contêiner Web-Check Agora, com o Docker pronto, você pode executar a aplicação com um único comando.
Bash
docker run -d -p 3000:3000 --name web-check --restart always lissy93/web-check
Vamos entender o comando:
docker run: Inicia um contêiner.-d: Roda em modo “detached” (em segundo plano).-p 3000:3000: Mapeia a porta 3000 do seu servidor para a porta 3000 dentro do contêiner.--name web-check: Dá um nome fácil de lembrar ao seu contêiner.--restart always: Garante que a aplicação reinicie automaticamente se o servidor for reiniciado.lissy93/web-check: É a imagem Docker oficial da aplicação.
Passo 4: Acessar a Aplicação Pronto! A ferramenta já está rodando. Abra seu navegador e acesse: http://SEU_ENDERECO_IP_DO_SERVIDOR:3000
Comunidade
- Contribuições: Contribuições de qualquer tipo são bem-vindas. Se você deseja ajudar, pode criar um “fork” do repositório, fazer suas alterações e abrir um “pull request”.
- Relatar Bugs: Se encontrar um problema ou tiver uma sugestão, abra um “issue” no GitHub.
- Apoio: O aplicativo é gratuito e de código aberto. Os custos de hospedagem da instância pública são mantidos pela comunidade. Se desejar, você pode apoiar o projeto através do GitHub Sponsorship.
