Si buscas maneras de reducir el riesgo de paquetes #NPM comprometidos, aquí
tienes una
publicación útil de Hacker News. Contiene algunos pasos prácticos para reforzar tu configuración:
-
Usar PNPM.
Es más rápido, ocupa menos espacio y bloquea los scripts post-instalación por
defecto. La mayoría son inútiles o sospechosos. -
Configurar minimumReleaseAge para retrasar la actualización de
paquetes. En ataques recientes, ese retraso habría sido suficiente para
evitar la descarga de versiones maliciosas. -
En Linux, envuelve tu gestor de paquetes en «plástico de burbujas». Evita
que la basura toque archivos sensibles. -
No hay que comprar herramientas. No hay que reconstruir pipelines.
Solo pequeños cambios que ayudan.
Aquí tienes un breve resumen de lo que puedes hacer ahora mismo, ya que
cambiar el ecosistema llevará años, incluso si nos molestamos en intentarlo.
1. Utilizar
pnpm:
no solo es más rápido y eficiente en cuanto al espacio, sino que también
deshabilita los scripts posteriores a la instalación por defecto. Muy
pocos paquetes los necesitan para funcionar; la mayoría lo usa para spam y
análisis. Al instalar paquetes en el proyecto por primera vez, te indica qué
scripts posteriores a la instalación se omitieron y cómo incluir en la
lista blanca solo los que necesitas. En la mayoría de los proyectos, no
habilito ninguno y todo funciona correctamente. Los peores proyectos requerían
permitir dos scripts, de unas dos docenas.
Introducir «retrasos» en las nuevas versiones al actualizar los paquetes con
minimunRelease. Combinado con "pnpm audit"
, puede reemplazar la sugerencia de
configurar un bot de revisión de dependencias, y sin depender de servicios
adicionales, comerciales o no.
2. Si utilizas Linux,
envuelve tus gestores de paquetes en Bubblewrap, un entorno de pruebas ligero que bloquea el acceso a casi todo el sistema, incluyendo archivos sensibles, e impedirá que
cualquier aplicación que se ejecute bajo él escale privilegios.
Flatpak y
Steam lo utilizan.
Bubblewrap permite aislar npm/pnpm/yarn (o cualquier otro) del resto
del sistema. Alguien publicó un
script que usa bubblewrap en Linux para ejecutar
herramientas como NPM
de forma más segura al limitar el acceso al sistema de archivos.
3. Configurar
Renovate o un bot similar para introducir retrasos artificiales en la cadena de
suministro, pero también para acelerar la solución de vulnerabilidades
conocidas públicamente. Se debe configurar algo para rastrear las
dependencias… porque lo olvidarás y tarde o temprano serán vulnerables.
4. Para quienes son realmente paranoicos o trabajan con objetivos muy
«atractivos», siempre pueden guardar su trabajo en una máquina virtual,
manteniendo los secretos fuera de ella, quizás con una máquina virtual por
proyecto.
Fuente:
Hacker News