DEV Community

Cover image for adi-shield v0.1.0: detección de inyección de prompt en 5 vectores
Fenix
Fenix

Posted on

adi-shield v0.1.0: detección de inyección de prompt en 5 vectores

adi-shield v0.1.0: detección de inyección de prompt en 5 vectores

Sensor de defensa que marca datos no confiables y detecta instrucciones
inyectadas antes de que el agente las ejecute, sin depender del modelo.

El problema

La inyección de prompt (CWE-1427) es el vector principal contra agentes:
instrucciones embebidas en un email, una página web, un ticket o un repo que
el agente trata como mandato propio. Detectarlo requiere marcar el origen de
cada dato, no pedirle al LLM que se autodefenda.

Qué hace

adi-shield expone InjectionShield y evaluate(). Cubre cinco vectores
motivados por el paper que origina el proyecto:

Vector Origen del dato
email mensaje entrante
web contenido scrapeado
ticket issue/tarea externa
repo código de terceros
calendar invitación de agenda

Cuando el dato viene marcado como no confiable y contiene instrucciones de
acción, evaluate devuelve un veredicto de inyección. Distingue eso de un
reenvío legítimo ya autorizado por el usuario.

Cómo funciona

from adi_shield.shield import InjectionShield
shield = InjectionShield()
verdict = shield.evaluate(data="haz esto ahora", source="web",
                          trusted=False)
print(verdict.injection)   # True/False, determinista
Enter fullscreen mode Exit fullscreen mode

El bus de señales (adi_shield.bus.Signal) es la interfaz que trajectory-sentinel
consume.

Resultados de la auditoría

  • 10 tests en adi-shield, todos verdes; ruff limpio.
  • Auditado en clone fresco (rama main, commit c125db4).

Limitaciones (honestamente)

Es detección de instrucciones embebidas en datos marcados, no un clasificador
semántico profundo. El hook real delante de un agente (llamar evaluate()
antes de cada tool-call) no está desplegado todavía; las pruebas usan fixtures.

Pruébalo

git clone --branch main https://github.com/amurlaniakea/adi-shield.git
cd adi-shield && python -m venv .venv && . .venv/bin/activate
pip install -e .
pytest tests/ -v
Enter fullscreen mode Exit fullscreen mode

Links


Licencia: AGPL-3.0-or-later. Autor: Pedro Sordo Martínez.

Top comments (0)