
Detecta y remedia configuraciones incorrectas y riesgos de seguridad en todos tus activos de GitHub y GitLab
¡Fortalece la postura de seguridad de tu gestión de código fuente!
Detecta y corrige configuraciones incorrectas, problemas de seguridad y cumplimiento en todos tus activos de GitHub y GitLab con facilidad 🔥
por Legit Security.
Legit Security es una solución de gestión de la postura de seguridad de aplicaciones (ASPM) y seguridad de la cadena de suministro de software.
Para más información, consulta la tabla comparativa.
La instalación es posible de varias maneras:
brew install legitify
Puedes descargar la última versión de legitify desde https://github.com/Legit-Labs/legitify/releases, cada archivo contiene:
Desde el código fuente con los siguientes pasos:
git clone [email protected]:Legit-Labs/legitify.git
go run main.go analyze ...
gh extension install legit-labs/gh-legitify
gh legitify
Puedes ejecutar legitify como parte de un proceso de CI con las Acciones Personalizadas de GitHub de legitify:
name: Legitify Analyze
on:
workflow_dispatch:
schedule:
- cron: '0 11 * * 1-5'
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Legitify Action
uses: Legit-Labs/legitify@main
with:
github_token: ${{ secrets.PAT_FOR_LEGITIFY }}
ignore-policies: |
non_admins_can_create_public_repositories
requires_status_checks
Consulta el archivo de acción para parámetros y configuración adicionales.
Para mejorar la seguridad de la cadena de suministro de software de los usuarios de legitify, a partir de v0.1.6, cada versión de legitify contiene un documento de Procedencia SLSA Nivel 3.
El documento de procedencia hace referencia a todos los artefactos en la versión, así como a la imagen de Docker generada.
Puedes usar el verificador oficial del framework SLSA para verificar la procedencia.
Ejemplo de uso para la arquitectura darwin_arm64 para la versión v0.1.6:
VERSION=0.1.6
ARCH=darwin_arm64
./slsa-verifier verify-artifact --source-branch main --builder-id 'https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.2.2' --source-uri "git+https://github.com/Legit-Labs/legitify" --provenance-path multiple.intoto.jsonl ./legitify_${VERSION}_${ARCH}.tar.gz
SCM_TOKEN=<tu_token> legitify analyze
Por defecto, legitify verificará las políticas contra todos tus recursos (organizaciones, repositorios, miembros, acciones). Los repositorios archivados se omiten.
Puedes controlar qué recursos se analizarán con las banderas de línea de comandos namespace y org:
--namespace (-n): analizará las políticas relacionadas con los recursos especificados--org: limitará el análisis a las organizaciones de GitHub o grupos de GitLab especificados, excluyendo repositorios archivados--repo: limitará el análisis a los repositorios de GitHub o proyectos de GitLab especificados--scm: especifica la plataforma de gestión de código fuente. Los valores posibles son: github o gitlab. El valor predeterminado es github. Ten en cuenta: al ejecutar en GitLab, se requiere --scm gitlab.--enterprise: especificará qué empresas deben analizarse. Ten en cuenta: para analizar una empresa, se debe proporcionar un slug de empresa.SCM_TOKEN=<tu_token> legitify analyze --org org1,org2 --namespace organization,member
El comando anterior evaluará las políticas de organización y miembros contra org1 y org2.
SCM_TOKEN=<tu_token> OPENAI_TOKEN=<token> ./legitify gpt-analysis --repo org1/repo1 --org org1
Análisis basado en GPT-3 de la postura de seguridad del repositorio u organización proporcionada.
NOTA: Los metadatos del repositorio/organización se envían a los servidores de OpenAI.
Banderas:
--org: limitará el análisis a las organizaciones de GitHub o grupos de GitLab especificados--repo: limitará el análisis a los repositorios de GitHub o proyectos de GitLab especificados--scm: especifica la plataforma de gestión de código fuente. Los valores posibles son: github o gitlab. El valor predeterminado es github.--token: token para el SCM (o establece la variable de entorno SCM_TOKEN)--openai-token: token para la API de OpenAI (o establece la variable de entorno OPENAI_TOKEN)Debe proporcionar --org o --repo o ambos.
Generación del token de OpenAI:
También puedes ejecutar legitify como una acción de GitHub en tus flujos de trabajo; consulta el directorio action_examples para ejemplos concretos.
-t) o como variable de entorno (SCM_TOKEN).
El PAT necesita los siguientes ámbitos para un análisis completo:admin:org, read:enterprise, admin:org_hook, read:org, repo, read:repo_hook
Consulta Creación de un token de acceso personal para más información.
Actualmente no se admiten tokens de acceso personal de grano fino.
Puedes ejecutar legitify contra una instancia de GitHub Enterprise Server si estableces la URL del endpoint en la variable de entorno SERVER_URL:
export SERVER_URL="https://github.example.com/"
SCM_TOKEN=<tu_token> legitify analyze --org org1,org2 --namespace organization,member
-t) o como variable de entorno (SCM_TOKEN).
El PAT necesita los siguientes ámbitos para un análisis completo:
read_api, read_user, read_repository, read_registry
Consulta Creación de un token de acceso personal para más información.--scm gitlab; para ejecutarlo contra GitLab Server, también debes proporcionar un SERVER_URL:export SERVER_URL="https://gitlab.example.com/"
SCM_TOKEN=<tu_token> legitify analyze --namespace organization --scm gitlab
NOTA 1: Para ignorar un certificado de servidor no válido, pasa la bandera
ignore-invalid-certificate
NOTA 2: Para cuentas de GitLab no premium, algunas políticas (como las de protección de ramas) se omitirán
Los espacios de nombres en legitify son recursos que se recopilan y se ejecutan contra las políticas. Actualmente, se admiten los siguientes espacios de nombres:
organization - políticas a nivel de organización de GitHub (o grupo de GitLab) (ej., "La autenticación de dos factores no está aplicada para la organización")actions - políticas de acciones de GitHub de la organización (ej., "Las ejecuciones de GitHub Actions no están limitadas a acciones verificadas")member - políticas a nivel de colaborador (ej., "Se encontró un administrador inactivo")repository - políticas a nivel de repositorio de GitHub (o proyecto de GitLab) (ej., "La revisión de código por al menos dos revisores no está aplicada"). Nota: Los repositorios archivados se ignoran a menos que se especifiquen directamente mediante el argumento --repo.runner_group - políticas de grupos de ejecutores (ej., "el ejecutor puede ser utilizado por repositorios públicos")Por defecto, legitify analizará todos los espacios de nombres. Puedes limitar solo a los seleccionados con la bandera --namespace, seguida de una lista separada por comas de los espacios de nombres seleccionados.
Por defecto, legitify mostrará los resultados en un formato legible para humanos. Esto incluye la lista de violaciones de políticas ordenadas por gravedad, así como una tabla de resumen ordenada por espacio de nombres.
Usando la bandera --output-format (-f), legitify admite la salida de resultados en los siguientes formatos:
human-readable - Texto legible para humanos (predeterminado).json - JSON estándar.sarif - Formato SARIF (info).Usando la bandera --output-scheme, legitify admite la salida de resultados en diferentes esquemas de agrupación.
Nota: Se debe especificar --output-format=json para generar esquemas no predeterminados.
flattened - Sin agrupación; una lista plana de las políticas, cada una con sus violaciones (predeterminado).group-by-namespace - Agrupa las políticas por su espacio de nombres.group-by-resource - Agrupa las políticas por su recurso, ej., organización/repositorio específico.group-by-severity - Agrupa las políticas por su gravedad.--output-file - ruta completa del archivo de salida (predeterminado: sin archivo de salida, imprime en stdout).--error-file - ruta completa de los registros de errores (predeterminado: ./error.log).Al generar en formato legible para humanos, legitify admite la bandera convencional --color[=when], que tiene las siguientes opciones:
auto - salida coloreada si stdout es una terminal, sin color en caso contrario (predeterminado).always - salida coloreada independientemente del destino de salida.none - salida sin color independientemente del destino de salida.--failed-only para filtrar las verificaciones pasadas/omitidas del resultado.--ignore-policies-path $RUTA y proporciona un archivo con las políticas que deseas ignorar para saltar políticas específicas.
Una política por línea, ej.
no_conversation_resolution requires_status_checks ─╯Scorecard es un proyecto de código abierto de OSSF:
Scorecards es una herramienta automatizada que evalúa una serie de heurísticas importantes ("verificaciones") asociadas con la seguridad del software y asigna a cada verificación una puntuación de 0 a 10. Puedes usar estas puntuaciones para comprender áreas específicas a mejorar para fortalecer la postura de seguridad de tu proyecto. También puedes evaluar los riesgos que introducen las dependencias y tomar decisiones informadas sobre aceptar estos riesgos, evaluar soluciones alternativas o trabajar con los mantenedores para realizar mejoras.
legitify admite la ejecución de scorecard para todos los repositorios de la organización, aplicando políticas de puntuación y mostrando los resultados mediante la bandera --scorecard:
no - no ejecutar scorecard (predeterminado).yes - ejecutar scorecard y aplicar una política que alerta sobre cada repositorio con puntuación por debajo de 7.0.verbose - ejecutar scorecard, aplicar una política que alerta sobre cada repositorio con puntuación por debajo de 7.0 e incrustar su salida en la salida de legitify.legitify ejecuta las siguientes verificaciones de scorecard:
legitify viene con un conjunto de políticas para cada SCM en el directorio policies/.
Estas políticas están documentadas aquí.
¡Gracias por considerar contribuir a Legitify! Fomentamos y apreciamos cualquier tipo de contribución. Aquí tienes algunos recursos para ayudarte a empezar:
Si tienes preguntas sobre legitify o necesitas ayuda con su funcionamiento, no dudes en contactarnos. Nuestro equipo está comprometido a brindar apoyo y garantizar una experiencia fluida.
¡Si te gustó Legitify, te encantará la Plataforma Legit Security!
A continuación se muestra una comparación de características entre Legitify y Legit:
Para conocer Legit, visita nuestro sitio web o reserva una demostración directamente
| Verificación | Repositorio público | Repositorio privado |
|---|
| Security-Policy | V | |
| CII-Best-Practices | V | |
| Fuzzing | V | |
| License | V | |
| Signed-Releases | V | |
| Branch-Protection | V | V |
| Code-Review | V | V |
| Contributors | V | V |
| Dangerous-Workflow | V | V |
| Dependency-Update-Tool | V | V |
| Maintained | V | V |
| Pinned-Dependencies | V | V |
| SAST | V | V |
| Token-Permissions | V | V |
| Vulnerabilities | V | V |
| Webhooks | V | V |
| Capacidad | Legitify | Plataforma Legit Security |
|---|
| Plataformas compatibles | GitHub GitLab | TODOS los principales SCM (incl. Azure DevOps, Bitbucket y más) Sistemas de CI/CD (ej., Jenkins) Registros de paquetes (ej., JFrog Artifactory) Proveedores de nube (ej., AWS) |
| Detección de riesgos | Solo configuraciones incorrectas de SCM | Configuraciones incorrectas de SCM Configuraciones incorrectas de CI Configuraciones incorrectas de CD Configuraciones incorrectas de registros de paquetes Riesgos de pipeline Secretos IaC Incidentes de seguridad Y más... |
| Informe de cumplimiento | Mejores prácticas de SCM de OSSF | SSDF SLSA SOC2 ISO 27001 FedRAMP Y más... |
| Detección de desviaciones de políticas | Se puede detectar periódicamente mediante la Acción de GitHub de Legitify | Recibe alertas en tiempo real cuando se introduce una configuración incorrecta |
| Gestión de activos SDLC | - | Sí |
| Gestión de incidencias y políticas | - | Sí |
| Contexto de código a nube | - | Sí (información contextualizada permite una priorización más inteligente) |
| Espacios de trabajo y grupos de productos | - | Sí |
| Emisión de tickets y alertas | - | Jira, Slack y más |
| Ingestión de riesgos | - | APIs de importación e integraciones con SAST, SCA y otras soluciones de prueba |
| APIs REST | - | Sí |