Saltar al contenidoLockpick
Documentación

Escanea cada versión o despliegue desde tu CI

Ejecuta un escaneo Pulse o Deep de tu sitio cada vez que publiques o despliegues, desde GitHub Actions, Vercel, GitLab, Bitbucket, CircleCI o un script de despliegue.

Esta página es para quien compila y publica tu sitio. Si no eres tú, envíale el enlace.

Un escaneo de versión se ejecuta donde se publica tu sitio. Inicia un escaneo Pulse (o Deep) de tu sitio, espera el resultado, lo informa y detiene la publicación cuando el escaneo encuentra algo con la gravedad que elijas o superior. Tu sitio activo sigue funcionando de todos modos. Cada escaneo de versión usa un escaneo de tu cupo mensual, con los mismos límites y comprobaciones de propiedad que un escaneo que inicias en Lockpick, así que cuenta con qué frecuencia publicas.

Configurarlo

  1. Abre tu sitio en Lockpick, elige Ajustes y después Configurar escaneos de versión.
  2. Crea una clave de CI. Cópiala de inmediato: Lockpick la muestra una sola vez.
  3. Guárdala en los secretos de tu CI como LOCKPICK_CI_KEY.
  4. Abre la configuración del lugar desde donde se publica tu sitio, en la página Escaneos de versión, y cópiala en tu repositorio. Ya tiene tu sitio rellenado.

Dónde se ejecuta

Desde dónde publicasCuándo escaneaDónde va la clave
GitHub ActionsAl publicar una versión, o a manoSecreto del repositorio LOCKPICK_CI_KEY
VercelTras cada despliegue de producción, o a manoSecreto del repositorio LOCKPICK_CI_KEY
GitLab CIPara etiquetas, tras tus otras etapas, o a manoVariable CI/CD enmascarada LOCKPICK_CI_KEY
Bitbucket PipelinesPara etiquetas de versión, o a manoVariable de repositorio protegida LOCKPICK_CI_KEY
CircleCIPara etiquetas de versiónVariable de entorno del proyecto LOCKPICK_CI_KEY
Fly.io, Railway, Render, cualquieraAl final del script de despliegue o del trabajo de CIVariable de entorno LOCKPICK_CI_KEY desde tus secretos

GitHub Actions

Copia la acción en .github/actions/lockpick-scan/ con los dos comandos de la página Escaneos de versión, y después añade el flujo de trabajo. Publica una versión, o ejecuta el flujo desde la pestaña Actions, y el escaneo empieza. El resumen del trabajo muestra el resultado.

Vercel

Cuando tu proyecto de Vercel está conectado a un repositorio de GitHub, Vercel informa a GitHub de cada despliegue. El flujo de trabajo de Vercel escucha esos eventos y escanea tras cada despliegue de producción, nunca de vistas previas. También necesita que la acción esté copiada en el repositorio, y Vercel solo envía estos eventos a los flujos de trabajo de tu rama predeterminada.

Cada despliegue de producción usa un escaneo de tu cupo, así que elige esto solo si despliegas a producción unas pocas veces al mes. Si no, escanea en las versiones.

GitLab, Bitbucket, CircleCI y scripts de despliegue

Estos ejecutan el mismo script de escaneo con Node 20 o superior. La configuración descarga el script desde Lockpick y define LOCKPICK_SITE_ID, LOCKPICK_SCAN, LOCKPICK_FAIL_ON y LOCKPICK_API_URL; la clave viene de LOCKPICK_CI_KEY. El script imprime el resumen en el registro del trabajo y termina con 1 cuando el escaneo falla, así que tu canalización se detiene ahí. Este es el contrato del script independiente; la CLI usa el código de salida 8 para un umbral de hallazgos. Consulta la tabla de comparación.

Fly.io no tiene notificaciones de despliegue, y los despliegues de Railway y Render suelen ejecutarse desde un trabajo de CI o un script, así que añade el script después de tu comando de despliegue (por ejemplo fly deploy o railway up).

Si ya usas la CLI de Lockpick, lockpick pulse <site> --fail-on high también funciona con una clave de CI, con la clave en LOCKPICK_KEY. Solo ejecuta Pulse.

Qué puede hacer una clave de CI

Una clave de CI funciona para un solo sitio. Puede iniciar un Pulse, iniciar un escaneo Deep si lo permitiste y leer esos escaneos. No puede ver tus otros sitios, añadir sitios ni cambiar nada en Lockpick.

Una clave de CI caduca en la fecha que elijas al crearla (30, 90, 180 o 365 días), se use o no. La página Escaneos de versión muestra cuándo se usó por última vez cada clave y cuándo caduca. Revoca una clave allí y todas las canalizaciones que la usan se detienen de inmediato. Una clave también deja de funcionar si la persona que la creó pierde el acceso al sitio.

Escaneos Deep desde una versión

Marca Deep también al crear la clave para usar Deep en CI, y después marca Apruebo los escaneos Deep de tu sitio iniciados con esta clave. Marcarlo es tu aprobación de los escaneos Deep de ese sitio iniciados con esa clave, así que CI nunca espera a que apruebes cada uno. Cada escaneo Deep sigue necesitando:

Después define scan: deep en el flujo de trabajo de GitHub (o elige deep cuando lo ejecutes a mano), o LOCKPICK_SCAN=deep en cualquier otro lugar.

Cuando el trabajo falla

El trabajo falla cuando:

  • los hallazgos abiertos están en o por encima de fail-on (high por defecto; elige critical, medium, low o none);
  • el escaneo falló, se canceló o seguía en curso al terminar el tiempo límite (el escaneo sigue ejecutándose en Lockpick);
  • Lockpick no pudo iniciar el escaneo, por ejemplo cuando no quedan escaneos este mes, Deep no está permitido, la propiedad no está demostrada o la clave caducó. El trabajo indica el motivo y qué hacer.

El resumen muestra la nota, los hallazgos abiertos por gravedad y un enlace al escaneo, donde cada hallazgo tiene su corrección. Nunca copia los detalles de los hallazgos en tus registros. Un escaneo que no pudo revisarlo todo se juzga por lo que vio, y el resumen indica que algunas áreas son desconocidas.

Volver a ejecutar la misma canalización reutiliza su escaneo en lugar de iniciar otro. Eso funciona en GitHub Actions, GitLab CI, Bitbucket Pipelines y CircleCI; un despliegue de Vercel se escanea una vez, sin importar cuántas veces llegue su evento.

Un escaneo de versión que pasa no es una certificación de seguridad. La cobertura que Lockpick no pudo evaluar es desconocida, no aprobada.

¿Te ha sido útil?

En esta página