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.

versionsecread-only
$ 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.

Provider
Versiones de servidor cualificadas
Versiones de runner cualificadas
Gitea
1.26.41.27.3
3.4.2gitea-runner
Forgejo
15.0.816.0.4
13.0.013.1.0forgejo-runner

Otras versiones suelen funcionar, pero no se presentan como verificadas.

Cómo transcurre una ejecución

1

Declarar el objetivo

Indica una instancia y su producto, y confirma que está autorizado a evaluarla.

2

Recogida acotada

Solo se consultan rutas permitidas, con GET. Los modos sin conexión leen un archivo y no envían nada.

3

Evaluación determinista

Cada comprobación devuelve PASS, FAIL, WARN, NOT_APPLICABLE o UNKNOWN. La falta de evidencia nunca es PASS.

4

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.

Verificar la descarga
$ 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.

Guía de migración

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

PyPI: Publicado en PyPI e instalable directamente. El puente de compatibilidad <code>forgeguard==0.7.2</code> instala la misma implementación para los usuarios existentes.
instalar desde pypi v0.7.2
$ 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
primera ejecución
$ 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.

Sin explotación de vulnerabilidades, sin payloads, sin peticiones que cambien el estado.
Sin descubrimiento de objetivos ni escaneo masivo: un objetivo declarado por ejecución.
Sin afirmar que una instancia no está comprometida ni determinar compromisos.
Sin ninguna certificación de seguridad o cumplimiento.

Preguntas que realmente se hacen

¿Gitea y Forgejo están igual de soportados?
Son proveedores separados, con comprobaciones y versiones cualificadas propias.
¿Hace falta acceso de red?
Para la evaluación en vivo sí, al único objetivo declarado. Las revisiones sin conexión no envían nada.
¿Hace falta un token de administrador?
No. La evaluación en vivo es anónima por diseño; el token es opcional.
¿Cambia algo en mi instancia?
No. Solo peticiones GET contra una lista cerrada de rutas.
¿Y si una comprobación no se puede evaluar?
Se informa como UNKNOWN o NOT_APPLICABLE. La falta de evidencia nunca es aprobado.
¿Una versión fuera de la lista no está soportada?
Suele funcionar, pero solo se prueban las versiones indicadas.
Ya uso ForgeGuard. ¿Qué se rompe?
Nada. Comando, import, variable de entorno y todos los ID FG-* siguen funcionando.
¿Qué licencia tiene?
Apache-2.0. Código, artefactos y suite de pruebas son públicos.

Contacto

Sobre la herramienta, una integración o una revisión de endurecimiento acotada. Elija el tema.

¿Informa de una vulnerabilidad en VersionSec? Use la política de seguridad del repositorio. Política de seguridad.