Está de moda la filosofía del trabajo colaborativo. El código abierto, también conocido como open source, pretende fomentar el conocimiento, porque ofrece el código fuente y el usuario lo puede transformar e incluso redistribuir, siempre según los tipos de licenciamiento que se suscriban. Hay un miedo a que el código abierto sea un coladero de virus y ataques de ciberdelincuentes. Y el peligro existe. Pero también otras certezas, como que Android tiene el código abierto y lo llevan millones de personas en sus teléfonos.
El código abierto es un modelo de desarrollo de software donde todo el mundo puede participar en la evolución del código original de la aplicación o el sistema. Es accesible para todos, todos lo pueden ver, analizar y modificar si esos cambios son aceptados por la comunidad para las siguientes versiones.
“Mucho software que utilizamos está apoyado en código abierto, pero lo desconocemos. Por ejemplo, Linux, el buque insignia del código abierto, que comenzó como algo residual diseñado por un programador y luego se ha ampliado gracias a una poderosa comunidad hasta convertirse en el sistema operativo mundial de referencia para la gestión de servidores. También se utiliza en el mundo educativo el código abierto, con Moodle”, explica Juan Manuel Cigarrán Recuero, docente de la Escuela Técnica Superior de Ingeniería Informática de la UNED.
La amenaza de los ciberdelincuentes
Una de las amenazas que se ciernen sobre el código abierto es la previsible facilidad de los ciberdelincuentes para introducirse en ese código, modificarlo y acceder a los ordenadores que instalen ese software. La realidad es que no resulta una vía sencilla, porque existe una comunidad que verifica cualquier paso que se da. Pero el hecho de que posibles asaltantes tengan acceso al código les permite preparar ataques sin necesidad de incluir virus en el propio software.
“El código se puede deteriorar si falla la comunidad, el proyecto se desinfla y pierde la calidad porque no tiene continuidad debido a la obsolescencia, falta de recursos o falta de interés”, aclara Cigarrán. Otro de los riesgos habitualmente esgrimidos es que puede poner en riesgo la privacidad. Aunque solo es visible el código fuente, no los datos de la empresa o del usuario.
“Pero si quieren entrar, te van a entrar. El problema no está en el software que tienes instalado en el ordenador sino en lo que puedes valer para un hacker”, añade Cigarrán.
Envenenamiento del código
Cualquier usuario del código abierto de un sistema o una aplicación que detecte una anomalía de seguridad tiene dos posibilidades: avisar a los desarrolladores o no reportar la información y explotar ese fallo. Pero no es tan sencillo el ataque. Depende del tamaño de la empresa creadora. “Un hacker puede introducir un código malicioso en el repositorio del software libre, lo que se denomina envenenamiento del código. En los proyectos grandes, donde hay muchos desarrolladores, es fácil que alguien se dé cuenta. Aunque en un repositorio privado de una pequeña organización si se envenena el código es posible que no se entere nadie”, aclara el experto Ramón Rodríguez. Para limitar los riesgos de sufrir un ataque es aconsejable seguir las noticias de la comunidad y estar al tanto de las actualizaciones y las mejoras.
Quizá la vulnerabilidad de código abierto más perjudicial de los últimos años ha sido Log4Shell. La brecha fue detectada el 24 de noviembre de 2021, pero no fue hasta el 9 de diciembre cuando se informó de ello a gran escala. El software afectado era una librería open source de Java, Log4j, puesta en marcha por un programador vinculado a la Apache Software Foundation. Su función consiste en registrar la actividad y hallar errores en un programa. Esta vulnerabilidad dejaba la puerta abierta a un tercero a ejecutar código en un equipo ajeno de forma remota.
Existen, además, vulnerabilidades que se prologan en el tiempo, como lo que ocurrió con el lenguaje de programación Python: más de 15 años con cientos de miles de afectados. Se calcula que ha afectado a más de 350.000 repositorios de código abierto desde que fue detectada en 2007.
Otras amenazas a tener en cuenta
La falta de estándares unificados perjudica el desarrollo del código abierto, porque cada iniciativa se trabaja de una manera distinta. Otras amenazas del código abierto son las posibles bifurcaciones de un proyecto, la abundancia de la tipología de licencias (200 y creciendo) y la supervisión difusa de algunos procesos por parte de los desarrolladores.
Los factores psicológicos cuentan. Empresas y usuarios consideran que puede tener poca calidad o brecha en la seguridad, porque piensan que “lo gratis sale caro” y no tiene las garantías necesarias. “Pero no se debe confundir código abierto o software libre con software gratis. Puede serlo, pero no tiene por qué. De hecho, grandes compañías como Adobe, Microsoft o Google te ofrecen software libre para abrir boca, y luego terminas adquiriendo la versión de pago”, aclara Rodríguez.
El código que no es abierto, el propietario, como por ejemplo Windows, expone las vulnerabilidades que Microsoft descubre en su sistema operativo y en sus aplicaciones. Informa de estas brechas y publica el parche a continuación. Los hackers explotan esas vulnerabilidades si el usuario no actualiza el sistema operativo o no se han puesto los parches.
Ventajas del código abierto
Entre las ventajas, se suele citar su coste cero o escaso, que se puede contribuir a perfeccionarlo o incluso customizarlo según necesidades o gustos. Existe una infinidad de programas de código abierto para todos los propósitos, entre ellos la seguridad informática. Aunque puede parecer un contrasentido esta última utilidad citada, la filosofía de este software se encarga de disolver la posible contradicción. “Si yo hago una aplicación y tengo una comunidad de 200.000 personas que me revisan el código, es razonablemente seguro”, asevera Rodríguez. Wireshark (un monitor de red muy conocido por administradores de redes) es un ejemplo de herramienta de seguridad open source.
También se destacan otras bondades como su flexibilidad, sus posibilidades y la limitación de la dependencia del proveedor. Las administraciones públicas usan con frecuencia el software de código abierto por esta flexibilidad, que hace posible la implementación de funciones propias que luego pueden ser adoptadas por otro organismo.