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 |
|---|---|
| ID del informe | 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 corresponde |
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 recuento. 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).
stateDiagram-v2
NeedsClarification: Needs Clarification
InProgress: In Progress
FixVerified: Fix Verified
[*] --> Submitted
Submitted --> Triaged
Triaged --> Validated
Triaged --> NeedsClarification
Validated --> InProgress
InProgress --> Resolved
Resolved --> FixVerified
FixVerified --> Paid
Paid --> [*]
Submitted --> Dismissed
Triaged --> Dismissed
NeedsClarification --> Dismissed
Validated --> Dismissed
InProgress --> Dismissed
Dismissed --> Submitted: Reabrir
| 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.
Una vez resuelto un informe, captura un análisis de causa raíz privado desde su pestaña Postmortem: tu registro de auditoría interno, descargable como un expediente en PDF por informe. Consulta Postmortems & Root-Cause Analysis.
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 |
| Descripción académica | La vulnerabilidad se describe en términos abstractos y teóricos en lugar de como un hallazgo concreto y explotable contra tu objetivo |
| Título genérico | Un título de informe vago y comodín que podría aplicarse a casi cualquier aplicación |
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 evaluación es además un requisito previo para poner un importe a debate del equipo en un programa con matriz de recompensas: sin nivel de severidad no hay techo contra el que comprobar el importe propuesto. 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, Kit publica una línea de escalamiento en el hilo de Slack del informe y avisa a tu persona de guardia en cuanto el informe se valida.
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 notificó – 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 |
| Other | Un motivo válido no cubierto por las categorías anteriores – explícalo en la nota |
| 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.
Se 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. Solo un desembolso en Processing puede marcarse como fallido; Pending es un estado transitorio de menos de un segundo, no un estado sobre el que puedas actuar.
Warning
Elige «Otra cosa» cuando el fallo precede a una desestimación. Marcar un pago como fallido con cualquiera de los otros tres motivos envía un correo al investigador pidiéndole información de pago que funcione — sobre una recompensa que estás a punto de retirar. Kit no impide esa combinación. Otra cosa no contacta a nadie. Consulta Cuando falla un pago.
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 escalan automáticamente, independientemente de la asignación: una línea de escalamiento aterriza en el hilo de Slack del informe, y validarlo avisa a tu persona de guardia. Elige qué niveles de severidad escalan 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 dos 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 |
La desestimación masiva requiere que elijas un único motivo que se 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
- Propuestas de recompensa y votación del equipo – decidir en equipo un importe discutido antes de aprobarlo
- Postmortems & Root-Cause Analysis – captura un RCA privado sobre un informe resuelto y exporta su expediente en PDF