
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 [](https://github.com/SiriusScan/Sirius/actions/workflows/ci.yml) [](https://github.com/SiriusScan/Sirius/releases) [](https://github.com/orgs/SiriusScan/packages) [](./LICENSE) [](https://sirius.opensecurity.com/community)  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 ```bash 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** | `[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-Key` sur 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) ```bash docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets docker compose up -d ``` ### Rotation des secrets ```bash docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force docker compose up -d --force-recreate ``` ## Vérifier l'installation ```bash 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 ```mermaid 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. ```bash 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](https://sirius.opensecurity.com/docs/api/rest/authentication) ## Recommandations de sécurité Pour les déploiements en production : 1. **Rotation des secrets** — exécutez l'installateur avec `--force` pour regénérer tous les identifiants 2. **Restreindre les ports** — n'exposez que le port 3000 (interface) ; gardez 5432, 6379, 5672 en interne 3. **Utiliser un proxy inverse** — placez nginx ou Traefik devant avec TLS 4. **Maintenir les images à jour** — `docker compose pull && docker compose up -d` ## Dépannage Solutions rapides pour les problèmes courants : | Problème | Solution | |----------|----------| | Les services ne démarrent pas | `docker compose logs <service>` pour trouver l'erreur | | Calque de développement manquant dans l'infra | Utilisez les deux fichiers : `-f docker-compose.yaml -f docker-compose.dev.yaml` | | Conflit de port | `lsof -i :3000` pour trouver le processus conflictuel | | Erreur de connexion à la base de données | `docker exec sirius-postgres pg_isready` | | Secrets obsolètes après réinitialisation | Relancez l'installateur, puis `docker compose up -d --force-recreate` | Pour les manuels opérationnels détaillés, les procédures de vérification et la récupération d'urgence, voir [Opérations & Dépannage](https://github.com/siriusscan/sirius/blob/main/documentation/OPERATIONS.md). ## Contribuer Voir [CONTRIBUTING.md](https://github.com/siriusscan/sirius/blob/main/CONTRIBUTING.md) pour la configuration de développement, les normes de codage et les directives pour les PR. **Liens rapides :** [Problèmes](https://github.com/SiriusScan/Sirius/issues) | [Discussions](https://github.com/SiriusScan/Sirius/discussions) | [Discord](https://sirius.opensecurity.com/community) ## Pour aller plus loin - [Guide d'installation](https://sirius.opensecurity.com/docs/getting-started/installation) - [Visite de l'interface](https://sirius.opensecurity.com/docs/getting-started/interface-tour) - [Guide de scanning](https://sirius.opensecurity.com/docs/guides/scanning) - [Architecture Docker](https://github.com/siriusscan/sirius/blob/main/documentation/dev/architecture/README.docker-architecture.md) - [Architecture système](https://github.com/siriusscan/sirius/blob/main/documentation/dev/architecture/README.architecture.md) - [Guide CI/CD](https://github.com/siriusscan/sirius/blob/main/documentation/dev/architecture/README.cicd.md) - [Opérations & Dépannage](https://github.com/siriusscan/sirius/blob/main/documentation/OPERATIONS.md) ## Licence [MIT](https://github.com/siriusscan/sirius/blob/main/LICENSE)