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:
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;rufflimpio. - Auditado en clone fresco (rama
main, commitc125db4).
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.
답글 남기기