AUD-2026-0925
Re-auditoría de AUD-2026-0821-MN con evidencia fresca · marketnow.site · 2026-09-25
14/14 hallazgos re-verificados FIXED OpenSSF Scorecard: 6.8/10 — meta ≥6.5 CUMPLIDO Re-auditoría programada: 2026-12-25 2ª auditoría externa: P0 + S8 + S9 cerrados (evidencia por capa)1. Resumen ejecutivo
La auditoría AUD-2026-0821-MN documentó 14 hallazgos que quedaron formalmente «cerrados» en agosto pero con fixes no desplegados o con evidencia cosmetológica (PDF no servido, fix_commits «pending», verifiers obsoletos). El 25 de septiembre de 2026 se ejecutó el plan de remediación de 5 fases con gates de aprobación, re-verificando cada hallazgo contra la superficie viva del sitio y del repositorio. Esta re-auditoría reemplaza el estado de agosto: todos los hallazgos tienen fix_commit real, verificador reproducible y estado desplegado en producción.
2. Estado de los hallazgos
| ID | Sev | Hallazgo | Estado | fix_commit | Re-verificado |
|---|---|---|---|---|---|
| F-01 | critico | Cloaking: contenido oculto servido solo a Googlebot | FIXED | 0b764d92 | 2026-09-25 |
| F-02 | critico | El modelo de precio se contradice con su propia fuente canónica | FIXED | 0b764d92 | 2026-09-25 |
| F-03 | alto | '8,288 verified safe' no cuadra con pass rate del 53.3% | FIXED | cd6736c9 | 2026-09-25 |
| F-04 | alto | Plantilla rota {count} y texto duplicado 'pipeline pipeline' | FIXED | 0b764d92 | 2026-09-25 |
| F-05 | alto | '9,248 free skills' pero solo 43 son free | FIXED | cd6736c9 | 2026-09-25 |
| F-06 | medio | skills.json pesa ~24 MB | FIXED | cd6736c9, | 2026-09-25 |
| F-07 | alto | Landing vende free, agent.json dice buyers nunca pagan | FIXED | 0b764d92 | 2026-09-25 |
| F-08 | alto | Enlace 'Browse all 9,248 free skills' roto | FIXED | cd6736c9 | 2026-09-25 |
| F-09 | alto | Comentario 'redeploy trigger: new GitHub token' en HTML | FIXED | 0b764d92 | 2026-09-25 |
| F-10 | medio | NPM packages verificables | FIXED | NPM | 2026-09-25 |
| F-11 | medio | Wallet hardcodeada en agent.json | FIXED | cd6736c9 | 2026-09-25 |
| F-12 | medio | Cifras duplicadas en 5+ sitios | FIXED | cd6736c9, | 2026-09-25 |
| F-13 | medio | Versión Sentinel inconsistente (L1.5 vs L2.5) | FIXED | cd6736c9, | 2026-09-25 |
| F-14 | medio | Auditoría F1-F8 no está públicamente cerrada | FIXED | c14f456f | 2026-09-25 |
Verificadores vivos por hallazgo: GET https://www.marketnow.site/trust/audit-status.json ·
gate automatizado: node scripts/audit-gate.mjs (corre en cada push/PR vía GitHub Actions).
3. Evidencia de integridad
4. Credibilidad OSS (Fase 3)
- OpenSSF Scorecard 6.8/10 (baseline 1.7) — CLI v5.5.0 con GITHUB_AUTH_TOKEN;
resultados publicados en api.securityscorecards.dev.
- CI-Tests: workflow CI (83 tests de adaptadores + gate de assets F-06 + build de producción + syntax check de endpoints) — verde en main.
- Dependabot activo (github-actions + 6 ecosistemas npm).
- Actions pineadas por SHA en los 5 workflows; permissions read-only donde basta.
- Branch protection en main: 3 checks requeridos, force-push y deletion bloqueados.
- CodeQL (SAST, security-extended) en push/PR/semanal.
5. Que no vuelva a pasar (Fase 4)
- audit-gate.yml: 14 checks de consistencia en cada push/PR — audit-status íntegro, PDF por SHA-256, versiones repo=npm=stats, catálogo=stats=landing, npm sync, y prohibición de los dumps de F-06. Cron mensual con modo
--live contra producción.
- Runbook de deploy (DEPLOY_RUNBOOK.md): producción = git; ningún fix sin commit+push el mismo día; sincronía de clon al iniciar sesión; checklist post-deploy.
- Causas raíz cerradas: los pushes que no disparaban workflows (actor con Actions deshabilitadas) se canalizan por la cuenta correcta; el generador de dumps es offline y el prebuild es un gate que prohíbe regenerarlos.
6. Metodología y trazabilidad
--live contra producción.Plan de remediación de 5 fases con gates de aprobación del dueño: Gate A (Fase 0 — rescate de
fixes del pre-reset), Gate B/B+ (Fase 1 — redeploy + push a GitHub), Gate C (Fase 2 — cierre de los
14 hallazgos con evidencia real), Gate D (Fase 3 — scorecard ≥6.5), Gate E (Fase 4 — auditoría
cierre). Cada fix quedó commiteado, puseado al canónico, desplegado y re-verificado contra
producción. Los commits de la fase 3-4 son verificables en
main: 4a966607, 51649aa5, c22308a5, 2f28db01.
7. Segunda auditoría externa (2026-09-25, revisor distinto)
Hallazgo P0: la homepage no consumía las fuentes de verdad (cifras pegadas vs agent.json /
certification / npm). Cerrado: el bundle renderiza desde /api/stats.json (hook
useLiveStats, cero números manuales) y 40+ superficies machine-readable sincronizadas
(commits de85257f, 616cb698, e7125020). Este ciclo añade lo que ese revisor pidió como P1/P2:
- Evidencia pública por capa — /security/evidence (L1→L9, cada reclamo → URL verificable) + /api/security
- Sentinel v3.0 como página interactiva — /security/sentinel-v3.0 (12 etapas clicables con evidencia)
- Benchmark TP/FP/F1 — /security/sentinel-benchmark: P 0.75 · R 1.00 · F1 0.857 (n=18, reproducible desde el ledger público)
- Página de auditoría con PDF+SHA-256 — /security/audit-2026-08-19
- Pentest independiente — NO realizado; alcance publicado y controles compensatorios documentados (sección honesta en la página de auditoría)
- certification.json regenerado — C1-C10 recalculados sobre el bundle vivo de 68,388 (antes: snapshot del 12-sep con 68,387); 40 URLs de provenance reparadas, 4 excepciones documentadas