Cierre de recurso abierto: Disipando la fantasía
Publicado: 2022-03-31Tras la divulgación de la vulnerabilidad de Log4j en diciembre de 2021 y el nuevo caso de un desarrollador que sabotea sus propias bibliotecas de Javascript: 'color.js' y 'faker.js', el estado del software de computadora de código abierto se ha puesto en duda.
Con una reunión de alto perfil en la Propiedad Blanca sobre el código abierto y las órdenes gubernamentales del presidente Biden de los EE. UU., algunos incluso han sugerido que es el "final del recurso abierto". Si bien puede ser tentador ver una vulnerabilidad importante como una señal de que la oferta abierta sigue siendo deficiente, la verdad se basa en gran medida en eso.
El software de código abierto no es ni mucho más ni menos seguro que un paquete de software empresarial. En realidad, la mayoría de los programas informáticos profesionales posiblemente cuentan con sistemas de código abierto u operan en ellos. La fuente abierta solo significa que el programa de software está formulado de una manera en la que el código fuente está disponible para cualquier persona que lo desee.
Lo que hemos estado viendo con la respuesta de Log4j del equipo de Apache Log4j es precisamente lo que esperamos ver: un equipo que se toma en serio el paquete de software que desarrollan y que actualmente responde a los deseos de su base establecida. Al ver que son voluntarios, este tipo de respuesta es indicativo del placer de propiedad que vemos con frecuencia dentro de las comunidades de recursos abiertos.
En lugar de instigar el cierre del código abierto, es probable que un incidente como Log4j mejore la mejora del código abierto en su conjunto, de la misma manera que Heartbleed mejoró los métodos de desarrollo de los dos grupos de desarrollo de código abierto y cerrado. Entonces, si el código abierto se incluye aquí para seguir siéndolo, ¿qué deberían estar haciendo las empresas para avanzar para detectar y mitigar las vulnerabilidades de manera mucho más eficiente?
Abordar la protección del software informático desde un nivel organizativo
Perfectamente, la estrategia de identificar y mitigar vulnerabilidades nos exige delinear algunos roles por adelantado. La mayoría de las personas esperan que sus proveedores de paquetes de software, es decir, las personas que desarrollan el software del que dependen, verifiquen ese software. El resultado final de esa prueba sería un conjunto de resultados que destacan las debilidades en el software que proporciona el proveedor. En un gran mundo entero, todas y cada una de esas debilidades se resolverían antes del envío y entrega del programa.
Sin embargo, en el mundo real, algunas de esas debilidades estarán predeterminadas, algunas se marcarán como "sin programa para corregir" y otras se solucionarán con suerte en un lanzamiento a largo plazo. Cuál es la lista de debilidades y cuáles terminaron establecidas, no es algo pequeño que un proveedor suele divulgar. Además, no existe una herramienta que pueda descubrir todas las debilidades, y algunas solo hacen el trabajo si tiene el código de recurso, aunque otras personas exigen un software en ejecución.
Notará que no se hizo mención de la palabra 'vulnerabilidad' en esto, ya que tiene una indicación específica y básica. En la aplicación, una vulnerabilidad es simplemente una debilidad que puede explotarse o que tiene una oportunidad realista de explotación.
La mayoría de las vulnerabilidades, pero no todas, se divulgan a través de un procedimiento centralizado reconocido como Bases de datos de vulnerabilidades nacionales, o solo NVD. Aunque la NVD tiene sus raíces en los EE. UU. y está a cargo de las autoridades de los EE. UU., los contenidos de la NVD son accesibles para todos y se replican en múltiples ubicaciones internacionales. Desde el punto de vista de la gobernanza, verificar las mejoras en el contenido de NVD es una excelente manera de mantenerse al tanto de las nuevas revelaciones de vulnerabilidades.
El problema es que NVD se actualiza más lentamente que la cobertura de los medios, por lo que con vulnerabilidades clave como Log4Shell, HeartBleed y Dirty Cow, el equipo que encuentra la vulnerabilidad podría crear un título de marca para la vulnerabilidad en un esfuerzo por ampliar la conciencia del problema. Producir un plan de gobierno que evalúe la protección de los medios de estas reuniones cibernéticas definitivamente no es una práctica fantástica.
Si la cobertura de los medios como entrada a la administración de vulnerabilidades es una mala idea, y el NVD es un poco gradual para presentar todos los hechos, ¿cuál es entonces la política de gobernanza más efectiva? Eso vendrá de una forma de herramienta de seguridad conocida como "Análisis de composición de software" o SCA. Un software SCA parece estar tanto en el código fuente de una aplicación, como en el ejecutable o las bibliotecas que definen la aplicación, e intenta averiguar qué bibliotecas de código abierto se han empleado para construir ese software.
La lista de esas bibliotecas de personas se conoce como SBOM, o Lista de materiales de software de computadora. Suponiendo que la aplicación SCA hace su trabajo de manera efectiva, entonces se puede crear una política de control que asigne los detalles de NVD al SBOM para que sepa qué parchear... Excepto que todavía hay datos de NVD latentes a tener en cuenta.
Algunos de los instrumentos SCA mucho más superiores resuelven ese desafío al generar avisos que alertan de manera proactiva a los clientes cuando hay una entrada NVD pendiente, pero en los que el proveedor SCA aumenta los detalles de esa entrada NVD. Algunos de los equipos más avanzados también se dedican a examinar o validar qué variaciones del software informático se ven afectadas por la divulgación de la vulnerabilidad.

Sin embargo, aunque el software SCA puede cerrar la brecha entre la divulgación y la identificación, debe tenerse en cuenta que tiene una limitación fundamental. Si el programa SCA no ha escaneado todos sus programas, entonces, en el mejor de los casos, solo puede marcar nuevas divulgaciones de vulnerabilidad para un subconjunto de sus programas.
Desde el punto de vista de la cobertura de gobierno, luego obtiene un trabajo de TI para establecer todo el software y una funcionalidad de adquisición para garantizar que todas las aplicaciones, como actualizaciones y descargas gratuitas, aparezcan debajo de un SBOM y que el SBOM se valide aplicando Programa de software SCA. Debido a que el programa está disponible tanto en formato de código fuente como binario, es importante que los equipos de gobierno que toman este camino elijan el programa de software SCA que puede ejecutar efectivamente el software de computadora en todas las variedades y formatos. Este tipo de plan de gobierno ayudaría a identificar nuevas revelaciones de vulnerabilidades y el impacto en el negocio, pero dejaría la diferencia de la mitigación productiva en una política única, dado que la mitigación requeriría pruebas de software.
Asegurarse de la seguridad de la propia ingeniería es solo un punto, pero la elegancia del recurso abierto es que está diseñado para ser colaborativo.
Parafraseando a Abraham Lincoln, el recurso abierto es el saber hacer de la gente, por los individuos y para los individuos. El moderno movimiento de código abierto se inició con el principio básico de que si no le gustaba la forma en que funcionaba el código, entonces tenía la libertad de modificarlo y abordar las brechas en la funcionalidad que se percibían que existían.
Un elemento de la dificultad que enfrentamos en estos días es un sentimiento que hace que los consumidores o usuarios finales de proyectos de código abierto se comporten como si el desafío del código abierto fuera un vendedor de aplicaciones comerciales.
Si aparece en la lista de desafíos de cualquier empresa de recursos abiertos razonablemente conocida en GitHub, verá solicitudes de funciones y revisiones sobre cuándo se pueden resolver los problemas seleccionados. Tales historias de problemas y quejas sobre la capacidad de servicio tienen una expectativa implícita de que un gerente de productos está al final de las solicitudes de esas personas y que se agregarán a una hoja de ruta y en algún momento se lanzarán, todo sin costo.
De hecho, las brechas en la funcionalidad e incluso en los errores percibidos, significan oportunidades no para solicitar servicios gratuitos de expertos en programación, sino como una alternativa para contribuir a los logros a largo plazo del código que es sustancialmente crucial para la persona que se queja.
Por supuesto, algunas personas no sabrán el lenguaje de programación empleado por el proyecto, pero esperar que otras personas prioricen una queja de un tercero desconocido en lugar de variaciones que aclaren las complicaciones para los contribuyentes activos no parece real. Tan importante como cualquier otra cosa, las funciones de recursos abiertos a través del altruismo de los contribuyentes.
Durante mucho tiempo hemos escuchado a los principales contribuyentes de los conocidos trabajos de apertura de recursos específicos molestos por las ganancias obtenidas por las grandes empresas a partir del uso de su paquete de software. Si bien es fácil relacionarse con alguien que pone su poder en una tarea solo para obtener una tercera parte de las ganancias de los intentos, la verdad es que si esa tercera parte se está beneficiando de los intentos de una fuerza laboral de desarrollo de recursos abiertos, entonces deberían estar contribuyendo a su éxito a largo plazo.
Si no lo hacen, entonces corren el riesgo de que no solo el código en cuestión se convierta en métodos con los que no contaban, sino también que cuando se identifiquen y resuelvan los problemas de protección, es posible que tengan retrasos en la aplicación de soluciones personales. Después de todo, si una pequeña empresa no se toma el tiempo para interactuar con los equipos que producen el software que impulsa su negocio, entonces es posible que no sepa dónde se origina todo el programa que impulsa su negocio y no puede parchear de manera confiable. eso.
Descubrir vulnerabilidades en la fuente abierta no es un problema, pero la detección de defectos del programa que representan una debilidad que podría explotarse es un tema importante. Aunque los paquetes de software de código abierto y de suministro cerrado tienen un potencial similar para los problemas de estabilidad, con el recurso abierto es posible que cualquiera pueda identificar todos esos problemas. Con eso en mente, las organizaciones deben obtener medidas proactivas, que no dependan de la protección de los medios, para observar las vulnerabilidades más actualizadas.
Igualmente importante, deben desempeñar un papel que contribuya a las tareas de código abierto que recompensan, o de lo contrario pueden dejar a la víctima con variaciones de código imprevistas o un conocimiento tardío de parches importantes.
Tim Mackey es estratega de protección principal en Synopsys .