Las seguridad informática o ciberseguridad es una característica cada vez más indispensable cuando hablamos del sector tecnológico. Y demostrar conocimientos sobre ello puede convertirse en requisito o mejorar la empleabilidad de los estudiantes de cara a estos puestos.
En la Semana de la Empleabilidad 2021 de la UAM, Rubén García, ingeniero de datos del Instituto de Ingeniería del Conocimiento (IIC), impartió un taller técnico para programar en Python con seguridad. En concreto, dio algunos consejos prácticos y compartió herramientas para evitar y detectar vulnerabilidades cuando se programa en este lenguaje.
Un día antes, desde el stand del IIC, Ángela Ruiz, técnico de RR. HH., explicó cómo se trabaja en el IIC, las tecnologías que se utilizan o las fases del proceso de selección. Además, anunció que ya se ha retomado el programa de prácticas tras el parón por la pandemia y que continúan teletrabajando, lo que no ha sido impedimento para que se incorporen nuevas personas sin problemas. Actualmente, están disponibles ofertas de empleo relacionadas con el área de Banca.
Cómo detectar vulnerabilidades de seguridad en Python
¿Por qué es tan importante la seguridad al programar? Según explicó Rubén García, además de tratar datos que pueden ser confidenciales, en los proyectos, el desarrollador tiene el poder y la responsabilidad de escribir el código fuente que después se va a ejecutar. Por eso, es importante que, de base, sea fiable, robusto y no presente ninguna vulnerabilidad.
Además de consejos básicos como la actualización de software o hacer las copias de seguridad, ya en Python, recomendó:
- Usar entornos virtuales donde encapsular y fijar las dependencias.
- Revisar las licencias de las dependencias.
- Tener cuidado con los paquetes de código descargados y los “snippets” encontrados en foros de Internet que no sabemos si tienen vulnerabilidades.
- No dejar activado el modo Debug en entornos productivos.
- No subir nunca a los repositorios contraseñas o claves, ni siquiera en pruebas.
- Estar pendiente de las inyecciones de código.
Y es que la flexibilidad de Pyhton puede implicar que sea más vulnerable. Actualmente, existen herramientas para automatizar la detección de vulnerabilidades, tanto para analizar la seguridad del código como para analizar las vulnerabilidades de las dependencias:
- Una de ellas es Bandit, una herramienta open-source para identificar vulnerabilidades comunes en código Python.
- Mientras que Safety se utiliza para el análisis de dependencias, pudiendo comprobar también entornos virtuales.
Para ver cómo funcionan, Rubén García hizo una demostración. Ambas generan un informe de las vulnerabilidades encontradas, destacando las graves en el caso de Bandit, y ofrecen información para corregirlas.
Aunque siempre es importante estar pendientes de esos puntos débiles y del origen de lo que estamos tratando, estas herramientas ayudan y, además, se pueden integrar en sistemas DevOps. Así pues, resultan útiles para el día a día de los programadores, que pueden ir detectando vulnerabilidades mientras desarrollan y hacerlo con seguridad.