Los riesgos de implementar software de seguridad open-source

Los riesgos de implementar software de seguridad open-source

Lorena Fernández

Durante los últimos años, la adopción de soluciones open-source ha crecido muchísimo. Cuenta con múltiples ventajas. Una de ellas, en muchos casos, es el bajo o nulo coste que tiene, otra se refiere a la posibilidad de contribuir a su mejora o bien, personalizarlo para que se ajuste a tus necesidades. Sin embargo, es bueno no dejar de lado los riesgos que implica su adopción. A continuación, citaremos los principales problemas y qué podríamos hacer para mitigarlos.

¿Qué significa exactamente open-source? En inglés se refiere a código abierto. Quiere decir que cualquier programa que se presente como de código abierto/open-source, el código fuente se hace público. Esto, para que cualquiera pueda verlo, contribuir para su modificación y distribuirlo de acuerdo a determinadas reglas.

Haciendo énfasis en la distribución de los programas, o bien re-distribución de los mismos, esto representa una gran ventaja, sobre todo para los usuarios, quienes tendrán cada vez más opciones. Millones de personas alrededor del mundo han construido grandes comunidades de forma voluntaria para poder mantener a esos programas actualizados y funcionales para los usuarios.

Es posible encontrar múltiples listas de programas de código abierto para todo propósito, incluyendo a seguridad informática. Aunque esté demostrado que éstos, en muchos casos, son mucho más útiles y funcionales que soluciones tradicionales, debemos considerar una serie de riesgos. Nunca debemos descartar que los propios programas de seguridad podrían comprometer aun más nuestra infraestructura de red.

Exploits disponibles para todo público

Los programas de código abierto, sean o no relacionados con seguridad informática, permiten la recepción de información sobre vulnerabilidades detectadas. La persona o el grupo de personas responsable del proyecto que hace posible a un programa, recibe dicha información. Posteriormente, la analiza y pone a disposición de la comunidad cuáles son las vulnerabilidades encontradas.

Además, se publica el origen de tal vulnerabilidad y cómo es posible explotarla. En algunos casos, esta información se publica en conjunto con la publicación de actualizaciones que actúan como parche de lo que fue detectado. Por supuesto, no existen garantías de que todo aquel que haya instalado determinado programa, lo actualice al instante.

Un cibercriminal puede sacar provecho de este riesgo, ganando contexto respecto a las vulnerabilidades del programa. Puede saber qué versión del programa es afectado y encontrar la manera de identificar el número de usuarios que cuentan con dicha versión vulnerable. En consecuencia, podrá explotar esas vulnerabilidades para ejecutar todo tipo de ataques.

Para reducir al mínimo el riesgo de ser atacado por esta circunstancia, se recomienda estar al tanto de las noticias de la comunidad del programa de código abierto que hayas adoptado. Es sumamente importante saber qué actualizaciones hay, qué mejoras se han dado y mucho más. Nunca está demás recordar que el software no actualizado representa un gran riesgo de ser víctimas de ciberataques, más aún si es de código abierto.

Riesgos operacionales

La adopción de programas de código abierto no termina en su instalación e implementación. De acuerdo al portal Kali Linux Tutorials, el riesgo de optar por esta clase de programas radica en cómo, cuando y qué componentes se van a utilizar. Esto último, suponiendo que sea una solución con múltiples componentes o módulos. Los responsables de TI y/o Seguridad Informática deben garantizar que los programas sean implementados de manera homogénea y actualizar a las últimas versiones o de acuerdo al caso, aplicar los últimos parches de seguridad.

Puede darse el caso de que estés a cargo de una infraestructura más compleja y debas optar por distintas versiones de un sólo programa. Esto representa más dificultad a la hora de corroborar si es necesario o no hacer algún tipo de corrección o mejora.

Por otro lado, si hay programadores que se valen de programas de código abierto, es importante que sean conscientes de todos los riesgos de seguridad que su uso implica. Por tanto, deben tener conciencia de las buenas prácticas a la hora de trabajar con esta clase de programas. Si los programadores ignoran estos aspectos, no sólo se enfrentarán con múltiples problemas de compatibilidad y usabilidad.

Lo peor que puede pasar es que como consecuencia de las malas prácticas o el no considerar los riesgos de seguridad, es que ellos mismos sean responsables de poner en riesgo la infraestructura de la empresa. Como hemos mencionado más arriba, debemos garantizar que todo aquel que pueda manipular un programa de código abierto más allá de usuario final, sea consciente de los riesgos de manera a que todos por igual se manejen en una infraestructura segura.

Falta de estándares para su uso

Se puede afirmar sin miedo al error, que este es el riesgo más importante. Si ya nos topamos con uno o más proyectos open-source, nos habremos percatado de que no hay un estándar específico. Cada proyecto y su equipo responsable construyen uno de acuerdo al fin de dicho proyecto. Así también, cada comunidad formada por cada proyecto es responsable de garantizar que las buenas prácticas del estándar creado se cumplan y que se eviten malos usos.

Una potencial dificultad que se presenta es que los programadores responsables tienen distintos estilos a la hora de llevar a cabo sus tareas. La actividad de la programación es una de las actividades más personales conocidas en el ámbito tecnológico. La manera de documentar, qué tipo de editores de código utilizan y la clase de comentarios insertados en el código son algunas de las actividades más personales. Esto puede hacer que sea mucho más difícil identificar los problemas (bugs) y solucionarlos.

La principal recomendación a la hora de elegir programas de código abierto es asegurar que la documentación de respaldo sea de alta calidad. Debe contemplar los aspectos más importantes, desde el primer momento en que se instala el programa hasta el soporte ante problemas o errores frecuentes. Otro punto que deberíamos considerar es la actividad de la comunidad que se ha construido. ¿Esto qué quiere decir? Si los foros que dispone el programa se encuentran activos en relación a los hilos creados, la cantidad de respuestas que tienen. Si el programa cuenta con un repositorio en Github, verificar si constantemente hay comentarios en relación al código fuente o actualizaciones.

Por otro lado, si tu empresa cuenta con estándares que limitan la implementación de programas de código abierto, esto va a ser aún mucho más fácil. Esto es a raíz de que los estándares tienen documentación y procesos que nos facilitan la revisión de todos los aspectos a considerar antes de la implementación de tal o cual programa.

¿Todos estos riesgos de seguridad se presentan en programas que no son open-source? En algunos casos. ¿Conviene utilizar programas que no sean open-source? También, así como las soluciones «tradicionales» con código cerrado. Existen soluciones para cada necesidad y es sumamente importante saber que no precisamente porque sea open-source, el programa funcionará mejor o no tendrá ningún riesgo.

Y tú, ¿qué consideras que debe ser más conveniente? ¿Utilizar programas open-source o programas tradicionales? ¿Qué otros riesgos de seguridad encuentras a la hora de implementar soluciones open-source?