Anclaje de dependencias
¿Qué es Anclaje de dependencias?
Anclaje de dependenciasPráctica de declarar las dependencias de software en versiones exactas, a menudo junto con hashes criptográficos, para que las builds consuman siempre los mismos artefactos y resistan manipulación de la cadena de suministro.
El pinning de dependencias sustituye rangos flexibles ("^1.0.0") por versiones exactas y, idealmente, digests criptográficos en un lockfile (package-lock.json, poetry.lock, Pipfile.lock, Gemfile.lock, go.sum, Cargo.lock). Las builds se vuelven reproducibles y resistentes a actualizaciones silenciosas, dependency confusion, typosquatting y versiones comprometidas. La práctica moderna también ancla GitHub Actions y otros plugins de CI a SHAs de commit en lugar de tags mutables. El pinning debe combinarse con monitorización activa de vulnerabilidades (SCA, Dependabot, Renovate) para no quedarse desactualizado y acumular CVE. El hash-pinning es un control clave referenciado por SLSA, NIST SSDF, OWASP y las iniciativas de builds reproducibles.
● Ejemplos
- 01
Anclar todas las GitHub Actions de terceros a SHA de commit en lugar de tags como v3.
- 02
Uso de pip --require-hashes con un requirements.txt totalmente hasheado en CI.
● Preguntas frecuentes
¿Qué es Anclaje de dependencias?
Práctica de declarar las dependencias de software en versiones exactas, a menudo junto con hashes criptográficos, para que las builds consuman siempre los mismos artefactos y resistan manipulación de la cadena de suministro. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa Anclaje de dependencias?
Práctica de declarar las dependencias de software en versiones exactas, a menudo junto con hashes criptográficos, para que las builds consuman siempre los mismos artefactos y resistan manipulación de la cadena de suministro.
¿Cómo funciona Anclaje de dependencias?
El pinning de dependencias sustituye rangos flexibles ("^1.0.0") por versiones exactas y, idealmente, digests criptográficos en un lockfile (package-lock.json, poetry.lock, Pipfile.lock, Gemfile.lock, go.sum, Cargo.lock). Las builds se vuelven reproducibles y resistentes a actualizaciones silenciosas, dependency confusion, typosquatting y versiones comprometidas. La práctica moderna también ancla GitHub Actions y otros plugins de CI a SHAs de commit en lugar de tags mutables. El pinning debe combinarse con monitorización activa de vulnerabilidades (SCA, Dependabot, Renovate) para no quedarse desactualizado y acumular CVE. El hash-pinning es un control clave referenciado por SLSA, NIST SSDF, OWASP y las iniciativas de builds reproducibles.
¿Cómo defenderse de Anclaje de dependencias?
Las defensas contra Anclaje de dependencias combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Anclaje de dependencias?
Nombres alternativos comunes: Fijación de versiones, Hash pinning.
● Términos relacionados
- appsec№ 1069
Seguridad de la cadena de suministro de software
Disciplina que protege cada eslabón de la producción de software —fuente, dependencias, build, firma, distribución y despliegue— frente a manipulación, código malicioso y pérdida de integridad.
- appsec№ 304
Ataque de dependencia confusa
Ataque a la cadena de suministro en el que el adversario publica un paquete malicioso en un registro público con el mismo nombre que una dependencia interna, engañando a las herramientas de build para que tomen la versión pública.
- appsec№ 971
SCA (Análisis de composición de software)
Análisis automatizado de los componentes open source y de terceros de una aplicación para identificar vulnerabilidades conocidas, problemas de licencia y dependencias obsoletas o de riesgo.
- appsec№ 921
Builds reproducibles
Prácticas de build que garantizan que compilar el mismo código fuente con las mismas instrucciones produzca un artefacto idéntico bit a bit, sin importar cuándo o dónde se construya.
- appsec№ 166
Seguridad de CI/CD
Conjunto de controles que protegen los pipelines de integración y entrega continua frente a compromisos, inyección de código, fuga de secretos y despliegues no autorizados.
- appsec№ 784
Firma de paquetes
Aplicación de una firma criptográfica a un paquete de software para que los consumidores verifiquen la identidad del publicador y que el artefacto no se ha alterado tras su publicación.