Protocolo Berkeley · Manual OSINT para Investigação Defensiva
PROTOCOLO
BERKELEY
OSINT
Manual prático de coleta, preservação e análise de evidências digitais em fontes abertas (OSINT) para uso em investigação defensiva, conforme os padrões metodológicos do Protocolo de Berkeley das Nações Unidas.
O PROTOCOLO BERKELEY
O Protocolo de Berkeley sobre Investigações em Fontes Abertas (OSINT) foi desenvolvido pelo Human Rights Center da Universidade da Califórnia, Berkeley, em colaboração com o Escritório das Nações Unidas para os Direitos Humanos (OHCHR). Publicado em 2022, é o primeiro framework internacional de padrões metodológicos para investigações digitais em código aberto com validade jurídica.
Destinado originalmente a investigadores de direitos humanos e promotores internacionais, o protocolo é amplamente adotado na investigação defensiva — processo pelo qual a defesa jurídica coleta evidências digitais de maneira independente, verificável e admissível em juízo.
Princípios Fundamentais
Toda coleta deve respeitar leis nacionais, LGPD/GDPR e não violar direitos fundamentais. Fontes abertas apenas.
Evidências não devem ser alteradas após a coleta. Hash criptográfico obrigatório (SHA-256 ou superior).
Registre cada etapa: quem coletou, quando, como, de onde. Metadados completos e auditáveis.
Cruzamento de fontes múltiplas. Toda afirmação factual deve ter pelo menos dois corroboradores independentes.
Conteúdo online é volátil. Capture, arquive e calcule hash antes de qualquer análise.
Proteja investigadores e sujeitos vulneráveis. Use VPN, Tor e ambientes isolados conforme o risco.
Cadeia de Custódia Digital
A cadeia de custódia assegura que as evidências não foram adulteradas entre a coleta e sua apresentação. No contexto OSINT, segue este fluxo:
Documentação de Evidências — Ficha Padrão
| Campo | Descrição | Exemplo |
|---|---|---|
ID_EVIDENCIA | Identificador único sequencial | EV-2024-001 |
URL_FONTE | URL exata da fonte original | https://… |
DATA_CAPTURA | ISO 8601 com fuso horário UTC | 2024-06-15T14:32:00Z |
COLETOR | Nome completo + credencial | Dra. Ana Silva, OAB/SP 12345 |
METODO | Ferramenta e versão usada | Sherlock v0.14.3 |
HASH_SHA256 | Hash do arquivo capturado | a3f5…d1b9 |
ARQUIVO | Caminho/nome do arquivo salvo | ev001_print.png |
OBSERVACOES | Contexto relevante | Perfil ativo em 15/06/24 |
Gerando Hash de Verificação
# Gera hash SHA-256 de um arquivo de evidência sha256sum evidencia.png # Armazena o hash em arquivo de registro sha256sum evidencia.png >> registro_hashes.txt # Verifica integridade posterior sha256sum -c registro_hashes.txt # Gera hash de diretório completo (Python) find ./evidencias -type f -exec sha256sum {} \; > hashes_completo.txt
ARSENAL OSINT
Estas ferramentas são usadas em investigação defensiva para levantamento de informações em fontes públicas e abertas. Todas são open-source e executáveis no terminal do Google Cloud Console.
TUTORIAL SHERLOCK
Sherlock é uma ferramenta Python que rastreia um nome de usuário em mais de 400 sites e redes sociais, retornando quais perfis existem com aquele identificador. É a ferramenta OSINT mais usada para correlação de identidades digitais.
Instalação no Google Cloud Shell
# Instala dependências de sistema sudo apt-get update && sudo apt-get install -y python3-pip git # Clona o repositório oficial git clone https://github.com/sherlock-project/sherlock.git cd sherlock # Instala dependências Python pip3 install -r requirements.txt # Verifica instalação python3 sherlock --version
Uso Básico
# Busca simples por nome de usuário python3 sherlock usuario_alvo # Busca múltiplos usuários de uma vez python3 sherlock usuario1 usuario2 usuario3 # Salva resultado em arquivo .txt python3 sherlock usuario_alvo --output resultado.txt # Salva em CSV para análise posterior python3 sherlock usuario_alvo --csv # Exibe apenas contas encontradas (sem erros) python3 sherlock usuario_alvo --print-found
Opções Avançadas para Investigação
# Usar via proxy Tor (anonimização) python3 sherlock usuario_alvo --tor # Usar proxy HTTP/SOCKS específico python3 sherlock usuario_alvo \ --proxy socks5://127.0.0.1:9050 # Timeout customizado (segundos) python3 sherlock usuario_alvo --timeout 15 # Busca em site específico apenas python3 sherlock usuario_alvo --site GitHub # Saída em formato JSON estruturado python3 sherlock usuario_alvo --json resultado.json # Modo verboso (debug detalhado) python3 sherlock usuario_alvo --verbose # Pipeline completo para investigação defensiva ALVO="nome_usuario" PASTA="evidencias/sherlock_${ALVO}_$(date +%Y%m%d_%H%M%S)" mkdir -p $PASTA python3 sherlock $ALVO \ --output $PASTA/resultado.txt \ --csv \ --print-found \ --timeout 20 # Gera hash de integridade sha256sum $PASTA/* > $PASTA/hashes.txt echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Coleta Sherlock - $ALVO" >> registro.log
Interpretando Resultados
| Status | Cor / Símbolo | Significado | Ação |
|---|---|---|---|
[+] | Verde | Conta encontrada | Documentar + capturar screenshot |
[-] | Vermelho | Conta não encontrada | Registrar ausência (negativo relevante) |
[E] | Amarelo | Erro de conexão/timeout | Reexecutar ou verificar manualmente |
TUTORIAL MAIGRET
Maigret é um fork avançado do Sherlock que oferece relatórios em HTML/PDF, suporte a mais de 3.000 sites, sistema de tags por categoria, análise de dados pessoais e correlação de identidades. O nome é uma homenagem ao detetive fictício Jules Maigret, de Georges Simenon.
Instalação
# Via pip (recomendado) pip3 install maigret # Via repositório (versão mais recente) git clone https://github.com/soxoj/maigret.git cd maigret pip3 install -r requirements.txt # Verifica instalação maigret --version
Uso Básico e Relatórios
# Busca básica maigret usuario_alvo # Gera relatório HTML (visualização rica) maigret usuario_alvo --html # Gera relatório PDF maigret usuario_alvo --pdf # Gera relatório CSV maigret usuario_alvo --csv # Todos os formatos de uma vez (recomendado para dossiê) maigret usuario_alvo --html --pdf --csv --json # Especifica pasta de saída maigret usuario_alvo \ --html --pdf \ --folderoutput ./relatorios/alvo_$(date +%Y%m%d)
Busca por Tags e Categorias
# Busca apenas em redes sociais maigret usuario_alvo --tags social # Apenas fóruns e comunidades maigret usuario_alvo --tags forum # Plataformas de pagamento e finanças maigret usuario_alvo --tags financial # Sites de programação/tech maigret usuario_alvo --tags developer # Múltiplas tags maigret usuario_alvo --tags social,gaming # Lista todas as tags disponíveis maigret --list-tags
Análise de Dados Pessoais e Correlação
# Extrai dados pessoais encontrados nos perfis maigret usuario_alvo --parse # Modo recon: extrai dados de IDs adicionais # (recursão — busca usernames alternativos encontrados) maigret usuario_alvo --recon # Busca a partir de número de ID em site específico maigret --id 123456789 --site Twitter # Pipeline completo para investigação defensiva ALVO="usuario_alvo" PASTA="./dossiê_${ALVO}_$(date +%Y%m%d_%H%M%S)" mkdir -p $PASTA maigret $ALVO \ --html --pdf --csv --json \ --parse \ --timeout 30 \ --folderoutput $PASTA # Registra metadados da coleta echo "Alvo: $ALVO" > $PASTA/metadata.txt echo "Data: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> $PASTA/metadata.txt echo "Operador: $(whoami)" >> $PASTA/metadata.txt # Gera hashes de todos os arquivos find $PASTA -type f -exec sha256sum {} \; > $PASTA/hashes.txt
Opções de Anonimização
# Via proxy HTTP maigret usuario_alvo \ --proxy http://proxy.servidor.com:8080 # Via Tor (requer Tor rodando na porta 9050) maigret usuario_alvo \ --proxy socks5://127.0.0.1:9050 # Instala e inicia Tor (no Cloud Shell) sudo apt-get install tor -y sudo service tor start maigret usuario_alvo --proxy socks5://127.0.0.1:9050
GHUNT E OUTRAS FERRAMENTAS
GHunt é uma ferramenta de reconhecimento focada em contas Google. A partir de um endereço Gmail, é possível extrair informações públicas como nome, foto de perfil, Google Maps, YouTube, review de apps e muito mais.
Instalação do GHunt
# Clona repositório git clone https://github.com/mxrch/GHunt.git cd GHunt # Cria ambiente virtual (recomendado) python3 -m venv venv source venv/bin/activate # Instala dependências pip install -r requirements.txt # Login (abre navegador para autenticar conta Google "isca") python3 ghunt.py login
Reconhecimento via Email
# Reconhecimento básico por Gmail python3 ghunt.py email alvo@gmail.com # Salva resultado em JSON python3 ghunt.py email alvo@gmail.com \ --json resultado_ghunt.json # Analisa documento Google Drive público python3 ghunt.py doc \ https://docs.google.com/document/d/ID_DOCUMENTO/ # Analisa Google Drive python3 ghunt.py drive ID_DO_DRIVE
Informações Coletáveis pelo GHunt
| Categoria | Dados Disponíveis |
|---|---|
| Perfil | Nome, foto, ID Google, último acesso (aproximado) |
| Google Maps | Reviews de locais, fotos publicadas, listas criadas |
| YouTube | Canal vinculado, playlists públicas, comentários |
| Play Store | Apps avaliados, reviews publicadas |
| Calendário | Eventos públicos (quando configurado pelo usuário) |
| Dispositivos | Tipo de dispositivo (Android) em alguns casos |
theHarvester — Coleta de Emails e Infraestrutura
# Instalação git clone https://github.com/laramies/theHarvester.git cd theHarvester && pip3 install -r requirements/base.txt # Coleta emails e subdomínios de um domínio python3 theHarvester.py -d exemplo.com.br -b all # Usar fonte específica (google, bing, linkedin…) python3 theHarvester.py -d exemplo.com.br -b google # Limitar resultados python3 theHarvester.py -d exemplo.com.br -b bing -l 200 # Salvar em HTML e XML python3 theHarvester.py -d exemplo.com.br -b all \ -f relatorio_harvester
ExifTool — Análise de Metadados de Imagens
# Instalação no Cloud Shell sudo apt-get install libimage-exiftool-perl -y # Exibir todos os metadados de uma imagem exiftool imagem.jpg # Extrair apenas GPS (localização) exiftool -GPSLatitude -GPSLongitude -GPSAltitude imagem.jpg # Exportar metadados como JSON exiftool -json imagem.jpg > metadados.json # Processar pasta inteira de imagens exiftool -json ./imagens/ > metadados_lote.json # Campos mais relevantes para investigação exiftool -DateTimeOriginal -Make -Model \ -GPSLatitude -GPSLongitude \ -Software -Artist imagem.jpg
Wayback Machine — Recuperar Conteúdo Deletado
# Lista capturas de uma URL (API CDX) curl "http://web.archive.org/cdx/search/cdx?\ url=exemplo.com.br&output=json&limit=20" # Download de snapshot específico curl -o pagina_arquivada.html \ "https://web.archive.org/web/20230101120000*/\ https://exemplo.com.br/pagina" # Script Python para listar todas as capturas python3 - <<'EOF' import requests, json url = "http://web.archive.org/cdx/search/cdx" params = { "url": "exemplo.com.br", "output": "json", "limit": 50, "fl": "timestamp,original,statuscode" } r = requests.get(url, params=params) capturas = r.json() for c in capturas[1:]: # pula header print(f"{c[0]} | {c[2]} | {c[1]}") EOF
GOOGLE CLOUD CONSOLE
O Google Cloud Console oferece, via console.cloud.google.com, um ambiente Linux completo através do Cloud Shell — terminal gratuito com 5 GB de armazenamento persistente, Python 3, pip, git e ferramentas GNU pré-instaladas. É ideal para investigações OSINT, pois não requer infraestrutura local.
Configuração Inicial do Ambiente OSINT
-
Acesse o Cloud ShellAbra console.cloud.google.com → clique no ícone de terminal
>_no canto superior direito. O Cloud Shell abre em uma VM Debian dedicada. -
Execute o script de configuração do ambienteCole o bloco abaixo para instalar todas as ferramentas de uma vez:
#!/bin/bash
# OSINT Lab Setup — Google Cloud Shell
# Protocolo Berkeley · Investigação Defensiva
set -e
echo "⚙ Atualizando pacotes..."
sudo apt-get update -q
echo "📦 Instalando dependências de sistema..."
sudo apt-get install -y -q \
python3-pip python3-venv \
git curl wget jq \
libimage-exiftool-perl \
tor \
whois dnsutils
echo "📁 Criando estrutura de diretórios..."
mkdir -p ~/osint_lab/{sherlock,maigret,ghunt,theharvester,evidencias,relatorios}
cd ~/osint_lab
echo "🔎 Instalando Sherlock..."
git clone https://github.com/sherlock-project/sherlock.git
cd sherlock && pip3 install -q -r requirements.txt && cd ..
echo "🕵 Instalando Maigret..."
pip3 install -q maigret
echo "🌾 Instalando theHarvester..."
git clone https://github.com/laramies/theHarvester.git
cd theHarvester && pip3 install -q -r requirements/base.txt && cd ..
echo "📸 Instalando GHunt..."
git clone https://github.com/mxrch/GHunt.git ghunt
cd ghunt
python3 -m venv venv
source venv/bin/activate
pip install -q -r requirements.txt
deactivate
cd ..
echo "✅ Instalação concluída em ~/osint_lab"
echo "Versões instaladas:"
python3 ~/osint_lab/sherlock/sherlock --version 2>/dev/null || echo "Sherlock: OK"
maigret --version 2>/dev/null || echo "Maigret: OK"
exiftool -ver
Pipeline Completo de Investigação Defensiva
Este script executa uma investigação completa de múltiplas ferramentas para um alvo, seguindo os padrões do Protocolo Berkeley:
#!/bin/bash # ================================================ # investigacao_berkeley.sh # Pipeline OSINT — Protocolo Berkeley # Uso: bash investigacao_berkeley.sh ALVO CASO_ID # ================================================ ALVO="${1:-usuario_teste}" CASO_ID="${2:-CASO-$(date +%Y%m%d)-001}" DATA_UTC=$(date -u +%Y-%m-%dT%H:%M:%SZ) PASTA=~/osint_lab/evidencias/${CASO_ID} LOG="${PASTA}/log_coleta.txt" mkdir -p "${PASTA}" log() { echo "[${DATA_UTC}] $*" | tee -a "${LOG}"; } log "============================================" log "INÍCIO DA INVESTIGAÇÃO" log "Caso: ${CASO_ID} | Alvo: ${ALVO}" log "Operador: $(whoami) | VM: $(hostname)" log "============================================" # ─── FASE 1: SHERLOCK ───────────────────────── log "FASE 1: Sherlock — busca de username" python3 ~/osint_lab/sherlock/sherlock "${ALVO}" \ --output "${PASTA}/sherlock_resultado.txt" \ --csv \ --print-found \ --timeout 20 2>&1 | tee -a "${LOG}" # ─── FASE 2: MAIGRET ────────────────────────── log "FASE 2: Maigret — relatório detalhado" maigret "${ALVO}" \ --html --pdf --csv \ --folderoutput "${PASTA}/maigret" \ --timeout 30 2>&1 | tee -a "${LOG}" # ─── FASE 3: HASHES DE INTEGRIDADE ──────────── log "FASE 3: Calculando hashes SHA-256" find "${PASTA}" -type f ! -name "hashes.txt" \ -exec sha256sum {} \; > "${PASTA}/hashes.txt" log "Hashes calculados: $(wc -l < ${PASTA}/hashes.txt) arquivos" # ─── FASE 4: METADADOS DO CASO ──────────────── cat > "${PASTA}/metadados_caso.json" <# ─── RELATÓRIO FINAL ────────────────────────── log "============================================" log "INVESTIGAÇÃO CONCLUÍDA" log "Pasta: ${PASTA}" log "Arquivos: $(find ${PASTA} -type f | wc -l)" log "============================================" echo "" echo "📁 Evidências salvas em: ${PASTA}" ls -lh "${PASTA}"
Exportar Evidências do Cloud Shell
# Compacta todas as evidências em .tar.gz cifrado tar -czf evidencias_${CASO_ID}.tar.gz ~/osint_lab/evidencias/ # Envia para Google Cloud Storage (bucket da investigação) gsutil cp evidencias_${CASO_ID}.tar.gz \ gs://bucket-investigacao-defensiva/ # Ou baixa direto pelo navegador via Cloud Shell Download cloudshell download evidencias_${CASO_ID}.tar.gz # Sincroniza pasta para GCS com versionamento gsutil -m rsync -r ~/osint_lab/evidencias/ \ gs://bucket-investigacao-defensiva/evidencias/
Captura de Tela com Timestamp (Preservação Visual)
#!/usr/bin/env python3 """ Captura de página web como evidência digital Protocolo Berkeley — preservação visual """ import subprocess, hashlib, datetime, json, os def capturar_url(url: str, pasta: str) -> dict: ts = datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ") nome = f"evidencia_{ts}" # Captura HTML da página html_path = os.path.join(pasta, f"{nome}.html") subprocess.run(["wget", "-q", "--no-check-certificate", "-O", html_path, url], check=True) # Calcula hash SHA-256 with open(html_path, "rb") as f: h = hashlib.sha256(f.read()).hexdigest() metadados = { "url": url, "timestamp_utc": ts, "arquivo": html_path, "sha256": h, "tamanho_bytes": os.path.getsize(html_path) } # Salva metadados JSON with open(os.path.join(pasta, f"{nome}_meta.json"), "w") as f: json.dump(metadados, f, indent=2) print(f"✓ Capturado: {url}") print(f" SHA-256: {h}") return metadados if __name__ == "__main__": import sys url = sys.argv[1] if len(sys.argv) > 1 else input("URL: ") os.makedirs("./evidencias", exist_ok=True) capturar_url(url, "./evidencias")
GLOSSÁRIO
REFERÊNCIAS
Documentos Oficiais do Protocolo Berkeley
https://www.ohchr.org/sites/default/files/2022-04/OHCHR_BerkeleyProtocol.pdf
https://humanrights.berkeley.edu/programs-projects/tech-human-rights-program/berkeley-protocol
https://www.ohchr.org/en/publications/…/berkeley-protocol-digital-open-source-investigations
Ferramentas OSINT — Repositórios Oficiais
https://github.com/sherlock-project/sherlock
https://github.com/soxoj/maigret
https://github.com/mxrch/GHunt
https://github.com/laramies/theHarvester
https://exiftool.org/
https://github.com/smicallef/spiderfoot
https://github.com/lanmaster53/recon-ng
Google Cloud e Infraestrutura
https://cloud.google.com/shell/docs
https://console.cloud.google.com
https://cloud.google.com/storage/docs/gsutil
Preservação e Arquivamento
https://web.archive.org
https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server
https://www.hunch.ly
Legislação Brasileira Aplicável
https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2014/lei/l12965.htm
https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
Recursos de Aprendizado
https://osintframework.com
https://www.bellingcat.com/category/resources/how-tos/
https://www.sans.org/osint-summit/
https://inteltechniques.com

Comentários
Postar um comentário