Estrategias de la cadena de suministro de software para detener los ataques de confusión de dependencia

Estrategias de la cadena de suministro de software para detener los ataques de confusión de dependencia

Estrategias de la cadena de suministro de software para detener los ataques de confusión de dependencia PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

"¿Lo que hay en un nombre? Lo que llamamos rosa, con cualquier otro nombre olería igual de dulce. Cuando Shakespeare escribió estas palabras (Romeo y Julieta, Acto 2, Escena 2) en 1596, estaba diciendo que un nombre es sólo una convención. No tiene ningún significado intrínseco. Julieta ama a Romeo por lo que es, no por su nombre.

Pero sin saberlo, Shakespeare también describía ataques de confusión por dependencia.

La confusión de dependencia ocurre cuando los paquetes que estás usando en tu código no son tuyos. Tienen el mismo nombre, pero no es su código el que se ejecuta en producción. Mismo nombre, pero un paquete huele a rosa y el otro... apesta.

Informes de investigación recientes estiman que entre el 41 % y el 49 % de las organizaciones corren el riesgo de sufrir ataques de confusión de dependencia. Una nueva investigación de OX Security muestra que cuando una organización corre el riesgo de sufrir un ataque de confusión de dependencia, el 73% de sus activos son vulnerables. La investigación se centró en organizaciones medianas y grandes (1K+, 8K+, 80K+ empleados) en una amplia gama de sectores (finanzas, juegos, tecnología y medios) y encontró el riesgo en todos los sectores en organizaciones de todos los tamaños. La investigación también encontró que casi todas las aplicaciones con más de mil millones de usuarios utilizan dependencias que son vulnerables a la confusión de dependencias.

Este artículo tiene como objetivo ayudarle a comprender la confusión de dependencia y cómo prevenirla.

Doble doble

Las dependencias (también llamadas paquetes) son los componentes básicos de su software. Normalmente, estos programas, ya sean desarrollados por comunidades enteras o dentro de una empresa, realizan una tarea común y necesaria.

Los administradores de paquetes se utilizan con frecuencia para instalar dependencias y mantenerlas actualizadas. Escanean registros públicos y privados en busca del nombre del paquete y, en igualdad de condiciones, seleccionan el número de versión más alto. Los atacantes se aprovechan de esto colocando un paquete "ficticio" en el registro público con el mismo nombre pero con una versión superior.

Cuando un administrador de paquetes se encuentra con dos paquetes idénticos, uno en un registro público y otro en un registro privado, genera confusión, de ahí el nombre "confusión de dependencia". Dado que los dos paquetes son idénticos, el administrador elegirá automáticamente instalar el que tenga una versión superior. - en este caso, el paquete malicioso del atacante.

Esto les da a los secuestradores una puerta trasera a su software. A partir de este punto, pueden ejecutar violaciones de datos, realizar robos de propiedad intelectual y comprometer de otro modo la cadena de suministro de confianza del software. También pueden introducir violaciones de cumplimiento que darán lugar a severas sanciones regulatorias.

Trabajo y problemas

Existen varios enfoques para un ataque de confusión de dependencia.

  • Espacio de nombres. Al cargar una biblioteca de software malicioso en un registro público, como el índice de paquetes de Python (PyPI) o JavaScript registro npm - eso es nombrado de manera similar a una biblioteca confiable y utilizada internamente, los sistemas que omiten una verificación de espacio de nombres/URL o no fuerzan la búsqueda de un registro privado pueden extraer por error el código malicioso. El reciente incidente de confusión de dependencia de PyTorch Es uno de esos ejemplos.
  • Suplantación de DNS. Al utilizar una técnica como la suplantación de DNS, se puede dirigir a los sistemas para que extraigan dependencias de repositorios maliciosos mientras muestran lo que parecen URL/rutas internas legítimas.
  • Guiones. Modificando los scripts de compilación/instalación o integración continua / entrega continua (CI/CD), se puede engañar a los sistemas para que descarguen dependencias de software de una fuente maliciosa en lugar de un repositorio local.

Cosas bien hechas y con mimo

Para protegerse contra la confusión de dependencia, instituya estas prácticas.

  • Establezca políticas en el administrador de paquetes. No permita que los administradores de paquetes prioricen un paquete público sobre un paquete privado.
  • Incluya siempre un archivo .npmrc. Si está utilizando el popular NPM como administrador de paquetes, incluya siempre un archivo .npmrc que especifique dónde recuperar los paquetes en un ámbito de organización específico.
  • Reservar el nombre del paquete en un registro público. Otra forma de protegerse contra ataques de confusión de dependencia es reservar el nombre del paquete en un registro público para que los secuestradores no puedan usarlo y, por lo tanto, no puedan "engañar" al administrador de paquetes para que instale un paquete malicioso.

Para protegerse completamente contra ataques de confusión de dependencia, las organizaciones siempre deben usar Ámbitos de organización para todos los paquetes internos., incluso cuando se publica en su registro interno. Los alcances de la organización también deben registrarse en el registro público de NPM, evitando así que alguien se apropie del alcance y se aproveche de la confusión.

Los nombres de los paquetes también deben registrarse públicamente. Si una organización utiliza el popular PIP como administrador de paquetes para dependencias de Python, por ejemplo, debe crear paquetes internos con un sufijo estricto que sea reconocible y que funcione en todos los proyectos. Cargue un paquete vacío con el mismo nombre en el registro público PyPI como marcador de posición.

Otra razón para reservar el nombre del paquete en un registro público es porque si alguien más lo reserva (maliciosamente o no), los desarrolladores tendrán que cambiar todos los nombres de los paquetes en el registro privado por uno que aún no se haya reservado en el registro público. Este puede ser un proceso largo y tedioso.

Es importante tener en cuenta que no todos los registros de paquetes permiten a los usuarios reservar nombres de paquetes, así que asegúrese de encontrar uno que lo haga.

Salida, perseguido por un oso

Los ataques de confusión de dependencia plantean una amenaza de ciberseguridad grave e inminente para las organizaciones a nivel mundial. Aproximadamente la mitad de todas las organizaciones están en riesgo y el 73% de los activos de esas organizaciones están expuestos. Para contrarrestar esta creciente amenaza, las organizaciones deben implementar medidas preventivas sólidas y adoptar las mejores prácticas de ciberseguridad.

Las rosas de Shakespeare pueden haber presagiado el riesgo de ataques de confusión por dependencia durante cientos de años, pero otra cita del Bardo puede contener algo de sabiduría para protegerse contra ellos: “Que cada ojo negocie por sí mismo y no confíe en ningún agente”. (Mucho ruido y pocas nueces, acto 2, escena 1)

Sello de tiempo:

Mas de Lectura oscura