Webinar em inglêsWebinar com Jason Lee, quarta, 14/10Your newest insider is an AI agent.Jason LeeFormer CISO, Zoom & SplunkInscreva-se

Guardrails para o Cursor, feitos com as tuas próprias regras.

As regras da tua empresa chegam ao Cursor antes de cada alteração. O que ele nunca deve fazer fica bloqueado antes de correr.

npx -y @cybedefend/vibedefend@latest install

Criar uma conta gratuitaCursor 1.7 ou mais recenteLer a documentação

CursorCursor está a escreverbilling/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);
}

Cada consulta fica limitada ao tenant.

rules/data-access.md

Reembolsos acima de 500 € precisam de um segundo aprovador.

Aprovada uma vez por Sofia M.

Verificado antes do commit: limpo

Pronto em quatro passos.

  1. Executa um comandoEm qualquer terminal, no macOS, Linux ou Windows. Node 18.17 ou mais recente.
  2. Escolhe a região e inicia sessãoUE ou EUA. O teu browser abre-se para iniciares sessão, sem chave para colar.
  3. Seleciona o CursorO instalador encontra os agentes no teu computador e seleciona-os por ti.
  4. Programa como sempreAbre o Cursor 1.7 ou mais recente: o VibeDefend corre ao lado dele.

Verifica quando quiseres: vibedefend status

O que o VibeDefend acrescenta ao Cursor.

Regras servidas

As tuas regras de negócio e de segurança chegam ao Cursor antes de cada edição.

CursorCursor está a escreversrc/billing/cart-checkout.ts

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

Os montantes usam Decimal128, nunca Number.

Extraída de src/billing.ts:14

Qualquer consulta que misture dados do utilizador é parametrizada.

OWASP Top 10

Servidas antes da edição

Proteção de segredos

As leituras diretas de segredos são recusadas; o Cursor recebe a referência gerida.

CursorCursorwebhooks.ts

  1. cat .env | grep STRIPE

    Bloqueado: leitura direta de um segredo

  2. Em vez dissoprocess.env.STRIPE_WEBHOOK_SECRET

  3. npm test -- webhooks

    Os testes passam

Registado para a equipa

Controlo de ações

Comandos destrutivos, eliminações de esquema e caminhos protegidos são travados antes de correrem.

CursorCursor

  1. rm -rf dist/

    Permitido: saída do build

  2. rm -rf .cache/

    Permitido: cache

  3. rm -rf ./storage/uploads

    Bloqueado: caminho protegido, ficheiros dos utilizadores

Registado para a equipa

Descobertas em direto

As descobertas de SAST, SCA, segredos, IaC e CI/CD, em direto na sessão.

CursorCursor

  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

No contexto do agente, em direto

As tuas perguntas.

O VibeDefend altera a minha configuração do Cursor?
Acrescenta os seus hooks e regista o servidor MCP cybedefend, em ~/.cursor/hooks.json, ~/.cursor/mcp.json. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.
O que é que sai da minha máquina?
A análise corre na região que escolheste ao instalar, UE ou EUA. A decisão de bloquear uma ação é tomada na tua máquina. Antes de uma alteração, o hook envia a parte do ficheiro que está a ser escrita, para encontrar as regras que se aplicam. A revisão da sessão envia os ficheiros que a sessão alterou. O teu token de autenticação fica no porta-chaves do teu sistema operativo.
De que versão do Cursor preciso?
Cursor 1.7 ou mais recente, e Node 18.17 ou mais recente. O instalador corre em macOS, Linux e Windows.
Tenho de associar cada repositório?
Não para os projetos importados do GitHub ou do GitLab: o VibeDefend lê o origin do repositório e encontra o projeto. Para qualquer outro repositório, corre vibedefend link uma vez. O comando escreve .cybedefend/config.json com o ID do projeto.
Como é que o desinstalo?
Corre vibedefend uninstall: remove todos os ficheiros que o VibeDefend instalou. Se instalaste o pacote globalmente, corre depois npm uninstall -g @cybedefend/vibedefend.
Regras do Cursor ou VibeDefend: qual é a diferença?
Um ficheiro de regras é uma indicação que o agente pode seguir ou esquecer. O VibeDefend funciona através dos hooks do Cursor: a regra certa chega antes de cada alteração e uma ação perigosa é bloqueada, seja qual for a decisão do agente.
Detalhes técnicos para o Cursor
Servidor MCP
Disponível~/.cursor/mcp.json
Regras antes de cada alteração
DisponívelpreToolUseEdit|Write|MultiEdit
Ações perigosas bloqueadas
DisponívelpreToolUse
Regras carregadas no arranque
DisponívelsessionStart
Revisão no fim da sessão
Disponívelstop
Revisão das sessões longas
DisponívelpreCompact
Lembrete a cada prompt
IndisponívelSem equivalenteNão disponível no Cursor.

O que escreve para o Cursor

  • ~/.cursor/hooks.json
  • ~/.cursor/mcp.json

E o runner dos hooks em ~/.cybedefend/. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.

Cursor 1.7 ou mais recente: as versões anteriores ignoram o hooks.json. Se o comando cursor não estiver no teu PATH, o instalador não consegue ler a versão e liga os hooks na mesma, por isso confirma-a tu.

Um hook que falha não te bloqueia. Só um veredicto de recusa do guard trava uma chamada de ferramenta.

Algo não bate certo? O vibedefend status dá um relatório só de leitura, e o vibedefend doctor repara o que conseguir.