Triaje de informes
Cómo usar el tablero Kanban de triaje, leer los indicadores de SLA, evaluar la severidad y resolver o desestimar informes.
Por qué es importante
El triaje sin estructura es donde fallan la mayoría de los programas de divulgación de vulnerabilidades. Los informes válidos quedan enterrados en el ruido, los plazos de SLA se incumplen sin que nadie lo note y los investigadores abandonan tu programa. El tablero Kanban de triaje le da a tu equipo una vista compartida y en tiempo real de cada informe abierto, con visibilidad de SLA integrada, para que nada se escape.
El tablero de triaje
Navega a VDP > Triage Board para ver todos los informes organizados por estado. Cada columna representa una etapa del ciclo de vida del informe, y cada tarjeta representa un informe individual.
El tablero admite dos vistas:
- Vista de tablero – Columnas Kanban con tarjetas arrastrables (por defecto)
- Vista de lista – Tabla ordenable con los mismos filtros
Cada tarjeta de informe muestra:
| Elemento | Descripción |
|---|---|
| Report ID | Identificador con prefijo (por ejemplo, RPT-abc123) |
| Título | Título de la vulnerabilidad, truncado a 40 caracteres |
| Distintivo de severidad | Nivel de severidad con código de color según la evaluación |
| Cuenta regresiva de SLA | Tiempo restante con indicador verde/amarillo/rojo |
| Asignado | Avatar del miembro del equipo, o “Sin asignar” |
| Indicadores | Advertencia de duplicado o distintivo de cribado con IA, si aplica |
Usa la barra de filtros sobre las columnas para acotar tu vista:
- Severidad – Selección múltiple (de Informativo a Súper crítico)
- Asignado – Menú desplegable (miembros del equipo + “Sin asignar”)
- SLA – On Track / At Risk / Breached
- Búsqueda – Filtra por título, ID del informe o email del investigador
Las últimas tres columnas (Fix Verified, Paid, Dismissed) están colapsadas por defecto y solo muestran su conteo. Haz clic para expandirlas.
Ciclo de vida del informe
Cada informe sigue una máquina de estados definida. Arrastra una tarjeta entre columnas en el tablero, o usa los controles de estado en el banner de la página del informe: un botón principal para el siguiente paso obvio más un menú con los demás movimientos válidos. Puedes adjuntar una nota a cualquier cambio de estado (aparece en la cronología), y retroceder un informe a un estado anterior requiere una. La desestimación siempre pide un motivo: arrastrar una tarjeta a la columna Dismissed abre el modal de desestimación en lugar de cerrar el informe de forma silenciosa (consulta Desestimar informes).
┌─────────────┐
┌───>│ Dismissed │
│ └─────────────┘
│ (desde Submitted, Triaged, Needs
│ Clarification, Validated o In Progress)
│
┌───────────┐ ┌─────────┐│ ┌───────────────────┐ ┌───────────┐
│ Submitted ├─>│ Triaged ├┴─>│ Validated ├─>│In Progress│
└───────────┘ └────┬────┘ └─────────┬──────────┘ └─────┬─────┘
│ │ │
v v v
┌───────────────────┐ ┌──────────┐
│Needs Clarification│ │ Resolved │
└───────────────────┘ └────┬─────┘
│
v
┌──────────────┐
│ Fix Verified │
└──────┬───────┘
│
v
┌──────┐
│ Paid │
└──────┘
| Estado | Significado |
|---|---|
| Submitted | Estado inicial después de que un investigador envía el formulario de admisión |
| Triaged | El equipo ha revisado el informe y ha comenzado la evaluación |
| Needs Clarification | El equipo envió una pregunta; a la espera de la respuesta del investigador |
| Validated | Confirmada como una vulnerabilidad real y dentro del alcance; comienza el trabajo de corrección |
| In Progress | La corrección de ingeniería está en curso |
| Resolved | Corrección desplegada; investigador notificado |
| Fix Verified | El investigador confirmó que la corrección funciona (paso opcional de reverificación) |
| Paid | Recompensa desembolsada y ciclo de vida completo |
| Dismissed | Cerrado sin corrección – puede ocurrir desde Submitted, Triaged, Needs Clarification, Validated o In Progress |
Dos transiciones especiales a tener en cuenta:
- Dismissed se puede alcanzar desde Submitted, Triaged, Needs Clarification, Validated o In Progress (no desde Resolved ni Fix Verified). El investigador siempre recibe una notificación con un motivo. Si el informe tiene una recompensa aprobada, desestimarlo también la revoca – consulta Desestimar informes más abajo.
- Dismissed > Submitted reabre un informe si la desestimación se hizo por error. Reabrirlo no restablece una recompensa revocada – aprueba una nueva manualmente cuando el informe se valide de nuevo.
Cada transición de estado se registra en el historial de auditoría del informe con el actor, la marca de tiempo y un comentario opcional. Para más detalles sobre cómo enviar mensajes a los investigadores en cada etapa, consulta Communicating with Researchers.
Indicadores de SLA
Cada tarjeta de informe muestra un distintivo de SLA para que tu equipo pueda detectar el trabajo atrasado de un vistazo. El reloj del SLA de acuse de recibo arranca en el momento en que se envía un informe.
| Distintivo | Color | Significado |
|---|---|---|
| On Track | Verde | Dentro del plazo de SLA con margen |
| At Risk | Amarillo | El plazo de SLA se acerca – actúa pronto |
| Breached | Rojo | El plazo de SLA ya pasó |
Usa el filtro SLA en el tablero de triaje y selecciona Breached para mostrar de inmediato los informes que necesitan atención. Los objetivos de SLA se configuran por nivel de severidad en VDP > Program Settings > SLAs.
Cribado con IA
Cada informe enviado se analiza automáticamente en busca de contenido de bajo esfuerzo o generado por IA antes de llegar al tablero de triaje. El análisis se ejecuta en segundo plano y adjunta sus resultados al informe en cuestión de segundos.
El cribador busca señales que indiquen informes fabricados o producidos en masa:
| Señal | Qué detecta |
|---|---|
| Funciones alucinadas | Referencias a nombres de funciones, métodos de API o rutas de archivos que son plausibles pero probablemente inventados |
| CVE fabricados | Números de CVE que no existen en bases de datos públicas |
| CVE previo citado como nuevo | Una vulnerabilidad conocida y divulgada públicamente presentada como un hallazgo nuevo |
| Sin PoC específico | Sin prueba de concepto, sin pasos específicos del objetivo, sin salida esperada vs. real |
| Pasos de reproducción vagos | Pasos genéricos como “navega a la página de inicio de sesión e introduce un payload” que podrían describir cualquier aplicación |
| Lenguaje de plantilla | Frases predefinidas como “As a security researcher, I discovered…” sin contexto específico del objetivo |
| Estructura de plantilla | Secciones numeradas rígidas y encabezados en negrita que sugieren copiar y pegar de un generador de informes |
| Remediación genérica | Consejos de manual como “sanitize all inputs” sin orientación específica del objetivo |
| Detalles técnicos inconsistentes | Tecnologías, frameworks o versiones que no coinciden con el endpoint objetivo |
| Referencias a elementos de código inexistentes | Hashes de commits, nombres de funciones o rutas de archivos fabricados que no se pueden verificar |
El cribado produce una puntuación de confianza (0–100) y una recomendación:
| Recomendación | Rango de puntuación | Efecto |
|---|---|---|
| Pass | 0–30 | El informe aparece en el tablero con normalidad |
| Review | 31–60 | El informe aparece con un distintivo sutil de revisión |
| Flag | 61–100 | El informe se marca con un distintivo de cribado con IA en la tarjeta Kanban |
El cribado con IA nunca rechaza un informe de forma automática. Los informes marcados permanecen completamente visibles y disponibles para el triaje – el distintivo simplemente alerta a tu equipo de que el contenido puede merecer un escrutinio adicional. Tu equipo siempre toma la decisión final.
Evaluación de severidad
Abre un informe y haz clic en Assess para puntuarlo usando CVSS v3.1. La calculadora integrada te guía a través de ocho métricas:
| Métrica | Opciones |
|---|---|
| Attack Vector | Network, Adjacent, Local, Physical |
| Attack Complexity | Low, High |
| Privileges Required | None, Low, High |
| User Interaction | None, Required |
| Scope | Unchanged, Changed |
| Confidentiality Impact | None, Low, High |
| Integrity Impact | None, Low, High |
| Availability Impact | None, Low, High |
El sistema calcula automáticamente la puntuación base y la asigna a un nivel de severidad:
| Nivel | Rango CVSS |
|---|---|
| Súper crítico | 10.0 |
| Crítico | 9.0–9.9 |
| Alto | 7.0–8.9 |
| Medio | 4.0–6.9 |
| Bajo | 0.1–3.9 |
| Informativo | 0.0 |
Una vez evaluado, el nivel de severidad desbloquea un rango de recompensa sugerido a partir de tu matriz de recompensas. La cadena del vector CVSS se almacena en el informe y se muestra en el historial de auditoría. Si la severidad es Crítico o Súper crítico, se envía una notificación de escalamiento a tus contactos de escalamiento configurados.
Desestimar informes
Abre un informe y haz clic en Dismiss para cerrarlo sin corrección. Debes seleccionar un motivo:
| Motivo | Cuándo usarlo |
|---|---|
| Out of Scope | El objetivo no está cubierto por tu configuración de alcance |
| Duplicate | La misma vulnerabilidad ya se reportó – vincula al informe original |
| Not Reproducible | Tu equipo no pudo reproducir el problema con los pasos proporcionados |
| Informational | No hay vulnerabilidad explotable; el investigador comparte un hallazgo general |
| Spam | Envío automatizado o claramente de bajo esfuerzo |
| AI Slop | Contenido generado por IA con detalles fabricados o alucinados |
Añade una nota opcional para explicar la decisión. El investigador recibe un email con tu plantilla de desestimación configurada, que incluye el motivo y la nota. El motivo de la desestimación se registra de forma permanente en el historial de auditoría y no se puede editar tras guardar.
Desestimar un informe con recompensa aprobada
Si el informe tiene una recompensa aprobada, desestimarlo también la revoca. El modal de desestimación muestra una advertencia en ámbar con el monto, quién aprobó la recompensa y cuándo, y el botón de envío cambia a Dismiss & revoke $X bounty. La revocación se registra como una entrada bounty_revoked en el libro mayor inmutable, y el email de desestimación informa al investigador de que la recompensa ha sido retirada y no se pagará – el flujo de apelación habitual sigue siendo su recurso. Consulta Bounties and Payouts para más detalles.
Aplican dos salvaguardas:
- Una recompensa cuyo desembolso está Completed (pagado) nunca se puede revocar.
- Un pago en curso (desembolso Pending o Processing) bloquea la desestimación – marca primero el desembolso como fallido, o deja que se complete.
Arrastrar una tarjeta a la columna Dismissed en el tablero abre este mismo modal de desestimación —el selector de motivo y, cuando hay una recompensa aprobada, la advertencia de revocación—, de modo que un arrastre en el tablero nunca desestima un informe (ni revoca una recompensa) sin ese contexto. Es el mismo flujo que el botón Dismiss en la página del informe.
Si una desestimación se hizo por error, puedes reabrir el informe desde la columna Dismissed, lo que lo devuelve al estado Submitted. Reabrirlo no restablece una recompensa revocada – aprueba una nueva manualmente cuando el informe se valide de nuevo.
Resolver apelaciones
Cuando un investigador apela una decisión (consulta Researcher Portal), aparece un panel de Researcher appeal en la página del informe con la justificación del investigador, y se notifica a la persona de guardia con una alerta que enlaza directamente a él.
Desde el panel, un administrador resuelve la apelación:
- Aceptar — estás de acuerdo con el investigador. Si el informe estaba desestimado, aceptarla lo reabre y lo devuelve a Submitted (triaje) a través del mismo flujo de reapertura auditado descrito más arriba. Se envía un correo al investigador informándole de que la apelación fue aceptada.
- Rechazar — mantienes la decisión original. Se envía un correo al investigador informándole de que la decisión se mantiene.
La decisión, la persona revisora y la marca de tiempo quedan registradas en el informe y se añaden a su cronología. Al igual que con la reapertura, aceptar una apelación no restablece una recompensa revocada – aprueba una nueva una vez que el informe se valide de nuevo.
Asignación de informes
Haz clic en el avatar del asignado (o “Assign”) en cualquier tarjeta de informe o vista de detalle para asignar un miembro del equipo. El asignado recibe una notificación en la aplicación y un email.
Cuando la asignación automática está habilitada, los informes entrantes se asignan automáticamente a la persona de guardia. Si nadie está de guardia, se usa el asignado por defecto como respaldo. Consulta On-Call Rotation para más detalles sobre cómo configurar turnos y horarios.
Para la asignación masiva, selecciona varias tarjetas de informe mediante sus casillas y elige Assign en la barra de acciones masivas que aparece en la parte inferior del tablero.
Los informes Crítico y Súper crítico envían automáticamente un email de escalamiento a tus contactos de escalamiento configurados, independientemente de la asignación. Configura los contactos de escalamiento en VDP > Program Settings > Triage.
Operaciones masivas
Selecciona varias tarjetas de informe mediante sus casillas para entrar en el modo de selección masiva. Una barra de acciones flotante aparece en la parte inferior del tablero con tres opciones:
| Acción | Descripción |
|---|---|
| Assign | Asignar todos los informes seleccionados a un miembro del equipo |
| Dismiss | Desestimar todos los informes seleccionados con un motivo compartido |
| Change Severity | Actualizar el nivel de severidad en todos los informes seleccionados |
La desestimación masiva requiere que elijas un único motivo que aplique a todos los informes seleccionados. Los informes con recompensa aprobada se omiten – el aviso de confirmación muestra cuántos se omitieron – porque revocar una recompensa requiere el modal de desestimación en la página individual del informe. Cada operación masiva se registra de forma individual en el historial de auditoría de cada informe afectado.
En resumen
- Revisa el tablero de triaje a diario en busca de nuevos envíos
- Comprueba el filtro “Breached” de SLA por si hay informes atrasados
- Evalúa la severidad (CVSS) en cada informe validado
- Asigna informes a miembros del equipo con experiencia en el dominio
- Desestima con prontitud los informes claramente inválidos para mantener la cola limpia
- Usa “Needs Clarification” cuando los pasos de reproducción sean insuficientes
- Revisa con escrutinio adicional los informes marcados por IA antes de desestimarlos o validarlos
Y ahora qué
- Communicating with Researchers – hilos de mensajes, plantillas de email, notificaciones de Slack y cómo preguntar a @KitBot sobre informes
- Bounties and Payouts – otorgar recompensas, documentos fiscales y el libro mayor