Seis lenguajes esenciales para expertos en ciberseguridad

El último año ha sido una fiesta para los cibercriminales, quienes no solo aumentaron el volumen de ataques sino también mejoraron su complejidad y técnicas de infiltración. Si ellos hicieron la tarea, es fundamental que los profesionistas de las tecnologías de la información y la seguridad también perfeccionen sus habilidades. Esta lista abarca algunas de las principales herramientas necesarias para que recorran ese camino.

Pero no solo se trata de proteger el negocio. La demanda por expertos en seguridad está en un peak histórico y pueden obtener grandes beneficios laborales. En un reciente vTalk se reveló que 70% de los estudiantes de programación o desarrollo terminarán trabajando en ciberseguridad.

Actualmente, en Estados Unidos, un desarrollador de software percibe en promedio $110,140 dólares al año, o $52.95 dólares por hora, de acuerdo con el U. S. Bureau of Labor Statistics. En un rango ligeramente superior, el ingeniero de software está dentro de los ocho empleos IT con mayor demanda este año y, de acuerdo con la Technology Salary Guide 2021, obtiene ingresos que rondan los $123,250 dólares al año.

Algunas instituciones educativas recomiendan que los profesionales en ciberseguridad aprendan determinados lenguajes de programación. Los más mencionados son Python, secuencias de comandos Shell, HTML, JavaScript, SQL y Ruby. Cuatro de ellos aparecen en el top ten de la edición 2021 del Índice TIOBE, que mide la popularidad de los lenguajes de programación. Cuatro —aunque no los mismos— están en la lista de los 10 lenguajes de programación con mayor demanda para este año:

  1. Python:Forma parte del grupo de “lenguajes de propósito general”. Funciona en prácticamente cualquier tarea de desarrollo de software. Es un lenguaje para scripting, en él no existen pasos intermedios de compilación como sucede en otros lenguajes. Los programas en Python son más simples, pequeños y flexibles que sus equivalentes en lenguajes como C, C++ o Java.
    Casi desde su concepción, es un lenguaje orientado a objetos, pero al ser multiparadigma también permite programar en un modelo imperativo y, en menor medida, soporta programación funcional.
    En el mercado hay múltiples cursos, como el de “Programación para todos (empezando con Python)”, de la Universidad de Michigan o “Python: aprender a programar”, de la Universidad Politécnica de Valencia. Un buen punto de partida son los tutoriales básicos en LearnPython.org
  2. Secuencias de comandos Shell: El intérprete de comandos es un programa que permite que los usuarios interactúen con el sistema y procesen las órdenes que se le indican. Los comandos pueden clasificarse en internos, es decir, órdenes interpretadas por el propio shell, y externos, que son ficheros ejecutables externos al shell. Los comandos ofrecen elementos para mejorar su funcionalidad, como variables, funciones o estructuras de control.
    Con ellos, los desarrolladores pueden escribir secuencias de comandos automatizadas para realizar muchas tareas de rutina. Para quien usa un sistema operativo Linux o Mac la opción son lenguajes de script de Shell de Linux, como Bash. Para quienes prefieren Windows está PowerShell.
    Una opción para comenzar e “Shell Programming – A necessity for all Programmers”, ofrecido por ITT Bombay.
  3. HTML: El lenguaje de marcado de hipertexto, HTML, es el código que se utiliza para estructurar y desplegar una página web contenidos. Aunque no se considera propiamente un lenguaje de programación, su conocimiento representa una habilidad básica para los profesionales de ciberseguridad pues para diferentes ataques a sitios web, los atacantes suelen incrustar código malicioso usando HTML.
    Un curso para comenzar este aprendizaje puede ser “HTML5 Coding Essentials and Best Practices”, que imparte W3C.
  4. JavaScript: Es un lenguaje de secuencias de comandos que permite implementar funciones complejas en páginas web, como serían rastrear la actividad del usuario, desplegar mapas interactivos, animación 2D y 3D, desplazamiento de máquinas reproductoras de video, entre otras. Funciona en los navegadores de forma nativa, no necesita compilación.
    JavaScript es un lenguaje orientado a objetos que permite almacenar valores útiles dentro de variables, hacer operaciones sobre fragmentos de texto y ejecutar código como respuesta a determinados eventos que ocurren en una página web.
    Una opción para aprenderlo es el curso “Programming for the Web with JavaScript”, de la Universidad de Pennsylvania.
  5. SQL: Este es el lenguaje de consulta estructurada (SQL, por sus siglas en inglés). Fue diseñado para administrar y recuperar información de sistemas de gestión de bases de datos relacionales. Un solo comando SQL equivale a cientos de líneas de código que tendrían que utilizarse en un lenguaje orientado a registros. Al manejar conjuntos de registros, ofrece alta productividad en la codificación.
    Entre sus ventajas está que es un lenguaje universal, todas las bases de datos relacionales usan este lenguaje como base y desde los años 70 ha sido un lenguaje estable. Conocerlo permite detectar acciones de los atacantes, quienes lo usan para robar información confidencial, interrumpir los almacenes de datos y realizar ataques basados ​​en la web.
    Actualmente edX tiene abierto el curso “Introduction to SQL”, que ofrece Davidson College.
  6. Ruby: Su creador, Yukihiro Matsumoto, mezcló elementos de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada y Lisp) para formar uno nuevo que incorporara programación funcional e imperativa. La intención de Matsumoto era crear un lenguaje que fuera más poderoso que Perl y más orientado a objetos que Python.
    En Ruby todo se considera un objeto. A cualquier información y código se les puede asignar propiedades y acciones. Ruby es un proyecto open-source, es gratuito. Sus usuarios son libres para usarlo, copiarlo, modificarlo y distribuirlo. Gracias a su framework Ruby On Rails, compañías como AirBnB, Couchsurfing o Spotify lo han utilizado como lenguaje de programación que permite a los desarrolladores crear productos en poco tiempo.
    Para aprenderlo existen opciones como “Desarrollo de aplicaciones web: Conceptos básicos”, ofrecido por la Universidad de Nuevo Mexico, o “Ruby Scripting for DevOps”, proyecto guiado por Coursera.

De acuerdo con LinkedIn, dos de los 15 empleos emergentes del año pasado están relacionados con esta temática: Especialista en ciberseguridad y desarrollador de JavaScript. La oportunidad está ahí, ¿por qué no comenzar a aprender alguno de estos lenguajes?

Reportera de tecnología. Suele buscar temas de innovación, nuevas aplicaciones IT y seguridad de la información. Periodista por la UNAM; estudió Marketing en el ITAM y Branding en la Universidad de Bogotá Jorge Tadeo Lozano. Storyteller apasionada por la astronomía.

Related posts

Deja un comentario