Los incidentes de seguridad de código abierto no van a desaparecer
COMENTARIO
Incidentes de seguridad de código abierto No desapareceré. La dependencia del software de código abierto (OSS) aumenta cada año, y más del 95% de todo el software, incluido el de código abierto, se utiliza de alguna manera. Desde sistemas operativos hasta bibliotecas críticas, aplicaciones web y más, software de código abierto (OSS) juega un papel central en la tecnología actual Paisaje. Sin embargo, esta dependencia generalizada plantea importantes riesgos de seguridad. A medida que el uso de OSS continúa evolucionando, también crece la importancia de protegerlo. Esta responsabilidad no recae en los desarrolladores aficionados individuales, sino en las empresas y organizaciones que tienen los recursos para dedicar ingenieros específicamente a la seguridad del código abierto. Estas organizaciones se benefician más del código abierto y deberían contribuir al máximo.
Habilidades esenciales para desarrolladores de seguridad de código abierto
Proteger el código abierto es similar a proteger el código cerrado, pero muchas de las habilidades necesarias son más importantes para el código abierto debido a varios factores. El código abierto es público y tiende a disfrutar de una adopción más amplia que muchos software de código cerrado. Una herramienta de código cerrado con una vulnerabilidad utilizada por un puñado de clientes tendrá un impacto muy diferente al de algo así como OpenSSH con un vulnerabilidadya que se implementa en millones de servidores en todo el mundo.
Espero que esto no sea una sorpresa, pero las habilidades de código abierto más importantes son las habilidades interpersonales. La mayor parte del tiempo en el desarrollo de software se dedica a hacer otras cosas además de escribir código. Estas son algunas habilidades clave:
-
Cooperación pública: Los proyectos de código abierto son de naturaleza colaborativa e involucran contribuyentes de todo el mundo. La comunicación eficaz garantiza que las prácticas de seguridad se comprendan e implementen adecuadamente.
-
Evite malentendidos: Muchas brechas de seguridad surgen de malentendidos. Una documentación clara y diálogos abiertos pueden evitar que ocurran estos problemas.
-
Enfoque proactivo: Si la seguridad es una prioridad en las tareas diarias, las posibles vulnerabilidades se pueden identificar tempranamente.
-
Vigilancia continua: Una mentalidad centrada en la seguridad fomenta la evaluación constante del código en busca de riesgos potenciales.
-
Responsabilidad: Tratar los proyectos de código abierto con la misma seriedad que los proyectos comerciales de código cerrado garantiza estándares de seguridad más altos.
-
Responsabilidad: Los desarrolladores que tienen un sentido de propiedad tienen más probabilidades de producir código seguro y confiable.
El hecho de que las habilidades sociales sean más importantes que las habilidades duras para el desarrollo de software no significa que esas habilidades sean irrelevantes. Siguen siendo importantes y algunos de ellos son particularmente importantes para la seguridad del código abierto. La comunidad de código abierto se beneficia de que un proyecto sea público y permite que la comunidad se reúna para asegurar el proyecto con expertos de diferentes campos que aportan su experiencia. Sin embargo, debido a que el código abierto es público, los proyectos también están expuestos a actores maliciosos, como vimos con el compromiso XZ, donde un mantenedor malicioso contribuyó con código aparentemente inofensivo pero, en última instancia, malicioso. Por esta razón, los desarrolladores de software centrados en la seguridad del código abierto deben estar atentos y tener experiencia para saber qué buscar cuando reciben contribuciones de desarrolladores anónimos. Estas son algunas de las habilidades que son importantes:
-
Ingeniería de seguridad y modelado de amenazas.
-
Comprender los vectores de ataque: Comprender cómo se explotan las vulnerabilidades es fundamental.
-
Técnicas como STRIDE: La familiaridad con las metodologías de modelado de amenazas ayuda a identificar y mitigar los riesgos.
-
Vulnerabilidades comunes: Es importante estar al tanto de problemas como la inyección SQL, los scripts entre sitios (XSS) y los desbordamientos del búfer.
-
Vulnerabilidades específicas del idioma: Cada lenguaje de programación tiene sus propias preocupaciones de seguridad. Esto es particularmente importante para lenguajes y ecosistemas que no tienen mecanismos de seguridad de memoria integrados.
-
Experiencia en ecosistemas: El conocimiento del ecosistema de empaquetado, como PyPI, npm, etc. y cómo se desarrolla el software en este ecosistema, es importante para comprender los riesgos externos del proyecto, como las dependencias ascendentes. Puede escribir código completamente seguro, incluir una dependencia vulnerable o maliciosa y enviar software inseguro. También es muy importante saber cuándo incluir una dependencia y cuándo es mejor escribir la funcionalidad usted mismo.
-
Crear canalizaciones: La incorporación de controles de seguridad en los procesos continuos de integración e implementación garantiza una seguridad continua. Los desarrolladores de código abierto desempeñan múltiples funciones y deben comprender y asegurar el flujo de integración continuo. El análogo de la inteligencia artificial (IA) sería el canal de formación.
-
Conciencia del contexto: Comprender cómo los consumidores utilizan el software ayuda a identificar posibles vulnerabilidades de seguridad.
-
Pruebas automatizadas: Al implementar herramientas que escanean automáticamente en busca de vulnerabilidades, los problemas se pueden identificar tempranamente.
-
Amplia cobertura de pruebas: Garantizar que se prueben todas las partes del código reduce el riesgo de que se pasen por alto vulnerabilidades.
A medida que la dependencia del software de código abierto continúa creciendo, también crece su necesidad. Desarrolladores de código abierto centrados en la seguridad. Esta necesidad se vuelve aún más importante con el aumento de proyectos de IA de código abierto. La IA de código abierto introduce nuevos niveles de complejidad y opacidad debido a los grandes conjuntos de datos y la naturaleza probabilística de los modelos entrenados. El gran volumen de datos y la complejidad de los algoritmos de aprendizaje automático dificultan identificar vulnerabilidades y predecir cómo podrían comportarse los modelos en circunstancias imprevistas.
El aspecto de “caja negra” de los modelos de IA significa que incluso los desarrolladores pueden no entender completamente cómo se procesan los insumos para producir resultados. Esta opacidad puede explotarse y provocar violaciones de seguridad como envenenamiento de datos, ataques adversarios y sesgos involuntarios. Por lo tanto, proteger la IA de código abierto requiere habilidades especializadas y una comprensión profunda tanto de las tecnologías de IA como de los principios de seguridad.
Las empresas y organizaciones deben reconocer la importancia de invertir en ingenieros que tengan las habilidades técnicas y sociales necesarias para proteger eficazmente el software de código abierto, particularmente en el campo de la IA en rápida evolución. Al promover estas capacidades, podemos mejorar la seguridad de los proyectos de código abierto, beneficiando a las organizaciones individuales y a la comunidad global que depende de ellas.
Hemos recibido este contenido de ciberseguridad de: DarkReading
Podrás encontrar la noticia original en el enlace que sigue: https://www.darkreading.com/vulnerabilities-threats/open-source-security-incidents-aren-t-going-away