Webinar en anglaisWebinar avec Jason Lee, mer. 14 oct.Your newest insider is an AI agent.Jason LeeFormer CISO, Zoom & SplunkS'inscrire

Des garde-fous pour Windsurf, tirés de vos propres règles.

Vos règles d'entreprise arrivent dans Windsurf avant chaque écriture de fichier. Une écriture qui les enfreint n'aboutit jamais.

npx -y @cybedefend/vibedefend@latest install

Créer un compte gratuitToute version récente de WindsurfLire la documentation

WindsurfWindsurf écritbilling/refund.ts

export async function refund(req: Request) {
  const { id, amount } = await req.json();
  const invoice = await db.invoices.find({
    id, tenant: req.tenant,
  });
  if (amount > 500)
    await approvals.second(invoice);
  return payments.refund(invoice, amount);
}

Chaque requête est cloisonnée par tenant.

rules/data-access.md

Un remboursement de plus de 500 € demande un second validateur.

Approuvée une fois par Sofia M.

Vérifié avant le commit : rien à corriger

Prêt en quatre étapes.

  1. Lancez une commandeDans n'importe quel terminal, sur macOS, Linux ou Windows. Node 18.17 ou plus récent.
  2. Choisissez la région, connectez-vousUE ou US. Votre navigateur s'ouvre pour la connexion, aucune clé à coller.
  3. Cochez WindsurfL'installeur trouve les agents présents sur votre machine et les coche pour vous.
  4. Codez comme d'habitudeOuvrez Windsurf : VibeDefend tourne à ses côtés.

Vérifiez à tout moment : vibedefend status

Ce que VibeDefend ajoute à Windsurf.

Règles servies

Écritures seulement

Écritures de fichiers seulement : pre_write_code est le moment qu'expose Windsurf.

WindsurfWindsurf écritsrc/billing/cart-checkout.ts

const total = new Decimal128(cart.sum);
const rows = await db.query(
  "SELECT * FROM carts WHERE id = $1", [id]
);

Les montants utilisent Decimal128, jamais Number.

Tirée de src/billing.ts:14

Toute requête qui mêle une saisie utilisateur est paramétrée.

OWASP Top 10

Servies avant la modification

Alertes en direct

Les alertes SAST, SCA, secrets, IaC et CI/CD, en direct dans la session.

WindsurfWindsurf

  1. SASTsrc/db/users.repo.ts:42

    SQL injection

  2. SCApackage.json

    lodash 4.17.20, CVE-2021-23337

  3. Secretsconfig/prod.yml

    AWS access key

  4. IaCinfra/main.tf

    S3 bucket public-read

  5. CI/CD.github/workflows/deploy.yml

    pull_request_target

Dans le contexte de l'agent, en direct

Limites dans Windsurf

  • Garde-fou des secretsLes lectures ne sont pas bloquées d'office : un extrait de .windsurfrules demande à Windsurf de les vérifier d'abord.Par .windsurfrules
  • Garde-fou des actionsLes écritures de fichiers sont bloquées d'office. Les commandes shell dépendent de Windsurf, s'il suit .windsurfrules.Écritures seulement

Vos questions.

VibeDefend modifie-t-il ma configuration Windsurf ?
Il ajoute ses hooks et enregistre le serveur MCP cybedefend, dans ~/.codeium/windsurf/hooks.json, ~/.codeium/windsurf/mcp_config.json, .windsurfrules. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.
Qu'est-ce qui quitte ma machine ?
L'analyse tourne dans la région choisie à l'installation, UE ou US. La décision de bloquer une action est prise sur votre machine. Avant une modification, le hook envoie la partie du fichier en cours d'écriture, pour trouver les règles qui s'appliquent. La revue de fin de session envoie les fichiers modifiés pendant la session. Votre jeton de connexion reste dans le trousseau de votre système.
Quelle version de Windsurf faut-il ?
Une version récente de Windsurf, et Node 18.17 ou plus récent. L'installeur tourne sous macOS, Linux et Windows.
Faut-il relier chaque dépôt ?
Pas pour les projets importés depuis GitHub ou GitLab : VibeDefend lit l'origin du dépôt et retrouve le projet. Pour tout autre dépôt, lancez vibedefend link une fois. La commande écrit .cybedefend/config.json avec l'identifiant du projet.
Comment le retirer ?
Lancez vibedefend uninstall : la commande retire chaque fichier installé par VibeDefend. Si vous avez installé le paquet globalement, lancez ensuite npm uninstall -g @cybedefend/vibedefend.
Pourquoi les Action Guards sont-ils limités dans Windsurf ?
Le hook pre_write_code de Windsurf peut bloquer les écritures de fichiers, pas les lectures, les commandes shell ni les requêtes réseau. Pour celles-ci, VibeDefend ajoute à .windsurfrules un extrait qui demande à l'agent d'appeler d'abord cybe_guards_check par MCP. Cela tient si le modèle suit son fichier de règles.
Détails techniques pour Windsurf
Serveur MCP
Disponible~/.codeium/windsurf/mcp_config.json
Règles avant chaque modification
Écritures seulementpre_write_codeÉcritures de fichiers seulement : pre_write_code est le moment qu'expose Windsurf.
Actions dangereuses bloquées
Écritures seulementpre_write_code.windsurfrulesLes écritures sont bloquées net. Pour les lectures, les commandes shell et les requêtes réseau, un extrait de .windsurfrules demande à l'agent d'appeler d'abord cybe_guards_check : cela tient si le modèle suit son fichier de règles.
Règles chargées au démarrage
À chaque promptpre_user_promptWindsurf n'a pas d'événement de début de session. VibeDefend utilise pre_user_prompt, qui se déclenche à chaque tour ; la vérification est légère et répond aussitôt quand rien n'est en attente.
Revue en fin de session
Disponiblepost_cascade_responseTourne à la fin de chaque réponse, une fois le seuil de modifications franchi.
Revue des longues sessions
Non disponiblePas d'équivalentWindsurf n'a pas d'événement avant la compaction.
Rappel à chaque prompt
Non disponiblePas d'équivalentNon disponible dans Windsurf.

Ce qu'il écrit pour Windsurf

  • ~/.codeium/windsurf/hooks.json
  • ~/.codeium/windsurf/mcp_config.json
  • .windsurfrules

Plus le runner des hooks dans ~/.cybedefend/. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.

Lancez l'installeur à la racine de votre dépôt : l'extrait .windsurfrules est écrit dans le dossier d'où vous le lancez.

Windsurf expose moins de moments que les autres agents. Les écritures de fichiers sont bloquées net ; les autres actions reposent sur l'agent qui suit .windsurfrules.

Quelque chose cloche ? vibedefend status donne un état en lecture seule, et vibedefend doctor répare ce qu'il peut.