Sécurité @ RiskSonnar
Cette page documente nos mesures techniques de sécurité et notre politique de divulgation des vulnérabilités. Pour les engagements organisationnels (uptime, RGPD, sous-traitants, certifications), voir /trust.
Encryption
| Couche | Mesure |
| Transit (HTTPS) | TLS 1.3 forcé partout, HSTS activé (1 an, includeSubDomains, preload), HTTP/2 |
| Repos (database) | AES-256 (chiffrement disque OVH NVMe + chiffrement applicatif sur champs sensibles) |
| Backups | AES-256 + GPG (clé asymétrique) avant transfert vers stockage objet |
| API tokens | Hashés avec SHA-256 + sel unique avant stockage (jamais en clair) |
| Webhooks signature | HMAC-SHA256 avec secret par souscription |
| JWT Clerk | RS256 avec rotation de clés JWKS automatique |
| Stripe webhook secret | Vérification HMAC native Stripe SDK + idempotence par event_id |
Authentification et autorisation
Authentification utilisateurs
- Provider : Clerk (zero-knowledge sur les données métier)
- Méthodes : Email + magic link, Google OAuth, GitHub OAuth
- 2FA : disponible (TOTP, SMS, Backup codes)
- Password policy : 8 caractères minimum, complexité non bloquante (NIST 800-63B compliant)
- Session : JWT 1h validité, refresh automatique, révocation immédiate côté Clerk si compromise
- Rate limiting login : 5 tentatives / 15 min par IP
API tokens
- Format :
rs_test_* (test) et rs_live_* (production)
- Génération : 32 octets aléatoires, encoding base64url
- Stockage : SHA-256 hash + sel unique (jamais en clair, irréversible)
- Rotation : recommandée tous les 90 jours, révocation immédiate possible depuis le dashboard
- Scoping : roadmap Q4 2026 (limit by endpoint, by IP)
Autorisation
- RBAC simple : owner / admin / member par team
- Quotas appliqués par utilisateur ET par team (le plus strict prévaut)
- Audit log : toutes actions sensibles tracées (plan Business : 5 ans de rétention)
Sécurité applicative
| Vecteur | Mitigation |
| SQL injection | SQLAlchemy ORM (paramétré nativement) + sanitization input company_name |
| XSS | Content-Security-Policy strict, HTML escape sur toutes les valeurs utilisateur |
| CSRF | SameSite cookies + JWT Bearer (pas de cookies sensibles) |
| Clickjacking | X-Frame-Options: DENY |
| MIME sniffing | X-Content-Type-Options: nosniff |
| Open redirect | Allowlist des domaines autorisés pour les redirects |
| SSRF (server-side request forgery) | Allowlist des hôtes autorisés pour les fetches externes |
| Rate limiting global | Par IP : 60 req/min ; par utilisateur : selon plan ; burst 5 req/sec |
| DDoS | OVH protection L3/L4 native + Cloudflare option (plan Business) |
Logs et monitoring
- Logs applicatifs : structurés JSON, conservés 90 jours, requêtables
- Logs accès HTTP : Nginx, anonymisés après 30 jours, conservés 90 jours
- Logs sensibles (auth, paiement, webhook) : conservés 5 ans (plan Business)
- Alertes : Slack + email sur événements critiques (5xx > seuil, queue webhook bloquée, etc.)
- Sentry-like temps réel : roadmap Q2 2026
Code et CI/CD
- Code : closed source, accès limité aux fondateurs
- Repository : GitHub privé avec branch protection sur
main
- Reviews : pull request obligatoire, approbation 1+ fondateur
- CI : lint Python + AST check + tests automatisés (100+ tests) + smoke tests sur les routes critiques
- Deploy : auto sur push
main, rollback en 1 clic via revert + redeploy
- Secrets : variables d’environnement chiffrées (jamais en clair dans le code)
- Dependency scanning : Dependabot actif, mises à jour mensuelles minimum
Politique de divulgation des vulnérabilités
Safe harbor. Nous nous engageons à ne pas poursuivre tout chercheur en sécurité agissant de bonne foi dans le respect de cette politique.
Comment signaler
Délais d’engagement
| Sévérité | Description | Patch SLA |
| P0 — critique | RCE, exfiltration massive, account takeover | 24 heures |
| P1 — haute | Injection limitée, leak partiel, privilege escalation | 7 jours |
| P2 — moyenne | XSS reflété, info leak mineur, bug logique | 30 jours |
Reconnaissance
Avec ton accord, ton nom (et lien) sera ajouté au hall of fame sur /trust une fois la vulnérabilité corrigée. Nous n’offrons pas de bug bounty rémunéré pour l’instant (roadmap Q4 2026), mais nous offrons systématiquement un crédit RiskSonnar significatif aux découvreurs de bonne foi.
Hors périmètre
Ne sont pas considérés comme vulnérabilités :
- Absence de SPF/DKIM/DMARC sur des domaines non-sender
- Self-XSS exploitable uniquement par soi-même
- Vulnérabilités sur des sous-domaines tiers (ex. status.risksonnar.com en cours de mise en place)
- Rate limiting ou enumeration mineure sans impact réel
- Best practices SSL/TLS (sauf si vraiment exploitables)
- Vulnérabilités requérant une compromise locale du device de l’utilisateur
Pour aller plus loin
Une question, un doute, une suggestion ? Nous prenons la sécurité
très au sérieux.
security@risksonnar.com — réponse sous 48h ouvrées.