Capítulo 8 — Seguridad de la IA y del aprendizaje automático: casos difíciles
Mapa de la lección
Lección 08 publicada. Mapa, ejemplo, EX036.
flowchart TD
N0["Resultados de aprendizaje"]
N1["8.1 Controles en conflicto"]
N2["8.2 Multiagente y cadena de suministro"]
N3["8.3 Fuga de privacidad"]
N4["8.4 Incidentes de causa incierta"]
N5["Síntesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Ejemplo resuelto"]
EX --> Q["Ejercicio EX036"]
Dibujo lógico
flowchart LR
N0["Resultados de aprendizaje"]
N1["8.1 Controles en conflicto"]
N2["8.2 Multiagente y cadena de suministro"]
N3["8.3 Fuga de privacidad"]
N4["8.4 Incidentes de causa incierta"]
N5["Síntesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX036"]
[Resultados de aprendizaje]
|
v
[8.1 Controles en conflicto]
|
v
[8.2 Multiagente y cadena de suministro]
|
v
[8.3 Fuga de privacidad]
|
v
[8.4 Incidentes de causa incierta]
|
v
[Síntesis]
|
v
[Ejemplo resuelto] --> [Ejercicio EX036]
Resultados de aprendizaje
Usted podrá (1) analizar casos en los que los controles entran en conflicto o la evidencia es ambigua; (2) gestionar casos multiagente y de la cadena de suministro; (3) razonar sobre la fuga de privacidad de los modelos ajustados; (4) gestionar incidentes de causa raíz incierta; y (5) documentar el criterio aplicado en situaciones ambiguas.
8.1 Controles en conflicto
Registrar cada prompt facilita la investigación, pero almacena datos personales; el rechazo estricto reduce el uso indebido, pero perjudica a los usuarios legítimos; la confirmación humana acota el daño, pero provoca fatiga de aprobación. Los casos difíciles rara vez se resuelven con un control más; necesitan disyuntivas explícitas, responsables y la monitorización de ambos lados. En Corvane, el incidente del almacén mostró una de esas disyuntivas: la reprogramación automática ahorra tiempo, pero confiaba demasiado en el texto de los correos. Escriba cada disyuntiva con su responsable y la medida que muestra si el equilibrio es el adecuado.
8.2 Multiagente y cadena de suministro
Cuando unos agentes llaman a otros, una inyección en uno puede propagarse. Trate cada mensaje entre agentes como una entrada no fiable y mantenga la aplicación de controles en cada frontera de herramienta. Los casos de la cadena de suministro incluyen conjuntos de datos públicos envenenados —Carlini et al. (arXiv:2302.10149) muestran que envenenar conjuntos de datos a escala web es factible— y archivos de modelos procedentes de repositorios públicos. Fije los hashes, registre la procedencia y prefiera formatos que no ejecuten código al cargarse.
"""Lab H: integrity of model artefacts with SHA-256 manifests (stdlib only).
Creates synthetic 'artefact' bytes, records a manifest, then detects a
one-byte tampering and a swapped file. No real models are involved."""
import hashlib, json
files = {"model.bin": bytes(range(256)) * 40, "tokenizer.json": b'{"vocab": ["a", "b"]}',
"config.yaml": b"layers: 4\nheads: 8\n"}
manifest = {n: hashlib.sha256(b).hexdigest() for n, b in files.items()}
print(json.dumps({k: v[:16] for k, v in manifest.items()}, indent=1))
received = dict(files)
tampered = bytearray(received["model.bin"]); tampered[5000] ^= 1
received["model.bin"] = bytes(tampered)
received["config.yaml"] = b"layers: 4\nheads: 8\ntrust_remote_code: true\n"
for n, b in sorted(received.items()):
ok = hashlib.sha256(b).hexdigest() == manifest[n]
print(f"{n:15s} {'OK' if ok else 'MISMATCH'}")
Salida esperada:
{
"model.bin": "e96760a87768717b",
"tokenizer.json": "f63d2ddabc61f2d9",
"config.yaml": "e5bbb570ca0fcb87"
}
config.yaml MISMATCH
model.bin MISMATCH
tokenizer.json OK
En Corvane, el modelo lector de Dispatch Copilot pasa campos al planificador. El laboratorio H muestra la comprobación: tanto un byte cambiado como una línea de configuración añadida se detectan.
8.3 Fuga de privacidad
Los modelos ajustados pueden memorizar y revelar datos de entrenamiento; Carlini et al. (arXiv:2012.07805) extrajeron ejemplos de entrenamiento literales de un modelo de lenguaje. Cuando un modelo se ajusta con mensajes de clientes, pruebe la regurgitación literal y la inferencia de pertenencia, y considere la deduplicación, el filtrado y la privacidad diferencial. En Corvane, el proyecto aplicado de Tomás lo probó con un modelo de sugerencia de respuestas ajustado con mensajes de clientes, y la deduplicación redujo la ventaja de pertenencia de 0,17 a 0,06. Ejecute esas pruebas después de cada ajuste, no solo una vez. Comunique la fuga junto con el ataque usado y sus condiciones.
8.4 Incidentes de causa incierta
¿El reembolso erróneo fue una inyección, un error del modelo o un fallo de la política? Conserve los prompts, los documentos recuperados, las llamadas a herramientas y las versiones; reprodúzcalo en una copia aislada; considere las tres posibilidades hasta que la evidencia las separe. Contenga primero: baje los límites, desactive la herramienta, revierta el prompt. El incidente del almacén de Amira siguió este orden: contención mediante la desactivación de la reprogramación automática, evidencia a partir de los registros y después la causa. La causa resultó ser una cuenta de transportista comprometida, no un error del modelo, algo que solo la evidencia conservada podía mostrar.
8.5 Ejemplo resuelto (caso sintético de Corvane)
Copilot reprogramó 14 envíos a un almacén nuevo tras leer un correo de un transportista. ¿Fue un ataque? El correo decía «Per updated routing, all Thursday loads go to Depot 7» («Según el enrutamiento actualizado, todas las cargas del jueves van al almacén 7»). Los registros muestran que el correo procedía de una cuenta real de transportista que había sido comprometida. Amira contiene el incidente desactivando la reprogramación automática, avisa al transportista y añade una regla: los cambios de almacén requieren una entrada coincidente en el sistema de enrutamiento, no solo el texto de un correo. Registra que el modelo se comportó según su diseño: era el diseño el que confiaba demasiado en el correo.
8.6 Errores y límites
- Buscar un único control para una disyuntiva.
- Confiar en los mensajes entre agentes.
- Culpar a «el modelo» antes de tener evidencia.
Cada error conduce a una respuesta equivocada. Una disyuntiva no puede resolverse con un control más; necesita un responsable y la monitorización de ambos lados. Los mensajes de otros agentes pueden llevar instrucciones inyectadas, así que hace falta aplicar controles en cada frontera de herramienta. Culpar al modelo antes de tener evidencia habría ocultado la cuenta de transportista comprometida que había detrás del incidente del almacén de Corvane. Revise cada análisis de incidente en busca de los tres.
Ejercicios
- EX036 — Disyuntiva. Resuelva el conflicto entre registro y privacidad para Copilot. Rúbrica: 3 = conservación, censura de datos, acceso, limitación de la finalidad; 2 = tres; 1 = uno; 0 = nada.
- EX037 — Laboratorio de hashes. ¿Qué le dicen a un respondedor de incidentes las líneas MISMATCH del laboratorio? Rúbrica: 3 = archivos modificados desde que se fijaron; investigar la procedencia; bloquear la carga; 2 = parcial; 1 = vago; 0 = incorrecto.
- EX038 — Prueba de memorización. Diseñe una prueba de fuga literal para un modelo ajustado con mensajes de clientes. Rúbrica: 3 = canarios o registros conocidos, prompts, medición, umbral; 2 = tres; 1 = vago; 0 = nada.
- EX039 — Incidente. Enumere la evidencia que debe conservarse del incidente del almacén. Rúbrica: 3 = correo, recuperación, prompts, llamadas a herramientas, versiones, cronología; 2 = cuatro; 1 = dos; 0 = nada.
- EX040 — Causa raíz. Redacte la declaración de causa raíz del §8.5. Rúbrica: 3 = confianza del diseño en el correo, transportista comprometido, corrección; 2 = dos; 1 = culpa al modelo; 0 = nada.
Síntesis
Los casos difíciles necesitan disyuntivas explícitas, desconfianza hacia todo mensaje que cruce una frontera de agente o de cadena de suministro y una gestión de incidentes que conserve la evidencia antes de decidir la causa.
Siga estudiando — capítulo 08 de 12
← Capítulo 07 (borrador) · Índice de capítulos del curso · Capítulo 09 (borrador) →