A08: Software and Data Integrity Failures — cuando ya no puedes confiar en tu software o tus datos

Continuamos nuestra serie sobre las categorías del OWASP Top 10:2025 analizando A08: Software and Data Integrity Failures, una vulnerabilidad que pone en evidencia los riesgos de confiar ciegamente en software, actualizaciones, dependencias o datos sin verificar su integridad.

En el artículo anterior analizamos A07: Authentication Failures, donde vimos cómo las debilidades en los mecanismos de autenticación pueden permitir accesos no autorizados. En esta ocasión, el foco está en otro aspecto fundamental de la seguridad: garantizar que el software y los datos utilizados por una aplicación no hayan sido alterados de forma maliciosa.

🚀 ¿Qué son Software and Data Integrity Failures?

Las A08: Software and Data Integrity Failures ocurren cuando una aplicación no verifica adecuadamente la integridad del software, las actualizaciones, los componentes externos o los datos críticos antes de utilizarlos.

Esto puede permitir que atacantes introduzcan código malicioso, manipulen información o comprometan procesos de confianza dentro de la organización.

El problema surge cuando se asume que un componente o dato es legítimo sin realizar validaciones que lo demuestren.

🎯 ¿Por qué es una vulnerabilidad crítica?

Las organizaciones modernas dependen cada vez más de:

• Librerías de terceros.

• Repositorios públicos.

• Servicios externos.

• Sistemas automatizados de despliegue.

• Actualizaciones continuas.

Si alguno de estos elementos es comprometido y no existen mecanismos para validar su integridad, un atacante puede introducir código malicioso directamente en el entorno de producción.

Las consecuencias pueden incluir:

• Ejecución remota de código.

• Robo de información sensible.

• Distribución de malware.

• Compromiso de la cadena de suministro (Supply Chain Attack).

• Control total de sistemas afectados.

Además, este tipo de ataques suele ser especialmente difícil de detectar porque aprovecha relaciones de confianza legítimas.

🔍 Ejemplos comunes

📦 Dependencias comprometidas

Una aplicación descarga automáticamente una librería externa que ha sido modificada por un atacante.

Al incorporarse al proyecto, el código malicioso se ejecuta con los mismos privilegios que la aplicación.

🔄 Actualizaciones sin validación

Un sistema instala actualizaciones sin verificar firmas digitales o integridad de los archivos.

Si un atacante logra interceptar o modificar la actualización, podría distribuir software malicioso a todos los usuarios afectados.

🚀 Pipelines CI/CD inseguros

Los procesos automatizados de integración y despliegue pueden ser un objetivo atractivo.

Si un atacante compromete el pipeline, puede:

• Modificar código fuente.

• Insertar puertas traseras (backdoors).

• Alterar artefactos antes de llegar a producción.

📄 Deserialización insegura

Una aplicación acepta objetos o datos serializados provenientes de fuentes no confiables.

La manipulación de estos datos puede provocar:

• Ejecución de código arbitrario.

• Alteración del comportamiento de la aplicación.

• Escalamiento de privilegios.

⚠️ Principales causas

Las vulnerabilidades de Software and Data Integrity Failures suelen originarse por:

• Ausencia de verificación de firmas digitales.

• Dependencia excesiva de software de terceros.

• Falta de controles en pipelines CI/CD.

• Actualizaciones automáticas sin validación.

• Uso de repositorios no confiables.

• Deserialización de datos no validados.

• Gestión deficiente de la cadena de suministro de software.

A medida que crece la complejidad de los ecosistemas tecnológicos, también aumenta la superficie de ataque asociada a estos riesgos.

🛡️ ¿Cómo mitigar esta vulnerabilidad?

Las mejores prácticas incluyen:

• Verificar firmas digitales de software y actualizaciones.

• Utilizar repositorios confiables y controlados.

• Implementar controles de integridad en pipelines CI/CD.

• Mantener inventarios actualizados de dependencias.

• Aplicar controles de acceso estrictos en procesos de despliegue.

• Utilizar mecanismos de Software Composition Analysis (SCA).

• Validar y verificar artefactos antes de su ejecución.

• Evitar la deserialización de datos provenientes de fuentes no confiables.

Además, es recomendable adoptar prácticas de seguridad enfocadas en la cadena de suministro de software (Software Supply Chain Security).

💡 Conclusión

Las Software and Data Integrity Failures reflejan una realidad cada vez más importante: la seguridad ya no depende únicamente del código desarrollado internamente, sino también de todos los componentes, servicios y procesos que forman parte del ecosistema tecnológico.

La validación de integridad, la protección de la cadena de suministro y el control de dependencias son medidas esenciales para evitar que relaciones de confianza legítimas se conviertan en vectores de ataque.

🔜 Próximo artículo

En el siguiente artículo analizaremos A09: Security Logging and Monitoring Failures, una categoría que aborda los riesgos asociados a la falta de registros, monitoreo y detección de incidentes. Veremos cómo la ausencia de visibilidad puede permitir que los ataques permanezcan ocultos durante largos períodos, aumentando significativamente su impacto.

blog