Skip to content

Security: didiersaintp-ui/trip

Security

SECURITY.md

Politique de Sécurité

Versions Supportées

Les versions suivantes de l'application MaaS reçoivent actuellement des mises à jour de sécurité :

Version Supportée
1.0.x
< 1.0

Signaler une Vulnérabilité

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.

🚨 NE PAS Créer d'Issue Publique

IMPORTANT : Pour les vulnérabilités de sécurité, NE créez PAS d'issue publique sur GitHub.

Procédure de Signalement

  1. Envoyez un email à : security@maas-project.fr

  2. Incluez les détails suivants :

    • Description de la vulnérabilité
    • Étapes pour reproduire
    • Impact potentiel
    • Versions affectées
    • Votre suggestion de correctif (optionnel)
  3. Chiffrement PGP (optionnel mais recommandé) :

    • Clé PGP : [Lien vers la clé publique]
    • Fingerprint : XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

Délais de Réponse

  • 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)

Processus de Gestion

  1. Accusé de réception : Confirmation de réception dans les 48h
  2. Évaluation : Analyse de la vulnérabilité et détermination de la sévérité
  3. Développement du correctif : Création d'un patch sécurisé
  4. Tests : Vérification du correctif
  5. Publication : Release du patch
  6. Divulgation : Publication coordonnée (CVE si applicable)

Scoring de Sévérité

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

Mesures de Sécurité en Place

Infrastructure

  • 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

Application

  • 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.

Conformité

  • 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

Monitoring

  • 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

Bonnes Pratiques pour les Contributeurs

Gestion des Secrets

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 .gitignore pour exclure les fichiers sensibles

Code Sécurisé

// ❌ 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);
}

Dépendances

  • ✅ 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

API Security

// 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
}

Outils de Sécurité

Scans Automatisés (CI/CD)

  • 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

Outils Locaux Recommandés

# 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 *.sln

Incidents de Sécurité Passés

Aucun incident de sécurité majeur à ce jour.

Hall of Fame

Nous reconnaissons et remercions les chercheurs en sécurité qui nous ont aidés :

  • À venir

Programme de Bug Bounty

🚧 À 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

Ressources

Contact

Mise à Jour

Cette politique est revue et mise à jour trimestriellement.

Dernière mise à jour : 16 novembre 2024 Version : 1.0

There aren't any published security advisories