◇ OpenCyber Academy
Posgrado · Capítulo 8 · Español

Capítulo 8 — Seguridad de la IA y del aprendizaje automático: casos difíciles

Aprendizaje gratuito y abierto para quienes desean proteger a las personas y la tecnología. No se necesita una cuenta para estudiar ni consultar las respuestas.

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

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

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) →