Conformité

Transparence, audits et mise en conformité de l'infrastructure Biofibers

Dernière mise à jour : 22 mars 2026

9
Dimensions
73
Constats
5.0
Score /10
Proton
Standards
Méthodologie. Chaque audit couvre 9 dimensions : qualité du code, sécurité, base de données, infrastructure, conformité légale, fonctionnalité, UX/accessibilité, performance et documentation. Les standards de référence sont alignés sur Proton Technology : audit public, transparence totale, sécurité by design, zero-knowledge, privacy-first.

Audit du 22 mars 2026

01 Rapport d'audit — 22 mars 2026

Audit 9 dimensions · 73 constats · Score global 5.0/10

Répartition : 3 S1 25 S2 15 S3 30 S4

D1 — Qualité du code · 5/10
IDSév.ConstatStatut
CQ-001S2server.js monolithique (4500+ lignes) → refactoré en 10 modules (354 lignes orchestrateur)Corrigé 22/03
CQ-002S2Duplication config providers IA (CIA/PAPI)Ouvert
CQ-008S2Tests automatisés vitest : 92 tests (30 unit + 62 intégration), 1.4sCorrigé 22/03
CQ-009S2Système de migrations versionné (runner SQL + table schema_migrations + hash SHA256)Corrigé 22/03
CQ-010S2Pas de error handler Express globalCorrigé
CQ-011S2Pas de unhandledRejection / uncaughtExceptionCorrigé
D2 — Sécurité · 4/10
IDSév.ConstatStatut
SEC-018bS1Magic link poll : requestId séquentiel (SERIAL), session_token dans la réponseCorrigé
SEC-001S2JWT_SECRET non vérifié au démarrageCorrigé
SEC-002S3jwt.verify sans restriction algorithmeCorrigé
SEC-005S3Pas de révocation sessions après changement de rôleCorrigé
SEC-008S2localStorage token (XSS vector)Corrigé
SEC-010S2Fallback Bearer dans authMiddlewareCorrigé
SEC-014S2Markdown non sanitizé (XSS via marked.parse)Corrigé
SEC-015S2Pas de DOMPurify sur sorties HTMLCorrigé
SEC-021S2Pas de rate-limit sur /api/cia/chatCorrigé
SEC-024S4KDF clé vaultCorrigé
SEC-031S2npm audit : vulnérabilités connuesCorrigé
SEC-033S4Infisical binaire sans vérification checksumOuvert
D3 — Base de données · 5/10
IDSév.ConstatStatut
DB-002S2Pas de contraintes CHECK/UNIQUE (email, montants)Corrigé
DB-005S2Index manquants sur tables H4YCorrigé
DB-006S3Pool PG non configuré (max, timeout)Corrigé
DB-007S4Transaction refresh token manquanteOuvert
DB-009S4Anonymisation PII clients absenteOuvert
DB-010S3.catch(() => {}) silencieuxCorrigé
DB-013S2generateNumber() utilise pool au lieu de pgClient (race condition)Corrigé
D4 — Infrastructure · 6/10
IDSév.ConstatStatut
INFRA-007S1Pas de backup PostgreSQL automatiséCorrigé
INFRA-001S3.dockerignore manquant dans le container APICorrigé
INFRA-013S2Pas de graceful shutdown (SIGTERM)Corrigé
D5 — Conformité légale · 6/10
IDSév.ConstatStatut
LEG-001S1Mentions légales LCEN incomplètes (adresse complète manquante)Corrigé
LEG-008S3Contradiction « cookies non essentiels » dans privacyCorrigé
LEG-010S3Pas de badge « Généré par IA » dans UI CIA/OSINTCorrigé
LEG-012S2CGU : pas d'article rétractation 14j ni médiateurCorrigé
D6 — Fonctionnalité · 6/10
IDSév.ConstatStatut
FUNC-004S2Webhook Stripe : pas de traitement invoice.payment_failed et charge.dispute.createdCorrigé
FUNC-007S3Health check superficiel (pas de vérification pool PG ni SMTP)Corrigé
D7 — UX / Accessibilité · 4/10
IDSév.ConstatStatut
UX-001S2Attributs ARIA manquants sur drawers (role, tabindex, aria-expanded)Corrigé
UX-002S3Drawers non navigables au clavier (Enter/Space)Corrigé
UX-003S3Contraste --bf-muted insuffisant (< 4.5:1)Corrigé
D8 — Performance · 5/10
IDSév.ConstatStatut
PERF-001S4Assets non utilisés (cleanup)Ouvert
PERF-002S4Pas de minification JS/CSSOuvert
PERF-004S3Pas de gzip nginx ni cache-bustingCorrigé
PERF-005S4Images non optimiséesOuvert
PERF-008S3Timeout nginx vérifié (CIA 180s, neural 120s)Corrigé
D9 — Documentation · 3/10
IDSév.ConstatStatut
DOC-001S4Pas de README projetOuvert
DOC-002S4Pas de documentation APIOuvert
DOC-003S4Pas de guide de déploiementOuvert
DOC-004S4Pas de documentation architectureOuvert
DOC-005S4Pas de changelogOuvert
DOC-013S4Documentation complète absente (13 items)Ouvert
02 Mise en conformité — 22 mars 2026

Plan de remédiation structuré en sprints, aligné sur les standards Proton Technology : audit public, sécurité by design, zero-knowledge, privacy-first.

Sprint 1 — Critiques 72h · Échéance 25 mars 2026

Délai : 72 heures · Priorité : maximale · 3 findings S1

  • SEC-018bpoll_id UUID, session_token via cookie httpOnly — corrigé le 22 mars 2026
  • INFRA-007 — pg_dump quotidien, rétention 30j, timer systemd 03h — déployé le 22 mars 2026
  • LEG-001 — Page mentions légales LCEN — corrigé le 20 mars 2026
Sprint 2 — Majeurs 2 semaines · Échéance 5 avril 2026

Délai : 2 semaines · Priorité : haute · 14 findings S2

  • SEC-014/015sanitize-html sur marked.parse()22 mars 2026
  • SEC-021 — Rate-limit /api/cia/chat : 10/min guest, 60/min auth — 22 mars 2026
  • SEC-031npm audit fix, nodemailer 8.0.3 — 1er avril 2026
  • SEC-001 — Fail-fast si JWT_SECRET absent — 22 mars 2026
  • SEC-008/010 — Cookie-only, localStorage + Bearer supprimés — 22 mars 2026
  • DB-013pgClient transaction dans generateNumber()22 mars 2026
  • DB-002 — Contraintes CHECK/UNIQUE déployées — 22 mars 2026
  • DB-005 — 3 index ajoutés — 22 mars 2026
  • CQ-010 — Error handler Express global — 22 mars 2026
  • CQ-011unhandledRejection + uncaughtException22 mars 2026
  • LEG-012 — Drawer 16 médiation + rétractation existante — 22 mars 2026
  • UX-001 — ARIA + navigation clavier sur 4 pages — 22 mars 2026
  • FUNC-004payment_failed + dispute.created22 mars 2026
  • INFRA-013 — Graceful shutdown SIGTERM — 22 mars 2026
Sprint 3 — Mineurs 1 mois · Échéance 22 avril 2026

Délai : 1 mois · Priorité : moyenne · 12 findings S3

  • PERF-004 — gzip nginx activé — 22 mars 2026
  • DB-006 — Pool PG : max 20, timeouts 5s/30s — 22 mars 2026
  • PERF-008 — Timeouts nginx vérifiés : CIA 180s, neural 120s — 22 mars 2026
  • SEC-002algorithms: ['HS256']22 mars 2026
  • SEC-005 — Sessions révoquées après changement rôle — 22 mars 2026
  • DB-010 — 28 .catch silencieux remplacés par logging — 22 mars 2026
  • INFRA-001.dockerignore créé — 22 mars 2026
  • FUNC-007 — Health check profond : PG SELECT 122 mars 2026
  • LEG-008 — Mention cookies corrigée — 22 mars 2026
  • LEG-010 — Badge « Généré par IA » CIA + OSINT — 22 mars 2026
  • UX-003--bf-muted #8b929e (contraste 4.6:1) — 22 mars 2026
  • UX-002 — Enter/Space sur drawers (4 pages) — 22 mars 2026
Backlog — Améliorations continues

Priorité : basse · Planification au fil des sprints

  • SEC-024 — KDF v3 : Argon2id memory-hard (hash-wasm) + fallback PBKDF2 v2 + anti-downgrade 409 + migration transparente — 1er avril 2026
  • SEC-033 — Infisical via apk (signatures vérifiées) + version log — 22 mars 2026
  • CQ-001 — Refactoring server.js : 5055→354 lignes, 10 modules (lib/db, lib/logger, lib/helpers, routes/auth, routes/papi, routes/cia, routes/admin) — 22 mars 2026
  • CQ-008 — Tests vitest : 92 tests (unit auth-utils/helpers + intégration DB/migrations/schema), 1.4s — 22 mars 2026
  • CQ-002 — Duplication providers vérifiée : PAPI_PROVIDERS unique, pas de duplication réelle — 22 mars 2026
  • CQ-009 — Système de migrations versionné : runner SQL maison, table schema_migrations, 5 fichiers SQL, hash SHA256 anti-drift — 22 mars 2026
  • PERF-001 — 4 assets inutilisés supprimés (5,1 Mo) — 22 mars 2026
  • PERF-002 — esbuild minification : 1,3 Mo → 889 Ko JS/CSS (-32%) + cache-busting hash — 22 mars 2026
  • PERF-005 — PNG → WebP : 4,4 Mo → 792 Ko images (-82%) — 22 mars 2026
  • DOC-001→013 — Page /docs/ publique (7 drawers) + CHANGELOG.md22 mars 2026
  • DB-007 — Transaction refresh token (BEGIN/COMMIT) — 22 mars 2026
  • DB-009 — Anonymisation PII clients (90j post-suppression) — 22 mars 2026
  • COH-001 — Route /api/contact créée (zod + rate-limit + email) — 22 mars 2026
  • COH-002 — Compteur endpoints corrigé (128→176) — 22 mars 2026
  • COH-003 — Réduction surface d'attaque : retrait endpoints, timing, hardware, secrets de /docs/, /portfolio/, /infra/ — 22 mars 2026
  • COH-004 — Suppression doublons inter-pages (changelog, SIREN, stack, RGPD) — 22 mars 2026
  • COH-005 — Tests anti-régression : liens HTML (30 tests) + routes API (9 tests) — 22 mars 2026
  • COH-006 — Retrait section Connaissances/Calibre du portfolio (media center exposé) — 22 mars 2026
  • RBAC-001 — Rôles alignés sur abonnements : plan → rôles (cia, papi) + migration 006 — 23 mars 2026
  • RBAC-002 — CIA member/council restreint aux abonnés (retrait plan free) — 23 mars 2026
  • RBAC-003 — Fix auth flash : hint cookie enrichi, boot await, debounce sync — 23 mars 2026
03 Automation d'audit semestriel

Audit automatisé tous les 6 mois (mars et septembre) via un agent IA headless.

Architecture

  • Déclencheur — Planificateur système semestriel (mars + septembre)
  • Exécution — Agent IA headless sur serveur européen
  • Sortie — Rapport structuré multi-format
  • Publication — Mise à jour automatique de cette page
  • Notification — Alerte interne avec score et lien rapport

État d'avancement

ComposantStatutDate
Script d'audit automatiséDéployé22 mars 2026
Planificateur semestrielActivé22 mars 2026
Agent IA headlessInstallé22 mars 2026
Workflow de sauvegardePlanifié
Publication automatique des résultatsDéployé22 mars 2026
04 AI Act — Règlement UE 2024/1689

Classification des risques

Conformément au Règlement UE 2024/1689 (AI Act) :

  • CIA & OSINT — Risque limité (obligations de transparence, Art. 50)
  • PAPI — Risque minimal (outil technique d'optimisation de prompts)

Biofibers agit en tant que déployeur. Les obligations de fournisseur incombent aux prestataires IA listés dans notre Politique de Confidentialité (section 4).

Obligations de transparence (Art. 50)

  • L'interface indique clairement que les réponses sont générées par des systèmes d'IA
  • Chaque réponse CIA mentionne les modèles consultés et le mode activé
  • Les briefs OSINT portent la mention « Analyse générée par IA »
  • Aucune génération de deep fakes (images, vidéos, audio)
  • La page conformité constitue la documentation publique du système (Art. 53)

Pratiques interdites respectées (Art. 5)

  • Aucune manipulation subliminale ou exploitation de vulnérabilités
  • Aucun scoring social ou catégorisation biométrique
  • Aucune surveillance de masse ou profilage prédictif
  • Aucune reconnaissance émotionnelle automatisée
  • Aucune exploitation émotionnelle des utilisateurs
05 Hébergement & RGPD

Infrastructure hébergée chez Hetzner Online GmbH (Allemagne), datacenter Helsinki, Finlande (UE). Cadre contractuel, certifications (ISO 27001, BSI C5, TÜV Rheinland) et mesures de protection détaillés dans notre Politique de Confidentialité (section 4.2).