Saltar al contenido Hacktron Iniciar sesión [S]
Hacktron Iniciar sesión [S] Clientes Blog Documentación Contacto Iniciar sesión

Cómo Hacktron da confianza al equipo de seguridad de Novu sin añadir procesos


Novu
Hacktron Review

, , X, LinkedIn

Compartir

Cómo Hacktron da confianza al equipo de seguridad de Novu sin añadir procesos

XLinkedIn
6 min
28 problemas de seguridad corregidos
en los primeros 30 días
83 % de los hallazgos
eran accionables, no ruido
Inyección NoSQL
que otras herramientas no detectaron

«Es como tener a un pentester revisando cada PR que haces.»

Dima Grossman
CTO

Sobre Novu

Novu es una plataforma de infraestructura de notificaciones de código abierto: una única API para enviar notificaciones por más de 15 canales (en la app, correo electrónico, SMS, push), que se usa tanto en la nube como en despliegues on-premises aislados de la red. El proyecto tiene 39 000 estrellas en GitHub y más de 400 colaboradores externos en su edición de código abierto. Ahora se está ampliando a la comunicación bidireccional con agentes con Novu Connect, que permite a los agentes de IA completar tareas directamente en Slack y otros canales en lugar de limitarse a redirigir a los usuarios a otro sitio.

El reto: confiar en un código en el que participan 400 colaboradores

Novu aplica una política de confianza cero a cada contribución externa. Con más de 400 colaboradores externos, nada se publica sin escrutinio. Están pasando dos cosas a la vez: la IA está aumentando la cantidad de código que publica Novu, y el equipo desconfía cada vez más de lo que detectan de verdad las revisiones de seguridad de proveedores pensadas para el cumplimiento normativo.

«Cuantas más revisiones anuales de proveedores hago, menos confío en ellas. Se limitan a aplicar un manual de diez puntos a todas sus empresas y normalmente encuentran cosas bastante irrelevantes.

«Sirve para marcar las casillas, pero internamente no confiamos en eso.»

Dima Grossman
CTO

Novu ya usa un stack por capas (CodeQL, Greptile, el revisor de seguridad de Cursor y análisis periódicos con DeepSec) en dos puntos de control: en cada envío de un PR y de nuevo antes de etiquetar una versión.

«Con la IA, generamos más resultados en cuanto a superficie del producto.

«Y, por supuesto, eso hace que el factor de error humano en las revisiones sea mucho mayor.»

Dima Grossman
CTO

Cómo encaja Hacktron: confianza, no cambios de proceso

Dima fue directo sobre lo que cambió y lo que no:

«Con Hacktron no cambió nada de nuestro proceso. Lo único que cambió de verdad es el nivel de confianza que tenemos: saber que detectamos patrones mucho más elaborados.

«Y esa confianza también nos permite aumentar la velocidad.»

Dima Grossman
CTO

Esa confianza se reduce a la calidad de la señal. Las herramientas que Novu ya tenía señalan sobre todo problemas visibles en el diff de un PR (Dima los describió como exploits de «un salto»). Hacktron construye un grafo de código del repositorio y compara esos grafos entre PR, lo que saca a la luz problemas de segundo orden: vulnerabilidades que solo se ven cuando rastreas cómo un cambio en un archivo afecta a código de otras partes del sistema.

«Cuando vemos comentarios de otras herramientas, en muchos casos están fuera de alcance o son un riesgo aceptable.

«Cuando vemos algo de Hacktron, el equipo presta atención y lo piensa. En muchos casos nos parecen bastante relevantes.»

Dima Grossman
CTO

Dima también nombró el riesgo contra el que trabaja activamente: la fatiga por ruido.

«No quieres que acabe siendo como Pedro y el lobo.

«Hay tantas notificaciones en los informes que empiezas a perder de vista lo importante.»

Dima Grossman
CTO

Aquí la calidad de la señal no es un extra. Es la diferencia entre una herramienta que el equipo lee de verdad y una que aprende a ignorar.

Análisis de los hallazgos

Durante los primeros 30 días de Novu con Hacktron (del 6 de julio al 6 de agosto de 2026):

230 pull requests42 de 61 clasificados28 resueltos1 positivo real6 riesgos aceptados7 falsos positivos 230 pull requests42 de 61 clasificados28 resueltos1 positivo real6 riesgos aceptados7 falsos positivos

18 hallazgos siguen pendientes de triaje. Otro más se retiró cuando se abandonó el PR del que procedía.

¿Qué tipos de vulnerabilidades encuentra?

Las herramientas propias de Novu detectan sobre todo problemas visibles en un solo archivo o en el diff de un único PR. Los hallazgos que Dima destacó como valiosos son los que solo aparecen cuando rastreas una llamada a través de varios archivos, justo lo que un escáner basado en coincidencia de patrones no tiene forma de señalar.

Inyección NoSQL y evasión de autorización entre conversaciones (severidad alta)

Detectado en el PR #12062 y corregido en el mismo PR antes del merge.

Novu estaba lanzando una nueva vía de ingesta para que los agentes de IA autoalojados emitieran eventos estructurados (mensajes, respuestas, aprobaciones) en la plataforma. Parte de ese pipeline tenía que asociar un evento entrante con la actividad de conversación correcta comparando un ID de mensaje enviado por el cliente:

private async resolveActivityByClientId(
environmentId: string,
conversationId: string,
messageId: string
): Promise<ConversationActivityEntity | null> {
for (let attempt = 0; attempt < ACTIVITY_RESOLVE_MAX_ATTEMPTS; attempt += 1) {
const activity = await this.activityRepository.findOne(
{ _environmentId: environmentId, identifier: messageId },
'*'
);
if (activity) {
return activity;
}
if (attempt < ACTIVITY_RESOLVE_MAX_ATTEMPTS - 1) {
await delay(ACTIVITY_RESOLVE_DELAY_MS);
}
}
return this.activityRepository.findByPlatformMessageId(environmentId, conversationId, messageId);
}

Aquí se sumaban dos problemas. Primero, el filtro de la consulta nunca comprobaba a qué conversación pertenecía la actividad, solo el entorno. Segundo, el messageId entrante no se validaba como una cadena simple antes de usarlo directamente en ese filtro, así que se podía sustituir por un operador de consulta de MongoDB en lugar de un ID. Juntos, permitían a un usuario autenticado resolver, y después editar o eliminar, actividad de una conversación que no era suya.

Hacktron Review lo detectó rastreando la cadena de llamadas a través de tres archivos: el controlador de ingesta que acepta el payload del evento sin procesar, el caso de uso que lo convierte en un evento tipado sin una validación profunda y el servicio sink que pasa el ID sin validar a la consulta anterior.

Los resultados: confianza para publicar más rápido, no más despacio

Novu tiene una revisión continua en un código en el que participan más de 400 colaboradores externos, sin la fatiga por ruido que hace que los equipos dejen de leer las herramientas de seguridad, y con una confianza que le permite publicar más rápido en lugar de más despacio.

Clientes

Contacto

Reserva una demo o empieza gratis.

[↓] [↑] [enter] para abrir
Menú
[M]
Siguiente en el menú
[J]
Anterior en el menú
[K]
Buscar
[F]
Preguntar
[A]
Iniciar sesión
[S]
Copiar página
[C]
Escuchar
[L]
Justificación
[R]
Idioma
[G]
Modo oscuro
[D]
Alto contraste
[H]
Atajos
[I]
Cerrar
[Esc]