Python, el lenguaje de la ciberseguridad
- Reportajes
Creado por Guido van Rossum entre 1985 y 1990, Python es uno de los lenguajes de programación más versátiles. Dicen de él que es fácil de aprender, con una depuración fácil y un uso amplio. Gusta tanto a los buenos como a los malos, es de código abierto y no te lo puedes perder
Según Wikipedia el nombre del lenguaje proviene de la afición de su creador, Guido van Rossum, por los humoristas británicos Monty Python. Explican los expertos que todo buen profesional de ciberseguridad debe conocer un lenguaje como Python.
Este conenido fue publicado en el número de Mayo de la revista IT Digital Security, disponible desde este enlace.
Se ha hecho muy popular debido a la propia legibilidad del código, una sintaxis clara y simple y la disponibilidad de una gran cantidad de bibliotecas, de forma que sea cual sea la tarea a realiza, siempre podrá completarse con Python. En todo caso, ¿para qué sirve la programación en ciberseguridad? Se lo hemos preguntado a Santiago Moral, director del DCNC Sciences. Dice este experto que para resolver problemas específicos en materia de seguridad es necesario contar con los datos, que son el origen de cualquier solución a cualquier problema en materia de ciberseguridad. Explica Santiago Moral que el tratamiento de los datos se puede comprar hecho, lo que cubriría el 90% de lo que se necesite, “pero siempre habrá una parte muy específica de tus problemas que te tienes tú que encargar”. Y ahí es donde entra Python, “el lenguaje de programación ahora mismo más abierto y más multipropósito, y con una colección importantísima de librerías ya hechas, tanto para resolver problemas de seguridad, como para aplicar modelos científicos de machine learning para resolver problemas de ciber. Esa es la ventaja de Python”, dice el directivo.
De forma que ya ven, Python se ha convertido en la mejor opción para los profesionales de la seguridad cibernética porque reduce el esfuerzo de desarrollo y la curva de aprendizaje del programador.
Para Revel Yusuf, Python Deeveloper (Backend) en DTMWeb, “la estructura simple y limpia de Python, el diseño modular y la extensa biblioteca lo hacen ideal para aplicaciones de seguridad. Ningún otro idioma ofrece una combinación tan poderosa, y Python es el idioma que debe conocer el profesional de seguridad serio”. Y, sin embargo, el uso de Python no sólo se limita a unos poco paquetes y productos de software, ya que se pude encontrar en numerosos productos web como Google, YouTube o Quora. Presente en el mercado desde hace más de dos décadas y aunque ahora se ha convertido en uno de los más populares entre los expertos de la ciberseguridad, Python es utilizado para una amplia variedad de aplicaciones informáticas de alto rendimiento por parte de varios gigantes corporativos, como Microsoft, Google, Red Hat, IBM o Amazon.
Dice Santiago Moral que, aunque se puede aplicar a muchísimas cosas, Python es especialmente interesante en ciberseguridad. Explica que cuando la programación en seguridad está muy basada en datos, por lo que se necesitan lenguajes de programación que sean capaces de correr en plataformas de biga data, donde puede haber volúmenes de datos ingentes para la búsqueda de anomalía, de buscar cosas que no se comportan como deberían; “para esa búsqueda de anomalías, Python tiene mucho más desarrolladas las librerías analíticas y de machine learning que otros lenguajes porque Pythons es un lenguaje muy de científico de datos y por eso hay muchas librerías ya preparadas que te hacen gran parte del trabajo. De forma que cuando arrancan Python ya tienes una serie de librerías de datos y de ciber que te permite avanzar muy deprisa”.
Otros expertos apuntan también como ventaja de Python que, al ser un lenguaje orientado a objetos, su aprendizaje permite ganar entendimiento sobre otros similares, como Java, C++ and C#.
Su capacidad de automatizar tareas repetitivas ha convertido a Python en uno de los lenguajes favoritos para explotación de vulnerabilidades. Tanto los ciberdelincuentes como los pentesters recurren a él con este objetivo. Por ejemplo, Python se puede utilizar para comprobar si existe una vulnerabilidad en alguna de las máquinas conectadas a una red, sin tener que ir examinándolas una por una.
El diseño modular de Python, su sencillez y sus excelentes librerías para computación científica hacen de este lenguaje un favorito también para los analistas de datos, que pueden usarlo para generar análisis estadísticos y generar gráficos de manera rápida y con gran facilidad.
Preguntamos también a Santiago Moral qué diferencia a Python de Java, que es también otro lenguaje muy popular. Nos explica que Java tiene, en general, varias complejidades. Empieza mencionando que se trata de un lenguaje en el que todo, absolutamente todo, son objetos de forma que la barrera de entrada, aprender a programar en Java es más complejo, más difícil; “se le tienen que dedicar muchas más horas que aprender a programar en Python, donde tienes entornos interpretados en los que empiezas a escribir y se empieza a ejecutar”. Y desde el punto de vista de librería científicas, aunque Java tiene muchas, “la comunidad científica se ha decantado mucho más por Python, y eso hace que este lenguaje tenga mucha más librería científica, y por lo tanto mucha más librería de ciberseguridad que tiene Java en estos momentos”.
El DCNC Sciences, que recientemente finalizó el primer módulo de su Máster Data, Complex Networks and Cybersecurity Sciences, “Learning Path: Cybersecurity Fundamentals”, está a punto de iniciar un segundo módulo “Learning Path: Introduction to Python”, con el objetivo de que puedan familiarizarse con el mundo y los conceptos básicos de este lenguaje de programación.