Observatorio de seguridad de versiones · v0.7.2
Sepa qué dice realmente la postura de seguridad de su instancia Git.
VersionSec revisa una instancia Gitea o Forgejo que usted posee o está expresamente autorizado a evaluar. Solo lee; nunca cambia nada. La revisión de configuración y la del runner funcionan totalmente sin conexión, sin ninguna petición de red.
- solo lectura
- un objetivo autorizado
- determinista
- Gitea y Forgejo
- MD / JSON / SARIF
Apache-2.0 - sin cuenta, sin plano de control alojado, sin telemetría.
$ versionsec scan \
--url https://git.example.com \
--authorized --product gitea \
--format md,json,sarif
FG-VER PASS 1.27.3 confirmed
FG-CVE-27771 PASS fixed in this version
FG-ANON WARN anonymous API reachable
FG-REG PASS OCI root requires auth
FG-SIGNIN WARN repo browser is public
# 22 stable IDs · md + json + sarif written
- versión actual
- v0.7.2
- comprobaciones
- 22 ID estables
- pruebas
- 433 superadas
- procedencia
- atestación firmada
- licencia
- Apache-2.0
Preguntas de postura que suelen responderse de memoria
La mayoría de las instancias autoalojadas se configuran una vez y después se dan por seguras indefinidamente. VersionSec convierte cuatro preguntas recurrentes en evidencias que puede conservar, comparar y entregar a un auditor.
¿La versión en ejecución está realmente afectada?
La postura de versión se evalúa frente a avisos concretos; una versión desconocida se informa como desconocida, nunca en silencio como correcta.
¿Qué alcanza un visitante anónimo?
Se consulta un conjunto acotado de rutas permitidas, solo con GET, y se informa el estado exacto observado.
¿La configuración coincide con lo que creemos?
Una instantánea de configuración anonimizada se revisa totalmente sin conexión, sin tocar la instancia.
¿Qué puede hacer un job de CI al host?
Modo privilegiado, socket de Docker, montajes del host, modo de red y vida útil de las credenciales se evalúan desde una instantánea declarada.
Cuatro modos de revisión, un informe determinista
Cada modo produce la misma estructura de informe, para que los resultados sigan siendo comparables.
Evaluación en vivo
Un objetivo por ejecución, solo peticiones GET contra una lista cerrada de rutas. Sin escritura, sin cambio de estado, sin descubrir otros hosts.
- FG-VER
- FG-ANON
- FG-HTTP
- FG-REG
- FG-SIGNIN
Postura de versión frente a avisos
Avisos concretos evaluados frente a la versión confirmada por el operador: afectada, corregida o desconocida, dicho explícitamente.
- FG-CVE-27771
- FG-CVE-78433
- FG-FJ-TEMPLATE-20260910
Revisión de configuración sin conexión
Revisa una instantánea anonimizada que usted aporta. Cero peticiones de red, también válida donde no se permite un escaneo en vivo.
- FG-CONFIG-REGISTRATION
- FG-CONFIG-SIGNIN
- FG-CONFIG-PRIVACY
- FG-CONFIG-MFA
Revisión de runner de Actions sin conexión
Revisa una instantánea de runner declarada frente a un esquema cerrado. La severidad depende de la confianza declarada, no solo de la versión.
- FG-RUNNER-PRIVILEGED
- FG-RUNNER-DOCKER
- FG-RUNNER-VOLUMES
- FG-RUNNER-NETWORK
Versiones cualificadas, no soporte universal
Gitea y Forgejo tienen proveedores separados con sus propias comprobaciones. Estas son exactamente las versiones probadas, no una promesa para todas las versiones de ambas ramas.
Otras versiones suelen funcionar, pero no se presentan como verificadas.
Cómo transcurre una ejecución
Declarar el objetivo
Indica una instancia y su producto, y confirma que está autorizado a evaluarla.
Recogida acotada
Solo se consultan rutas permitidas, con GET. Los modos sin conexión leen un archivo y no envían nada.
Evaluación determinista
Cada comprobación devuelve PASS, FAIL, WARN, NOT_APPLICABLE o UNKNOWN. La falta de evidencia nunca es PASS.
Informe y exportación
Markdown para personas, JSON para pipelines, SARIF 2.1.0 para análisis de código. ID estables.
Evidencias y procedencia
Los artefactos publicados son los que construyó la CI. Su procedencia se verifica con un solo comando y una copia alterada se rechaza.
$ gh attestation verify \
versionsec-0.7.2-py3-none-any.whl \
--repo gexiro-global/versionsec
# wheel sha256
ea7d40357d808ed490113a62b6dae7fe
4af7e655b61c687c77689b4041828f5d
# sdist sha256
fcbacb335a17d43436c819507fdb968a
12ff0754644ea6ee7e0e73fc5221b79d
Procedencia de build firmada
Ambos artefactos llevan una atestación Sigstore generada por la CI del proyecto.
Hashes publicados
Los SHA-256 del wheel y del sdist acompañan a la versión y coinciden con los objetos atestados.
Pruebas del contrato de versión
Cada comando documentado se ejecuta como un subproceso real.
Identificadores estables
Los ID de hallazgos y de esquema no cambian entre versiones por motivos de marca.
Formatos de salida
Markdown
Informe legible con la tabla completa de hallazgos, para personas y para tickets.
JSON
Documento estable legible por máquina, con identificador de esquema versionado.
SARIF 2.1.0
Formato estándar de intercambio de análisis estático, para paneles y CI.
VersionSec antes se llamaba ForgeGuard
Las versiones hasta la 0.6.0 incluida se publicaron como ForgeGuard y siguen disponibles e inalteradas. Desde la 0.7.0 el nombre canónico es VersionSec.
Los usuarios existentes no pierden nada: el comando forgeguard y import forgeguard siguen funcionando a través de una capa de compatibilidad que apunta a la misma implementación, y FORGEGUARD_TOKEN se sigue leyendo.
Por qué se mantienen los identificadores FG-*
Los ID de hallazgos como FG-VER y de esquema como forgeguard.assessment.v1 son identidad de contrato, no marca. Renombrarlos rompería pipelines de informes, listas de excepciones y líneas base SARIF existentes.
Errata de 0.7.0
En 0.7.0 faltaba la opción de versión: versionsec --version terminaba con un error de opción desconocida. El escaneo y las revisiones no se veían afectados. 0.7.1 lo corrige y sustituye a 0.7.0.
Instalación
$ python -m pip install versionsec==0.7.2
$ versionsec --version
VersionSec 0.7.2
# existing ForgeGuard users
$ python -m pip install forgeguard==0.7.2
$ versionsec providers
$ versionsec checks
$ versionsec config review --snapshot snap.json
$ versionsec runner review --snapshot runner.json
Lo que VersionSec no hace
El uso se limita a una instancia que usted posee o está expresamente autorizado a evaluar. La base legal sigue siendo responsabilidad del operador.
Preguntas que realmente se hacen
¿Gitea y Forgejo están igual de soportados?
¿Hace falta acceso de red?
¿Hace falta un token de administrador?
¿Cambia algo en mi instancia?
¿Y si una comprobación no se puede evaluar?
¿Una versión fuera de la lista no está soportada?
Ya uso ForgeGuard. ¿Qué se rompe?
¿Qué licencia tiene?
Contacto
Sobre la herramienta, una integración o una revisión de endurecimiento acotada. Elija el tema.