EM ANDAMENTO
Resumo técnico
Plugin do NEXUS que centraliza findings pós-push de scanners, SBOM, Dependency-Track, domínios e repositórios CI/CD. Os imports normalizam evidências, deduplicam ou reabrem tarefas e alimentam o Compliance Hub; o painel também correlaciona CVEs, administra perfis e workflows de scan e dispara alertas críticos.
Escopo executado
plugin.json— v1.3.0, categoria NEXUS, ícone lucideshield-alertcomicon_bg #fff1f2,icon.svgpróprio (lupa de scan) estyle: design.css.- Registros:
registerTab("security", "Security Scanner", "shield-alert", tab.php, "NEXUS"),registerDoc(...),registerModal("security-modals", modals.php)eregisterJs("nexus-security-scanner", "/plugins/nexus-security-scanner/assets/security.js"). - 37 actions de API (
plugin.php, viaPluginManager::registerApiAction) — 14 imports (security_import_trivy|grype|semgrep|codeql|mobsf|qark|nuclei|wordfence|gitleaks|zap|composer|npm|sbom|dtrack), SBOM (security_sbom_list/get), DTrack (security_dtrack_sync/dashboard/save_config), CVE (security_cve_details), domínios (security_scan_domain|save_domain|get_domains|delete_domain), repos (security_save_repo|get_repos|delete_repo), profiles (security_get_scan_profiles|set_scan_profile), workflows (security_get_workflow_statuses|trigger_workflow), CI health (security_get_ci_health|inspect_repo_ci|sync_repo_workflow|install_repo_dependabot|sync_outdated_workflows), alertas (security_notify_critical). - Persistência: sem tabelas próprias — findings viram tarefas NEXUS (
security_manage_task: dedupe por título, reopen de done/cancelled,project_resolve_for_task) e evidência emplugin.compliance.ci_evidence; domínios emplugin.security.domains, repos emplugin.security.repos, SBOM emplugin.security.sbom, DTrack emplugin.security.dtrack(config do DB). - Imports:
security_process_trivy_scan(37-249),grype(249-405),semgrep(405-632),codeql(632-843),mobsf(893-1106),qark(1106-1262),nuclei(1262-1442),wordfence(1820-1965),gitleaks(1965-2126),zap(2126-2280),composer(2280-2398),npm(2398-2532),sbom(3924-4092),dtrack(4303-4495) — cada um normaliza upload/body, resolve projeto e cria/reabre tarefas. - Compliance:
security_import_with_compliance→security_finding_to_controls(mapa MITRE + NIST/ISO por scanner) →security_record_compliance_evidence(evidência no Hub; SBOM não cria tarefa por pacote). - SBOM:
security_process_sbom_scan— CycloneDX preferido/SPDX fallback, purl → ecosystem, inventário por repo emplugin.security.sbom;security_sbom_list/get(detalhe + pacotes por?repo=owner/name). - Dependency-Track: stack Docker local (API
127.0.0.1:9080, UI 9081; bootstrapbootstrap-api-key.sh→plugin.security.dtrack); webhook NEW_VULNERABILITY/POLICY → tarefas[DTrack] CVE — pkg;security_dtrack_sync(evidência CI); dashboard com stats/syncs/alertas/config mascarada. - CodeQL: dupla visibilidade —
codeql-action/upload-sarif@v3envia ao GitHub Security Tab +security_import_codeqlcria/atualiza tarefas[CodeQL] …. - Mobile: workflow
nexus-mobile-scan.yml(jobdetectcom path filter — Manifest/Gradle Android/iOS/artefato) → só então MobSF/QARK (sem APK/IPA ou repo não-mobile → skipped). DocsMOBSF.md/QARK.md. - GitHub OAuth: plugin GitHub autoriza repos/workflows; callbacks por
SITE_URL(labhttp://127.0.0.1:8088; docsLOCAL_DEV_F_IA.md). - Domínios:
security_audit_domain— headers/SSL/CORS; slash/trivy <domínio|IP>via fastr.json (security_scan_domain). - Intel:
security_scanner_intel_enrich(prioridade 46, tipocve) — correlação local com tarefas/findings (sem API externa no hub). - Alertas:
security_notify_critical—notify_security_critical(e-mail, dashboard, Discord/Slack, Novu opcional); usado pelo jobnotify-critical. - CI health:
security_get_ci_health/inspect_repo_ci— compara workflow remoto vs template local (action pins, template version/fingerprint), sync de workflows, Dependabot, detecção de billing block. - UI Alpine.js (
tab.php116 KB): 4 sub-tabs (Domínios, Repositórios CI/CD, SBOM, Dependency-Track), seletor de import por scanner, cards de métricas e toolbar premium.
Stack e ferramentas
- PHP 8 (sem framework) + MySQL 8 (tarefas NEXUS + config do DB — sem tabelas do plugin)
- Alpine.js + Tailwind CSS (
tab.php) + modals (modals.php) + JS registrado (assets/security.js) - GitHub Actions (
nexus-security.yml— jobs de import por scanner +notify-critical;nexus-mobile-scan.yml— MobSF/QARK) - GitHub API (OAuth do plugin GitHub) — workflows, CI health, Dependabot
- Scanners: Trivy, Grype, Semgrep, CodeQL, Nuclei, Wordfence, Gitleaks, ZAP, Composer, npm, Syft (SBOM), MobSF, QARK
- Dependency-Track (Docker local) + Compliance Hub (evidência NIST/ISO) + Intelligence Hub (enricher CVE)
Tags operacionais
- Security Scanner
- Trivy
- SBOM
- Dependency-Track
- MobSF
- QARK
- CodeQL
- Domínios
- Plugin NEXUS
Resultado operacional
- 14 imports de scanners com normalização, auto-mapping de projeto por repo e conversão em tarefas NEXUS com dedupe por título (reabre
done/cancelledquando a vulnerabilidade reaparece). - Evidência de compliance automática: cada import anexa controles MITRE + NIST/ISO no Compliance Hub (
plugin.compliance.ci_evidence) — sem flood de tarefas MITRE por finding. - SBOM (CycloneDX/SPDX) inventariado por repositório com purl → ecosystem; Dependency-Track recebe o SBOM via CI e o webhook contínuo cria/reabre tarefas
[DTrack] CVE — pkg. - CodeQL com dupla visibilidade: resultado no GitHub Security Tab e como tarefas
[CodeQL]no NEXUS; mobile via MobSF/QARK com path-filter (só escaneia repo/artefato mobile). - CVEs citados em tarefas/comentários são correlacionados com findings locais pelo enricher do Intelligence Hub — severidade por tasks abertas, sem chamada externa.
- Domínios auditados (headers/SSL/CORS) via slash
/trivy; CI health compara workflows com o template (pins/versão) e sincroniza, além de instalar Dependabot. - Alertas CRITICAL do CI (job
notify-critical) por e-mail/dashboard/Discord/Slack/Novu. - Complementar ao Security Gate: Scanner é a camada pós-push (CI/import,
security_*); Gate é a camada pré-push (hooks locais,gate_*).
Andamento no GitHub (issues)
Issues mais recentes do repositório, atualizadas em tempo real.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Plugin NEXUS (v1.3.0) que centraliza findings de scanners (Trivy, Grype, Semgrep, CodeQL, Nuclei, Wordfence, Gitleaks, ZAP, Composer, npm, MobSF, QARK), inventário SBOM (Syft CycloneDX/SPDX), Dependency-Track (webhook contínuo de CVEs), auditoria de domínios, repositórios CI/CD e alertas CRITICAL — convertendo tudo em tarefas NEXUS com evidência cruzada no Compliance Hub.
Arquitetura e organização
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- GitHub Actions
- Plugin NEXUS
Execução e operação
Execução em ambiente Docker/produção, com validação e documentação de evidências.
Screenshots
Falar sobre este projeto
Interessado em adaptar este projeto para o seu contexto? Entre em contato.