Linux se ha convertido en el proyecto de desarrollo colaborativo más grande en la historia de la informática durante los últimos 30 años. Reflexionar sobre lo que hizo esto posible y cómo su filosofía de código abierto finalmente se impuso en la industria puede ofrecer a los proveedores de software lecciones valiosas de esta asombrosa historia de éxito.
Es posible que la web aún no haya alcanzado la edad adulta, pero ya ha creado su propia mitología.
25 de agosto de 1991: Linus Torvalds, un estudiante universitario finlandés de 21 años, escribe una publicación en un grupo de Usenet: "Hola a todos los que usan minix. Estoy haciendo un sistema operativo (gratuito) (solo un pasatiempo, no será grande y profesional como GNU) para 386 (486) clones AT […] ”. Unas semanas más tarde, el proyecto, que eventualmente se conocerá como Linux, se publica por primera vez.
Este es el punto de partida de una epopeya que pocos podrían haber previsto.
Avance rápido 30 años y el kernel de Linux no solo se ejecuta en la mayoría de los servidores web y teléfonos inteligentes de todo el mundo, sino que también es compatible con prácticamente toda la infraestructura de nube mucho más reciente. Sin programas de código abierto como Linux, la computación en la nube no habría existido.
Entre los principales factores que impulsaron a Linux al éxito está la seguridad. Hoy, las compañías de software más grandes del mundo están llevando la seguridad de código abierto a nuevos niveles, pero el proyecto Linux fue uno de los primeros en enfatizar esto.
Cómo Linux se convirtió en la columna vertebral del mundo moderno de TI
Breve historia
El código abierto es anterior al proyecto Linux en muchos años y posiblemente sea tan antiguo como el software en sí. Sin embargo, es el éxito de este último lo que impulsó este movimiento en la década de 1990. Cuando Torvalds lo presentó por primera vez para su contribución en 1991, el kernel de Linux era el "eslabón perdido" del proyecto GNU hacia un sistema operativo de software completamente libre, que podía distribuirse e incluso venderse sin restricciones. En los años siguientes, y a medida que el proyecto comenzó a incorporar componentes patentados con licencia y a crecer en popularidad, se hizo necesaria una aclaración sobre el significado de “software libre”.
Esto llevó a la acuñación del término "código abierto" tal como lo usamos hoy, gracias en parte al artículo fundamental de Eric Raymond, The Cathedral and the Bazaar , un "análisis reflexivo de la comunidad de hackers y los principios del software libre". Se eligió el código abierto para calificar el software en el que el código fuente está disponible para el público en general para su uso o modificación de su diseño original, según los términos de la licencia. Luego, las personas pueden descargar, modificar y publicar su versión del código fuente (bifurcación) en la comunidad.
Los proyectos de código abierto comenzaron a ganar terreno a finales de los noventa gracias a la popularidad de software como Apache HTTP Server, MySQL y PHP para ejecutar los primeros sitios web dinámicos en Internet.
Hechos y cifras
Hoy en día, Linux no solo impulsa la mayor parte de la era digital, sino que el código abierto se ha convertido en el modelo líder de cómo construimos y distribuimos software. Aunque la mayoría de la gente no se da cuenta, gran parte de la tecnología en la que confiamos todos los días se ejecuta en software gratuito y de código abierto (FOSS). Los teléfonos, automóviles, aviones e incluso muchos programas de inteligencia artificial de vanguardia utilizan software de código abierto. Según la Fundación Linux, el 96,3% del millón de servidores más importantes del mundo se ejecutan en Linux y el 95% de toda la infraestructura en la nube opera en él. Otra infraestructura también se basa en el código abierto: el 70% de los suscriptores móviles globales utilizan dispositivos que se ejecutan en redes creadas con ONAP (Open Network Automation Platform).
La adopción de Linux es muy alta en la TI profesional, donde se ha convertido en un estándar de facto, especialmente con el advenimiento de la era de la nube. De hecho, el 83,1% de los desarrolladores dijo que Linux es la plataforma en la que prefieren trabajar. Este éxito se debe, en gran parte, a la comunidad que contribuyó a su código fuente desde su creación: más de 15.000 desarrolladores de más de 1.500 empresas. Linux pasó a convertirse, posiblemente, en la mayor historia de éxito del movimiento del software libre, lo que demuestra que el código abierto podría conducir a la creación de software tan poderoso como cualquier vendido por una corporación.
La Fundación Linux, un consorcio tecnológico sin fines de lucro fundado en 2000 para apoyar el desarrollo colaborativo de proyectos de software de Linux y SO, es en sí mismo un gran éxito. Ahora tiene más de 100 proyectos bajo su paraguas, distribuidos en sectores tecnológicos como inteligencia artificial, vehículos autónomos, redes y seguridad. Varias bases de subconjuntos también han surgido a lo largo de los años, incluida la Cloud Foundry Foundation, la influyente Cloud Native Computing Foundation y la recientemente anunciada Open Source Security Foundation. La Fundación estima el valor compartido total creado a partir de las contribuciones colectivas de su comunidad a la friolera de $ 54,1 mil millones.
Es posible que todos estos logros no hubieran sido posibles sin la adopción del código abierto por parte del mundo empresarial, que puede representar su mayor logro.
Adopción empresarial
Las empresas comenzaron a darse cuenta de que muchos proyectos de código abierto eran más fáciles y económicos de implementar que pedir a sus desarrolladores que construyeran las piezas básicas de un negocio en Internet una y otra vez desde cero.
Hace veinte años, la mayoría de las empresas funcionaban con software propietario de Microsoft, Oracle e IBM, y la idea de colaborar en grandes proyectos de software podría haberles sonado ridícula. Hoy en día, estas empresas, junto con relativamente recién llegados como Google, Facebook y Amazon, no solo están empleando a miles de colaboradores a tiempo completo para trabajar en proyectos de código abierto como Linux, sino que también eligen regularmente el código abierto de algunos de sus últimos avances. proyectos de arte; desde la plataforma de aprendizaje automático de Google Brain TensorFlow y la plataforma de orquestación de contenedores Kubernetes hasta React de Facebook.
No hay duda de que el software de código abierto creó una nueva ola de oportunidades comerciales. A medida que más empresas se interesaron en proyectos de código abierto, se dieron cuenta de que no necesariamente tenían la experiencia interna para administrar esos proyectos por sí mismos y recurrieron a nuevas empresas y empresas más grandes en busca de ayuda.
Incluso Microsoft, que luchó contra el concepto mismo de Linux durante casi una década, hizo un cambio estratégico para adoptar el código abierto en la década de 2010, dirigido por el CEO Satya Nadella. El gigante de TI finalmente se unió a la Fundación Linux en 2016 y adquirió GitHub, el mayor host para proyectos de código abierto, dos años después. Desde entonces, se ha convertido en uno de los mayores patrocinadores de proyectos de código abierto.
Como consecuencia, se ha aumentado la apuesta por el software de código abierto, que es el motor que impulsa el cambio hacia la nube para prácticamente todas las empresas. En este contexto, la seguridad se está convirtiendo en un tema de suma importancia y el compromiso de proteger el ecosistema de código abierto está creciendo rápidamente.
Estableciendo un estándar de seguridad y confianza
Problemas de seguridad de código abierto
Tras el auge de la adopción de OSS, la sostenibilidad, estabilidad y seguridad de estos paquetes de software es ahora una de las principales preocupaciones de todas las empresas que los utilizan.
El informe del Censo II sobre las complejidades estructurales y de seguridad en la cadena de suministro de hoy en día "donde el código abierto es omnipresente pero no siempre se comprende" reveló dos tendencias preocupantes que podrían hacer que el software libre sea más vulnerable a las brechas de seguridad. Primero, el informe dijo que es común ver paquetes populares publicados bajo cuentas de desarrolladores individuales, lo que plantea el problema de la seguridad y la confiabilidad. En segundo lugar, es muy común ver versiones desactualizadas de programas de código abierto en uso, lo que significa que contienen menos parches de seguridad.
El informe OSSRA de 2021 está de acuerdo: "El 98% de las bases de código auditadas durante el año pasado contienen al menos un componente de código abierto, y el código abierto comprende el 75% del código en general". El informe también señaló que el 85% de las bases de código auditadas contenían componentes “más de cuatro años desactualizados”.
Esto destaca el creciente riesgo de seguridad que representa el código abierto “no administrado”: “El 84% de las bases de código auditadas que contienen componentes de código abierto con vulnerabilidades de seguridad conocidas, en comparación con el 75% del año anterior. De manera similar, el 60% de las bases de código contenían vulnerabilidades de alto riesgo, en comparación con el 49% solo 12 meses antes ". No solo se ve afectada la postura de seguridad, sino que también existen problemas de cumplimiento que pueden surgir de la integración no supervisada de contenido de código abierto porque las licencias pueden estar en conflicto o incluso ausentes.
Debido a que las grandes corporaciones ahora son una gran parte del ecosistema de código abierto, su patrocinio es una fuente de financiamiento bienvenida para muchas personas cuyo trabajo se había realizado de forma gratuita hasta ahora, pero puede que no sea suficiente. La comunidad de código abierto es conocida por su compromiso con la independencia, su sentido de pertenencia y su autosuficiencia, y es poco probable que tenga éxito esperar que los contribuyentes aborden voluntariamente los problemas de seguridad.
Aquí es donde la experiencia de construir Linux durante 30 años y coordinar el trabajo de miles de colaboradores individuales puede ser un ejemplo a seguir.
Fundamentos de Linux
En el desarrollo del kernel de Linux, la seguridad se toma muy en serio. Debido a que es una capa subyacente para tantos 'ladrillos' de software públicos y privados en el mundo digital, cualquier error puede costar millones a las empresas, si no vidas. Desde el principio, ha adoptado un enfoque de desarrollo descentralizado con una gran cantidad de contribuyentes que colaboran continuamente. Por lo tanto, ha consolidado un sólido proceso de revisión por pares a medida que el esfuerzo de desarrollo comunitario crecía y se expandía.
La última versión estable en el momento de escribir este artículo es 5.14, lanzada el 29 de agosto de 2021, solo unos días antes del cumpleaños número 30 del proyecto. Las características más importantes de la versión están relacionadas con la seguridad: una está destinada a ayudar a mitigar las vulnerabilidades a nivel del procesador como Spectre y Meltdown y la otra se refiere a la protección de la memoria del sistema, que es una superficie de ataque principal para explotar. Cada lanzamiento del kernel de Linux ve cerca de 100 nuevas correcciones por semana comprometidas por individuos y profesionales de la talla de Intel, AMD, IBM, Oracle y Samsung.
Con una adopción tan amplia y una larga historia, el proyecto de Linux ha alcanzado un nivel de madurez que pocos, si es que hay alguno, han visto otros proyectos de software libre. El proceso de revisión y el modelo de lanzamiento han generado confianza para numerosos proveedores posteriores. Aunque el mundo no es perfecto y podría decirse que es difícil para ellos mantenerse al día con una tasa de cambio tan alta, al menos pueden beneficiarse de fuertes mecanismos de aplicación de la seguridad y pueden adaptar su postura de seguridad de acuerdo con su "apetito por el riesgo": Los proveedores pueden hacer el cálculo para determinar la antigüedad de un kernel al que pueden tolerar exponer a los usuarios.
Ampliando los límites de la seguridad de código abierto
Heartbleed y la fragilidad de la seguridad del sistema operativo
En abril de 2014, un incidente de seguridad importante que afectó a la biblioteca de criptografía OpenSSL; divulgado como "Heartbleed". El desarrollador que introdujo el error reconoció que, aunque estaba trabajando en el proyecto con un puñado de otros ingenieros:
“Soy responsable del error porque escribí el código y me perdí la validación necesaria por parte de un descuido. Desafortunadamente, este error también se deslizó a través del proceso de revisión y, por lo tanto, llegó a la versión publicada ". OpenSSL, un proyecto de código abierto, se usa ampliamente para implementar el protocolo Transport Layer Security (TLS). En otras palabras, es una pieza fundamental que se utiliza para asegurar una gran parte de la web.
El código abierto se consideró fundamentalmente seguro durante mucho tiempo porque cuantas más personas examinen una línea de código, mayores serán las posibilidades de detectar cualquier debilidad. Además, este modelo evita la "seguridad por oscuridad", por la cual la mayor parte de la protección proviene de personas que no saben cómo funciona el software de seguridad, lo que puede provocar que todo el edificio se derrumbe si esa información confidencial se divulga o se descubre externamente.
Este incidente fue un punto de inflexión importante para una gran parte de las corporaciones web más grandes: se dieron cuenta de que muchas tecnologías de código abierto que sustentan sus operaciones centrales ya no se podían "asumir como seguras". Cualquier error humano podría tener enormes implicaciones; por lo tanto, se tuvo que hacer un esfuerzo específico para mejorar la seguridad en este espacio específico.
Una nueva era para el código abierto
A medida que avanzamos en una era en la que el código abierto es omnipresente en bases de código, herramientas, redes e infraestructura e incluso en campos distintos al software, la conciencia de la seguridad está comenzando a afianzarse. Pero necesita mucho más trabajo.
Una gran parte del desafío, para empezar, es que la industria comprenda el alcance del problema.
Google acaba de anunciar que comprometerá "$ 100 millones para respaldar las fundaciones de terceros que administran las prioridades de seguridad de código abierto y ayudan a solucionar las vulnerabilidades".
El programa piloto Secure Open Source (SOS), dirigido por la Fundación Linux, recompensará a los desarrolladores por mejorar la seguridad de los proyectos críticos de código abierto de los que todos dependemos.
Al hacerlo, Google lidera el camino en la ampliación del patrocinio financiero de grandes actores como empresas y gobiernos, que patrocinan cada vez más el código abierto tanto directa como indirectamente. Sin embargo, también recomiendan que las organizaciones "comprendan el impacto que tienen en el futuro del ecosistema de software libre y sigan algunos principios rectores".
Una hoja de ruta para utilizar de forma segura y contribuir al código abierto
La Fundación Linux propuso una Iniciativa de Confianza y Seguridad específica que describe una colección de ocho mejores prácticas (con tres grados de madurez) que los equipos de código abierto deben utilizar para proteger el software que producen, así como para una audiencia más amplia para "elevar el listón de seguridad colectiva . " Aquí están:
- Aclarar los roles y responsabilidades, y asegurarse de que todos conozcan sus responsabilidades de seguridad en toda la organización.
- Establecer una política de seguridad para todos; en otras palabras, una clara estrella del norte para todos los miembros de la organización.
- "Conozca a sus colaboradores" se define como un conjunto de prácticas para tomar decisiones basadas en el riesgo sobre en quién confiar y combatir las técnicas ofensivas de guerra cibernética, como el envenenamiento del código anterior.
- Bloquear la cadena de suministro de software: este se ha convertido en un objetivo preferido, ya que los adversarios entendieron claramente que pueden tener un impacto mayor y más efectivo con menos esfuerzo que apuntar a sistemas individuales.
- Proporcionar orientación técnica de seguridad para reducir las posibles soluciones a las más adecuadas en términos de seguridad.
- Implemente manuales de seguridad para definir cómo realizar procesos de seguridad específicos, específicamente los procesos de respuesta a incidentes y gestión de vulnerabilidades, como la creación de roles y responsabilidades o la publicación de políticas de seguridad. Esto puede parecer formal, anticuado y de la vieja escuela, pero tener libros de jugadas predefinidos significa que los equipos pueden concentrarse en enviar software y no aprender a hacer seguridad, especialmente en el momento menos conveniente y más estresante.
- Desarrollar técnicas de prueba de seguridad con pruebas automatizadas muy recomendadas, ya que se escala mejor, tiene menos fricción y menos costo para los equipos y se alinea bien con los modernos canales de entrega continua.
Sin embargo, los autores de la guía son conscientes de que la industria aún enfrenta algunos desafíos importantes y, como tales, deben abordarse. Ellos mencionan:
- La falta de herramientas de prueba de seguridad de código abierto
- El hecho de que la distribución de paquetes de código abierto esté rota
- El hecho de que el formato CVE para la divulgación de vulnerabilidades también está roto
- La falta de un estándar para un certificado de construcción de seguridad que permita a cualquier consumidor verificar de manera transparente que un producto o componente cumple con las especificaciones anunciadas.
"Los tipos de verificación pueden y deben incluir el uso de herramientas de seguridad automatizadas como SAST, DAST y SCA, así como la verificación de procesos de seguridad como la presencia de archivos Léame de seguridad en repositorios y que los correos electrónicos de respuesta de seguridad son válidos".
Un esquema como este podría tener un efecto significativo y duradero en la calidad de seguridad del software de código abierto e Internet en general.
El proyecto Linux, nacido hace 30 años, está presente en todas las capas del software moderno actual. Es utilizado por todos los clústeres de servidores más grandes que impulsan la web moderna y cualquier empresa que se digitalice lo utilizará en algún momento. Esta longevidad y éxito incomparables han demostrado que el modelo de código abierto era compatible con los requisitos de los servicios de nivel empresarial y económicamente viable. Ahora que el código abierto está de moda en la industria del software, es urgente un consenso y un plan de acción sobre cómo garantizar la sostenibilidad de este ecosistema. La principal prioridad para las empresas que dependen de él es adoptar pautas sólidas de seguridad de aplicaciones, como las promovidas por la Fundación Linux, que han demostrado su valor.
Una última nota sobre la naturaleza del código abierto: dado que las empresas ahora están mucho más limitadas por el uso común de componentes de código abierto sobre los que construir, no deben caer en la trampa de la “tragedia de los comunes”. Esto significaría esperar hasta que otros actúen; por ejemplo, para mejorar el panorama global de seguridad del software. Este podría ser uno de los mayores desafíos que enfrenta nuestra industria altamente colaborativa.