¿Usas programas OpenSource? Cuidado, el 70% de ellos son vulnerables

¿Usas programas OpenSource? Cuidado, el 70% de ellos son vulnerables

Rubén Velasco

No podemos negar que el código abierto forma una parte muy importante de la informática. Seguro que todos usamos programas de código abierto en nuestro día a día, como VLC, GIMP, LibreOffice, VirtualBox, Jdownloader o PeaZip, por mencionar algunos. Estos programas, a menudo, suelen ofrecer las mismas características que los programas de pago, pero sin tener que pagar nada. Suelen ser excelentes alternativas al software comercial, sobre todo para uso doméstico. Sin embargo, puede que, aunque sean gratis, estemos pagando un precio muy alto por decidirnos a usarlas.

Una de las ventajas de los programas de código abierto es que cualquiera puede leer el código, auditarlo e incluso colaborar en el desarrollo de funciones o la mejora de la seguridad. Sin embargo, la mayor parte de los programas OpenSource, por comodidad, reutilizan librerías y APIs que, si se tuvieran que desarrollar desde cero, llevaría mucho trabajo.

Un estudio, llevado a cabo por la plataforma Veracode, demuestra que hay una gran cantidad de programas de código abierto que reutilizan librerías también libres. Y muchas de estas librerías, aunque funcionan, tienen graves problemas de seguridad. Y no solo eso, sino que cada librería usa, a su vez, una gran cantidad de dependencias también de código abierto. El fallo de seguridad puede estar en cualquier parte.

Librerías código abierto PeaZip

Simplemente por implementar dicha librería dentro del programa estamos poniendo en peligro la seguridad de los usuarios que lo instalen si no estamos seguros de que la librería, y todas sus dependencias, son totalmente seguras.

Los lenguajes de programación más vulnerables

Un fallo de seguridad en un programa puede estar en cualquier lado, tanto en el propio código original como en cualquiera de las librerías, dependencias o APIs reutilizadas. Pero es cierto que algunos lenguajes de programación, debido a sus dependencias transitivas, tienen más probabilidades de ser vulnerables que otros. Por ejemplo, los programas escritos en JavaScript, Ruby y PHP, por ejemplo, tienen mayor probabilidad de ser vulnerables que otros.

También se destaca en el informe que no todas las vulnerabilidades son públicas y tienen sus propios CVE. Esto implica que, aunque un desarrollador controle los CVE de sus programas y librerías, esto puede no ser suficiente para mantener su programa seguro. Sin ir más lejos, el 61% de las vulnerabilidades de JavaScript vienen de librerías mal programadas, y estas no tienen ningún código CVE asignado.

Los programas privativos también reutilizan código abierto

No solo el software libre reutiliza código. Hay una gran cantidad de programas comerciales, privativos, que, también por comodidad, recurren a estas librerías de código abierto (u otras privativas, tras pagar la licencia) para ahorrarse el trabajo de tener que programar ciertas funciones o APIs.

Esta es una de las principales razones por las que el software privativo, gratis o de pago, también es vulnerable por esto mismo. Igual que ocurre con el software de código abierto, cuando una empresa introduce una librería libre dentro de un programa, está introduciendo sus posibles vulnerabilidades, y las posibles vulnerabilidades de todas las dependencias de dicha librería. Y en este caso es más peligroso, ya que el software privativo no se puede auditar tan fácilmente como el software libre.

Actualizar siempre los programas

Mantener los programas actualizados y seguros no siempre depende de nosotros. Puede que el desarrollador de un programa lance una nueva versión de un determinado software y nosotros bajemos e instalemos el programa rápidamente. Sin embargo, si la nueva versión sigue usando una librería obsoleta en lugar de una nueva, seguiremos en peligro.

Para que un programa de código abierto sea seguro tienen que trabajar las dos partes. Por un lado el desarrollador, quien debe mantener su programa, y todas las librerías y APIs de las que dependa, actualizadas a sus versiones más recientes, supuestamente seguras. Si una librería es insegura, o está ya obsoleta, debe actualizar el programa para incluir una nueva librería que haga lo mismo, pero de forma segura.

Cuando el desarrollador cumple su labor, ya es responsabilidad nuestra bajar la nueva versión e instalarla en nuestro PC. Y además tendremos que hacerlo desde su página web principal o desde páginas de descarga fiables. Solo así podremos estar seguros al usar software libre.