Medidas para mejorar la seguridad en el uso de paquetes NPM
Medidas para mejorar la seguridad en el uso de paquetes NPM

Medidas para mejorar la seguridad en el uso de paquetes NPM

El manejo de dependencias mediante paquetes NPM puede presentar riesgos de seguridad, especialmente si se utilizan versiones inseguras o maliciosas. Para reducir estos peligros, existen varias estrategias que pueden implementarse sin alterar significativamente el ecosistema actual.

Utilizar pnpm

El uso de pnpm puede mejorar la seguridad y eficiencia en la gestión de dependencias. Este gestor es más rápido, ocupa menos espacio y bloquea los scripts post-instalación por defecto. La mayoría de estos scripts son inútiles o sospechosos. Al instalar paquetes en el proyecto por primera vez, pnpm indica qué scripts posteriores a la instalación se omitieron y cómo incluir solo aquellos que sean necesarios.

Además, se puede introducir un retraso en las nuevas versiones al actualizar los paquetes mediante la configuración de minimumReleaseAge. Combinado con el comando pnpm audit, este método puede reemplazar la necesidad de configurar un bot de revisión de dependencias, sin depender de servicios adicionales.

Aislar los gestores de paquetes en Linux

En sistemas Linux, se recomienda aislar los gestores de paquetes utilizando Bubblewrap, un entorno de pruebas ligero que bloquea el acceso a casi todo el sistema, incluyendo archivos sensibles. Este método impide que cualquier aplicación ejecutada bajo él escalara privilegios.

El uso de Bubblewrap permite aislar herramientas como NPM o Yarn del resto del sistema. Esto limita el acceso al sistema de archivos y mejora la seguridad general del entorno.

Configurar bots para gestionar actualizaciones

Se sugiere configurar un bot como Renovate o uno similar, que introduzca retrasos artificiales en la cadena de suministro y acelere la solución de vulnerabilidades conocidas públicamente. Es importante rastrear las dependencias para evitar que se olvide este proceso.

Escaneo de repositorios

Se recomienda escanear los repositorios con NPM-Malware-Scanner, una herramienta de línea de comandos que analiza repositorios de GitHub, archivos locales y carpetas en busca de paquetes NPM maliciosos o sospechosos. El escáner utiliza una base de datos completa de malware para identificar dependencias potencialmente dañinas.

También se sugiere utilizar TruffleHog, una herramienta que permite descubrir, clasificar y analizar secretos en repositorios. Los secretos incluyen credenciales utilizadas para autenticarse ante otras máquinas, como claves API o contraseñas de bases de datos.

Medidas adicionales

Para quienes son realmente paranoicos o trabajan con objetivos muy «atractivos», se sugiere guardar el trabajo en una máquina virtual, manteniendo los secretos fuera de ella. Se puede utilizar una máquina virtual por proyecto para mayor seguridad.