Dossier de Sécurité (RSSI)¶
Classification : Restreint — RSSI / Équipe Sécurité
Version : 1.1
Date : 2026-05-23
Destinataires : RSSI, Responsables Sécurité, Ingénierie Sécurité
Version complète en anglais
Le dossier de sécurité complet avec toutes les matrices et analyses est disponible en anglais : Security Dossier (CISO) →
Vue d'ensemble sécurité¶
Repod est un gestionnaire de dépôts de paquets Linux pour entreprises (éditions APT et RPM). Il assure la maîtrise complète de la chaîne d'approvisionnement logicielle, de la réception jusqu'à la distribution.
Principes de sécurité¶
- Défense en profondeur — pipeline de contrôles séquentiels et indépendants
- Moindre privilège — 5 rôles avec périmètres précisément délimités
- Séparation des responsabilités — les décisions CVE sont réservées au RSSI
- Traçabilité complète — chaque action sensible dans un audit trail immuable
- Conformité réglementaire — NIS2, SecNumCloud, RGPD
Authentification et gestion des identités¶
Résumé¶
| Mécanisme | Implémentation |
|---|---|
| Stockage des mots de passe | bcrypt (passlib) — aucun clair |
| Sessions utilisateurs | JWT HS256 (60 min, configurable) |
| CI/CD | Tokens API (repod_…) — hash SHA-256 uniquement |
| Annuaire d'entreprise | LDAP / AD avec vérification TLS |
| Limite de débit | 10 req/min sur /auth/* |
Limitation connue — pas de révocation JWT
Un token JWT reste valide jusqu'à expiration (60 min) même après déconnexion. Contrôle compensatoire : la désactivation de compte est vérifiée à chaque requête.
Contrôle d'accès (RBAC)¶
| Permission | admin | maintainer | uploader | auditor | reader |
|---|---|---|---|---|---|
| Gestion utilisateurs | ✅ | ❌ | ❌ | ❌ | ❌ |
| Upload / import paquets | ✅ | ✅ | ✅ | ❌ | ❌ |
| Décision CVE | ✅ | ✅ | ❌ | ❌ | ❌ |
| Journaux d'audit | ✅ | ✅ | ❌ | ✅ | ❌ |
| Export SBOM | ✅ | ✅ | ❌ | ✅ | ❌ |
| Lecture paquets | ✅ | ✅ | ✅ | ✅ | ✅ |
Pipeline de sécurité des paquets¶
Chaque paquet reçu traverse 6 étapes avant publication :
Paquet reçu
│
▼
[1] Validation du format (dpkg-deb / rpm -qp)
│── ÉCHEC ──► Rejeté (HTTP 400)
▼
[2] Vérification SHA-256
│── INCOHÉRENCE ──► Rejeté
▼
[3] Analyse antivirus ClamAV
│── VIRUS ──► Quarantaine
▼
[4] Scan CVE Grype + enrichissement EPSS / CISA KEV
│── politique=block ──► Quarantaine
│── politique=review ──► pending_review (file RSSI)
▼
[5] Vérification signature GPG
│── INVALIDE ──► Rejeté
▼
[6] Vérification des dépendances
▼
Publié dans le dépôt
Politiques CVE configurables¶
| Sévérité | Politique | Comportement |
|---|---|---|
| Critique | block |
Quarantaine — jamais publié |
| Critique | review |
pending_review — file RSSI obligatoire |
| Haute | block |
Quarantaine |
| Haute | review |
pending_review — file RSSI |
| Moyenne | warn |
Publié avec indicateur d'avertissement |
| Faible | allow |
Publié sans restriction |
File de revue RSSI¶
Les paquets dont au moins une CVE déclenche la politique review passent en
statut pending_review. Ils sont visibles dans l'interface RSSI mais inaccessibles
aux consommateurs du dépôt jusqu'à décision.
| Action | Rôle requis | Traçabilité |
|---|---|---|
| Approuver | admin ou maintainer |
Justification obligatoire + audit trail |
| Rejeter | admin ou maintainer |
Justification obligatoire + audit trail |
SLA par sévérité¶
| Sévérité | SLA par défaut |
|---|---|
| Critique | 0 jour (décision immédiate requise) |
| Haute | 30 jours |
| Moyenne | 90 jours |
SBOM et traçabilité¶
| Format | Version | Organisme |
|---|---|---|
| CycloneDX | 1.5 | OWASP |
| SPDX | 2.3 | ISO/IEC 5962:2021 |
Chaque SBOM généré contient : - Inventaire complet des composants (directs et transitifs) - CVE associées avec statut de tri - Hash SHA-256 de chaque composant - Horodatage de génération et du dernier scan CVE
Audit trail¶
| Propriété | Valeur |
|---|---|
| Format | JSONL — un événement par ligne |
| Organisation | Un fichier par jour : /repos/audit/YYYY-MM-DD.jsonl |
| Accès | Lecture seule — rôles admin, maintainer, auditor |
| Mode écriture | Append-only — aucune API de modification ou suppression |
| Rétention | 90 jours par défaut (configurable) |
Limitations connues et contrôles compensatoires¶
| Limitation | Risque | Contrôle compensatoire |
|---|---|---|
| Pas de révocation JWT | Moyen | Désactivation compte vérifiée à chaque requête ; fenêtre 60 min |
| Pas de HTTPS natif | Élevé sans reverse proxy | Déploiement obligatoire derrière reverse proxy TLS |
| Port 8000 exposé sur toutes interfaces | Moyen | BIND_HOST=127.0.0.1 + règles firewall |
CSP avec unsafe-inline |
Faible (interface interne) | Migration vers CSP avec nonce prévue en v3 |
Checklist de conformité synthétique¶
| Domaine | Statut |
|---|---|
| Authentification & identité | ✅ |
| Contrôle d'accès | ✅ |
| Sécurité des paquets | ✅ |
| Gestion des vulnérabilités | ✅ |
| SBOM & traçabilité | ✅ |
| Journalisation & audit | ✅ |
| Durcissement infrastructure | ⚠️ |
| Chiffrement & TLS | ⚠️ |
| Conformité NIS2 | ⚠️ |
| Conformité SecNumCloud | ⚠️ |
| Conformité RGPD | ⚠️ |
Signalement de vulnérabilités¶
Contact : security@[organisation]
Canal : Ne pas utiliser le système de tickets public.
Délai de réponse cible : 72 h pour l'accusé de réception, 30 jours pour la
remédiation des vulnérabilités Haute / Critique.