Aller au contenu Hacktron Se connecter [S]
Hacktron Se connecter [S] Clients Blog Documentation Contact Se connecter

Comment Hacktron donne de la confiance à l’équipe sécurité de Novu, pas plus de process


Novu
Hacktron Review

, , X, LinkedIn

Partager

Comment Hacktron donne de la confiance à l’équipe sécurité de Novu, pas plus de process

XLinkedIn
6 min
28 problèmes de sécurité corrigés
au cours des 30 premiers jours
83 % des découvertes
étaient actionnables, pas du bruit
Injection NoSQL
manquée par les autres outils

« C’est comme avoir un pentesteur qui relit chaque PR que vous faites. »

Dima Grossman
CTO

À propos de Novu

Novu est une plateforme open source d’infrastructure de notifications : une API unique pour envoyer des notifications sur plus de 15 canaux (in-app, e-mail, SMS, push), utilisée aussi bien dans le cloud que dans des déploiements sur site isolés du réseau. Le projet compte 39 000 étoiles GitHub et plus de 400 contributeurs externes sur son édition open source. Novu s’étend désormais à la communication bidirectionnelle avec des agents grâce à Novu Connect, qui permet aux agents d’IA d’accomplir des tâches directement dans Slack et d’autres canaux au lieu de simplement rediriger les utilisateurs ailleurs.

Le défi : faire confiance à une base de code modifiée par 400 contributeurs

Novu applique une politique zero trust à chaque contribution externe. Avec plus de 400 contributeurs extérieurs, rien n’est livré sans examen. Deux choses se produisent en même temps : l’IA augmente la quantité de code que Novu livre, et l’équipe est devenue sceptique quant à ce que détectent réellement les revues de sécurité de prestataires menées pour la conformité.

« Plus je fais de revues annuelles de prestataires, moins je leur fais confiance. Ils appliquent simplement une grille en dix points à toutes leurs entreprises et trouvent généralement des choses assez peu pertinentes.

« Ça permet de cocher les cases, mais en interne, nous n’y accordons aucune confiance. »

Dima Grossman
CTO

Novu utilise déjà une pile de sécurité en couches (CodeQL, Greptile, le relecteur de sécurité de Cursor et des analyses DeepSec périodiques) à deux points de contrôle : à chaque soumission de PR, puis de nouveau avant de taguer une version.

« Avec l’IA, nous produisons davantage en termes de surface produit.

« Et bien sûr, cela augmente fortement le facteur d’erreur humaine pendant les revues. »

Dima Grossman
CTO

Comment Hacktron s’intègre : de la confiance, pas de changement de process

Dima a été direct sur ce qui a changé et ce qui n’a pas changé :

« Rien n’a changé dans notre process avec Hacktron. La seule chose qui a vraiment changé, c’est notre niveau de confiance : savoir que nous détectons des schémas beaucoup plus élaborés.

« Et cette confiance nous permet aussi d’aller plus vite. »

Dima Grossman
CTO

Cette confiance tient à la qualité du signal. Les outils existants de Novu signalent surtout des problèmes visibles dans le diff d’une PR (Dima les décrit comme des exploits « one-hop »). Hacktron construit un graphe de code du dépôt et compare ces graphes d’une PR à l’autre, ce qui fait remonter des problèmes de second ordre : des vulnérabilités qui ne deviennent visibles que lorsqu’on suit la façon dont une modification dans un fichier affecte du code situé ailleurs dans le système.

« Quand nous voyons des commentaires d’autres outils, ils sont souvent hors périmètre ou relèvent d’un risque acceptable.

« Quand nous voyons quelque chose venant de Hacktron, l’équipe y prête attention et y réfléchit. Bien souvent, nous trouvons ces remarques tout à fait pertinentes. »

Dima Grossman
CTO

Dima a aussi nommé le risque contre lequel il se prémunit activement : la lassitude face au bruit.

« Il ne faut pas que ce soit le garçon qui criait au loup.

« Il y a tellement de notifications dans les rapports qu’on finit par passer à côté de l’essentiel. »

Dima Grossman
CTO

Ici, la qualité du signal n’est pas un simple bonus. C’est ce qui distingue un outil que l’équipe lit vraiment d’un outil qu’elle apprend à ignorer.

Analyse des découvertes

Au cours des 30 premiers jours de Novu sur Hacktron (du 6 juillet au 6 août 2026) :

230 pull requests42/61 découvertes triées28 résolues1 vrai positif6 risques acceptés7 faux positifs 230 pull requests42/61 découvertes triées28 résolues1 vrai positif6 risques acceptés7 faux positifs

18 découvertes sont encore en attente de tri. 1 autre a été retirée lorsque sa PR d’origine a été abandonnée.

Quels types de vulnérabilités trouve-t-il ?

Les propres outils de Novu détectent surtout des problèmes visibles dans un seul fichier ou dans le diff d’une seule PR. Les découvertes que Dima juge précieuses sont celles qui n’apparaissent que lorsqu’on suit un appel à travers plusieurs fichiers, exactement le genre de chose qu’un scanner fondé sur des motifs n’a aucun moyen de signaler.

Injection NoSQL et contournement d’autorisation entre conversations (sévérité élevée)

Repérée dans la PR #12062 et corrigée dans la même PR avant la fusion.

Novu déployait un nouveau chemin d’ingestion permettant à des agents d’IA auto-hébergés d’émettre des événements structurés (messages, réponses, approbations) dans la plateforme. Une partie de ce pipeline devait rattacher un événement entrant à la bonne activité de conversation en le faisant correspondre à un ID de message fourni par le client :

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);
}

Deux problèmes se cumulaient ici. D’abord, le filtre de la requête ne vérifiait jamais à quelle conversation appartenait l’activité, seulement l’environnement. Ensuite, le messageId entrant n’était pas validé comme simple chaîne avant d’être utilisé directement dans ce filtre, ce qui signifie qu’il pouvait être remplacé par un opérateur de requête MongoDB au lieu d’un ID. Ensemble, ces deux problèmes permettaient à un appelant authentifié de retrouver, puis de modifier ou de supprimer, une activité appartenant à une conversation qui n’était pas la sienne.

Hacktron Review a repéré ce problème en suivant la chaîne d’appels à travers trois fichiers : le contrôleur d’ingestion qui accepte le payload brut de l’événement, le cas d’usage qui le convertit en événement typé sans validation approfondie, et le service de destination (sink) qui transmet l’ID non validé à la requête ci-dessus.

Les résultats : la confiance pour livrer plus vite, pas plus lentement

Novu bénéficie d’une revue continue sur une base de code modifiée par plus de 400 contributeurs externes, sans la lassitude face au bruit qui pousse les équipes à cesser de lire les outils de sécurité, et avec une confiance qui lui permet de livrer plus vite plutôt que plus lentement.

Clients

Contact

Réservez une démo ou commencez gratuitement.

[↓] [↑] [enter] pour ouvrir
Menu
[M]
Suivant dans le menu
[J]
Précédent dans le menu
[K]
Rechercher
[F]
Demander
[A]
Se connecter
[S]
Copier la page
[C]
Écouter
[L]
Justification
[R]
Langue
[G]
Mode sombre
[D]
Contraste élevé
[H]
Raccourcis
[I]
Fermer
[Esc]