Pular para o conteúdo Hacktron Entrar [S]
Hacktron Entrar [S] Clientes Blog Documentação Contato Entrar

Como o Hacktron dá confiança à equipe de segurança da Novu, não mais processo


Novu
Hacktron Review

, , X, LinkedIn

Compartilhar

Como o Hacktron dá confiança à equipe de segurança da Novu, não mais processo

XLinkedIn
6 min
28 problemas de segurança corrigidos
nos primeiros 30 dias
83% dos achados
eram acionáveis, não ruído
Injeção NoSQL
que outras ferramentas deixaram passar

“É como ter um pentester revisando cada PR que você faz.”

Dima Grossman
CTO

Sobre a Novu

A Novu é uma plataforma de infraestrutura de notificações de código aberto: uma única API para enviar notificações por mais de 15 canais (in-app, e-mail, SMS, push), usada tanto na nuvem quanto em implantações on-premises isoladas da rede. O projeto tem 39.000 estrelas no GitHub e mais de 400 contribuidores externos na edição de código aberto. Agora ele está se expandindo para a comunicação bidirecional com agentes com o Novu Connect, que permite que agentes de IA concluam tarefas diretamente no Slack e em outros canais, em vez de só redirecionar os usuários para outro lugar.

O desafio: confiar em uma base de código em que 400 contribuidores mexem

A Novu aplica uma política de zero trust a cada contribuição externa. Com mais de 400 contribuidores de fora, nada é entregue sem escrutínio. Duas coisas acontecem ao mesmo tempo: a IA está aumentando a quantidade de código que a Novu entrega, e a equipe ficou cética quanto ao que as revisões de segurança de fornecedores feitas para compliance realmente detectam.

“Quanto mais revisões anuais de fornecedores eu faço, menos confio nelas. Eles só aplicam um roteiro de dez pontos em todas as empresas e normalmente encontram coisas bem irrelevantes.

“Cumpre o checklist, mas internamente não confiamos nisso.”

Dima Grossman
CTO

A Novu já usa um conjunto de ferramentas em camadas (CodeQL, Greptile, o revisor de segurança do Cursor e varreduras periódicas do DeepSec) em dois pontos de controle: a cada envio de PR e de novo antes de criar a tag de uma release.

“Com a IA, estamos gerando mais resultados em termos de superfície do produto.

“E é claro que isso aumenta muito o fator de erro humano durante as revisões.”

Dima Grossman
CTO

Onde o Hacktron entra: confiança, não mudança de processo

Dima foi direto sobre o que mudou e o que não mudou:

“Nada no nosso processo mudou com o Hacktron. A única coisa que realmente mudou é o nível de confiança que temos: saber que estamos detectando padrões muito mais elaborados.

“E essa confiança também traz a capacidade de aumentar a velocidade.”

Dima Grossman
CTO

Essa confiança se resume à qualidade do sinal. As ferramentas que a Novu já usa apontam principalmente problemas visíveis no diff de um PR (Dima os descreveu como exploits de “um salto”). O Hacktron constrói um grafo de código do repositório e compara esses grafos entre PRs, revelando problemas de segunda ordem: vulnerabilidades que só ficam visíveis quando você rastreia como uma mudança em um arquivo afeta código em outra parte do sistema.

“Quando vemos comentários de outras ferramentas, em muitos casos eles estão fora do escopo ou são um risco aceitável.

“Quando vemos algo do Hacktron, a equipe presta atenção e pensa a respeito. Em muitos casos, achamos bem relevante.”

Dima Grossman
CTO

Dima também apontou o risco que ele combate ativamente: a fadiga de ruído.

“Você não quer que a ferramenta seja o menino que gritava lobo.

“São tantas notificações nos relatórios que você começa a perder o foco.”

Dima Grossman
CTO

Aqui, a qualidade do sinal não é um extra. É a diferença entre uma ferramenta que a equipe realmente lê e uma que ela aprende a ignorar.

Análise dos achados

Nos primeiros 30 dias da Novu com o Hacktron (de 6 de julho a 6 de agosto de 2026):

230 pull requests42 de 61 achados triados28 resolvidos1 verdadeiro positivo6 riscos aceitos7 falsos positivos 230 pull requests42 de 61 achados triados28 resolvidos1 verdadeiro positivo6 riscos aceitos7 falsos positivos

18 achados ainda aguardam triagem. Mais 1 foi retirado quando o PR de origem foi abandonado.

Que tipos de vulnerabilidade ele encontra?

As ferramentas da própria Novu detectam principalmente problemas visíveis em um único arquivo ou no diff de um único PR. Os achados que Dima destacou como valiosos são os que só aparecem quando você rastreia uma chamada por vários arquivos, exatamente o tipo de coisa que um scanner baseado em correspondência de padrões não tem como apontar.

Injeção NoSQL e bypass de autorização entre conversas (Alta)

Detectado no PR #12062 e corrigido no mesmo PR antes do merge.

A Novu estava lançando um novo caminho de ingestão para que agentes de IA auto-hospedados emitissem eventos estruturados (mensagens, respostas, aprovações) na plataforma. Parte desse pipeline precisava associar um evento recebido à atividade de conversa correta, comparando um ID de mensagem fornecido pelo 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);
}

Dois problemas se somavam aqui. Primeiro, o filtro da consulta nunca verificava a qual conversa a atividade pertencia, só o ambiente. Segundo, o messageId recebido não era validado como uma string simples antes de ser usado diretamente nesse filtro, o que significava que ele podia ser substituído por um operador de consulta do MongoDB em vez de um ID. Juntos, eles permitiam que um chamador autenticado localizasse, e depois editasse ou excluísse, a atividade de uma conversa que não era dele.

O Review do Hacktron detectou isso ao rastrear a cadeia de chamadas por três arquivos: o controller de ingestão que aceita o payload bruto do evento, o use case que o converte em um evento tipado sem validação profunda e o serviço de sink que passa o ID não validado para a consulta acima.

Os resultados: confiança para entregar mais rápido, não mais devagar

A Novu tem revisão contínua em uma base de código em que mais de 400 contribuidores externos mexem, sem a fadiga de ruído que faz as equipes pararem de ler as ferramentas de segurança, e com uma confiança que permite entregar mais rápido, e não mais devagar.

Clientes

Contato

Agende uma demo ou comece grátis.

[↓] [↑] [enter] para abrir
Menu
[M]
Próximo no menu
[J]
Anterior no menu
[K]
Buscar
[F]
Perguntar
[A]
Entrar
[S]
Copiar página
[C]
Ouvir
[L]
Justificação
[R]
Idioma
[G]
Modo escuro
[D]
Alto contraste
[H]
Atalhos
[I]
Fechar
[Esc]