
Sirius v1.1.0
Escáner de vulnerabilidades de código abierto con descubrimiento automatizado de redes, detección basada en CVE, puntuación CVSS, paneles de riesgo, agentes remotos vía gRPC y una interfaz web moderna para equipos de seguridad empresarial.
Sirius Scan

Sirius es un escáner de vulnerabilidades de código abierto con descubrimiento automatizado, detección basada en CVE y una interfaz web moderna. Clona el repositorio, ejecuta cuatro comandos y empieza a escanear.
Inicio rápido
git clone https://github.com/SiriusScan/Sirius.git
cd Sirius
docker compose -f docker-compose.installer.yaml run --rm sirius-installer
docker compose up -d
Abra http://localhost:3000 e inicie sesión:
| Correo electrónico | [email protected] |
| Contraseña | impresa por el instalador (busque INITIAL_ADMIN_PASSWORD en la salida) |
Eso es todo. Los seis servicios se inician automáticamente. El instalador genera secretos seguros en la primera ejecución y es seguro volver a ejecutarlo.
Por defecto, el instalador deja IMAGE_TAG sin establecer, por lo que Compose obtiene latest de GHCR. Para fijar una versión (por ejemplo v1.0.0 en .env), hágalo solo después de que esa etiqueta exista para todas las seis imágenes de contenedor; verifique con bash scripts/verify-ghcr-public-access.sh v1.0.0 desde un shell que no haya iniciado sesión en ghcr.io.
Requisitos: Docker Engine 20.10+ con Compose V2, 4 GB de RAM, 10 GB de disco. Funciona en Linux, macOS y Windows (WSL2).
Qué hace Sirius
- Descubrimiento de red -- enumeración automatizada de hosts y servicios mediante Nmap
- Detección de vulnerabilidades -- escaneo basado en CVE con puntuación CVSS
- Paneles de riesgo -- progreso del escaneo en tiempo real, tendencias de severidad y guía de remediación
- Agentes remotos -- escaneo distribuido en múltiples entornos a través de gRPC
- Terminal interactiva -- consola PowerShell para scripting avanzado y automatización
- API REST -- integración con flujos de trabajo de seguridad existentes (autenticación
X-API-Keyen el puerto 9001)
Opciones de despliegue
El paso del instalador siempre es el mismo. Solo cambia el comando docker compose up.
| Modo | Comando | Caso de uso |
|---|---|---|
| Estándar | docker compose up -d | La mayoría de usuarios -- obtiene la pila completa de la versión desde GHCR |
| Desarrollo | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Recarga en vivo para trabajo local con código |
| Compilación desde fuente | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Compilaciones explícitas de la pila completa local |
| Producción | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Configuración reforzada, pull_policy: always |
Configuración no interactiva (CI / Terraform / automatización)
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
Rotar secretos
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
Verificar la instalación
docker compose ps # los 6 servicios deberían mostrar "healthy" o "running"
curl http://localhost:3000 # la UI responde
curl http://localhost:9001/health # la API responde
Servicios esperados: sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
Arquitectura
graph TD
subgraph clients [Clientes]
UI["Sirius UI (Next.js)"]
CLI["Terminal y runtime de agente"]
end
subgraph core [Servicios principales]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infraestructura]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP publish"| MQ
MQ -->|"Queue consume"| Engine
API -->|"SQL read/write"| DB
Engine -->|"SQL read/write"| DB
API -->|"Session/cache ops"| Cache
Engine -->|"Scan state cache ops"| Cache
| Servicio | Tecnología | Puertos | Propósito |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Interfaz web |
| sirius-api | Go, Gin | 9001 | API REST y lógica de negocio |
| sirius-engine | Go + agente gRPC embebido | 5174, 50051 | Servicios de escáner, terminal y agente |
| sirius-postgres | PostgreSQL 15 | 5432 | Datos de vulnerabilidades y escaneos |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Mensajería entre servicios |
| sirius-valkey | Valkey (compatible con Redis) | 6379 | Datos de caché y sesiones |
Interfaz
| Panel de control | Escáner | Navegador de vulnerabilidades |
|---|---|---|
![]() | ![]() | ![]() |
| Entorno | Detalles del host | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
API
Sirius expone endpoints REST en el puerto 9001, protegidos por la clave de API de servicio interno. Prefiera el archivo de secreto de Docker (SIRIUS_API_KEY_FILE, por defecto /run/secrets/sirius_api_key); SIRIUS_API_KEY sigue siendo una alternativa de variable de entorno compatible. El instalador escribe ./secrets/sirius_api_key.txt (modo 0644 para que los UIDs de aplicaciones no root puedan leer el secreto montado) y configura ambas.
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"
Documentación completa de la API: Referencia de la API REST
Recomendaciones de seguridad
Para despliegues en producción:
- Rote los secretos -- ejecute el instalador con
--forcepara regenerar todas las credenciales - Restrinja los puertos -- exponga solo el puerto 3000 (UI); mantenga 5432, 6379, 5672 internos
- Use un proxy inverso -- coloque nginx o Traefik al frente con TLS
- Mantenga las imágenes actualizadas --
docker compose pull && docker compose up -d
Solución de problemas
Soluciones rápidas para problemas comunes:




