Saltar al contenido principal
Proyectos Live

NullBreach

El desarrollador pega un fragmento de código y recibe un diagnóstico inmediato contra OWASP Top 10. Puede seguir preguntando en un chat de IA que recuerda el hilo, sin repetir contexto, sin saltar entre herramientas.

Por Valentina Ramírez · Actualizado: 16 de junio de 2026

Resumen

App full stack: pegas un fragmento de código y recibes un diagnóstico OWASP Top 10 inmediato, con chat de IA de contexto persistente (Claude API). Django, DRF, PostgreSQL, React, Astro.

Stack
DjangoDRFPostgreSQLJWTClaude APIReactTypeScriptAstro
01

El problema

Revisar código con criterio OWASP o resolver una duda puntual de ciberseguridad implica saltar entre scanners pesados, documentación dispersa y foros desactualizados.

Scanners con curva alta

Semgrep o SonarQube resuelven mucho, pero montar y afinar las reglas cuesta un tiempo que una duda puntual no justifica.

Respuestas dispersas

La guía vive repartida entre documentación densa y foros que envejecen mal.

Sin memoria del análisis

Las herramientas no conversan: cada pregunta nueva obliga a re-explicar el código.

02

Qué construí

  1. 01

    Motor de análisis estático de fragmentos de código: detecta SQL injection, XSS, hardcoded secrets, manejo inseguro de errores y otras vulnerabilidades del OWASP Top 10.

  2. 02

    Chat de IA integrado via Claude API con contexto persistente de conversación e historial por usuario almacenado en base de datos.

  3. 03

    Autenticación JWT con endpoints protegidos; respuestas paginadas.

  4. 04

    Arquitectura desacoplada: backend en Django REST Framework + PostgreSQL, frontend en Astro + React + TypeScript.

Análisis OWASP

Pega un fragmento y recibe un diagnóstico contra el OWASP Top 10 en el momento.

Chat con memoria

Pregunta de seguimiento sin repetir el código: el chat retiene el hilo del análisis.

Diagnóstico estructurado

Cada hallazgo trae categoría OWASP, severidad y recomendación de corrección.

API pública

El backend está abierto en github.com/wavival/nullbreach-api.

03

Decisiones de arquitectura

1. Claude API vs análisis estático tradicional

Contexto
Los SAST tradicionales (Semgrep, SonarQube) detectan patrones, pero no explican el porqué ni razonan sobre código fuera de sus reglas.
Trade-off
Un motor de reglas es determinista y rápido, pero rígido: no generaliza a código nuevo ni da una explicación accionable.
Decisión
Claude API aporta razonamiento estructurado sobre el fragmento: clasifica contra OWASP Top 10, explica la causa y propone la corrección. El análisis determinista se mantiene para lo que se afirma con certeza; el modelo aporta el razonamiento, etiquetado como tal.

2. Contexto de chat persistente

Contexto
Una consulta de seguridad tiene contexto: el dev no repite el fragmento ni el fondo en cada mensaje.
Trade-off
Un chat sin estado es más simple, pero obliga a repetir contexto y rompe el hilo del análisis.
Decisión
Historial de conversación en base de datos, enviado como contexto en cada petición. El modelo recuerda el hilo sin que el usuario lo repita.

3. JWT para aislar sesiones de análisis

Contexto
Cada usuario analiza código potencialmente sensible; sus sesiones y su historial no pueden mezclarse.
Trade-off
Las sesiones por cookie son cómodas, pero acoplan un frontend y un backend desacoplados y complican el aislamiento entre usuarios.
Decisión
Autenticación JWT con endpoints protegidos: cada análisis e historial queda aislado por usuario, encaja con el backend desacoplado y no asume estado de sesión compartido.

4. Astro para el frontend

Contexto
El frontend de NullBreach es mayormente contenido y formularios de análisis, no una SPA pesada.
Trade-off
Una SPA pura penaliza el arranque y el SEO con JavaScript que la mayoría de la página no necesita.
Decisión
Astro con output estático e islas de React solo donde hay interactividad (análisis, chat): mejor rendimiento y SEO sin renunciar a React donde aporta.

5. Django + DRF como backbone

Contexto
NullBreach comparte stack con TerraCore y Root: Django REST Framework + PostgreSQL.
Trade-off
Elegir un stack distinto por proyecto puede optimizar casos puntuales, pero fragmenta el conocimiento y ralentiza el mantenimiento.
Decisión
Mismo backbone Django + DRF en todos los proyectos: patrones coherentes (serializers, auth JWT, paginación) que aceleran construir y mantener cada uno.
04

Resultados

  • Análisis estático en producción que detecta vulnerabilidades del OWASP Top 10 (SQL injection, XSS, hardcoded secrets y manejo inseguro de errores, entre otras) sobre fragmentos de código pegados por el usuario.

  • Chat de seguridad con contexto e historial persistente por usuario: la conversación retiene el hilo entre mensajes en lugar de empezar de cero en cada consulta.

  • Acceso protegido con autenticación JWT y respuestas paginadas, sobre un backend Django REST Framework + PostgreSQL desacoplado de un frontend en Astro + React.

05

Aprendizajes

  • Combinar análisis estático determinista con un LLM exige separar lo que el motor afirma con certeza de lo que el modelo sugiere: presentarlos como una sola respuesta erosiona la confianza en un producto de seguridad.

  • Desacoplar el backend de Django del frontend en Astro impuso un contrato de API explícito desde el inicio; esa frontera obligó a pensar paginación, autenticación JWT y persistencia del historial como parte del diseño, no como añadidos posteriores.

  • El prompt engineering para seguridad no es pedir 'busca vulnerabilidades': exige fijar el marco (OWASP Top 10), el formato de salida (categoría, severidad, recomendación) y el rol del modelo, para que el diagnóstico sea estructurado y comparable entre análisis.

A un click

Tu próxima idea merece
código que la sostenga.

Diseño y construyo productos completos: del backend a la interfaz que tus usuarios aman. Con IA integrada y seguridad desde el diseño.

Proyectos desde COP 2.000.000 / USD 500 según alcance (MVP desde 3-6 semanas).

Disponibilidad limitada, respondo en 24h.