NetSentinel SIEM (Security Information and Event Management) es un backend de recolección y análisis de eventos orientado a ciberseguridad. Proporciona una ingesta ultrarrápida de logs a través de un API RESTful, analizando todo el tráfico a través de un Motor de Reglas Heurísticas en tiempo real.
Ideal para interceptar ciberataques como fuerza bruta o inyecciones SQL antes de que escalen, presentando toda la actividad en un espectacular y envolvente Dashboard analítico de grado hacker.
- ⚡ Motor de Reglas en Tiempo Real (Threat Detection):
- 💥 Brute Force: Detecta ráfagas de intentos de inicio de sesión fallidos (
LOGIN_FAILED). - 💉 SQL Injection: Analiza el payload de las peticiones buscando comandos o inyecciones destructivas (
SELECT,DROP,UNION,--). - 🌊 DoS / Flood Attack: Alerta sobre un número anormalmente alto de peticiones desde una misma IP de origen temporal limit.
- 🔭 Endpoint Scanning: Identifica un exceso de errores
404 Not Found, previniendo herramientas de escaneo y reconocimiento web.
- 💥 Brute Force: Detecta ráfagas de intentos de inicio de sesión fallidos (
- 👁️ Dashboard Visual Autónomo: Panel UI en "Dark Mode" diseñado con estética Cyber. Totalmente dinámico, no requiere refrescar la página. Estadísticas reactivas de gráficos enriquecidos con datos generados minuto a minuto.
- 🔒 Seguridad JWT: Rutas críticas protegidas por implementaciones asíncronas de JSON Web Tokens adaptadas al stack de configuración moderno en Spring Security.
- 📚 Documentación Automática: Integración natural con la consola interactiva Swagger UI / OpenAPI, lista para usar y testear sin aplicaciones externas.
- 💾 Zero-Config Database: Usa el motor de bases de datos H2 In-Memory. Se crea localmente en la caché de ejecución: tú solo levantas el proyecto y no te peleas con bases de datos SQL de terceros.
- Java 21 ☕
- Spring Boot 3.2.x (Núcleo)
- Spring Security & JWT (Manejo de identidad y filtros)
- Spring Data JPA / Hibernate 6 (Capa de abstracciones de bases de datos)
- H2 Database Engine (Persistencia relacional temporal)
- SpringDoc OpenAPI v2 (Auto-generador Swagger)
- Thymeleaf (Motor de plantillas nativo de Spring)
- Bootstrap 5 (Rejilla y estilo)
- Chart.js (Representación matemática abstracta / Doughnuts & Lines)
- Vanilla JS + Fetch API (Manejo local asíncrono con Polling Loop de 5 segundos)
La filosofía de este proyecto es que puedas correrlo en menos de 1 minuto sin instalar herramientas tediosas de bases de datos. Contiene su propia envoltura de ejecución (Maven Wrapper).
-
Abre el código en tu directorio local: Asegúrate de estar en la ruta raíz del proyecto (la carpeta donde se encuentra este
README.md). -
Inicia la aplicación local usando la terminal:
- En Windows (CMD o PowerShell):
.\mvnw.cmd clean spring-boot:run
- En Linux o Mac:
./mvnw clean spring-boot:run
- En Windows (CMD o PowerShell):
-
¡Magia! La base de datos, las utilidades, el volcado analítico, los tokens JWT y las llaves se habrán configurado mediante el inicializador. Una vez veas en terminal
Started NetSentinelApplication, todo estará corriendo en el puerto8080.
Queremos que pruebes cómo tus defensas reaccionan bajo fuego real.
Accede desde un navegador web al panel principal: 👉 http://localhost:8080/dashboard
Tip: Déjalo abierto en un monitor auxiliar o en una pestaña dividida; el panel cuenta con recarga programada cada 5 segundos y los números saltarán mágicamente.
A través del siguiente enlace podrás lanzar ataques ficticios. 👉 http://localhost:8080/swagger-ui.html
Busca el botón
Alert ControlleryLog Ingestion Controller.
Ve al endpoint de Ingesta POST /api/logs/ingest, presiona Try it out y manda comandos:
- 🕵️♂️ Prueba Brute Force: Manda un JSON donde el
eventTypesea"LOGIN_FAILED". Haz click al botón azul Execute más de 5 veces rápidamente. - 💉 Prueba SQL Injection: Cambia tu
payloadlocal en el JSON de pruebas y pon una cadena con código de bases de datos dañino cómo:"GET /users HTTP/1.1 payload= UNION SELECT username, password FROM Admins;". Dale a Execute. - 📡 Prueba de Endpoint Scann: Configura el
eventTypeenviando"HTTP_404"y machaca el botón de enviar unas 8 ocasiones seguidas.
Mira directamente tu pestaña de Dashboard. El Polling Script detectará a los cinco segundos la infracción, subirá las métricas de amenaza y representará el tipo de ataque en la gráfica de distribución cibernética de manera visual.
Construido para hacer más segura la red del mañana. 🦇