Introducción
Ataques a la cadena de suministro de software ya no son solo un riesgo teórico; están ocurriendo y están golpeando con fuerza. Incidentes como el Violación de SolarWinds y la vulnerabilidad de Log4Shell dejó dolorosamente claro que los atacantes ya no solo apuntan a su código, sino a todo lo que lo toca, incluidas las herramientas, bibliotecas y contenedores de los que depende.
En esta realidad, firmar y verificar imágenes de contenedores no es algo opcional; es imprescindible. Si envía imágenes sin firmar u omite las comprobaciones de firma durante la implementación, deja la puerta abierta para que los atacantes introduzcan código malicioso sin que usted se dé cuenta.
Ahí es donde entra en juego nuestro CodeSign Secure.
CodeSign Secure facilita la adición de firmas digitales a las imágenes de sus contenedores y su verificación antes de que entren en producción. Tanto si ejecuta un flujo de trabajo de CI/CD dinámico como si gestiona cientos de microservicios, le ayuda a asegurar su cadena de suministro de contenedores sin ralentizar nada.
En las siguientes secciones, veremos cómo nuestro CodeSign Secure se adapta a su flujo de trabajo y cómo protege sus imágenes con HSMclaves respaldadas y cómo puedes aplicar verificaciones de firma antes de implementar cualquier cosa.
El papel de la firma de código en DevSecOps
DevOps se centra en la velocidad: impulsar actualizaciones rápidamente, automatizar todo y mantener el ritmo. Pero esa velocidad conlleva riesgos. Cuanto más rápido se entrega el código, más probabilidades hay de que se filtre algo poco confiable. Ahí es donde... DevSecOps entra, integrando la seguridad en el proceso en lugar de agregarla al final.
Una de las mejores maneras de generar esa confianza es mediante la firma de código. Al firmar imágenes de contenedores, básicamente les imprimes un sello que dice: "Esto proviene de nosotros y no ha sido manipulado". Es una comprobación sencilla que contribuye enormemente a garantizar que lo que se ejecuta en producción sea exactamente lo que se pretendía crear.
Nuestra plataforma, CodeSign Secure, se conecta a su Canalización de CI / CD Así que firmar no es una tarea aparte; es simplemente parte de la compilación. Cada imagen que se compila y se envía se firma automáticamente. Y antes de implementarla, se puede verificar la firma para garantizar que no se haya manipulado nada durante el proceso.
Se trata de automatizar la seguridad. Con nuestra plataforma, no debería tener que elegir entre rapidez y seguridad; obtiene ambas.
Firma de imágenes de contenedores con CodeSign Secure
Antes de continuar con la firma de imágenes, es necesario instalar Docker y CoSign (nuestra herramienta CLI de CodeSign Secure) en esa máquina.
Siga los pasos que se indican a continuación para instalar Cosign.
Instalación de CoSign
# binario
wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-linux-amd64”
mv cosign-linux-amd64 /usr/local/bin/cosign
chmod +x /usr/local/bin/cosign
# rpm
wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-2.0.0.x86_64.rpm”
rpm -ivh cosign-2.0.0.x86_64.rpm
#dkpg
wget “https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign_2.0.0_amd64.deb”
dpkg -i cosign_2.0.0_amd64.deb
Instalación y configuración de Python y Docker
sudo apt-get install docker.io
sudo apt-get install python-is-python3
sudo apt instalar python3-pip
sudo apt-get install python3-docker
sudo apt-get -y install python3-openssl
sudo apt-get install -y dbus-user-session
sudo apt-get install -y docker-ce-rootless-extras
Si docker-ce-rootless-extras arroja un error, siga los pasos a continuación:
apt-get update sudo
sudo apt-get install certificados-ca curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update sudo
sudo apt-get install docker-ce-rootless-extras
Ahora deberá iniciar sesión en su cuenta de Docker Hub ejecutando el siguiente comando.
inicio de sesión de sudo docker
Configuración de la firma de contenedores
- Descargue las herramientas de firma de contenedores del portal CodeSign Secure.
- Vaya a la carpeta SignImage.
-
Abra el archivo “ec-signer.conf” y actualice la URL de diseño de código, la ruta de su certificado de autenticación SSL y la contraseña del certificado.
NOTA: El certificado de autenticación SSL y la contraseña se pueden generar desde el portal CodeSignSecure.
- Terminal abierta
- Implementación
./ec-signer –nombre_del_proyecto= –nombre_de_imagen= –docker_nombredeusuario=
-
Se le solicitará que proporcione la contraseña de Docker Hub y los privilegios de root al usuario actual
-
Podrás ver una nueva imagen de firma en tu cuenta de Docker Hub.
Verificación de la imagen del contenedor
La verificación de imágenes de contenedor le permitirá implementar solo imágenes Docker firmadas y rechazar las no firmadas. Es necesario implementar Kubernetes para verificar la firma de las imágenes de contenedor.
Instalación de Kubernetes
Siga el siguiente comando para instalar Kubernetes.
curl -sfL https://get.k3s.io | sh –
Creación de servicios de Kubernetes
Antes de que podamos verificar una imagen en un entorno de Kubernetes, es necesario implementar los siguientes servicios en el clúster de Kubernetes
- Verificar servicio de imágenes
- Servicio de webhook de validación de imágenes
Para crear el servicio de verificación de imágenes, siga los pasos a continuación:
- Vaya al directorio ../VerifyImage/image-verifier.
-
Cree una imagen de Docker con el nombre “verifyImage” utilizando el Dockerfile presente en la carpeta
Por ejemplo:
sudo docker build -t aryan34/demo:verifyImage
donde “aryan34” es el nombre de usuario de Docker y “demo” es el nombre del repositorio de Docker Hub.
-
Ahora envíe esta imagen a su cuenta de Docker Hub
Por ejemplo:
sudo docker image push aryan34/demo:verifyImage
donde “aryan34” es el nombre de usuario de Docker y “demo” es el nombre del repositorio de Docker Hub.
- Ahora abra el archivo validator-deploy.yaml y actualice la siguiente configuración
- nombre_certificado
- servidor_url
- ruta_del_archivo_pfx
- contraseña del archivo pfx
- NOMBRE_USUARIO_DOCKER
- CONTRASEÑA DE DOCKER
- imagen (NOTA: Mantenga el nombre de la imagen como “verifyImage”. Solo cambie el nombre de usuario de Docker y el nombre del repositorio).
-
Implementar el servicio de verificación de imágenes
sudo kubectl apply -f validator-deploy.yaml
Para crear el servicio de validación de imágenes, siga los pasos a continuación:
- Vaya al directorio ../VerifyImage/validating-webhook.
-
Cree una imagen de Docker con el nombre “image-validation-webhook” utilizando el Dockerfile presente en la carpeta.
Por ejemplo:
sudo docker build -t aryan34/demo:webhook de validación de imagen
Donde “aryan34” es el nombre de usuario de Docker y “demo” es el nombre del repositorio de Docker Hub.
-
Ahora envíe esta imagen a su cuenta de Docker Hub
Por ejemplo:
sudo docker image push aryan34/demo:webhook de validación de imagen
donde “aryan34” es el nombre de usuario de Docker y “demo” es el nombre del repositorio de Docker Hub.
-
Ahora implemente los secretos del webhook y los archivos yaml de configuración.
sudo kubectl apply -f webhook-secret.yaml
sudo kubectl apply -f webhook-config.yaml
-
Ahora abra el archivo webhook-deploy.yaml y actualice la siguiente configuración
- imagen (NOTA: Mantenga el nombre de la imagen como “image-validation-webhook”. Solo cambie el nombre de usuario de Docker y el nombre del repositorio).
-
Implementar el webhook de validación de imágenes
sudo kubectl apply -f webhook-deploy.
-
Si los servicios se implementan correctamente, cuando ejecutamos el siguiente comando:
sudo kubectl get pods -all-namespaces
Deberíamos obtener el siguiente resultado:

Pruebas
Si intentamos implementar una imagen de contenedor sin firmar, la implementación fallará. Solo podremos implementar una imagen firmada gracias a nuestros servicios de verificación y validación de Kubernetes.
Implementación de una imagen sin firmar
Necesitamos crear un archivo yaml para la imagen sin firmar
Hemos creado un archivo demo-deployment-unsigned.yaml para implementar la imagen aryan34/demo:notSigned sin firmar.
Aquí tienes un archivo YAML de ejemplo. Recuerda cambiar el nombre del servicio implementado (demo-deployment-unsigned), el nombre de la imagen y el número de puerto.
apiVersion: apps/v1 kind: Deployment metadata: name: demo-deployment-unsigned labels: app: demo spec: replicas: 1 # Número de réplicas deseadas selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: aryan34/demo:notSigned # imagen de demostración sin firmar ports: - containerPort: 8997 # Puerto para exponer
Para implementar la imagen sin firmar usando Kubernetes, ejecute el siguiente comando.
sudo kubectl apply -f demo-deployment-unsigned.yaml

Implementación de una imagen firmada
Aquí tienes un archivo YAML de ejemplo. Recuerda cambiar el nombre del servicio implementado (deployed-demo), el nombre de la imagen y el número de puerto.
apiVersion: apps/v1 kind: Deployment metadata: name: demo-deployment labels: app: demo spec: replicas: 1 # Número de réplicas deseadas selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: aryan34/demo:new3 # imagen de demostración firmada ports: - containerPort: 8999 # Puerto para exponer
Para implementar la imagen firmada usando Kubernetes, ejecute el siguiente comando.
sudo kubectl apply -f demo-deployment.yaml
Ahora, si verifica todos los pods, verá un servicio de implementación de demostración ejecutándose correctamente.

CodeSign Secure + SBOM: Garantizando la transparencia de la cadena de suministro
Saber qué hay dentro de tus contenedores es tan importante como saber quién los construyó. Ahí es donde entran en juego las SBOM (Lista de Materiales de Software). Estas enumeran todos los componentes en la imagen de tu contenedor, como una especie de etiqueta nutricional para tu software.
Con CodeSign Secure, puede firmar sus SBOM y adjuntarlos directamente a las imágenes de su contenedor. Esto significa que cualquier persona que extraiga su imagen podrá verificar tanto la imagen como el SBOM para confirmar que son legítimos y están intactos.
Nuestra plataforma es compatible con formatos SBOM populares como SPDX, por lo que está cubierto independientemente de las herramientas que utilice. ¿Y lo mejor? Puede aplicar estas comprobaciones. Si una imagen aparece sin un SBOM firmado o si este no coincide con lo esperado, puede bloquear la implementación inmediatamente.
¿Sin SBOM? Sin despliegue. Fácil.
Esto le brinda visibilidad de lo que se está ejecutando y ayuda a detectar problemas antes de que se conviertan en problemas de seguridad más adelante.
CodeSign Secure y criptografía postcuántica
La computación cuántica aún no ha llegado, pero cuando lo haga, muchos de los métodos de cifrado actuales podrían verse en apuros. Algoritmos como RSA y ECC, de los que dependemos hoy para firmar, no tendrán ninguna oportunidad contra una máquina cuántica lo suficientemente potente.
Por eso nuestra plataforma, CodeSign seguroYa está listo para soportar LMS (Leighton-Micali Signature), uno de los algoritmos poscuánticos recomendados por el NIST. LMS está diseñado para mantenerse robusto incluso si las computadoras cuánticas se convierten en una amenaza real.
Ya puedes empezar a probar nuestra plataforma con LMS para ver cómo la firma poscuántica se integra en tu flujo de trabajo. Funciona con HSM compatibles con LMS y se integra como cualquier otro algoritmo que CodeSign Secure maneja. No se necesitan trucos especiales.
De cara al futuro, seguiremos añadiendo compatibilidad con más algoritmos poscuánticos a medida que se finalicen los estándares, incluyendo los del concurso PQC del NIST. Así, cuando sea necesario el cambio a la firma cuántica segura, no tendrá que preocuparse; lo tenemos cubierto.
Características de grado empresarial
Al ejecutar la firma de código a gran escala, se necesita más que una simple firma. Se necesita control, visibilidad y flexibilidad para adaptarse al funcionamiento de su equipo.
- Control de acceso y auditoría basados en roles: No todos deberían poder firmar todas las imágenes. Con nuestro RBAC de CodeSign Secure, puede configurar permisos detallados para que solo sus ingenieros de lanzamiento puedan aprobar las compilaciones de producción, mientras que los desarrolladores tienen acceso a entornos de menor riesgo. Cada firma se registra automáticamente, lo que le proporciona un registro de auditoría completo de quién firmó qué, cuándo y con qué clave.
- Panel central para la visibilidad de la firma: Se acabaron los días de buscar registros en múltiples trabajos de CI. El panel de control de nuestra plataforma reúne todos tus eventos de firma en un solo lugar, mostrándote de un vistazo qué imágenes tienen firmas válidas, qué claves usaron y cualquier verificación fallida. Si algo parece extraño, lo detectarás de inmediato y podrás consultar los detalles.
- Arquitectura API-First para integraciones personalizadas: ¿Desea integrar nuestra plataforma con sus propias herramientas o automatizar un flujo de trabajo personalizado? Todas las funciones de CodeSign Secure se exponen mediante una API REST bien documentada, lo que le permite crear scripts prácticamente para activar un paso de firma y envío en su herramienta de CI personalizada, generar informes internos o integrarla con el sistema de tickets de seguridad que ya utiliza.
Con estas funciones empresariales, CodeSign Secure no solo firma sus imágenes, sino que también lo ayuda a administrar y monitorear cada paso del proceso.
Conclusión
Las amenazas a la cadena de suministro no van a desaparecer, e ignorarlas no es una opción. Pero el confinamiento no tiene por qué frenarlo. Con nuestro CodeSign seguroObtendrá una herramienta que se adapta perfectamente a su flujo de trabajo existente, agrega seguridad sólida donde importa y le permite tener el control desde la compilación hasta la implementación.
Desde la firma de imágenes de contenedores y SBOM hasta su verificación con claves respaldadas por HSM y la preparación para un futuro cuántico seguro, nuestra plataforma lo ayuda a cumplir con todos los requisitos, sin agregar fricción para su equipo.
Si está listo para tomar en serio la seguridad de los contenedores sin complicar sus flujos de trabajo, pruebe CodeSign Secure.
