En el Módulo 4 de C1b3rWall Academy 2021 nos adentramos en los lenguajes de programación. Bruno Chenoll Matienzo es Ingeniero Informático por la Universidad de Granada. Participó en competiciones Capture the Flag y plataformas de hacking como HackTheBox. Además, fue Red Teamer para el banco Santander y actualmente es desarrollador backend con Python y PostgreSQL. Participa en C1b3rWall con la conferencia titulada “Oxidando a la ciberseguridad”.

El objetivo de su ponencia es concienciar acerca de los inconvenientes que supone utilizar un lenguaje de programación no seguro y exponer alternativas seguras.

Por qué los lenguajes programación clásicos no son seguros

Hablando de lenguajes de bajo nivel, uno seguro es aquel que, en tiempo de compilación, se encarga de verificar que el programador no ha cometido ningún error en cuanto al manejo de memoria. En lenguajes de alto nivel la memoria es administrada automáticamente por recolectores de basura, entonces… ¿si utilizamos lenguajes de alto nivel estamos creando programas seguros?

Ejemplo de lenguaje seguro: Rust

Rust es un lenguaje de bajo nivel que compila a código máquina como C. ¿Cómo consigue entonces Rust asegurar un manejo de memoria seguro? La respuesta es sencilla: con un método llamado «borrow checker». Este método mantiene el seguimiento de cada variable y hace las comprobaciones que haría un experto en ciberseguridad para comprobar si hay errores en memoria como «use after free», «stack overflow», «double free», «heap overflow» o «null pointers dereferences». Todas estas comprobacciones las hace en tiempo de compilación, siendo muy complicado que un programa compile con fallas de manejo de memoria.

Hay que tener en cuenta que la curva de aprendizaje en Rust es muy elevada, cuesta mucho aprender a coger maestría, aunque, una vez hecho esto, la productividad se dispara. El ecosistema es muy nuevo, faltan paquetes testeados y maduros en cuanto a tiempo y testing, además, los tiempos de compilación son elevados (debido en parte al borrow checker).

Hay varias empresas y servicios que utilizan Rust: Discord, Amazon, Facebook, Cloudflare, Microsoft, NPM, Figma, Coursera, Dropbox…

Los lenguajes de programación son todo un mundo por descubrir. Bruno nos explica cuales son los más seguros y cómo podemos implementarlos de forma eficiente. Podéis matricularos gratis aquí y conocer más sobre este tema.

Podéis leer el artículo completo en News 365.

Escrito por Juan M. Corchado

Juan Manuel Corchado (15 de Mayo de 1971, Salamanca, España) Catedrático en la Universidad de Salamanca. Ha sido Vicerrector de Investigación desde el 2013 hasta el 2017 y Director del Parque Científico de la Universidad de Salamanca. Elegido dos veces como Decano de la Facultad de Ciencias, es Doctor en Ciencias de la Computación por la Universidad de Salamanca y, además, es Doctor en Inteligencia Artificial por la University of the West of Scotland. Dirige el Grupo de Investigación Reconocido BISITE (Bioinformática, Sistemas Inteligentes y Tecnología Educativa), creado en el año 2000. Director del IOT Digital Innovation Hub y presidente del AIR Institute, J. M. Corchado también es Profesor Visitante en el Instituto Tecnológico de Osaka desde enero de 2015, Profesor visitante en la Universiti Malaysia Kelantan y Miembro del Advisory Group on Online Terrorist Propaganda of the European Counter Terrorism Centre (EUROPOL). J. M. Corchado ha sido presidente de la asociación IEEE Systems, Man and Cybernetics, y coordinador académico del Instituto Universitario de Investigación en Arte y Tecnología de la Animación de la Universidad de Salamanca e investigador en las Universidades de Paisley (UK), Vigo (Spain) y en el Plymouth Marine Laboratory (UK). En la actualidad compagina toda su actividad con la dirección de los programas de Máster en Seguridad, Animación Digital, Telefonía Movil, Dirección de Sistemas de Información, Internet de las Cosas, Social Media, Diseño e Impresión 3D, Blockchain, Z System, Industria 4.0, Gestión de Proyectos Ágiles y Smart Cities & Intelligent Buildings​, en la Universidad de Salamanca y su trabajo como editor jefe de las revistas ADCAIJ (Advances in Distributed Computing and Artificial Intelligence Journal), OJCST (Oriental Journal of Computer Science and Technology) o Electronics MDPI (Computer Science & Engineering section). J. M. Corchado desarrolla principalmente trabajos en proyectos relacionados con Inteligencia Artificial, Machine Learning, Blockchain, IoT, Fog Computing, Edge Computing, Smart Cities, Smart Grids y Análisis de sentimiento.