
Sirius v1.1.0
Scanner de vulnérabilités open source avec découverte réseau automatisée, détection basée sur les CVE, score CVSS, tableaux de bord des risques, agents distants via gRPC et une interface web moderne pour les équipes de sécurité des entreprises.
Sirius Scan

Sirius est un scanner de vulnérabilités open-source avec découverte automatique, détection basée sur les CVE et une interface web moderne. Clonez, exécutez quatre commandes, commencez à scanner.
Démarrage rapide
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
Ouvrez http://localhost:3000 et connectez-vous :
[email protected] | |
| Mot de passe | affiché par l'installateur (cherchez INITIAL_ADMIN_PASSWORD dans la sortie) |
C'est tout. Les six services démarrent automatiquement. L'installateur génère des secrets sécurisés lors du premier lancement et peut être relancé sans risque.
Par défaut, l'installateur ne définit pas IMAGE_TAG, donc Compose tire latest depuis GHCR. Pour épingler une version (par exemple v1.0.0 dans .env), ne le faites qu'après que ce tag existe pour les six images conteneur ; vérifiez avec bash scripts/verify-ghcr-public-access.sh v1.0.0 depuis un shell qui n'est pas connecté à ghcr.io.
Prérequis : Docker Engine 20.10+ avec Compose V2, 4 Go de RAM, 10 Go de disque. Fonctionne sur Linux, macOS et Windows (WSL2).
Ce que fait Sirius
- Découverte réseau — énumération automatique des hôtes et services via Nmap
- Détection de vulnérabilités — scanning basé sur les CVE avec score CVSS
- Tableaux de bord des risques — progression en temps réel des scans, tendances de sévérité et conseils de correction
- Agents distants — scanning distribué sur plusieurs environnements via gRPC
- Terminal interactif — console PowerShell pour scripts avancés et automatisation
- API REST — intégration avec les workflows de sécurité existants (authentification
X-API-Keysur le port 9001)
Options de déploiement
L'étape de l'installateur est toujours la même. Seule la commande docker compose up change.
| Mode | Commande | Cas d'usage |
|---|---|---|
| Standard | docker compose up -d | La plupart des utilisateurs — tire la stack complète depuis GHCR |
| Développement | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Rechargement à chaud pour le code local |
| Build source | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Builds explicites de toute la stack en local |
| Production | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Paramètres durcis, pull_policy: always |
Installation non interactive (CI / Terraform / automatisation)
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
Rotation des secrets
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
Vérifier l'installation
docker compose ps # les 6 services doivent afficher "healthy" ou "running"
curl http://localhost:3000 # l'interface répond
curl http://localhost:9001/health # l'API répond
Services attendus : sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
Architecture
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
| Service | Technologie | Ports | Objectif |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Interface web |
| sirius-api | Go, Gin | 9001 | API REST et logique métier |
| sirius-engine | Go + agent gRPC intégré | 5174, 50051 | Scan, terminal, services d'agents |
| sirius-postgres | PostgreSQL 15 | 5432 | Données de vulnérabilités et de scans |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Messagerie inter-services |
| sirius-valkey | Valkey (compatible Redis) | 6379 | Cache et données de session |
Interface
| Tableau de bord | Scanner | Navigateur de vulnérabilités |
|---|---|---|
![]() | ![]() | ![]() |
| Environnement | Détails de l'hôte | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
API
Sirius expose des points de terminaison REST sur le port 9001, protégés par la clé API de service interne. Préférez le fichier secret Docker (SIRIUS_API_KEY_FILE, par défaut /run/secrets/sirius_api_key) ; SIRIUS_API_KEY reste une variable d'environnement de repli prise en charge. L'installateur écrit ./secrets/sirius_api_key.txt (mode 0644 pour que les UID d'applications non-root puissent lire le secret monté en bind) et configure les deux.
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"
Documentation complète de l'API : Référence API REST
Recommandations de sécurité
Pour les déploiements en production :
- Rotation des secrets — exécutez l'installateur avec
--forcepour regénérer tous les identifiants - Restreindre les ports — n'exposez que le port 3000 (interface) ; gardez 5432, 6379, 5672 en interne
- Utiliser un proxy inverse — placez nginx ou Traefik devant avec TLS
- Maintenir les images à jour —
docker compose pull && docker compose up -d
Dépannage
Solutions rapides pour les problèmes courants :




