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 |
|---|---|
| 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
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
Links
Repo: https://github.com/amurlaniakea/adi-shield
Licencia: AGPL-3.0-or-later.
Autor: Pedro Sordo Martínez.
Comments
No comments yet. Start the discussion.