Saltar al contenido
Lectura13 minPreview

Qué es A08: integridad de software y datos

Cuando usted instala una biblioteca, abre una actualización o lee una cookie que devolvió el navegador, está confiando en que ese código o ese dato es el que debería ser. La categoría A08:2021, fallas de integridad de software y datos, agrupa los casos en que una aplicación confía en algo sin verificar que no fue alterado ni que viene de quien dice venir.

Integridad, no confidencialidad

En seguridad se habla de la tríada confidencialidad, integridad y disponibilidad. Las fallas criptográficas de A02 suelen afectar la confidencialidad: alguien lee lo que no debía. A08 se enfoca en la integridad: alguien cambia algo y el sistema lo acepta como legítimo.

La pregunta clave: ¿cómo sabe su aplicación que este código o dato es auténtico? Si la respuesta es "porque llegó por el canal de siempre", hay un problema, porque los canales se comprometen: un servidor de descargas, la cuenta de un mantenedor o el pipeline.

De dónde viene la categoría

OWASP, el Open Worldwide Application Security Project, es una fundación sin fines de lucro creada en 2001. Su OWASP Top 10 se publicó por primera vez en 2003 y se actualiza cada pocos años con datos de pruebas reales y una encuesta a la comunidad.

AñoHito
2017Entra A8:2017, deserialización insegura, tras los casos masivos en Java de 2015
2020SolarWinds expone un ataque a la cadena de suministro a gran escala
2021Nace A08:2021, que absorbe la deserialización y suma cadena de suministro y CI/CD
2021Aparecen SLSA y Sigstore; la Orden Ejecutiva 14028 de Estados Unidos impulsa los SBOM
2025La cadena de suministro pasa a su propia categoría, A03:2025; la integridad sigue en A08:2025

Este curso usa la numeración de 2021, la más presente en reportes y escáneres; las ideas son las mismas en ambas ediciones.

Qué cubre A08

  1. Cadena de suministro: dependencias, imágenes y scripts de terceros que entran sin control.
  2. Actualizaciones sin firma: se descarga y ejecuta una versión nueva sin comprobar su firma.
  3. Integridad del CI/CD: el pipeline tiene permisos excesivos, secretos expuestos o pasos que cualquiera modifica.
  4. Datos serializados y del cliente: el servidor reconstruye objetos del usuario o confía en cookies sin firma.

Por qué importa en su trabajo

Comprometer a un proveedor permite llegar a todos sus clientes de una vez. Por eso A08 toca a casi todos los roles: el desarrollador elige dependencias y cómo leer los datos del cliente; DevOps controla el pipeline y sus secretos; el analista de seguridad de aplicaciones revisa código y redacta hallazgos; el SOC necesita eventos para detectar la manipulación. Y cada vez más contratos exigen SBOM, firmas y procedencia. Las causas se repiten: comodidad (copiar una línea que instala algo es más rápido que verificarlo), confianza transitiva en dependencias que nadie revisó, pipelines con permisos de producción sin control y formatos de serialización más poderosos de lo necesario. Quien no domina estos controles termina publicando, con su propia firma, algo que otro alteró.

Dónde aparece

LugarEjemplo de integridad en juego
Repositorio del proyectorequirements.txt, package.json y sus lockfiles
Pipeline de CI/CDWorkflows de GitHub Actions, GitLab CI o Jenkins
Registros de paquetesPyPI, npm, Docker Hub
NavegadorScripts cargados desde un CDN
ServidorCookies, campos ocultos, colas y archivos subidos
Equipos de usuariosMecanismos de actualización automática

Las CWE principales

OWASP mapea la categoría a debilidades del catálogo CWE, Common Weakness Enumeration, que mantiene MITRE. Estas aparecen en escáneres y auditorías:

CWENombre resumidoEjemplo típico
CWE-829Funcionalidad desde una zona no confiableScript de un CDN ajeno sin control
CWE-494Descarga de código sin verificar integridadInstalador que ejecuta lo que baja sin hash ni firma
CWE-502Deserialización de datos no confiablesReconstruir objetos que envió el cliente
CWE-345Autenticidad de datos mal verificadaAceptar un mensaje sin comprobar quién lo firmó
CWE-565Cookies sin validación ni integridadEl rol del usuario en una cookie sin firmar
CWE-915Modificación descontrolada de atributosAsignación masiva desde el formulario

Conceptos clave

ConceptoQué significa
IntegridadGarantía de que algo no cambió desde que lo produjo su autor
Cadena de suministroTodo lo que interviene en su software sin que usted lo escriba
HashHuella de tamaño fijo de un archivo; cambia por completo si cambia un byte
Firma digitalPrueba de quién produjo un archivo, verificable con su clave pública
SerializaciónConvertir un objeto en memoria en bytes para guardarlo o enviarlo
CI/CDIntegración y entrega continuas: el pipeline que prueba, construye y publica
ProcedenciaRegistro verificable de cómo, desde qué código y dónde se construyó un artefacto
SBOMLista de componentes de un producto, con versiones y hashes

Cómo leer las sintaxis y pedir ayuda

Usará herramientas como curl, pip, sha256sum, bandit o cosign. En sus fichas, lo que va entre corchetes es opcional, lo que va en MAYÚSCULAS lo reemplaza usted y ... indica que puede repetirse: sha256sum [OPCIONES] ARCHIVO... acepta uno o varios archivos. Para pedir ayuda, casi todas responden a HERRAMIENTA --help; en Linux muchas tienen man HERRAMIENTA, y en Python help(funcion) documenta una función.