Les versions suivantes de l'application MaaS reçoivent actuellement des mises à jour de sécurité :
| Version | Supportée |
|---|---|
| 1.0.x | ✅ |
| < 1.0 | ❌ |
La sécurité de notre application est une priorité absolue. Nous apprécions vos efforts pour divulguer de manière responsable vos découvertes et ferons tout notre possible pour reconnaître vos contributions.
IMPORTANT : Pour les vulnérabilités de sécurité, NE créez PAS d'issue publique sur GitHub.
-
Envoyez un email à : security@maas-project.fr
-
Incluez les détails suivants :
- Description de la vulnérabilité
- Étapes pour reproduire
- Impact potentiel
- Versions affectées
- Votre suggestion de correctif (optionnel)
-
Chiffrement PGP (optionnel mais recommandé) :
- Clé PGP : [Lien vers la clé publique]
- Fingerprint :
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
- Première réponse : Dans les 48 heures
- Évaluation initiale : Dans les 7 jours
- Résolution : En fonction de la sévérité (voir ci-dessous)
- Accusé de réception : Confirmation de réception dans les 48h
- Évaluation : Analyse de la vulnérabilité et détermination de la sévérité
- Développement du correctif : Création d'un patch sécurisé
- Tests : Vérification du correctif
- Publication : Release du patch
- Divulgation : Publication coordonnée (CVE si applicable)
Nous utilisons le système CVSS v3.1 pour évaluer la sévérité :
| Score CVSS | Sévérité | Temps de Résolution |
|---|---|---|
| 9.0 - 10.0 | Critique | < 7 jours |
| 7.0 - 8.9 | Haute | < 14 jours |
| 4.0 - 6.9 | Moyenne | < 30 jours |
| 0.1 - 3.9 | Basse | < 90 jours |
- ✅ Chiffrement en transit : TLS 1.3 pour toutes les communications
- ✅ Chiffrement au repos : AES-256 pour les données sensibles
- ✅ Secrets management : HashiCorp Vault / Kubernetes Secrets
- ✅ Network policies : Isolation des services dans Kubernetes
- ✅ WAF : Web Application Firewall devant les APIs
- ✅ Authentification : JWT avec refresh tokens, Argon2id pour hash
- ✅ Autorisation : RBAC (Role-Based Access Control)
- ✅ Validation : FluentValidation sur toutes les entrées
- ✅ Sanitization : Protection XSS, SQL Injection, CSRF
- ✅ Rate Limiting : Protection contre brute-force et DDoS
- ✅ CORS : Configuration stricte
- ✅ Headers de sécurité : CSP, HSTS, X-Frame-Options, etc.
- ✅ RGPD : Droit à l'oubli, portabilité, consentement
- ✅ PCI-DSS : Conformité pour paiements (Stripe)
- ✅ OWASP Top 10 : Protection contre les vulnérabilités courantes
- ✅ ISO 27001 : Gestion de la sécurité de l'information
- ✅ Scan de dépendances : Snyk, Trivy (quotidien)
- ✅ Scan de conteneurs : Trivy, Grype (chaque build)
- ✅ SAST : CodeQL, SecurityCodeScan (CI/CD)
- ✅ DAST : OWASP ZAP (hebdomadaire)
- ✅ Secret scanning : TruffleHog, Gitleaks (chaque commit)
- ✅ Audit logs : Tous les événements de sécurité sont logués
❌ NE JAMAIS :
- Commiter des secrets (clés API, mots de passe, tokens)
- Hardcoder des credentials dans le code
- Partager des secrets via email ou chat
- Stocker des secrets en clair
✅ TOUJOURS :
- Utiliser des variables d'environnement
- Utiliser HashiCorp Vault ou Kubernetes Secrets
- Générer des secrets aléatoires forts
- Rotate les secrets régulièrement
- Utiliser
.gitignorepour exclure les fichiers sensibles
// ❌ Mauvais : SQL Injection
var query = $"SELECT * FROM Users WHERE Email = '{email}'";
// ✅ Bon : Parameterized query
var user = await _context.Users
.Where(u => u.Email == email)
.FirstOrDefaultAsync();
// ❌ Mauvais : Mot de passe en clair
user.Password = password;
// ✅ Bon : Hash avec Argon2
user.PasswordHash = _passwordHasher.HashPassword(password);
// ❌ Mauvais : Pas de validation
public async Task<IActionResult> Create(User user)
{
await _db.Users.AddAsync(user);
return Ok();
}
// ✅ Bon : Validation stricte
public async Task<IActionResult> Create([FromBody] CreateUserCommand command)
{
// FluentValidation automatique
var result = await _mediator.Send(command);
return result.IsSuccess ? Ok(result.Value) : BadRequest(result.Error);
}- ✅ Mettre à jour les dépendances régulièrement
- ✅ Vérifier les vulnérabilités connues (CVE)
- ✅ Utiliser Dependabot pour les updates automatiques
- ✅ Review les dépendances avant ajout
- ✅ Préférer les packages maintenus activement
// Authentification requise
[Authorize]
public class SecureController : ControllerBase { }
// CORS strict
services.AddCors(options =>
{
options.AddPolicy("AllowedOrigins", builder =>
{
builder.WithOrigins("https://app.maas.com")
.AllowAnyMethod()
.AllowAnyHeader();
});
});
// Rate limiting
[RateLimit(requests: 100, perSeconds: 60)]
public async Task<IActionResult> Search() { }
// Validation automatique
[HttpPost]
public async Task<IActionResult> Create([FromBody] Command cmd)
{
// FluentValidation intercepte et valide avant exécution
}- Snyk : Scan de dépendances
- Trivy : Scan de conteneurs et IaC
- CodeQL : Analyse statique (SAST)
- OWASP Dependency-Check : Vulnérabilités connues
- TruffleHog : Détection de secrets
# Scan de secrets
trufflehog filesystem . --json
# Scan de dépendances .NET
dotnet list package --vulnerable
# Scan de conteneur
trivy image maas-user-service:latest
# Analyse statique
dotnet tool install --global security-scan
security-scan *.slnAucun incident de sécurité majeur à ce jour.
Nous reconnaissons et remercions les chercheurs en sécurité qui nous ont aidés :
- À venir
🚧 À venir : Un programme de bug bounty sera lancé prochainement.
En attendant, nous offrons :
- Reconnaissance publique (avec votre permission)
- Swag MaaS (t-shirt, stickers)
- Accès précoce aux nouvelles fonctionnalités
- Email de sécurité : security@maas-project.fr
- Équipe de sécurité :
- CISO : [Nom] (ciso@maas-project.fr)
- Security Engineer : [Nom] (security-eng@maas-project.fr)
Cette politique est revue et mise à jour trimestriellement.
Dernière mise à jour : 16 novembre 2024 Version : 1.0