cd /news/ai-safety/memlineage-v0-1-0-defensa-de-dos-cap… · home topics ai-safety article
[ARTICLE · art-59809] src=dev.to ↗ pub= topic=ai-safety verified=true sentiment=↑ positive

memlineage v0.1.0: defensa de dos capas contra memory poisoning en agentes LLM

A developer released memlineage v0.1.0, a two-layer defense against memory poisoning in LLM agents. The Python library combines cryptographic provenance with behavioral detection, achieving an attack success rate of 0.000 for the cryptographic layer and an AUC of 0.978 against camouflaged adversarial paraphrasing attacks.

read2 min views1 publishedJul 15, 2026

Un agente con memoria persistente puede ser envenenado por un adversario que solo interactúa por canales normales. Presentamos una defensa de dos capas (provenancia criptográfica + detección por comportamiento) en Python, verificada por auditoría independiente y CI.

Los agentes con memoria persistente (RAG / agentic memory) introducen una superficie de ataque nueva: un adversario que interactúa solo a través de canales normales puede inyectar memorias diseñadas que, al ser recuperadas, desvían el comportamiento futuro del agente — sin tocar pesos del modelo ni código.

El trabajo académico reciente lo confirma de forma reproducible:

La conclusión común: los filtros basados en contenido son evadidos por texto empresarial fluido, y los trust score son maleables. Hace falta origen criptográfico y detección por comportamiento.

KeyRegistry

vincula cada principal a su propia clave. register()

solo se permite en la inicialización de confianza; freeze()

bloquea el registro en runtime para que la lógica del agente no pueda auto-registrarse como principal interno.SensitiveActionGate

Un auditor externo clonó el repo desde cero, instaló, y escribió sus propias pruebas adversariales (no las del repo) para verificar las garantías. Métricas reales:

Garantía Resultado
Spoof de principal sin su clave Rechazado (PermissionError)
Laundering transitivo (5 niveles) Nodo sigue untrusted , gate bloquea
Mezcla confiable + no confiable en una justificación Bloquea (basta una no confiable)
RegistryFrozenError tras freeze()
Bloquea registro en runtime
Firma reciclada de memoria legítima a maliciosa Rechazada (atada a entry_id+contenido+source)
ASR de ataque externo real (Capa A) 0.000
AUC Capa B (sin camuflaje) 0.988
AUC Capa B (con camuflaje del atacante) 0.978, Recall 0.950

El benchmark usa ataques por paráfrasis semántica (no frases regex literales) con generación estocástica de trayectorias y solapamiento de clases, y reporta media ± desviación sobre varias semillas. El camuflaje degrada el AUC y el Recall de forma medible — el benchmark mide generalización, no memorización de plantillas.

Limitación declarada:el ataque de Capa B es una aproximación local de MINJA (paráfrasis + heurística derecall), no el optimizador white-box publicado. El AUC mide robustez contraesteataque, no contra MINJA completo.

git clone https://github.com/amurlaniakea/memlineage.git
cd memlineage
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
python -c "from memlineage.benchmark import run_seeds; print(run_seeds())"
Componente Tecnología
Criptografía Ed25519 (cryptography )
Linaje
networkx (DAG, max-of-strong-edges)
Detector
scikit-learn RandomForest + regla de invariante
CI GitHub Actions + SonarCloud + Code Scanning

¿Dónde encaja esto en tu stack de agentes? Comentarios abiertos.

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

── more in #ai-safety 4 stories · sorted by recency
── more on @pedro sordo martínez 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/memlineage-v0-1-0-de…] indexed:0 read:2min 2026-07-15 ·