
Scanner di vulnerabilità open-source con rilevamento automatico della rete, rilevamento basato su CVE, punteggio CVSS, dashboard di rischio, agenti remoti tramite gRPC e una moderna interfaccia web per team di sicurezza aziendale.

Sirius è uno scanner di vulnerabilità open-source con scoperta automatizzata, rilevamento basato su CVE e una moderna interfaccia web. Clona il repository, configura il certificato TLS dell'agente e inizia a scansionare.
Prima di avviare lo stack, fornisci il certificato e la chiave del server dell'agente come descritto in Configurazione TLS gRPC dell'agente. L' installer non li crea.
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
Apri http://localhost:3000 e accedi:
[email protected] | |
| Password | stampata dall'installer (cerca INITIAL_ADMIN_PASSWORD nell'output) |
Tutti e sei i servizi si avviano automaticamente una volta presente la loro configurazione richiesta. L'installer genera i segreti dell'applicazione alla prima esecuzione ed è sicuro da rieseguire.
Per impostazione predefinita l'installer lascia IMAGE_TAG non impostato, quindi Compose scarica latest da GHCR. Per fissare una release (ad esempio v1.0.0 in .env), fallo solo dopo che quel tag esiste per tutte e sei le immagini container; verifica con bash scripts/verify-ghcr-public-access.sh v1.0.0 da una shell che non ha effettuato l'accesso a ghcr.io.
Requisiti: Docker Engine 20.10+ con Compose V2, 4 GB di RAM, 10 GB di disco. Funziona su Linux, macOS e Windows (WSL2).
X-API-Key sulla porta 9001)Il passaggio dell'installer è sempre lo stesso. Cambia solo il comando docker compose up.
| Modalità | Comando | Caso d'uso |
|---|---|---|
| Standard | docker compose up -d | La maggior parte degli utenti -- scarica l'intero stack di release da GHCR |
| Development | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Live-reload per il lavoro sul codice locale |
| Source Build | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Build locali esplicite dell'intero stack |
| Production | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Impostazioni rafforzate, pull_policy: always |
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
docker compose ps # all 6 services should show "healthy" or "running"
curl http://localhost:3000 # UI responds
curl http://localhost:9001/health # API responds
Servizi attesi: sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
graph TD
subgraph clients [Clients]
UI["Sirius UI (Next.js)"]
CLI["Terminal and Agent Runtime"]
end
subgraph core [Core Services]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infrastructure]
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
| Servizio | Tecnologia | Porte | Scopo |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Interfaccia web |
| sirius-api | Go, Gin | 9001 | API REST e logica di business |
| sirius-engine | Go + agente gRPC integrato | 5174, 50051 | Scanner, terminale, servizi agente |
| sirius-postgres | PostgreSQL 15 | 5432 | Dati su vulnerabilità e scansioni |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Messaggistica tra servizi |
| sirius-valkey | Valkey (compatibile con Redis) | 6379 | Cache e dati di sessione |
| Dashboard | Scanner | Vulnerability Navigator |
|---|---|---|
![]() | ![]() | ![]() |
| Ambiente | Dettagli host | Terminale |
|---|---|---|
![]() | ![]() | ![]() |
Sirius espone endpoint REST sulla porta 9001, protetti dalla chiave API del servizio interno. Preferire il file secret Docker (SIRIUS_API_KEY_FILE, predefinito /run/secrets/sirius_api_key); SIRIUS_API_KEY rimane un fallback supportato tramite variabile d'ambiente. L'installer scrive ./secrets/sirius_api_key.txt (modalità 0644 affinché gli UID delle applicazioni non-root possano leggere il secret montato tramite bind) e configura entrambi.
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"
Documentazione API completa: REST API Reference
Per le distribuzioni in produzione:
--force per rigenerare tutte le credenzialidocker compose pull && docker compose up -dSoluzioni rapide per i problemi comuni: