Aikido

Aikido x Drydock | Una forma de que los responsables del mantenimiento detecten el malware antes de su lanzamiento

Escrito por
Dania Durnas

Responsables de mantenimiento, esto va dirigido a vosotros. Nos hemos asociado con Drydock para que podáis ver exactamente qué contiene un paquete antes de aprobarlo, lo que permite detectar el malware antes de su distribución, en lugar de revelarlo a posteriori. Drydock os permite leer los bytes reales de una versión preparada antes de su publicación, de modo que las versiones defectuosas se detectan en el momento de la aprobación, en lugar de en un análisis posterior. Para los responsables de mantenimiento de npm y PyPI, Drydock está disponible de forma gratuita.

Detener el malware antes de que se publique

El último año ha estado plagado de ataques de malware contra paquetes de código abierto. Nos hemos acostumbrado a ver alertas y tuits del tipo «¡ALERTA! ¡Gran ataque de malware!». Las mejoras en la detección y la notificación son importantes, pero para cuando tenemos que darlo a conocer, ya es demasiado tarde. Los responsables del mantenimiento de los paquetes merecen más apoyo en las primeras fases de este proceso, para ayudarles a detectar y prevenir los problemas antes de que se propaguen y todo el mundo entre en pánico y se dedique a controlar los daños.

El reciente anuncio de npm sobre la publicación por etapas supone un paso en esta dirección. La actualización introduce una cola de espera, en la que todas las versiones de los paquetes esperan a que un responsable con autenticación de dos factores apruebe manualmente su publicación. Sin embargo, aunque esto ofrece la oportunidad de revisar el paquete, el responsable no puede ver el contenido del paquete preparado. Puede ver el número de versión, pero no los bytes que contiene el paquete ni qué ha cambiado, si es que ha cambiado algo, con respecto al estado actual del repositorio.

Aikido se compromete a ayudar a los mantenedores a detener los ataques de malware antes de que se produzcan. Por eso nos hemos asociado con Drydock para que la publicación de paquetes sea más segura y la publicación por etapas resulte más útil. Si mantienes un paquete de npm o PyPI, Drydock te ofrece una forma gratuita de ver qué contiene realmente una versión antes de su publicación. Drydock analiza los paquetes de npm en fase de preparación para mostrarte exactamente qué ha cambiado en los bytes antes de que los apruebes, de modo que el responsable de la aprobación pueda ver por fin el contenido del paquete preparado.

En el caso de PyPI, que no cuenta con publicación por etapas, Drydock lleva a cabo la misma revisión dentro de tu proceso de lanzamiento. Este mismo procedimiento se aplica a los paquetes de npm que se publican sin etapas. Próximamente se añadirá compatibilidad con otros registros. 

Cómo funciona Drydock

Cuando aparece una nueva versión preliminar, Drydock la recoge, descarga el archivo tar exacto en un entorno de pruebas temporal, compara las diferencias con la última versión publicada y te muestra el informe en su panel de control. Puedes ver todos los cambios, con los relevantes para la seguridad marcados y clasificados por gravedad. Esas marcas detectan aquello en lo que se basa el malware, como un nuevo script del ciclo de vida previo o posterior a la instalación, archivos que antes no estaban ahí, código que genera un proceso o se conecta a la red, o un binario añadido. Cada hallazgo se vincula a la línea en la que se introdujo, de modo que la revisión se lee como una breve lista que puedes revisar en segundos, en lugar de un muro de código fuente. Lees los hallazgos y, a continuación, apruebas el paso de publicación en npm con tu propia autenticación de dos factores (2FA).

El flujo anterior parte de la base de una publicación en npm por etapas. En el caso de PyPI, o de un paquete de npm que se publique sin pasar por etapas, Drydock se ejecuta como una puerta de control del entorno de GitHub Actions. La publicación se detiene en tu pipeline antes de llegar al registro. Drydock revisa el artefacto compilado y publica los mismos resultados, clasificados por diferencia y gravedad, y un responsable del mantenimiento lo aprueba o lo rechaza en Drydock antes de que se haga público.

Drydock nunca publica por sí mismo, por lo que no se añaden puntos de fallo al proceso de lanzamiento. Drydock utiliza un token de npm de solo lectura, lo justo para ver las publicaciones preparadas. Se limita únicamente a leer listados de archivos y texto, por lo que nunca ejecuta el contenido del paquete. Y, con el fin de mantener a las personas al tanto, es una persona quien toma la decisión en cada ocasión.

Romper el ciclo del malware 

Cuando se lanzaron npm y otros gestores de paquetes, la publicación instantánea era una característica propia de ecosistemas capaces de crecer rápidamente gracias a la confianza que depositaban en sus miembros. Sin embargo, hoy en día los atacantes se aprovechan de la rapidez y la facilidad de publicación para llevar a cabo ataques con malware.

La publicación por etapas rompe ese patrón al retener la versión antes de que se publique. Drydock hace que esa retención sea significativa, al mostrar al responsable del mantenimiento exactamente qué ha cambiado mientras aún hay tiempo para decir que no. La detección de errores se produce antes de la primera descarga, en lugar de en un análisis a posteriori, cuando el daño ya está hecho.

Ese es el mundo que queremos para los responsables de mantenimiento. Que se despierten menos veces con noticias sobre malware y que, en cambio, detecten el problema y lo solucionen por sí mismos.

La configuración es sencilla y no tiene ningún coste. Activa la publicación por etapas de npm para tu paquete, conecta Drydock a tu organización con un token de solo lectura y empezará a revisar automáticamente las versiones en fase de publicación. Para la configuración de GitHub Actions, solo tienes que vincular la aplicación de GitHub y el entorno. Echa un vistazo a Drydock y a más información sobre cómo empezar en su página web.

Compartir:

https://www.aikido.dev/blog/drydock-pre-publish-package-review

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.