El software de código abierto (OSS) es fundamental para el desarrollo moderno, pero también puede ser un punto débil en la cadena de suministro de software. Recientemente, han surgido preocupaciones sobre su seguridad, especialmente tras el incidente de XZ Utils, donde se descubrió una puerta trasera en un software OSS ampliamente utilizado. Aunque no tuvo el mismo impacto que Log4j, donde se destacó una fragilidad del ecosistema digital actual y la necesidad de mejorar la seguridad en el uso de OSS. Tradicionalmente, la gestión de vulnerabilidades se ha enfocado en las vulnerabilidades conocidas, que suelen publicarse en listas como las de vulnerabilidades y exposiciones comunes. Cada vez se reconoce más la necesidad de prever riesgos potenciales que puedan estar asociados con ciertas bibliotecas, componentes y proyectos de OSS. Estos son 6 de los principales riesgos del código abierto
1 – Paquetes legítimos comprometidos
Los ciberdelincuentes reconocen la importancia de comprometer un paquete legítimo para afectar a los usuarios, tanto a nivel organizacional como individual. Utilizan diversas tácticas para lograr este tipo de ataque, como secuestrar cuentas de los responsables del proyecto o aprovechar vulnerabilidades en los repositorios de paquetes. Para reducir este riesgo, se recomienda utilizar recursos y guías emergentes, como el Marco de Consumo Seguro de la Cadena de Suministro (S2C2F) de Microsoft, ahora donado a OpenSSF, junto con otras soluciones similares disponibles en la industria.
2 – Ataques de confusión de nombres
Esta modalidad de ataque se basa en crear componentes maliciosos que tienen nombres similares a paquetes o componentes legítimos de OSS, con la intención de que sean descargados y utilizados por error por posibles víctimas. Cuando estos paquetes comprometidos se integran en los sistemas de una organización, pueden comprometer la confidencialidad, integridad y disponibilidad (CIA) de sus sistemas y datos. Para prevenir estos ataques, es crucial asegurarse de que los paquetes o componentes de OSS que los desarrolladores intentan descargar sean auténticos. En este contexto, es esencial educar a los desarrolladores sobre la posibilidad de enfrentarse a ataques de confusión de nombres.
3 – Software sin mantenimiento
Una de las desventajas del software de código abierto (OSS), en comparación con el software propietario, es que no hay un “proveedor” que garantice su mantenimiento, actualización o soporte continuo. Un factor que agrava la falta de mantenimiento del OSS es que casi el 25% de los proyectos tienen solo un desarrollador principal y el 94% son mantenidos por 10 o menos desarrolladores. Dado que entre el 60% y el 80% de las bases de código modernas están compuestas de OSS, es fácil entender que una parte significativa del ecosistema digital, incluidos los sistemas más críticos, opera con software que recibe un soporte mínimo, lo que representa un riesgo sistémico significativo. Para mitigar este riesgo, el informe recomienda evaluar la vitalidad y salud del proyecto, considerando factores como el número de mantenedores y colaboradores, la frecuencia de las actualizaciones y el tiempo medio para remediar (MTTR) las vulnerabilidades.
4 – Dependencias no rastreadas
Los desarrolladores y las organizaciones a menudo no están al tanto del uso que hacen de ciertas dependencias o componentes específicos. Esto puede suceder porque no emplean herramientas como el análisis de composición de software (SCA) para entender cómo consumen OSS, o porque no adoptan tecnologías emergentes como las listas de materiales de software (SBOM), que ofrecen una visibilidad clara de los componentes utilizados o distribuidos por la organización. A pesar de que el inventario de activos es un control fundamental en SANS/CIS desde hace mucho tiempo. Las SBOM buscan solucionar este problema al permitir que las organizaciones gestionen su inventario de componentes de manera más eficaz.
5 – Riesgo de licencias y cumplimiento normativo
Este riesgo surge cuando los componentes o proyectos carecen de licencias o tienen licencias que pueden impedir su uso de la manera que los consumidores planean. Esto podría impactar negativamente en los objetivos comerciales de la organización, incluidas las fusiones y adquisiciones, a medida que aumentan el uso de componentes OSS en sus productos y servicios. Para mitigar estos riesgos, las organizaciones deben identificar las licencias aplicables a los componentes que utilizan y asegurarse de que su uso esté alineado con dichas licencias.
6 – Cambios no aprobados
OWASP advierte sobre situaciones en las que los componentes pueden cambiar sin que los desarrolladores lo noten, revisen o aprueben. Esto puede ocurrir cuando los enlaces de descarga cambian, apuntan a recursos no versionados, o cuando se realizan transferencias de datos inseguros que han sido manipuladas, subrayando la importancia de un tránsito seguro. Para mitigar estos riesgos, se recomienda utilizar identificadores de recursos que aseguren la seguridad y la referencia al mismo artefacto inmutable. También es aconsejable verificar las firmas y resúmenes de los componentes antes de su instalación y uso. En resumen, el OSS es un componente vital del desarrollo de software moderno, pero su uso requiere una gestión cuidadosa para evitar riesgos significativos en la seguridad de la cadena de suministro de software.
¿Quieres ser un experto en código abierto y evitar vulnerabilidades en desarrollo software?
Holberton by Coderise se centra en enseñar habilidades prácticas y técnicas avanzadas en desarrollo de software, incluyendo la importancia de la seguridad en el desarrollo de software. Temas como la gestión de dependencias, la seguridad en la cadena de suministro de software y el manejo adecuado de licencias, son fundamentales. Holberton le brinda a sus estudiantes habilidades y conocimientos en estos aspectos para garantizar que los desarrolladores no solo sean capaces de crear software, sino también de hacerlo de manera segura y conforme a las normativas, minimizando riesgos. Holberton Coderise es una academia de software nacida en Silicon Valley, disruptiva e innovadora cuyo modelo ha sido destacado en publicación del Banco Interamericano de Desarrollo. En la actualidad opera en más de 20 países y en más de 29 ciudades a nivel mundial distribuidas en todos los continentes y entrena miles de participantes anualmente.
Imágenes: