Plataforma modular de análisis y monitorización de ciberseguridad IT/OT con IA, scraping, dashboards y orquestación automatizada.
CyberMind es una plataforma modular, automatizada y de código abierto para la auditoría, análisis, monitorización y automatización de tareas de ciberseguridad en entornos IT y OT. Va mucho más allá de la simple recolección de datos: permite realizar auditorías técnicas, análisis de vulnerabilidades, orquestación de flujos de trabajo, generación de dashboards, integración de IA y procesamiento avanzado de información.
🎯 Objetivo: Proveer una solución integral y flexible para la gestión de inteligencia, auditoría y automatización en ciberseguridad, facilitando el acceso a datos estructurados y procesados, la correlación de eventos y la toma de decisiones informada. Promueve la transparencia, la colaboración abierta y el uso de metodologías de inteligencia y automatización.
⚠️ Importante: Para usar la app es necesario crear un .env con las variables de entorno necesarias.Puedes clonar el .env.example y renombrarlo como .env y cambiar las variables de entorno por las tuyas. En este .env se almacenan las variables de entorno para la bbdd de tiny rss si quieres usar otros datos como variables debes modificar tambien el fichero stack.env del directorio install, para que al hacerse el compose del docker de tiny tenga las claves que tu especifiques.➡️ Ver guía detallada
# 1. Clonar el repositorio
# 2. Instalar dependencias
cd CyberMind
python -m venv env
source env/bin/activate # En Windows: .\env\Scripts\activate
pip install -r requirements.txt
# 3.Levantar servicios (Opcional, ya que el programa hace el compose automaticamente)
cd Install
docker compose -f opensearch-compose.yml up -d
docker compose -f tinytinyrss.yml up -d
# 4.Arrancar la aplicacion
cd ..
cd src
python main.py- 🛠️ Instalación dependencias: Docs/instalacion_dependencias.md
- 🌐 UI: http://127.0.0.1:8000/ui
- 📡 API: http://127.0.0.1:8000/docs
- 📊 Dashboards: http://localhost:5601
| Componente | Descripción / Uso principal |
|---|---|
| 🐍 Python 3.12+ | Backend principal, scripts y automatización |
| ⚡ FastAPI | API REST y servidor web |
| 🧠 SpaCy | Procesamiento NLP, extracción de entidades |
| 📰 Scrapy | Scraping de noticias, feeds y alertas |
| 🐘 PostgreSQL | Base de datos estructurada |
| 🔎 OpenSearch | Búsqueda semántica y dashboards |
| 🐳 Docker | Orquestación de servicios y contenedores |
| 🤖 LLM | Chat IA especializado en CVE y OT/IT |
| 🦾 Workers | Orquestación de tareas y procesos |
| 🛡️ Seguridad | Validación, gestión de secretos, SAST |
| ⚙️ CI/CD | Workflows automáticos con GitHub Actions |
| 🗄️ SQLite | Base de datos de hashing (hash repository) |
- 🔗 Integración multifuente: RSS, Google Alerts, Google Dorking, APIs públicas
- 🧠 Procesamiento semántico: keywords, NER, sentimiento, embeddings
- 📦 Almacenamiento híbrido: OpenSearch y PostgreSQL
- 📊 Dashboards abiertos: OpenSearch Dashboards, Grafana, Chartbrew
- 🤖 LLM CyberSentinel: consulta y resumen de CVEs/noticias OT/IT
- 🦾 Orquestador ligero: workers y tareas automatizadas
- 🛡️ Security by Design: validación, gestión de secretos, CI/CD
- 📝 Generación de JSON para finetune/R.A.G (futura implementación) de LLM
- 🚀 Expansión continua: nuevos módulos y servicios en desarrollo
- 📚 Documentación principal: Docs/Indice.md
- 🔗 Endpoints API: Docs/api_endpoints.md
- 🤖 LLM integrado: Docs/llm.md
- 🛠️ Instalación dependencias: Docs/instalacion_dependencias.md
- ⚙️ Workflows CI/CD: Docs/Workflows.md
- 📝 Registro de cambios: Docs/ChangeLog.md
- 📅 Roadmap y estado de próximas implementaciones: Trello CyberMind
- 🎥 Presentación del proyecto: Ver presentación en Canva
La IA integrada en CyberMind utiliza un modelo LLama3 restringido, configurado mediante un archivo Model file que limita sus respuestas y comportamiento. La base de conocimiento del modelo está limitada hasta el año 2023 y no incluye información posterior.
⚠️ Importante: El modelo actual NO ha sido finetuneado con los datos extraídos por el sistema. La función de entrenamiento personalizado (R.A.G) se implementará en el futuro, ya que el proceso de diseño e implementación lleva bastante tiempo.
- El modelo responde únicamente sobre temas de ciberseguridad y CVE según las restricciones del Model file.
- No puede responder sobre eventos, vulnerabilidades o noticias posteriores a 2023.
- El finetuning con datos propios está planificado como mejora futura.
- El archivo JSON para el finetuning sí se genera automáticamente (outputs/finetune_data.jsonl), pero no se utiliza aún para entrenar el modelo.
CyberMind/
├── AGENTS.md
├── LICENSE
├── README.md
├── requirements.txt
├── dev-requirements.txt
├── Docs/
│ ├── Indice.md
│ ├── ChangeLog.md
│ ├── api_endpoints.md
│ ├── home.md
│ ├── llm.md
│ ├── instalacion_dependencias.md
│ ├── opensearch_install.md
│ ├── tiny_rss_install.md
│ ├── ...
├── Install/
│ ├── opensearch-compose.yml
│ ├── tinytinyrss.yml
│ ├── stack.env
│ ├── ...
├── src/
│ ├── main.py
│ ├── cfg.ini
│ ├── cfg_services.ini
│ ├── app/
│ │ ├── controllers/ # Controladores de rutas y lógica de API
│ │ ├── models/ # Modelos de datos y esquemas
│ │ ├── services/ # Lógica de negocio y servicios
│ │ ├── ui/ # Componentes de interfaz de usuario
│ │ ├── utils/ # Utilidades y funciones auxiliares
│ │ └── ...
│ ├── data/
│ │ ├── cve_list.json
│ │ ├── feeds/
│ │ ├── outputs/
│ │ └── ...
│ └── ...
├── tests/
│ ├── controllers/
│ ├── integration/
│ ├── services/
│ ├── unit/
│ ├── utils/
│ └── ...
└── env/
├── Scripts/
├── Lib/
├── Include/
└── ...
| Elemento | Descripción breve |
|---|---|
| AGENTS.md | Normas y estándares para el agente IA y desarrollo del proyecto |
| LICENSE | Licencia privativa: uso personal, educativo o investigación. Derivados solo con permiso. |
| README.md | Documentación principal y guía rápida |
| requirements.txt | Dependencias principales del proyecto |
| dev-requirements.txt | Dependencias para desarrollo y testing |
| Docs/ | Documentación técnica, API, instalación, workflows y registro de cambios |
| Install/ | Archivos de configuración y orquestación de servicios (Docker Compose, env) |
| src/ | Código fuente principal del proyecto |
| src/main.py | Punto de entrada de la API y la UI |
| src/app/ | Núcleo de la aplicación y submódulos |
| src/app/controllers/ | Controladores de rutas y lógica de API |
| src/app/models/ | Modelos de datos y esquemas |
| src/app/services/ | Lógica de negocio y servicios |
| src/app/ui/ | Componentes de interfaz de usuario |
| src/app/utils/ | Utilidades y funciones auxiliares |
| src/data/ | Datos, feeds, resultados de scraping y procesamiento |
| tests/ | Pruebas unitarias, de integración y de servicios |
| env/ | Entorno virtual Python para aislar dependencias |
Actualmente, CyberMind no se encuentra desplegada como servicio en la nube ni como plataforma pública. Esta decisión responde al objetivo principal del proyecto: ser una herramienta open source orientada a la ejecución y experimentación en entornos locales, facilitando la auditoría, el análisis y la automatización de tareas de ciberseguridad de forma autónoma y privada.
El enfoque está en proveer una solución flexible y reutilizable que cada usuario pueda instalar, adaptar y ampliar según sus necesidades, sin depender de servicios externos ni de infraestructuras centralizadas.
Software Developer | Lifelong Learner & Tech Enthusiast
- 🐙 GitHub: @naflashDev
- 📧 Email: Contactar via GitHub Issues
Este proyecto está protegido por una licencia privativa personalizada:
- El uso está permitido únicamente para fines personales, educativos o de investigación.
- Se permite la creación de versiones derivadas solo para uso personal, educativo o de investigación.
- Queda prohibida la redistribución, publicación o uso comercial sin autorización expresa y por escrito del titular.
- Toda versión derivada debe incluir un aviso visible de modificación y mantener el texto de licencia.
- Para más detalles, consulta el archivo LICENSE.
¿Encontraste un bug o tienes una sugerencia?
Por favor incluye:
- 📝 Descripción detallada del problema
- 🔄 Pasos para reproducir
- 💻 Información del entorno (OS, Python version, Docker version)
- 📸 Screenshots si es relevante
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/amazing-feature) - Commit tus cambios (
git commit -m 'Add amazing feature') - Push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request

