Cette page t'a-t-elle aidé ?

Cette page t'a-t-elle aidé ?
Référence
Posture sécurité de Gilbert pour une évaluation procurement B2B. Ce que nous chiffrons, comment nous isolons les données, quel audit externe nous avons passé, et ce que vous pouvez demander à nos équipes.
Dernière mise à jour : 28 mai 2026
Cette page s'adresse aux RSSI, DSI et acheteurs sécurité qui évaluent un déploiement Gilbert en B2B. Si vous êtes développeur intégrateur, lisez plutôt JWT SSO et Webhooks. Pour le détail du modèle d'isolation côté produit, voir la section Isolation et sécurité de la page Workspaces.
Le ton de cette page est volontairement factuel. Tous les chiffres cités sont vérifiables dans le dépôt (workflows CI, migrations Supabase, evidence package CASA) et peuvent être audités sur demande.
CASA (Cloud Application Security Assessment) est le programme d'audit de sécurité de l'App Defense Alliance, requis par Google pour toute application qui demande des scopes OAuth sensibles ou restreints sur le cycle de re-vérification annuel. Tier 2 est le niveau auto-assessment : l'éditeur démontre la conformité ASVS L2 d'OWASP via un evidence package, soumis ensuite à un laboratoire accrédité.
Le 28 mai 2026, le package Gilbert est complet (Sprints 1 à 3). Verdict actuel :
gmail.modify nécessaire au forward-to-Gilbert et à la rédaction automatique de drafts. Cycle de re-vérification Google : 12 mois.Le package (ASVS self-assessment, threat model STRIDE, data flow PII, justification des scopes OAuth) est disponible sur demande sous NDA pour les acheteurs en cours d'évaluation.
Tout commit sur Gilbert passe par un pipeline d'analyse statique automatique. Les chiffres ci-dessous sont l'état au 28 mai 2026, reproductibles depuis les workflows GitHub Actions du dépôt.
security-extended + security-and-quality sur chaque push et chaque PR.dangerouslySetInnerHTML justifiés avec nosemgrep, 3 ajouts d'authTagLength: 16 sur des paires GCM, 1 wildcard postMessage Stripe/reCAPTCHA, 1 token Telegram redacté dans les TODOs).--audit-level=high dès qu'une vuln high est introduite.safeDispatcher (Agent undici singleton qui valide la résolution DNS au moment du connect). 3 LOWs fixés en parallèle (trailing-dot bypass, cap URL à 2 Ko, pas de fuite d'IP dans les erreurs).Audit exhaustif des 121 routes serveur Gilbert au 28 mai 2026. Aucune route MISSING : chaque endpoint a un mode d'authentification documenté et testé.
| Catégorie | Nb | Mécanisme |
|---|---|---|
| user_auth | 78 | Session Supabase cookie HTTP-only, RLS par workspace_members |
| admin_only | 17 | Session + rôle admin sur le workspace |
| webhook_hmac | 8 | Postmark, Vapi (x4), Slack (fenêtre replay 5 min), Telegram, PayPal — signature vérifiée avant tout traitement |
| service_role_internal | 5 | Cron Vercel + workers Inngest, gates CRON_SECRET |
| embed_jwt | 4 | JWT signé HMAC par agent embed, scopé au workspace propriétaire |
| intentionally_public | 4 | Rate-limit par IP + quota global anti-abus |
| api_key | 3 | Clé MCP scopée workspace, révocable |
| guest_token | 2 | Token court usage one-shot |
La frontière d'isolation est le workspace. Tokens OAuth, historique de chat, intégrations, routines, clés LLM ne traversent jamais cette frontière, même pour un utilisateur membre de plusieurs workspaces. Détail complet dans Workspaces — Isolation et sécurité.
gilbert, séparé du schéma publicdes produits Solve. Aucun JOIN cross-schéma autorisé : la communication avec les autres apps Solve se fait via webhooks HMAC signés.workspace_members, et policies per-user sur les tables sensibles (forward_runs, user_style_profile, user_phone_settings). Invariant strict : les données per-user ne sont jamais lisibles workspace-wide, même par un admin.workspace_idet la signature JWT d'un agent embed du workspace A est rejetée par les endpoints du workspace B.Tout secret persistant est chiffré AES-256-GCMavec une clé dédiée stockée uniquement en variable d'environnement côté serveur. Les colonnes chiffrées ne sont jamais lisibles en clair, même par les admins de la base.
| Donnée chiffrée | Variable |
|---|---|
| Clés LLM workspace | GILBERT_LLM_KEY |
| Tokens OAuth Google | GOOGLE_TOKEN_KEY |
| Tokens OAuth GitHub | GITHUB_TOKEN_KEY |
| Tokens OAuth LinkedIn | LINKEDIN_TOKEN_KEY |
| Numéros téléphone (E.164) | PHONE_ENC_KEY + PHONE_BLIND_HASH_KEY (lookup déterministe HMAC) |
| Transcripts d'appels | TRANSCRIPT_ENC_KEY |
| Forward-runs (subject, intent, draft preview) | FORWARD_ENC_KEY |
En transit : TLS 1.3 sur toutes les façades (Vercel, Supabase, Anthropic, Google APIs). Les webhooks sortants Gilbert sont signés HMAC-SHA256 avec un secret par workspace.
Gilbert fonctionne en BYOLLM (Bring Your Own LLM) : chaque workspace branche ses propres clés API Anthropic, Google Gemini ou OpenAI. Tous les appels modèles du workspace passent par cette clé. Conséquence directe :
allow_central_fallback = false empêche tout fallback sur la clé Anthropic centrale Gilbert si la clé workspace est mal configurée ou hors quota. L'appel échoue en clair (fail-fast) plutôt que de transiter par notre infrastructure. Recommandé dès qu'une clé workspace est en place.Côté implémentation : voir ModelTier pour l'abstraction tier fast / smart / premium, et la section Workspaces — BYOLLM pour le détail produit.
Gilbert est déployé sur deux fournisseurs principaux, complétés par les providers LLM choisis par le workspace.
zqzcmacfvutqwgosoxyp, région UE. RLS activé sur toutes les tables.Chaque clé externe (OAuth, webhook signature, clé crypto data at-rest) a une checklist de rotation documentéeinterne. Une rotation Google OAuth touche par exemple cinq endroits : .env.local, Vercel prod, Supabase Auth Dashboard (deux projets DEV et PROD), puis redeploy. Les rotations Vapi, Postmark, Telegram et les clés PHONE_ENC_KEY / TRANSCRIPT_ENC_KEY / FORWARD_ENC_KEY ont chacune leur procédure écrite.
Les clés de chiffrement de données déjà persistées (téléphone, transcripts, forward-runs) nécessitent une procédure de re-key DB (déchiffrer ancienne clé, re-chiffrer nouvelle clé, swap) pour éviter de rendre des lignes illisibles. Cette procédure est listée dans le dépôt comme prérequis avant rotation.
Pour une demande de revue, un signalement de vulnérabilité, ou la récupération du package CASA sous NDA : passez par votre interlocuteur Solve habituel. Si vous découvrez une faille, merci de la signaler de manière privée avant toute divulgation publique.
Les findings récents et leurs résolutions sont listés dans le changelog.