Ir al contenido

Próximamente estarán disponibles los certificados de 47 días. ¿Todo listo?

Actúa ahora →

¿Cómo integrar la canalización CI/CD de GitLab con CodeSigning?

automatización de tuberías

GitLab es un gestor de repositorios Git basado en la web que ofrece gestión de código fuente, automatización de pipelines de integración/desarrollo continuo (CI/CD) y otras funciones para el desarrollo de software. Es una plataforma DevOps integral que permite a los expertos llevar a cabo todo el trabajo del proyecto, desde la planificación y la gestión del código fuente hasta la supervisión y la seguridad.

Como resultado, los equipos pueden colaborar y crear mejor software. GitLab ofrece capacidades integrales de DevOps en cada etapa del ciclo de vida del desarrollo de software. Sus capacidades de integración continua (CI) automatizan la creación y prueba de código para los equipos de desarrollo. La plataforma también incluye funciones de seguridad que proporcionan resultados de análisis dentro del flujo de trabajo/canalización de CI nativo, y un panel de control que ayuda a los profesionales de seguridad a gestionar vulnerabilidades.

Codiseño

Firma de código Es un procedimiento que verifica la legitimidad del autor, así como la originalidad y autenticidad de la información digital, en particular del código de software. También garantiza que la información no sea código malicioso. Además, garantiza que esta información no haya sido alterada, falsificada ni cancelada después de su publicación. firmado digitalmenteLa firma digital se crea mediante una clave privada que solo está disponible para el editor del software. Al descargar e instalar el software, se compara la firma digital con la clave pública para confirmar su coincidencia y que el software no ha sido modificado. La firma de código es importante para garantizar la seguridad de las aplicaciones de software, ya que ayuda a prevenir la distribución de malware y otro software malicioso.

Consultoría de cifrado tiene una solución de firma de código, “CodeSign seguro”, que puede ayudarle a almacenar las claves a prueba de manipulaciones y a tener visibilidad y control totales de las actividades de firma de código. Las claves privadas del certificado de firma de código se pueden almacenar en un HSM para eliminar los riesgos asociados con claves robadas, corruptas o mal utilizadas.

Integración de GitLab con CodeSigning

Para empezar, necesitará una cuenta de GitLab y un runner, donde tenga instalados y configurados signtool y ECSigning KSP. A continuación, se detallan los prerrequisitos:

  1. Ejecutor autoalojado con ECSigning KSP y Signtool instalados y configurados. Este ejecutor debe tener privilegios de administrador.
  2. Una cuenta de GitLab.

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Para configurar ECSigningKSP y Signtool, siga los siguientes pasos:

Descargar Windows SDK: (desarrollador.microsoft.com/es-es/windows/downloads/windows-10-sdk/)

Puede elegir instalar solo las herramientas de firma del SDK de Windows para aplicaciones de escritorio.

Abra el archivo winsdksetup.exe. Recuerde la ruta predeterminada que se muestra en la ruta de instalación, ya que será útil para ejecutar estos comandos desde el símbolo del sistema.

Inicio del SDK de Windows

En la página de Privacidad de Windows Kits, cualquiera de las opciones para permitir que Microsoft recopile información es válida. Haga clic en Siguiente.

Privacidad del SDK de Windows

Acepta el acuerdo de licencia

Acuerdo de licencia del SDK de Windows, página 681cf368741e8

Deseleccione todas las funciones excepto Herramientas de firma del SDK de Windows para aplicaciones de escritorio Luego seleccione instalar.

función del SDK de Windows

Cuando se le pregunte si desea permitir que esta aplicación realice cambios, seleccione Sí.

Control de cuentas de usuario de Windows
SDK de Windows final

Haga clic en la barra de búsqueda de Windows en la barra de tareas y escriba “Editar las variables de entorno del sistema” y seleccione la opción del panel de control del mismo nombre.

editar la variable de entorno del sistema

Haga clic en Variables de entorno.

variables ambientales modales

Antes de editar la lista de variables, navegue hasta donde está instalado el SDK de Windows para usar el explorador de archivos, debe copiar la ruta de la carpeta que contiene la aplicación signtool, la ruta predeterminada es C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Consulta la siguiente captura de pantalla. Asegúrate de hacer clic derecho y copiar la ruta como se muestra. También puedes ver la aplicación signtool al final de la lista de archivos; este es el comando que ejecutarás.

Ruta de instalación de signtool

En la lista de Variables del Sistema, haga clic en Nuevo. Escriba Ruta como nombre de la variable y copie y pegue la ruta mencionada. Haga clic en OK en el entorno empresarial las variables ventana y te propiedades ventana.

añadir nueva variable del sistema

Para probar la instalación, abra el símbolo del sistema y escriba signtool; el resultado debería ser como se muestra a continuación.

Símbolo del sistema de signtool

La ubicación de instalación predeterminada de signtool es, por ejemplo: C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Para configurar KSP siga los pasos a continuación:

Si está utilizando nuestra solución, puede descargar el KSP siguiendo los pasos a continuación:

  • Registrarse en Código de firma seguro.
  • Navegar a: Repositorio de herramientas de firma.

    Página de herramientas de firma segura de Codesign
  • Descargar “Consultoría de cifrado CNG-SigningKSP”
  • Instale las herramientas de cliente con el instalador .MSI. Este automatiza gran parte de la configuración. Vaya a la ubicación donde se guardó el archivo descargado e inicie el instalador.

    Ejecutar el instalador .msi 681cf96b947ce
  • Haga clic en Siguiente cuando aparezca el asistente de instalación.

    Configuración de KSP para firma EC en casa
  • Haga clic en Siguiente.

    Instalación de la carpeta de configuración de KSP con firma EC
  • En la sección Nombre de usuario campo, tipo admin.
  • En la sección Código campo, copie el código del Repositorio de API de Postmanimportantes. Haz clic en el icono de información del Obtener token de inicio de sesión api y copie el código de la Cuerpo

    Descargue PostMan desde este este enlaceUna vez descargada, haga clic en el botón "Omitir" en la parte inferior de la ventana. En el panel, agregue una nueva colección usando el botón "+" junto a "Colecciones".

    API de GetLoginToken (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Esta es la API más importante, ya que le proporciona una Token de portador Para usar con el resto de las API, el contenido del cuerpo se muestra a continuación. El código sirve como contraseña para obtener el token de portador, el campo de usuario es el nombre de usuario y el campo de tipo de identidad especifica el tipo de usuario. Haga clic en Enviar Para generar una salida que incluya el token de portador en la parte inferior. Copiar este token para su uso.

    API de token de portador de cartero
  • Cambie la Identidad Tipo a 1.
  • Abandonar URL base de la API lo mismo.
  • Haga clic en Siguiente.

    Información de autenticación de usuario de configuración de KSP de firma EC
  • Haga clic en Siguiente.

    Confirmación de la instalación y configuración de KSP con firma EC
  • Luego se le notificará que este programa realizará cambios en su PC, haga clic en Sí.

    Control de cuentas de usuario de configuración de MSI
  • La instalación ya está completa.

    Instalación y configuración de KSP con firma EC completa

Por favor, siga los pasos a continuación:

  • Crea una cuenta de GitLab. Ve a la sección "Crear un nuevo proyecto en blanco".
  • Desplázate hasta Configuración -> CI/CD y busca Ejecutor. Expande la opción.

    Ejecutor de laboratorio Git
  • Haga clic en el nuevo ejecutor del proyecto.

    Nuevo Project Runner
  • Haz clic en la plataforma que prefieras y asigna una etiqueta al corredor. Indica el tiempo de espera y haz clic en "Crear corredor".

    Selección de plataforma para crear un corredor
  • Copia el token que se muestra; lo necesitaremos para registrar el ejecutor. Ahora, primero instalaremos el ejecutor de Gitlab en nuestro dispositivo.
  • Instale GitLab Runner en su dispositivo usando el este enlaceEste enlace es para Windows. Puedes verlo aquí. este enlace para ver los pasos para instalarlo en su dispositivo específico.
  • Puede seguir el documentación para configurar su corredor y registrarlo según su dispositivo.

Para registrar un corredor en Windows, ejecute el siguiente comando:

  1. .\gitlab-runner.exe registro
  2. Introduce la URL de tu instancia de GitLab (también conocida como la URL del coordinador de gitlab-ci). Ejemplo: https://gitlab.com
  3. Introduce el token que obtuviste para registrar el ejecutor. Puedes acceder a él desde Ajustes -> CI/CD -> Expandir -> Ejecutores de proyectos. En Ejecutores de proyectos encontrarás el token.
  4. Introduce una descripción para el ejecutor. Puedes cambiar este valor más adelante en la interfaz de usuario de GitLab. Ejemplo: Dispositivo
  5. Introduce las etiquetas asociadas al ejecutor, separadas por comas. Puedes cambiar este valor más adelante en la interfaz de usuario de GitLab. Ejemplo: WindowsRunner
  6. Ingrese cualquier nota de mantenimiento opcional para el corredor.
  7. Proporcionar el ejecutor del corredor. Estamos operando esto en Shell.

Una vez instalado y configurado el runner, dirígete a los servicios de tu dispositivo, desplázate hasta GitLab Runner y configura tu inicio de sesión como administrador. Introduce aquí la contraseña de administrador.

Servicios de ventana modal de Gitlab

Una vez hecho esto, ve a tu proyecto. Quizás tengas que cambiar el nombre del archivo .ym a .gitlab-ci.yml. Ejecuta el siguiente script para realizar el diseño de código.

 job1: tags: - WindowsRunner //La etiqueta que proporcionó al configurar el script del ejecutor: - signtool sign /csp "Proveedor de almacenamiento de claves de consultoría de cifrado" /kc evcodesigning /fd SHA256 /f "C:\Users\Administrator\Desktop\ForTesting\evcodesigning.pem" /tr http://timestamp.digicert.com /td SHA256 "C:\Users\Administrator\Desktop\ForTesting\AgentService.exe"

Si hace clic en CI/CD -> trabajos, verá que se firmó correctamente.

trabajos de gitlab

Necesitarás modificar el comando según tus variables.

  • kc evcodesigning: reemplace evcodesiging con el nombre de su clave
  • f “C:\Users\Administrator\Desktop\ForTesting\evcodesigning.pem”: reemplaza la ubicación con la ubicación de tu archivo .pem para codificar. Puedes obtener esto usando SigningKSP. Desde el símbolo del sistema, accede al directorio que contiene SigningKSP. Usa el comando ECGetCert.ece para obtener el archivo pem de su certificado. 
  • tr http://timestamp.digicert.com: servidor de sellado de tiempo
  • td SHA256 “C:\Users\Administrator\Desktop\ForTesting\AgentService.exe”: ubicación del archivo que desea firmar.

Conclusión

El artículo anterior muestra el proceso de integración de su pipeline de CI/CD de GitLab con el diseño de código. Es un proceso muy sencillo, ya que solo necesita configurar un ejecutor, conectarlo con una cuenta de GitLab y compilar el pipeline para ejecutar el trabajo. El diseño de código es crucial hoy en día, ya que el software y los archivos maliciosos siguen creciendo. Puede contactarnos en [email protected] Para cualquier ayuda con respecto a nuestra solución de firma de código.