Síntesis del documento: Software de código abierto: confianza, seguridad y protecciones legales

IMG_5827

Por Craig Wright | 20 de diciembre de 2023
| Bitcoin & Blockchain Tech

Esta bibliografía anotada se ha centrado en examinar el software de código abierto, centrándose principalmente en sus aspectos de confianza, seguridad y los derechos legales asociados. Comenzó con un énfasis en la confianza fomentada por el desarrollo de código abierto, principalmente debido a su transparencia inherente, que permite la inspección colectiva y la mejora del código fuente (Ghosh et al., 2005). Se destacó que dicha transparencia a menudo está ausente en el software de código cerrado o propietario, lo que resulta en posibles problemas de confianza (Aksulu et al., 2010).

Se discutieron las ventajas de seguridad del software de código abierto, haciendo hincapié en que la naturaleza abierta del código fuente permite la auditoría a gran escala y la detección de errores, mejorando así la seguridad del software. Este concepto se basó en la “Ley de Linus”, lo que sugiere que cuantos más individuos revisen un código, más probable es que los problemas se identifiquen y rectifiquen rápidamente (Leicht, 2018). Por el contrario, la auditoría del software de código cerrado se ve desafiada por su código fuente inaccesible, lo que potencialmente conduce a vulnerabilidades desapercibidas (Zhao & Elbaum, 2003).

La Bibliografía Anotada destacó además que el software de código abierto no es equivalente al software de dominio público, haciendo hincapié en la posible protección legal del código abierto. Varias licencias, patentes y derechos de base de datos pueden proteger el software de código abierto, equilibrando así la transparencia del software y la protección legal (Ghosh et al., 2005). La parte final de la Bibliografía Anotada discutió la relevancia del código abierto para el modelo de confianza de Bitcoin. Se subrayó que la naturaleza abierta del protocolo Bitcoin no es para fines de modificación; en cambio, facilita la confianza al permitir que el código sea auditado y verificado por cualquier persona (Riehle, 2007).

En conclusión, la AB hizo hincapié en que la transparencia, la auditabilidad y la protección legal del software de código abierto sirven como un mecanismo para fomentar la confianza y la seguridad de los usuarios, con implicaciones para varios sistemas digitales, incluido Bitcoin.

Síntesis del documento: Software de código abierto: confianza, seguridad y protecciones legales

Este documento de síntesis explora los conceptos de software de código abierto, haciendo hincapié en la confianza, la seguridad, la auditoría y su diferenciación del software de dominio público. Aborda los desafíos y beneficios del software de código abierto y subraya la importancia de auditar el código fuente. La discusión también explora las protecciones legales inherentes al software de código abierto, como licencias, patentes y derechos de base de datos.

La revolución digital ha transformado la sociedad, con el software en el centro de este cambio. Un desarrollo significativo en la industria del software es el modelo de software de código abierto (OSS), caracterizado por la transparencia y el desarrollo basado en la comunidad. OSS ha cambiado el enfoque del software propietario de código cerrado a un modelo más abierto y compartido, promoviendo la confianza, la seguridad y la innovación.

Software de código abierto y confianza

El software de código abierto, caracterizado por su transparencia y accesibilidad, refuerza significativamente la confianza dentro de la población de usuarios y desarrolladores. Permite a cualquier persona inspeccionar, modificar y mejorar el código fuente, creando un entorno de escrutinio abierto. Esta oportunidad de inspección permite a los usuarios, desarrolladores y otras partes interesadas evaluar a fondo la calidad, la seguridad y la fiabilidad del software. Sobre la base de esta evaluación, pueden tomar decisiones informadas sobre si usar o no una pieza de software en particular, basando su juicio en el rendimiento real del software en lugar de simplemente confiar en las afirmaciones hechas por los desarrolladores o proveedores.

Esta transparencia contrasta marcadamente con el paradigma de software de código cerrado o propietario, donde el código fuente es a menudo un secreto bien guardado. Esta opacidad inhibe significativamente la comprensión externa del funcionamiento del software, lo que provoca preguntas sobre su integridad y fiabilidad. Por lo tanto, la definición de la transparencia del software de código abierto mejora su fiabilidad, ya que permite una evaluación extensa de su rendimiento, integridad y fiabilidad basada en la calidad del código, una característica que normalmente no está presente en sus contrapartes de código cerrado (Aksulu et al., 2010).

Seguridad y auditoría en software de código abierto

El modelo de seguridad del software de código abierto se beneficia significativamente de su auditabilidad por parte de un amplio grupo. La “Ley de Linus”, que lleva el nombre de Linus Torvalds, el creador del núcleo de Linux y representaba el principio de que “con suficientes globos oculares, todos los errores son superficiales”, sugiere que cuantos más personas revisen un código, mayor será la probabilidad de identificar y rectificar rápidamente los problemas, incluidas las vulnerabilidades de seguridad (Leicht, 2018). Sin embargo, es crucial entender que la seguridad del software de código abierto no es inherente. Una comunidad activa debe monitorear, parchear y actualizar continuamente el software para abordar rápidamente las vulnerabilidades (Zhao & Elbaum, 2003).

En marcado contraste, el software de código cerrado plantea desafíos significativos para la auditoría de seguridad debido a su código fuente inaccesible. Con el código fuente no disponible públicamente, solo un grupo limitado de personas o equipos, generalmente dentro de la organización en desarrollo del software, puede acceder a él para su revisión. Esta limitación reduce inherentemente el número de “globos oculares” que pueden inspeccionar y mejorar el código, lo que lleva a posibles vulnerabilidades que pueden pasar desapercibidas y sin corregir, lo que compromete la seguridad del software.

Incluso cuando se llevan a cabo auditorías internas, los sesgos o la supervisión inherentes pueden resultar en la falta de ciertos defectos. Además, si un tercero tiene como objetivo verificar la seguridad del software, no puede hacerlo directamente debido a la falta de disponibilidad del código fuente. Por lo tanto, se ven obligados a confiar en las afirmaciones hechas por la compañía de software o cualquier auditoría externa encargada. Este modelo opaco contrasta significativamente con la transparencia del software de código abierto, acentuando el papel vital que desempeñan la apertura y la participación de la comunidad en la seguridad del software.

Diferenciar el software de código abierto del software de dominio público

El software de código abierto y de dominio público a menudo se confunde, pero tiene claras implicaciones con respecto al desarrollo de software, las licencias y la seguridad. Las leyes de derechos de autor protegen el software de código abierto, y los permisos para usar, modificar y distribuir se conceden bajo licencias específicas (GNU GPL, Apache, MIT, etc.). Por el contrario, el software de dominio público no tiene derechos de autor, ya que el autor ha renunciado intencionalmente a los derechos de autor o ha caducado. Cualquiera puede usar, modificar y distribuir software de dominio público sin restricciones (Ghosh et al., 2005).

Protecciones legales en software de código abierto

El software de código abierto puede conservar protecciones legales como patentes y derechos de base de datos. Las patentes de software pueden proteger ciertos aspectos del software, como algoritmos o metodologías, del uso no autorizado. Los derechos de la base de datos pueden proteger la estructura, la disposición y el ensamblaje de los datos dentro de una base de datos utilizada en el software. A pesar de estas protecciones, el código fuente sigue siendo revisable públicamente, un aspecto vital de la seguridad en OSS. La transparencia permite a la comunidad de seguridad y a las partes interesadas auditar el código, asegurando que los protocolos de software se ejecuten según lo prometido y que no existan códigos maliciosos ocultos o puertas traseras (Riehle, 2007).

Conclusión

En el software de código abierto, existe una intersección única entre la transparencia y la protección legal, que proporciona una plataforma segura e innovadora para el desarrollo de software. La accesibilidad para la auditoría, agravada por la seguridad que ofrecen las licencias, las patentes y los derechos de base de datos, genera un ecosistema vibrante que fomenta la confianza de los usuarios, la seguridad del software y la innovación continua. Bitcoin sirve como un poderoso ejemplo de este espíritu de código abierto. Lanzado bajo una licencia del MIT, Bitcoin no invita a la modificación de su protocolo, ya que el protocolo está “fijeto en piedra”. Sin embargo, la transparencia de su naturaleza de código abierto promueve la confianza, que es el principio fundamental de Bitcoin. Al hacer que el protocolo se abra, puede ser auditado y revisado por cualquier persona, lo que mejora la transparencia y, por lo tanto, fomenta la confianza. Cada transacción dentro de la red Bitcoin es verificable debido a esta naturaleza de código abierto, lo que permite a los usuarios confiar en el sistema sin depender de una autoridad de confianza.

Por lo tanto, como lo ejemplifica Bitcoin, el modelo de código abierto demuestra cómo la transparencia y las protecciones legales adecuadas pueden cultivar un entorno de confianza y seguridad. Destaca la fuerza del código abierto no solo en el desarrollo de software, sino también en la creación de sistemas digitales de confianza. Subraya la premisa de que la confianza que permite la transparencia de código abierto es fundamental en el mundo cada vez más digital.

Bibliografía anotada

Aksulu, A., Wade, M., & Schulich School of Business, Universidad de York. (2010). Una revisión exhaustiva y síntesis de la investigación de código abierto. Revista de la Asociación de Sistemas de Información, 11(11), 576-656.https://doi.org/10.17705/1jais.

Aksulu et al. (2010) han llevado a cabo una revisión sustancial de la literatura de la investigación existente en software de código abierto (OSS). Este documento examina y sintetiza una amplia gama de investigaciones sobre OSS, ofreciendo una visión general completa de lo que se ha estudiado y qué conclusiones se han sacado. El objetivo del documento es a menudo combinar estudios de investigación dispares en una narrativa o marco cohesivo, resaltar áreas de consenso, identificar hallazgos contradictorios y señalar lagunas o áreas para la investigación futura.

Los autores revisan los diversos aspectos de OSS, como sus modelos de desarrollo, la estructura comunitaria, la sostenibilidad, los modelos económicos y de negocio, las motivaciones de los usuarios y los desarrolladores, los problemas legales y de licencias, y el impacto en la innovación, por nombrar solo algunos. Al analizar estas diversas facetas de OSS, los autores podrían proporcionar una visión holística del estado actual de la investigación de código abierto.

La naturaleza integral de esta revisión ofrece un esquema de metaanálisis o clasificación para la investigación sobre OSS, identificando temas clave o flujos de investigación. Esto puede ayudar a otros investigadores a navegar mejor por el panorama de la investigación de OSS e identificar oportunidades para la investigación futura. Por último, el documento puede concluir destacando los hallazgos significativos, discutiendo las implicaciones de este cuerpo de investigación y proponiendo futuras direcciones de investigación en el campo de la OSS.

Ghosh, R. A., Glott, R., Krieger, B., & Robles, G. (2005). Desarrolladores de software libre: quién, cómo y por qué. En La Economía de la Sociedad Digital (p. 152). Edward Elgar.https://www.elgaronline.com/display/9781843767749.xml#page=168

Ghosh et al. (2005) exploran la demografía, las motivaciones y las metodologías de los desarrolladores involucrados en proyectos de software libre. “Quién” se refiere a la demografía de los desarrolladores de software libre. Los autores proporcionan información sobre la distribución geográfica, los antecedentes educativos, el estado profesional y el nivel de experiencia de los desarrolladores. Esto crea un perfil completo de los contribuyentes típicos de proyectos de software libre.

El “cómo” profundiza en los procesos y métodos que estos desarrolladores adoptan en su contribución al software libre. Esto abarca todo, desde el aprendizaje y la adaptación a los nuevos lenguajes de codificación, la colaboración con otros desarrolladores y la coordinación de su trabajo, hasta el manejo del control de versiones, el seguimiento de errores y otros aspectos de desarrollo y mantenimiento de software.

El “por qué” se relaciona con las motivaciones que impulsan a estos desarrolladores a contribuir al software libre. Las motivaciones pueden variar desde las creencias ideológicas sobre la libertad del software, el deseo de reconocimiento por pares, las oportunidades de aprendizaje y mejora de habilidades hasta posibles beneficios profesionales. Los autores exploran estos factores motivacionales y cómo influyen en la participación y el comportamiento de contribución de los desarrolladores en los proyectos de software libre.

Ghosh et al. (2005) se basan en encuestas, entrevistas, estudios de casos y métodos de investigación similares para recopilar datos sobre estos aspectos. Los resultados proporcionan información valiosa sobre los aspectos humanos del desarrollo de software libre, que puede ser crucial para comprender y gestionar proyectos de software libre.

Leicht, N. (2018). Dados suficientes globos oculares, todos los errores son superficiales: una revisión de la literatura para el uso del crowdsourcing en las pruebas de software. http://hdl.handle.net/10125/50404

Leicht (2018) llevó a cabo una revisión de la literatura sobre el uso del crowdsourcing en las pruebas de software. El título cita “La Ley de Linus”, un concepto acreditado a Linus Torvalds que afirma: “Dados los suficientes globos oculares, todos los insectos son superficiales”. Este principio subraya el poder de la revisión colectiva y la resolución de problemas que a menudo se ve en las comunidades de software de código abierto.

En las pruebas de software, el crowdsourcing implica aprovechar un grupo grande y diverso de personas (la “multitud”) para realizar tareas como identificar errores, mejorar la calidad del código o incluso crear nuevas características. Leicht (2018) revisa la investigación existente para analizar tendencias, identificar estrategias exitosas y comprender los desafíos potenciales. El autor explora las diversas formas de pruebas de software de colaboración colectiva, como las pruebas beta, los programas de recompensas por errores y la revisión de código público. Estos modelos se basan en la inteligencia colectiva y la diversidad de la multitud para detectar y abordar los problemas de software de manera más efectiva y eficiente de lo que podría hacer un solo probador o un equipo pequeño y dedicado.

Leicht (2018) también analiza los beneficios de las pruebas de colaboración colectiva, que incluyen su escalabilidad, diversidad y rentabilidad. Las pruebas de colaboración colectiva pueden cubrir muchos entornos de sistema y casos de uso, descubriendo problemas que podrían perderse en los procesos de prueba tradicionales. También suele ser menos costoso que mantener un gran equipo de pruebas interno. Sin embargo, las pruebas de colaboración colectiva también tienen desafíos, y Leicht (2018) los abordó. Estos desafíos incluyen la variabilidad en la experiencia de los probadores, los problemas con la gestión y coordinación de un público grande y distribuido, y el mantenimiento de la motivación de los contribuyentes voluntarios. Finalmente, el documento de Leicht (2018) proporcionó información sobre las direcciones futuras de la investigación en las pruebas de colaboración colectiva basadas en las lagunas identificadas en el cuerpo actual de la literatura.

Riehle, D. (2007). La motivación económica del software de código abierto: Perspectivas de las partes interesadas. Computadora, 40(4), 25-32.https://doi.org/10.1109/MC.2007.147

Reihle (2007) investiga los incentivos económicos que impulsan a las partes interesadas a participar en el desarrollo de software de código abierto y en la comunidad. Las partes interesadas en el desarrollo de software de código abierto suelen incluir colaboradores individuales, organizaciones (como empresas o instituciones académicas) y usuarios finales que interactúan con el software y se benefician de él de diferentes maneras.

Riehle (2007) investiga las motivaciones específicas de estas diversas partes interesadas. Los contribuyentes individuales, por ejemplo, podrían estar motivados por las perspectivas de aprendizaje, el reconocimiento entre pares, el avance profesional o la satisfacción intrínseca de contribuir a un bien público. Las organizaciones, por otro lado, podrían participar con el software de código abierto para reducir los costos, estimular la innovación, obtener ventajas estratégicas o como una forma de contribuir de nuevo a la comunidad.

El estudio de Riehle (2007) también cubre las implicaciones económicas del modelo de desarrollo de código abierto, incluido su impacto en la competencia del mercado, los modelos de negocio y el ecosistema de software más amplio. El software de código abierto puede interrumpir la dinámica tradicional del mercado ofreciendo alternativas gratuitas, estimulando la innovación y fomentando un entorno en el que el conocimiento y los recursos se comparten libremente, incluso cuando el control de los derechos de propiedad se utiliza y se ofrecen controles.

Además, el documento aborda cómo el modelo de código abierto crea valor y cómo se distribuye este valor entre las partes interesadas. Los proyectos de código abierto pueden generar valor económico de muchas maneras, como ofrecer servicios de consultoría o soporte, cobrar por características adicionales o versiones premium, publicidad y más. En resumen, el documento de Riehle (2007) examina la economía del código abierto desde múltiples perspectivas, teniendo en cuenta las motivaciones individuales y colectivas que impulsan la participación en las comunidades de código abierto y los impactos económicos más amplios del movimiento del código abierto.

Zhao, L., y Elbaum, S. (2003). Garantía de calidad bajo el modelo de desarrollo de código abierto. Journal of Systems and Software, 66(1), 65-75.https://doi.org/10.1016/S0164-1212(02)00064-X

Zhao y Elbaum (2003) exploran las formas únicas en que se logra la garantía de calidad dentro del desarrollo de software de código abierto. La garantía de calidad, un proceso que garantiza que un producto o servicio cumpla con los requisitos específicos y las expectativas del cliente, es un aspecto crucial de cualquier proceso de desarrollo de software, incluidos los proyectos de código abierto. En el desarrollo de código abierto, la garantía de calidad a menudo se basa en la supervisión y los esfuerzos colectivos de una comunidad diversa y distribuida de desarrolladores y usuarios.

En su estudio, Zhao y Elbaum (2003) discuten cómo la transparencia inherente del modelo de código abierto mejora la garantía de calidad. La accesibilidad abierta del código fuente para su revisión y modificación permite a numerosos “globos oculares” inspeccionar el código en busca de errores, errores o vulnerabilidades, y este escrutinio de amplio alcance puede resultar en una identificación y rectificación rápida y efectiva de los problemas. Este fenómeno a menudo está encapsulado en la Ley de Linus, que lleva el nombre de Linus Torvalds, el creador de Linux: “Dados los suficientes globos oculares, todos los errores son superficiales”.

Los autores también investigan las estrategias y herramientas utilizadas en el desarrollo de código abierto para mantener y mejorar la calidad del software. Estos incluyen sistemas de control de versiones, herramientas de seguimiento de errores, mecanismos de revisión de código, marcos de prueba y sistemas de integración continua. A través de estos mecanismos, los problemas no solo se detectan, sino que también se documentan y rastrean sistemáticamente hasta que se resuelven, lo que lleva a una mejora continua de la calidad del software.

Sin embargo, el modelo de código abierto también plantea desafíos únicos para el aseguramiento de la calidad. La falta de control centralizado, la experiencia de los desarrolladores y la variabilidad de la participación, y el potencial de “forjar” el software en diferentes versiones pueden complicar los esfuerzos de garantía de calidad. Zhao y Elbaum (2003) ofrecen información sobre cómo se abordan estos desafíos dentro de la comunidad de código abierto, posiblemente a través de mecanismos de gobernanza comunitaria, gestión de proyectos y el cultivo de un espíritu colaborativo. Por último, los autores ofrecen información comparativa sobre las diferencias entre la garantía de calidad en los modelos de desarrollo de código abierto y de código cerrado patentados, subrayando las fortalezas y los desafíos de cada enfoque.

Referencias

Aksulu, A., Wade, M., & Schulich School of Business, Universidad de York. (2010). Una revisión exhaustiva y síntesis de la investigación de código abierto. Revista de la Asociación de Sistemas de Información, 11(11), 576-656.https://doi.org/10.17705/1jais.00245

Ghosh, R. A., Glott, R., Krieger, B., & Robles, G. (2005). Desarrolladores de software libre: quién, cómo y por qué. En La Economía de la Sociedad Digital (p. 152). Edward Elgar.https://www.elgaronline.com/display/9781843767749.xml#page=168

Leicht, N. (2018). Dados suficientes globos oculares, todos los errores son superficiales: una revisión de la literatura para el uso del crowdsourcing en las pruebas de software. http://hdl.handle.net/10125/50404

Riehle, D. (2007). La motivación económica del software de código abierto: Perspectivas de las partes interesadas. Computadora, 40(4), 25-32.https://doi.org/10.1109/MC.2007.147

Zhao, L., y Elbaum, S. (2003). Garantía de calidad bajo el modelo de desarrollo de código abierto. Journal of Systems and Software, 66(1), 65-75.https://doi.org/10.1016/S0164-1212(02)00064-X

[https://craigwright.net/blog/bitcoin-blockchain-tech/paper-synthesis-open-source-software-trust-security-and-legal-protections/](http://Paper Synthesis: Open Source Software: Trust, Security, and Legal Protections)