Nuevo filtro verifica bibliotecas antes de cargarlas y bloquea versiones que incumplen las políticas de seguridad de la empresa.

Una biblioteca npm peligrosa puede ejecutar código malicioso antes de que arranque la aplicación, por eso GitHub decidió verificar las dependencias antes de la descarga. El 20 de octubre la compañía presentó Package Firewall, que hace pasar las solicitudes al registro por las reglas de seguridad corporativas y bloquea las instalaciones que no pasan la comprobación. Por ahora el servicio está en vista previa pública.
El filtro se sitúa entre los equipos de los desarrolladores, los servidores de compilación, los agentes de IA y el registro público de npm. A través de él pasan las solicitudes de metadatos y las descargas de bibliotecas. Los administradores establecen la política a nivel empresarial, y las herramientas de desarrollo redirigen las peticiones desde el registro habitual a la dirección del firewall. Sin esa configuración el filtro no verifica las instalaciones.
Un mecanismo bloquea paquetes para los cuales la GitHub Advisory Database contiene advertencias vigentes sobre código malicioso. Otro no permite versiones con vulnerabilidades conocidas. El umbral de riesgo se configura desde el nivel crítico hasta incluir cualquier advertencia; por defecto la prohibición solo se aplica a las vulnerabilidades críticas. La comprobación de malware conocido está activada desde el inicio.
Una protección separada retrasa la instalación de versiones recién publicadas, para que los servicios de monitoreo tengan tiempo de detectar una sustitución. Por defecto GitHub mantiene una pausa de un día, pero el administrador puede ampliar el plazo hasta 365 días o desactivar el retraso. En la documentación GitHub describió comprobaciones adicionales de cambios peligrosos en las bibliotecas.
Package Firewall compara las versiones y detiene la descarga si han desaparecido las comprobaciones de origen SLSA que antes existían. Otra verificación detecta nuevos scripts preinstall y postinstall capaces de ejecutar comandos durante la instalación de la biblioteca. Ambas comprobaciones están activadas por defecto. Un indicador sospechoso no siempre significa infección, por lo que pueden producirse bloqueos falsos.
La razón del refuerzo de la protección la muestran los ataques a la cadena de suministro. En agosto el gusano Shai-Hulud afectó a 444 paquetes npm, que se descargaban alrededor de dos mil millones de veces al mes. El archivo infectado podía diferir del código fuente en el repositorio, y los scripts maliciosos buscaban credenciales. El nuevo filtro pretende reducir los riesgos en la etapa de obtención de dependencias, pero no garantiza detectar todas las amenazas.
El problema no afecta solo a bibliotecas claramente maliciosas. En octubre se descubrió la posibilidad de suplantación de paquetes mediante nombres antiguos de repositorios de GitHub, que potencialmente afectó a más de 1500 proyectos npm. Para explotarlo bastaba ocupar la dirección de repositorio liberada. No se han confirmado ataques reales con ese escenario, y la vulnerabilidad en el mecanismo de publicación ya fue corregida.
Package Firewall está disponible para los clientes de GitHub Enterprise Cloud, incluyendo organizaciones con almacenamiento regional de datos, y solo admite npm. Por ahora no se cobra; tras el lanzamiento completo GitHub planea tarificar el servicio según el uso real. En caso de un bloqueo erróneo, el desarrollador puede solicitar una excepción, y el administrador decide si permite el paquete.