Motor de decisión de aplicabilidad

Motor de decisión de aplicabilidad

Motor de decisión de aplicabilidad

Decisión universal

flowchart TD
 A[Seleccionar familia] --> B{¿Existe la capacidad o componente?}
 B -->|No, comprobado| C[No aplica + evidencia]
 B -->|Desconocido| D[Bloqueado + acción para resolver]
 B -->|Sí| E[Inventariar superficies y actores]
 E --> F[Localizar entrada, transformaciones y destino]
 F --> G[Revisar controles en servidor o capa efectiva]
 G --> H[Diseñar positivo, negativo, límite y comparación]
 H --> I[Prueba segura]
 I --> J{¿Control eludido?}
 J -->|Sí| K[Hallazgo + causa raíz + alcance]
 J -->|No| L[Probado sin hallazgo + muestra + limitaciones]

Preguntas de activación por capacidad

Capacidad observadaFamilias que deben activarseEvidencia válida para descartarlas
Identidades, login o recuperaciónEnumeración, credential stuffing, MFA, recuperación, session fixation, takeoverConfirmación de que el producto no gestiona identidad ni confía en identidad externa
Objetos pertenecientes a usuarios o tenantsIDOR/BOLA, escalada horizontal, aislamiento multitenant, mass assignmentAusencia demostrada de propiedad, roles y separación lógica
Roles o funciones administrativasBFLA, escalada vertical, forced browsing, confused deputyMatriz de permisos y arquitectura que demuestren un único nivel de privilegio
Estado, saldo, cuota, pedido o aprobaciónWorkflow bypass, replay, race, TOCTOU, idempotencia, manipulación de cantidadesFlujo puramente informativo, sin transición ni efecto persistente
Entrada hacia consultas o intérpretesSQL/NoSQL/LDAP/XPath/ORM/Cypher, command injection, SSTI, expression injectionTrazabilidad que demuestre que ninguna entrada controlable alcanza esos destinos
Datos mostrados en navegadorXSS, HTML/CSS injection, DOM clobbering, CSP bypassSalida no interpretada en contexto activo y encoding contextual confirmado
Cookies o credenciales automáticasCSRF, SameSite, fijación, robo o confusión de sesiónAPI sin credenciales ambientales y autenticación únicamente explícita por petición
Orígenes cruzados, iframes o mensajesCORS, clickjacking, postMessage, XS-LeaksFunción no consumible desde navegador o sin cruce de origen/contexto
REST, GraphQL, gRPC o SOAPBOLA/BFLA, mass assignment, batching, complejidad, parser differential, XXEProtocolo o interfaz inexistente y comprobado en inventario
OAuth, OIDC o SAMLredirect URI, state/nonce/PKCE, token confusion, signature wrapping, account linkingFederación inexistente, incluidos entornos y clientes alternativos
Upload, importación, exportación o conversiónUpload inseguro, traversal, Zip Slip, XXE, fórmulas, parser bugs, contenido activoProducto sin recepción ni generación de ficheros controlables
Fetch de URL, preview, webhook o callbackSSRF, redirect bypass, DNS rebinding, replay, firma débilSin solicitudes salientes basadas en datos controlables
CDN, WAF, proxy, gateway o caché compartidaSmuggling, desync, cache poisoning/deception, normalización diferencialUna única capa HTTP sin traducción ni caché compartida, comprobada en arquitectura
Tokens, secretos, firmas o cifradoEntropía, almacenamiento, rotación, downgrade, nonce reuse, integrity bypassAusencia real de secretos o requisitos de confidencialidad/integridad
Dependencias, plugins, paquetes o pipelinesCVE alcanzable, dependency confusion, secretos CI/CD, artefactos no firmadosProducto sin software de terceros ni proceso de build, situación excepcional documentada
Regex, búsquedas, informes, colas o trabajos carosReDoS, resource exhaustion, amplification, queue abuseOperación acotada offline sin entrada controlable ni recurso compartido
Puertos o protocolos no HTTPDefaults, acceso anónimo, downgrade, exposición de gestión, segmentaciónInventario y escaneo autorizado confirman ausencia de esos servicios
Cloud, metadata o identidades de workloadIAM, bucket exposure, SSRF a metadata, trust cross-account, secretosDespliegue confirmado fuera de cloud y sin servicios equivalentes
Contenedores o KubernetesPrivileged, socket/runtime, RBAC, secrets, escape, network policyDespliegue sin contenedores ni orquestador
Android, iOS, escritorio o extensiónStorage, deep links, exported components, IPC, WebView, update, permisosEl producto carece de esos clientes, incluidos clientes internos
LLM, RAG, MCP, plugins o agentesPrompt injection, tool abuse, RAG ACL, data leakage, excessive agencyNingún modelo o agente procesa datos o decide/ejecuta acciones

Regla de exhaustividad

No existe una lista finita capaz de garantizar literalmente “todas las vulnerabilidades futuras”. La cobertura completa se obtiene combinando:

  1. Catálogo de familias conocidas.
  2. Inventario de todas las capacidades del producto.
  3. Trazado de cada entrada hasta cada destino y frontera.
  4. Modelado de estados, actores y confianza.
  5. Revisión específica de tecnología, versión y configuración.
  6. Búsqueda de CVE/CWE y advisories aplicables al inventario confirmado.
  7. Registro explícito de cobertura, incertidumbre y riesgo residual.

Una capacidad nueva o tecnología no catalogada genera una nueva rama de análisis, no un descarte automático.