🎬Mode DémoChoisir une démo

🛡️ Trust Center · Transparence radicale

Rapport d'audit de sécurité.
Public, daté, signé.

On vend de la sensibilisation à la cybersécurité. Le minimum d'honnêteté est d'appliquer la règle à nous-mêmes - et de rendre nos pratiques inspectables par tous.

Édition v1.1 · 7 mai 2026 · pentest interne

Rapport complet (PDF, ~12 pages)

Méthodologie, périmètre, contrôles vérifiés, gaps assumés, plan de remédiation à 6 mois.

📥 Télécharger

0

vulnérabilité critique exploitée

100 %

hébergement France/UE

3

findings high/medium à corriger

🎯 Pentest interne · 7 mai 2026

Pentest box-grise interne — résultats v1.1

Test offensif réalisé depuis un container Exegol isolé, contre une instance staging en docker-compose (HAProxy + Next.js + Postgres). 25+ vecteurs d'attaque testés (méthodes HTTP, header injection, path traversal, SSRF, IDOR, XSS, SQLi, info disclosure, brute-force, rate limit). Bilan : aucun bypass d'authentification, aucune fuite de données, aucune exécution de code. 3 findings non-critiques documentés ci-dessous, déjà corrigés en code (déploiement à rejouer).

ÉlevéeCVSS N/A (process)Fix en code, redeploy attendu

Image Docker en production en retard sur les correctifs

Constat : L'image humanix-academie-app déployée a été construite avant le merge des PRs #142 (CSP + middleware admin + alias /health), #133 (sanitization Mistral DOMPurify) et #150-#153 (a11y + typos). Vérifié en pentest : header Content-Security-Policy absent, /health renvoie 404, middleware edge-runtime absent du bundle.

Remédiation : Reconstruire et redéployer l'image humanix-academie-app à partir de main:14d21f2 (incluant tous les correctifs). Mettre en place une CI/CD avec déclenchement auto au push sur main.

MoyenneCVSS 5.3 (CVSS 3.1, Network/Low/None/None/Unchanged/Low/None/None)À traiter

HAProxy stats interface (port 8404) sans authentification

Constat : Le frontend stats HAProxy bind sur *:8404 sans stats auth. Bien que docker-compose limite l'exposition à 127.0.0.1 sur l'host, tout container partageant le réseau Docker peut accéder anonymement à la page (backends, débit, état des serveurs). Risque d'énumération si l'infra est partagée.

Remédiation : Ajouter stats auth admin:<password fort> dans infra/haproxy/haproxy.cfg ligne 157 (le commentaire le mentionne déjà mais l'instruction n'est pas active). Stocker le mot de passe dans un secret Docker / variable d'env.

MoyenneCVSS 5.3 (CVSS 3.1, Network/Low/None/None/Unchanged/Low/None/None)À traiter

Rate limiting per-IP absent sur /api/auth/callback/credentials

Constat : La protection lockout (5 échecs / 15 min) est par compte utilisateur (champ User.failedLoginAttempts). Pour des emails inexistants, aucun compteur n'est incrémenté. Conséquence : credential stuffing depuis une IP unique fonctionne à >7 req/s sans déclencher de blocage. Le track-sc0 HAProxy existe (stk_abuse) mais n'est pas appliqué en deny sur /api/auth.

Remédiation : Ajouter dans infra/haproxy/haproxy.cfg une ACL http_req_rate(10s) gt 20 sur path_beg /api/auth/callback/, qui retourne 429. OU rate-limit applicatif sur l'IP depuis lib/rate-limit.ts dans la route handler.

Voir les contrôles validés en pentest (20+)
  • HSTS preload + max-age 2 ans : OK
  • X-Frame-Options DENY + frame-ancestors 'none' : OK (clickjacking blocké)
  • X-Content-Type-Options nosniff : OK
  • Referrer-Policy strict-origin-when-cross-origin : OK
  • Permissions-Policy camera/mic/geo désactivés : OK
  • HAProxy filtre User-Agent (sqlmap/nikto/nmap/gobuster) → 403
  • HAProxy ACL méthodes : seules GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD autorisées
  • TRACE method bloquée → 405
  • Pas de source map .js.map exposée
  • Pas de .env, .git/config, package.json, schema.prisma exposés
  • X-Powered-By stripped par HAProxy (fingerprint Next.js caché)
  • Path traversal /sms/.., /famille/.. bloqués par Next.js URL norm
  • Host header injection rejetée (NextAuth check)
  • X-Forwarded-User / X-Real-IP ignorés pour bypass admin
  • Email enumeration timing : pas de différence > 1ms (no oracle)
  • /api/v1/users → 401 missing_token (auth strict)
  • Reflected XSS via query string : pas de réflexion
  • Token URL /sms/[token] /phishing/[token] : 404 anonymisé (pas d'oracle)
  • robots.txt + sitemap.xml correctement configurés
  • Vary headers cache séparation : OK

Notre niveau de maturité par domaine

Authentification & autorisationMature
Sécurité applicative (validation, anti-XSS DOMPurify, anti-SSRF)Mature
Sécurité réseau & infrastructureMature
Protection des données personnelles (RGPD)Mature
Headers HTTP (HSTS, X-Frame, Permissions-Policy, CSP en code)Mature
SDLC sécurisé (TypeScript strict, Prisma ORM, vitest 446 tests)Intermédiaire
CI/CD : déploiement auto au push mainÀ faire
Gestion des incidents (Cyber-Réflexe)Intermédiaire
Audit externe formel par cabinet PASSIÀ faire

Position éditoriale assumée

  • Nous ne prétendons pas être ISO 27001 ni SOC 2. Ces certifications sont disproportionnées pour notre cible (organisations avec budget cyber limité < 5 K€/an, particuliers, associations).
  • Nous ne prétendons pas non plus être SecNumCloud. Cette qualification s'adresse à des opérateurs critiques.
  • Nous revendiquons un niveau de sécurité « ANSSI-ready » : robuste pour la gouvernance cyber française du quotidien, transparent dans ses limites, en amélioration continue.

✅ Ce qui est en place

Auth.js v5 + SSO Google/Microsoft + magic link Scaleway TEM (zero-password)

Multi-tenant scoping strict sur tous les modèles Prisma

Plan-gating à 3 paliers cloud (starter / pro / enterprise) + Community Edition self-host

HAProxy 2.9 frontend (TLS 1.2+, rate limit, ACL méthodes, anti-bots)

Réseaux Docker segmentés (frontend / backend privé)

Validation Zod systématique sur toutes les routes API

Anti-SSRF strict sur les webhooks (refus IPs privées + .local)

Sanitisation HTML pour le générateur phishing IA

Rate limiting applicatif (TTS, Outlook report, IA Mistral)

Audit trail complet (table Event, sans PII dans les payloads)

DPA art. 28 + registre RGPD art. 30 maintenus

IP hashées dans audits (anti-fingerprint utilisateur)

Hébergement France (Scaleway), zéro Cloud Act US sur données

IA souveraine (Mistral FR) pour génération phishing

🔲 Ce qui est en backlog (et pourquoi)

CI/CD avec redeploy automatique au push main Q2 2026 (avant launch)

Pentest interne du 7 mai a montré qu'une image en prod peut diverger des correctifs de main (CSP, middleware, sanitization absents du build déployé). Pipeline GitHub Actions → registre Docker → pull + restart automatique.

HAProxy stats auth + rate limit /api/auth Q2 2026

Findings du pentest interne : ajouter `stats auth admin:<pwd>` sur frontend stats (ligne 157 actuellement en commentaire), et ACL `http_req_rate(10s) gt 20` sur `path_beg /api/auth/callback/` pour anti-credential-stuffing.

Pentest externe par cabinet PASSI Q3 2026

Devis pris auprès de 3 cabinets (Wavestone, Devoteam, ou cabinet PASSI plus petit). Pentest boîte grise, ~5-7 jours.

Audit RGAA externe Q4 2026

Audit interne 88 % conformité déjà fait. Cabinet certifié ciblé (Atalan / Tanaguru / Access42). Budget identifié ~3 000 € HT.

Dependabot / scan SCA en CI post-launch OSS

Aujourd'hui : npm audit manuel mensuel. Demain : auto-PR à chaque CVE détectée.

Scan SAST en CI (Semgrep / CodeQL) post-launch OSS

Détection automatisée de patterns à risque dans le code. Ruleset OWASP par défaut.

Tests E2E Playwright sur flows critiques Q3 2026

Auth, achat boutique, génération phishing IA, téléchargement Pack NIS2, complétion épisode.

Programme bug bounty formalisé Q4 2026

Aujourd'hui : divulgation responsable via security@humanix-cybersecurity.fr (cf. plus bas). Demain : périmètre + récompenses formalisés.

❌ Limites assumées par design

  • Pas de SAML 2.0 / SCIM enterprise par défaut. Focus délibéré sur la cible standard (particuliers, équipes, organisations de taille moyenne). SSO Google + Microsoft Entra suffit pour 95 % des prospects. SAML/SCIM disponible sur demande pour les contrats > 50 utilisateurs.
  • Pas de chiffrement applicatif au-delà du TLS : nos données ne sont pas considérées comme ultra-sensibles (pas de santé, pas de défense). Le chiffrement TLS bout en bout + chiffrement filesystem Scaleway est jugé adapté à notre cible.
  • Pas d'ISO 27001 ni SOC 2 : disproportionné pour la cible visée. À reconsidérer si nous montons en gamme vers le mid-market et grands comptes.

🛡️ Programme de divulgation responsable

Vous avez découvert une faille ? Écrivez-nous, nous l'écoutons et nous la corrigeons. Pas de poursuites tant que les règles sont respectées.

  • Accusé de réception sous 48h ouvrées
  • Évaluation et plan d'action sous 5 jours ouvrés
  • Information sur la résolution dans les 30 jours
  • Crédit public sur ce rapport et la page /sécurité (avec votre accord)
security@humanix-cybersecurity.fr

Documents complémentaires

« La cybersécurité n'est pas une destination, c'est une trajectoire. Nous vous tenons informés. »
- Florian DURANO, fondateur, Humanix-Cybersecurity.