Limita lo que una inyección exitosa puede hacer
Un agente con acceso a la base de datos puede recibir instrucciones inyectadas en cualquier texto que lea: un ticket, un email, una fila. Vericto no ve el prompt, solo el SQL, así que no intenta detectar la inyección. Limita su alcance: el agente solo usa las tablas y columnas que le diste.
El modelo
- Una política pertenece a una identidad en una base de datos y deniega por defecto. Cada entrada es una tabla, sus columnas (todas o una lista) y el acceso:
readoread_write. - observe: lo que queda fuera de la allowlist se marca y nunca se bloquea. Una política nueva empieza así.
- enforce: se bloquea, con la regla VERICTO-087.
- El DDL y las sentencias que cambian la identidad o la resolución de nombres (
SET ROLE,SET search_path,USE) siempre se deniegan a una identidad con política.
Qué cuenta como acceso
Toda columna que la sentencia menciona: la proyección, WHERE, JOIN, GROUP BY, ORDER BY, subqueries, CTEs, RETURNING y las columnas que escriben INSERT y UPDATE. Un filtro cuenta porque permite sondear valores. Toda tabla mencionada necesita su entrada, y escribir necesita read_write en cada tabla destino.
Junto con las columnas sensibles
Una columna bloqueada o enmascarada sigue bloqueada o enmascarada aunque esté en la allowlist: una etiqueta block gana siempre, y una columna permitida pero etiquetada mask se devuelve enmascarada.
La identidad en cada modo
En la API de runtime, la CLI, la API de validación y MCP, la identidad es la API key que hace la llamada: usa una key por agente. En el proxy TCP, es el usuario de base de datos de la sesión. La allowlist es un control en el proxy TCP y una decisión en los demás modos.
Simula antes de aplicar
Simular reproduce las queries de esa identidad en esa base de los últimos 7 días (hasta 2.000) con el borrador, sin guardarlo, y dice cuántas habría bloqueado. No envía nada a tu base de datos. El orden recomendado: crear la política en observe, dejar que el agente trabaje, simular, ajustar y pasar a enforce.
Límites
- Es defensa en profundidad: los roles, permisos y el row-level security de tu base de datos siguen siendo la primera línea.
- Vericto no conoce tu esquema: una vista, función o trigger sobre una tabla no se resuelve a esa tabla, y las llamadas a funciones no se restringen aquí.
- Si renombras una tabla o columna, la allowlist no se actualiza sola.
Disponible en los planes Team y Enterprise. Las políticas se aplican en el proxy TCP y en el evaluador de Vericto.