{"slug": "memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm", "title": "memlineage v0.1.0: defensa de dos capas contra memory poisoning en agentes LLM", "summary": "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.", "body_md": "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.\n\nLos 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.\n\nEl trabajo académico reciente lo confirma de forma reproducible:\n\nLa 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.\n\n`KeyRegistry`\n\nvincula cada principal a su propia clave. `register()`\n\nsolo se permite en la inicialización de confianza; `freeze()`\n\nbloquea el registro en runtime para que la lógica del agente no pueda auto-registrarse como principal interno.`SensitiveActionGate`\n\nUn 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:\n\n| Garantía | Resultado |\n|---|---|\n| Spoof de principal sin su clave | Rechazado (PermissionError) |\n| Laundering transitivo (5 niveles) | Nodo sigue `untrusted` , gate bloquea |\n| Mezcla confiable + no confiable en una justificación | Bloquea (basta una no confiable) |\n`RegistryFrozenError` tras `freeze()`\n|\nBloquea registro en runtime |\n| Firma reciclada de memoria legítima a maliciosa | Rechazada (atada a entry_id+contenido+source) |\n| ASR de ataque externo real (Capa A) | 0.000 |\n| AUC Capa B (sin camuflaje) | 0.988 |\n| AUC Capa B (con camuflaje del atacante) | 0.978, Recall 0.950 |\n\nEl 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.\n\nLimitació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.\n\n```\ngit clone https://github.com/amurlaniakea/memlineage.git\ncd memlineage\npython -m venv .venv && source .venv/bin/activate\npip install -e \".[dev]\"\npytest -q\npython -c \"from memlineage.benchmark import run_seeds; print(run_seeds())\"\n```\n\n| Componente | Tecnología |\n|---|---|\n| Criptografía | Ed25519 (`cryptography` ) |\n| Linaje |\n`networkx` (DAG, max-of-strong-edges) |\n| Detector |\n`scikit-learn` RandomForest + regla de invariante |\n| CI | GitHub Actions + SonarCloud + Code Scanning |\n\n¿Dónde encaja esto en tu stack de agentes? Comentarios abiertos.\n\n*Licencia: AGPL-3.0-or-later. Autor: Pedro Sordo Martínez.*", "url": "https://wpnews.pro/news/memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm", "canonical_source": "https://dev.to/magopredator/memlineage-v010-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm-5gpa", "published_at": "2026-07-15 02:12:19+00:00", "updated_at": "2026-07-15 02:27:21.661227+00:00", "lang": "en", "topics": ["ai-safety", "large-language-models", "ai-agents", "developer-tools"], "entities": ["Pedro Sordo Martínez", "memlineage", "GitHub", "SonarCloud", "GitHub Actions"], "alternates": {"html": "https://wpnews.pro/news/memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm", "markdown": "https://wpnews.pro/news/memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm.md", "text": "https://wpnews.pro/news/memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm.txt", "jsonld": "https://wpnews.pro/news/memlineage-v0-1-0-defensa-de-dos-capas-contra-memory-poisoning-en-agentes-llm.jsonld"}}