EM ANDAMENTO
Resumo técnico
Integração do NEXUS com a BeVigil OSINT API para descoberta de ativos em aplicativos Android: lookup por package_id (com.example.app) ou domínio, expondo hosts, S3 buckets, REST paths, IPs, e-mails, apps indexados e subdomínios — com score de exposição 0–100, cache local de 7 dias, comparador de superfícies, histórico paginado e exportação JSON.
Escopo executado
plugin.json: v1.0.0, categoria "Intelligence", websitebevigil.com.- Backend
backend.php(742 linhas) — integração com a BeVigil OSINT API (https://osint.bevigil.com, headerX-Access-Token,Accept: application/json; connect timeout 5s, timeout total 25s,SSL_VERIFYPEER => true— verificação de certificado ativa, diferentemente de outros plugins da série). - Tabela
bevigil_scans(criada porbevigil_install(), cache de 7 dias):query_hashvarchar(32) UNIQUE (md5('package:…')oumd5('domain:…')),query_type,query_value,hosts_count,s3_count,apps_count,urls_count,assets_summaryJSON,report_jsonJSON,score,raw_jsonJSON,task_id,cached,scanned_at; índicesidx_query_type,idx_scanned_at,idx_score. bevigil_detect_query_type— regex para distinguir package (com.foo.bar) de domínio;bevigil_lookuproteia para a função correta (ou retorna erro com instrução).bevigil_lookup_package— 4 chamadas (/api/{pkg}/hosts,/S3-buckets,/all-assets,/report); extrai do blocoall-assetsIPs (IP Address disclosure), AWS URLs,rest_apie e-mails;assets_summarycom slices (hosts 80, s3 40, rest 40, ips 40, aws 40, emails 20).bevigil_lookup_domain— normaliza (removehttp(s)://, path e ponto final), chama/api/{domain}/apps,/subdomainse/urls; summary com packages 50, subdomains 60, urls 40.- Score 0–100 (menor = mais exposição): prefere campos explícitos do report (
score,risk_score,riskScore,security_score,app_score; aninhados emsummary/meta/app); na ausência, heurística — package:max(5, 100 − min(90, hosts*0.4 + s3*8 + ips*2 + aws*6)); domain:max(5, 100 − min(90, apps*3 + urls*0.2 + subs*0.3)). - Cache — consulta reusa registro por
query_hashcomscanned_at > NOW() − 7 dias;force=1ignora; grava/atualiza comON DUPLICATE KEY UPDATEe flagcached(badge "cache" na UI). bevigil_stats— total, packages, domains, consultas de hoje, score médio, críticos (score < 40),api_configured,api_online,auto_enrich.bevigil_history— paginação (page,limit≤ 50),ORDER BY scanned_at DESC; retornaitems/page/pages/total.bevigil_compare— duas consultas (a,b) com delta B−A de score, hosts, s3, apps e urls.bevigil_test_connection— smoke contra/api/com.whatsapp/hosts: 401/402 = erro, 200/404 = conexão OK (404 ainda prova a autenticação).bevigil_export— payload JSON da consulta comformat: 'json'efilename: 'bevigil-{query}.json'.- Erros mapeados: 401 key inválida, 402 créditos insuficientes, 404 não encontrado, timeout/erro de conexão.
- Intelligence Hub: enricher SIGNAL (com severidade)
bevigil_intel_enrich(prioridade 41, tiposdomain,url,_text) — domain/url → superfície no domínio;_text→ extração de packages com filtro de false positives (java.,javax.,kotlin.,android.,androidx.,org.w3c.,org.xml.,com.google.android.,com.android.); até 4 packages + 4 domains; budget de lookups (NX_INTEL_MAX_LIVE_LOOKUPS, default 12);severity = 100 − score(30 se sem score); statusok/error/needs_key(sem API key)/skipped(orçamento); flagcached; respeitaauto_enrich. - Config (
bevigil_settings/bevigil_settings_save) —api_key(comkeep_keypara não sobrescrever) +auto_enrichviaDB::setConfig('bevigil_settings');bevigil_public_configexpõe apenasapi_configured/auto_enrich(nunca a key). - UI Alpine.js (
tab.php, 374 linhas) — tema esmeralda, íconesmartphone, aba em Segurança; 4 sub-abas (Lookup, Histórico, Comparar, Configurações); 5 KPI cards (Consultas, Packages, Domínios, Score médio, Críticos); badge API Key OK / Configurar key com atalho;scoreClass(rose < 40, amber < 70, emerald ≥ 70); header do resultado muda de cor conforme score (rose/emerald) + badge "cache"; chips de hosts, S3 em vermelho, REST paths em<pre>, apps com nome; Export JSON client-side (Blob + download); histórico clicável (re-consulta); comparador com delta (A / Delta B−A / B); configurações com guia "Como obter a API Key" + botão Testar conexão. - Fastr:
/bevigil <package_id|domínio>→bevigil_lookup(argumento obrigatório). - Sem cron (on-demand — consultas só ocorrem quando acionadas; cache evita gastar créditos repetidamente).
- Nota de API: a documentação pública usa
osint.bevigil.com(lookup por package/domínio); upload de APK não é suportado pela API pública — fica no produto web/Enterprise; para scan estático de APK no CI, use MobSF/QARK com BeVigil como camada OSINT complementar.
Stack e ferramentas
- PHP 8 (sem framework)
- MySQL 8 (bevigil_scans — cache 7 dias)
- Alpine.js + Tailwind CSS (premium light, emerald)
- BeVigil OSINT API (osint.bevigil.com, X-Access-Token)
- cURL com SSL verify ON (5s connect / 25s timeout)
- Sistema de plugins do NEXUS (PluginManager + Intel Hub enricher)
Tags operacionais
- BeVigil
- OSINT
- Mobile Security
- Android
- Asset Discovery
- Intelligence Hub
- Plugin NEXUS
Resultado operacional
- Lookup de package Android ou domínio com score de exposição 0–100 (menor = mais exposição) e cor de destaque na UI (vermelho < 40).
- Superfície de ativos consolidada: hosts, S3 buckets, REST paths, IPs, AWS URLs, e-mails, apps indexados e subdomínios.
- Cache local de 7 dias por query — evita gastar créditos BeVigil em consultas repetidas.
- Comparador de duas superfícies (ex.: versões de app) com delta B−A.
- Auto-enrich no Intelligence Hub: menção a domínio/URL/texto com package → sinal com severity.
- Sem cron: on-demand, sem custo oculto.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Módulo de inteligência de ameaças (OSINT) focado em aplicações móveis através da API BeVigil. Analisa pacotes Android (APK) e domínios para identificar endpoints internos expostos, chaves de API vazadas, credenciais AWS e buckets S3 desprotegidos, calculando um índice de risco de segurança.
Arquitetura e organização
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- cURL
- BeVigil OSINT API
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.