Sobre el proyecto

Fence es una GitHub Action destinada a reducir el acceso de red no deseado y debilitar rutas de escape comunes en trabajos de flujo de trabajo de Linux alojados en GitHub. El proyecto se describe como temprano y en desarrollo activo. Los entornos compatibles son runners x64 alojados en GitHub que usan ubuntu-24.04 o ubuntu-latest. Cuando se coloca como el primer paso del trabajo, Fence permite las conexiones requeridas por GitHub Actions y el runner alojado, además de los destinos configurados explícitamente en su lista de permitidos, mientras bloquea otras conexiones salientes. También desactiva por defecto sudo sin contraseña y el acceso a Docker o contenedores. Las protecciones permanecen activas hasta que finaliza el trabajo, y el trabajo puede fallar si Fence detecta cambios inesperados en sus controles. La lista de permitidos admite nombres de host, direcciones IPv6, puertos TCP y UDP personalizados, rangos CIDR y comodines de nombre de host de uno o dos niveles. Los nombres de host sin esquema usan por defecto el puerto TCP 443, y una lista de permitidos puede contener hasta 64 entradas únicas. El modo auditoría registra lo que Fence bloquearía sin aplicar restricciones de red, sudo o Docker, lo que ayuda a los usuarios a derivar una lista de permitidos antes de cambiar al modo de bloqueo. Las opciones configurables incluyen allow_github_artifacts para acceso limitado a los endpoints de almacenamiento usados por los artefactos de Actions, GitHub Pages y las cachés, y container_policy: unsafe_preserve para trabajos que requieren Docker. La documentación advierte que ambas opciones pueden aumentar el riesgo de exfiltración de datos o de aislamiento. Fence también escribe tablas de actividad de red en el resumen del trabajo y en el registro posterior al trabajo, incluida una línea FENCE_REPORT_JSON legible por máquina disponible a través de la API de registros de trabajos de GitHub. Fence no se presenta como un sandbox completo. Las conexiones requeridas de GitHub y Azure permanecen disponibles, el Servicio de Metadatos de Instancia de Azure sigue siendo accesible y el acceso a Azure WireServer está limitado a procesos de host propiedad de root. La guía de seguridad recomienda fijar la Action a un SHA de commit completo de una versión publicada en lugar de usar main. Fence se publica bajo la Licencia MIT.