Dominio 8: Cadena de suministro de software segura

Por: Artiko
csslpisc2seguridadsdlccadena-de-suministrosbomslsaopen-source

Dominio 8: Cadena de suministro de software segura

El Dominio 8 (Secure Software Supply Chain) pesa 10% del examen y es el dominio que ISC2 reforzó de forma más notable en el refresh de septiembre de 2023. La razón es directa: hoy una aplicación típica está compuesta en un 70-90% de código que la organización no escribió — dependencias open source, librerías comerciales, contenedores base, modelos de IA, servicios de terceros. El riesgo ya no vive solo en tu código; vive en todo lo que confías e incorporas.

La mentalidad del dominio: cada componente externo es una relación de confianza que debe justificarse, verificarse y gobernarse durante todo el ciclo de vida, no solo en el momento de incorporarlo.

flowchart LR
    A[Desarrolladores/proveedores] -->|código fuente| B[Repositorio / VCS]
    B --> C[Build / CI-CD]
    D[Dependencias open source] --> C
    E[Registries: npm, PyPI, Maven] --> D
    C --> F[Artefacto firmado]
    F --> G[Registro de artefactos]
    G --> H[Despliegue]
    style D fill:#f88
    style E fill:#f88
    style C fill:#fb8
    style B fill:#fb8

Los nodos resaltados marcan los puntos de riesgo clásicos: dependencias comprometidas, registries envenenados, y el pipeline de build como blanco (SolarWinds).


8.1 Gestión de riesgos de la cadena de suministro (SCRM)

SCRM (Supply Chain Risk Management) es el proceso de identificar, evaluar y mitigar los riesgos introducidos por proveedores y componentes de terceros a lo largo de todo el ciclo de vida del software.

Fuentes de riesgo de terceros (third-party risk)

El principio central

El SCRM aplica la gestión de riesgo estándar (identificar → evaluar → tratar → monitorear) al universo de terceros, y su punto conceptual es que la confianza debe ser explícita y verificable, no implícita. “Lo bajé de npm y funciona” no es una evaluación de riesgo.

💡 Tip de examen: El SCRM no es un evento de compra; es un proceso continuo que abarca selección, incorporación, operación y retiro del componente. Si una pregunta trata la evaluación de un proveedor como algo que se hace “una vez al firmar el contrato”, es distractor: el riesgo del tercero debe monitorearse durante toda la relación.


8.2 Analizar el perfil de seguridad de software de terceros

Antes de confiar en un componente o proveedor, se evalúa su postura de seguridad. ISC2 espera que sepas qué instrumentos existen y qué evidencia aporta cada uno.

Instrumentos de evaluación

InstrumentoQué esQué evidencia aporta
Cuestionario SIGStandardized Information Gathering (Shared Assessments)Autoevaluación estructurada del proveedor sobre sus controles
CAIQConsensus Assessments Initiative Questionnaire (Cloud Security Alliance)Autoevaluación específica para proveedores cloud
SOC 2 Type IIReporte de auditoría independiente (AICPA)Evidencia de terceros de controles operando en el tiempo. Más fuerte que una autoevaluación
ISO/IEC 27001Certificación de sistema de gestión de seguridad (ISMS)Certificación acreditada de que existe un programa de seguridad gestionado
Pruebas independientesPentest / auditoría de código por un terceroEvidencia técnica directa del estado de seguridad del producto

Jerarquía de confianza de la evidencia

No toda evidencia vale igual. De menor a mayor confianza:

  1. Autoevaluación (SIG/CAIQ rellenado por el propio proveedor) — útil pero es “confía en mi palabra”.
  2. Certificación acreditada (ISO 27001) — un tercero verificó que existe un sistema de gestión.
  3. Atestación de auditoría (SOC 2 Type II) — un auditor independiente verificó controles operando durante un periodo.
  4. Prueba técnica independiente (pentest reciente sobre el producto real) — evidencia directa.

💡 Tip de examen: Prefiere evidencia independiente sobre autoevaluación. Entre un cuestionario SIG que el proveedor rellenó y un SOC 2 Type II de un auditor externo, el SOC 2 es más fuerte porque es atestación independiente de controles operando en el tiempo (Type II) frente a un punto único (Type I) o una autodeclaración. ISC2 valora la verificación por un tercero acreditado.


8.3 Verificar pedigree y provenance

Dos términos que el examen distingue con precisión y que suelen confundirse:

TérminoDefiniciónPregunta que responde
PedigreeEl origen y la cadena de custodia/linaje de un componente: de dónde vino, qué componía originalmente, su historia”¿De dónde proviene y por qué manos pasó este componente?”
ProvenanceEl registro verificable de cómo se produjo un artefacto: qué fuente, qué build, qué proceso lo generó”¿Este artefacto fue construido a partir de esta fuente exacta por este proceso confiable?”

En términos simples: pedigree es la genealogía/procedencia del componente; provenance es la prueba criptográfica de cómo y desde qué fuente se construyó el artefacto que tienes en la mano.

Mecanismos para garantizar integridad y provenance

Nivel SLSAGarantía principal
Nivel 1Provenance existe y está documentada (proceso de build genera metadatos)
Nivel 2Build en servicio hospedado con provenance firmada por el servicio
Nivel 3Build endurecida y resistente a manipulación (aislamiento, provenance no falsificable)

💡 Tip de examen: Memoriza el par: pedigree = de dónde vino (linaje/origen); provenance = cómo y desde qué fuente se construyó (evidencia verificable de la build). SLSA es el framework de niveles que formaliza garantías de provenance; in-toto protege la cadena completa de pasos; Sigstore/Cosign firma sin gestionar llaves. Si preguntan “¿cómo pruebo que este binario fue construido desde este código fuente por un proceso confiable?”, la respuesta es provenance/attestations (SLSA).


8.4 Asegurar y verificar requisitos de seguridad de proveedores

Los requisitos de seguridad no nacen en el D8: fluyen desde el Dominio 3 (requisitos). Lo que el D8 hace es imponerlos y verificarlos en la relación con el proveedor.

💡 Tip de examen: Los requisitos de seguridad del proveedor derivan de los requisitos del negocio (D3) y se hacen exigibles vía contrato. El derecho a auditar es la palanca que convierte una exigencia escrita en algo verificable. Si una pregunta plantea que “el proveedor dice cumplir pero no hay forma de comprobarlo”, la falla de origen es que faltó el right to audit o la exigencia de evidencia independiente en el contrato.


8.5 Apoyar requisitos contractuales

El contrato es el instrumento donde el riesgo de la cadena de suministro se transfiere, distribuye y hace exigible. ISC2 espera que conozcas las cláusulas de seguridad típicas.

Cláusula contractualQué establece
Requisitos de seguridadControles mínimos que el proveedor debe implementar y mantener
SLAs de seguridadCompromisos medibles (tiempo de parcheo, tiempo de notificación de brecha)
Responsabilidad por vulnerabilidadesQuién responde y remedia cuando aparece una vuln en el componente del proveedor
Notificación de brechasObligación de notificar incidentes en un plazo definido (a menudo regulatorio)
Software escrowDepósito del código fuente con un tercero neutral, liberado si el proveedor quiebra, es adquirido o incumple. Protege continuidad
EOL / EOSEnd-of-Life / End-of-Support: cuándo el proveedor dejará de dar soporte/parches, para planificar migración
Derecho a auditar(Ver 8.4) facultad de verificar el cumplimiento

Software escrow y EOL/EOS

💡 Tip de examen: Software escrow protege la continuidad del negocio ante la desaparición del proveedor (te da acceso al código fuente), no la confidencialidad ni la calidad. Y EOL/EOS debe planificarse con antelación: usar un componente después de su End-of-Support significa correr sin parches de seguridad, un riesgo que ISC2 considera inaceptable sin una mitigación compensatoria.


SBOM: Software Bill of Materials en profundidad

El SBOM es un inventario formal y legible por máquina de todos los componentes de una pieza de software, incluidas dependencias transitivas, versiones y licencias. Es la analogía de la “lista de ingredientes” de un alimento: no puedes gestionar el riesgo de lo que no sabes que tienes.

El impulso regulatorio vino de la Executive Order 14028 (EE.UU., 2021), que exige SBOM a los proveedores del gobierno federal tras SolarWinds.

Formatos estándar

FormatoOrigenEnfoque
SPDXLinux Foundation (ISO/IEC 5962)Estándar amplio, fuerte en licencias y cumplimiento; formato ISO
CycloneDXOWASPOrientado a seguridad; soporta VEX, SaaSBOM, y extensiones ML/AI BOM

Casos de uso del SBOM

VEX (Vulnerability Exploitability eXchange)

El SBOM te dice qué componentes tienes; VEX complementa diciendo si una vulnerabilidad conocida en un componente es realmente explotable en tu contexto. Un componente puede contener un CVE pero la función vulnerable nunca se invoca — VEX comunica ese estado (“not affected”, “affected”, “fixed”, “under investigation”), reduciendo el ruido y evitando remediaciones innecesarias.

💡 Tip de examen: El SBOM responde “¿qué tengo?”; el VEX responde “¿me afecta realmente?”. Son complementarios. El caso de uso estrella del SBOM en el examen es la respuesta rápida ante una nueva vulnerabilidad divulgada (tipo Log4Shell): sin inventario no puedes saber tu exposición. SPDX = fuerte en licencias (ISO); CycloneDX = fuerte en seguridad (OWASP, soporta VEX y ML-BOM).


Ataques históricos como lecciones

ISC2 usa incidentes reales para anclar los conceptos. No memorices trivia; entiende qué punto de la cadena falló en cada uno.

AtaqueQué pasóLección de cadena de suministro
SolarWinds (2020)Atacantes comprometieron el pipeline de build de Orion e inyectaron backdoor en actualizaciones firmadas y legítimasEl build system es un blanco; la firma no ayuda si el proceso de build está comprometido. Motivó SLSA y provenance de build
Log4Shell (2021)Vulnerabilidad crítica (RCE) en Log4j, una dependencia ubicua y transitivaNecesidad de SBOM para conocer la exposición; el riesgo de dependencias transitivas invisibles
xz-utils (2024)Un mantenedor malicioso ganó confianza durante años e insertó un backdoor en una librería de compresión de LinuxRiesgo del mantenedor único y de la ingeniería social contra proyectos open source; salud del proyecto importa
Typosquatting / dependency confusionPaquetes maliciosos con nombres parecidos a los legítimos, o paquetes internos suplantados por versiones públicas de mayor versión en registriesRiesgo del registry; necesidad de verificar nombres, fijar fuentes y usar scopes privados

Puntos que estos ataques enseñan

💡 Tip de examen: El mensaje de SolarWinds para el examen es que firmar el artefacto no basta si el pipeline de build está comprometido — por eso importan la integridad del build y la provenance (SLSA/in-toto). El de Log4Shell es que sin SBOM no conoces tu exposición. No los confundas: SolarWinds = compromiso del build; Log4Shell = dependencia vulnerable; xz-utils = mantenedor malicioso/ingeniería social.


Frameworks regulatorios y de referencia

NIST SSDF (SP 800-218)

El Secure Software Development Framework es un conjunto de prácticas de desarrollo seguro agrupadas en cuatro categorías, que se ha vuelto la referencia para el cumplimiento derivado de la EO 14028:

El SSDF es agnóstico de metodología (funciona con cualquier SDLC) y es la base contra la que los proveedores del gobierno de EE.UU. atestan cumplimiento.

EO 14028

La Executive Order 14028 (“Improving the Nation’s Cybersecurity”, 2021), respuesta directa a SolarWinds, impuso requisitos como SBOM obligatorio, prácticas de desarrollo seguro (via SSDF) y atestaciones a los proveedores del gobierno federal. Es el motor regulatorio detrás del auge de SBOM y provenance.


Salud de proyectos open source: OpenSSF Scorecard

Para evaluar el riesgo de una dependencia open source, no basta con “es popular”. El OpenSSF Scorecard automatiza una evaluación de la salud y prácticas de seguridad de un proyecto, puntuando señales como:

Estas señales permiten decidir con datos si adoptar, monitorear o evitar una dependencia.

💡 Tip de examen: Al evaluar una dependencia open source, ISC2 quiere evaluación de salud del proyecto basada en señales objetivas (mantenimiento activo, múltiples mantenedores, respuesta a vulnerabilidades, prácticas de build seguras) — no la popularidad ni el número de estrellas. OpenSSF Scorecard es la herramienta que automatiza esa evaluación. El caso xz-utils es el ejemplo canónico de por qué el mantenedor único es una señal de riesgo.


Gestión práctica de dependencias

Más allá de la teoría de riesgo, el examen espera que reconozcas los controles operativos concretos para gestionar dependencias con seguridad.

ControlQué haceRiesgo que mitiga
Lockfiles (package-lock, poetry.lock)Fijan versiones y hashes exactos de todas las dependencias, incluidas transitivasInstalaciones no reproducibles; sustitución silenciosa de versiones
Pinning por hashDepender de un hash de contenido, no solo de un número de versiónQue un atacante republique una versión con el mismo número pero contenido distinto
Registries privados / proxyEspejo interno controlado (Artifactory, Nexus) entre el registry público y el buildDependency confusion, indisponibilidad del registry público, paquetes no aprobados
Allowlists de dependenciasSolo se permiten componentes previamente aprobadosIntroducción de librerías no evaluadas
SCA en CI/CDSoftware Composition Analysis: escanea dependencias contra bases de vulns y licenciasUso de componentes con CVE conocidos o licencias incompatibles
Actualización controladaRenovate/Dependabot con revisión, no auto-merge ciegoQuedarse en versiones EOL; pero también actualizar a versiones comprometidas

La tensión de las actualizaciones

Actualizar es un arma de doble filo que el examen adora plantear: no actualizar deja vulnerabilidades sin parchear (deuda de riesgo), pero actualizar ciegamente puede introducir una versión comprometida (como en varios ataques a npm) o romper compatibilidad. La respuesta correcta casi siempre es un proceso controlado: actualizaciones evaluadas, probadas y aprobadas — ni parálisis ni auto-merge sin revisión.

💡 Tip de examen: Los lockfiles con hashes garantizan builds reproducibles y detectan sustitución de contenido; un registry proxy privado es la defensa canónica contra dependency confusion. Ante “¿cómo aseguras que el componente que descargas es exactamente el que evaluaste?”, la respuesta combina pinning por hash + registry controlado, no confiar en el número de versión.


SCA vs. otras técnicas de análisis

El Software Composition Analysis (SCA) es la herramienta central del D8 en la práctica, y conviene ubicarlo frente a las técnicas del D5/D6 para no confundirlas en el examen.

TécnicaQué analizaDominio principal
SCADependencias de terceros (componentes, versiones, licencias, CVEs)D8 / D5
SASTTu código fuente en busca de vulnerabilidadesD5 / D6
DASTLa aplicación en ejecución desde fueraD6
Secret scanningSecretos filtrados en el códigoD5

El SCA es lo que consume y produce SBOMs: identifica qué componentes tienes (genera el inventario) y los correlaciona con bases de vulnerabilidades (CVE/NVD) y licencias. Es la implementación práctica del “conoce tu cadena de suministro”.


Escenario integrado: respuesta a una nueva vulnerabilidad crítica

Cuando se divulga una vulnerabilidad crítica en una dependencia ubicua (el patrón Log4Shell), el valor de haber preparado la cadena de suministro se vuelve tangible:

sequenceDiagram
    participant CVE as Divulgación de CVE crítico
    participant SBOM as Inventario SBOM
    participant VEX
    participant Team as Equipo de seguridad
    participant Ops as Operaciones
    CVE->>SBOM: ¿Uso este componente y dónde?
    SBOM->>Team: Lista de sistemas afectados en minutos
    Team->>VEX: ¿La función vulnerable se invoca realmente?
    VEX->>Team: 3 sistemas "affected", 5 "not affected"
    Team->>Ops: Prioriza remediación de los 3 realmente explotables
    Ops->>Ops: Actualiza componente / virtual patching temporal
    Ops->>SBOM: Actualiza inventario con la nueva versión

Sin SBOM, el paso “¿dónde lo uso?” toma días de auditoría manual. Sin VEX, se remedian sistemas que no estaban realmente expuestos, malgastando esfuerzo. Juntos convierten una emergencia caótica en una respuesta priorizada por riesgo.

💡 Tip de examen: El escenario “acaba de salir un CVE crítico en una librería muy usada, ¿qué te permite responder rápido?” tiene como respuesta el SBOM (saber dónde lo usas) complementado con VEX (saber si realmente te afecta). Es el argumento de valor número uno del SBOM en el examen.


Puntos clave