El 30 de agosto de 1907 no es una fecha cualquiera para el campo de la informática. En Cincinnati, Estados Unidos, nacía John William Mauchly, quien, entre otros grandes aportes al campo tecnológico, también fue el creador del primer lenguaje de programación de la historia.

Bajo el nombre de Short Code, Mauchly presentó, en 1949, el primer ejemplo de un lenguaje de programación de alto nivel, para que pueda ser utilizado en una computadora electrónica. Desde aquel momento, la programación ha ido evolucionando y son muchos los lenguajes que tenemos disponibles en la actualidad. A continuación, repasaremos los lenguajes de programación más empleados en ciberseguridad, destacando los principales beneficios de cada uno.

Python

La gran cantidad de herramientas y bibliotecas disponibles, la facilidad en su uso, la posibilidad de interactuar con otras tecnologías y el hecho de poseer una de las comunidades más activas de desarrolladores hacen de Phyton uno de los lenguajes más utilizados en el ámbito de la ciberseguridad, ya sea para la auditoría de ciberseguridad, la automatización de tareas, el análisis forense o el análisis de malware.

Al ser considerado un lenguaje de Scripting, nos puede resultar muy útil cuando necesitamos solucionar un problema puntual. Por ejemplo, cuando se requiere analizar una pieza de malware y extraer información de este, desencriptar su configuración, o realizar otros tipos de análisis de bajo nivel.

Es un lenguaje de programación directo y fácil, con una curva de aprendizaje mucho más corta, y, a su vez, en muchas ocasiones requiere de mucho menos código en comparación con lenguajes de programación. Al ser de código abierto, abunda información al respecto.

PHP

Si bien PHP es más usado en el desarrollo web, también hay diversas formas de aplicarlo al ámbito de la ciberseguridad. Por ejemplo, en el análisis de aplicaciones web programadas con este lenguaje, la búsqueda de vulnerabilidades, como la inyección de SQL o el cross-site scripting (XSS).

PHP también puede ser útil para identificar el comportamiento sospechoso de alguna aplicación o servidores web analizando sus registros (logs), en busca de aquellos patrones que pueden dar indicios de un compromiso o brecha de seguridad.

Por último, y si bien las posibilidades de desarrollar herramientas de seguridad en otros lenguajes son muy amplias, PHP también permite crear interfaces de usuarios web de manera personalizada o bien integrar en el panel de control diferentes funcionalidades de seguridad.

JavaScript

JavaScript, también conocido como "JS", es un lenguaje de programación interpretado, orientado a objetos, y del tipo scripting (secuencia de comandos). Es ampliamente utilizado de forma legítima en el desarrollo de distintas aplicaciones, como aplicaciones web, aplicaciones para celulares, juegos, entre otros.

Una de las posibilidades de uso de este lenguaje es el análisis de malware, que es recomendable hacerlo dentro de una máquina virtual o un ambiente aislado para evitar una posible infección sobre la computadora física. JavaScript también permite la creación de funciones que van a ser invocadas de forma inmediata, apenas se ejecute el script.

Los ciberatacantes suelen propagar códigos maliciosos desarrollados en JavaScript con un alto nivel de ofuscación para complicar el trabajo de un analista de ciberseguridad, e intentar evadir alguna solución antivirus.

SQL

Tener una buena compresión del funcionamiento de las bases de datos relacionales junto con SQL es una habilidad muy útil para aquellos que realizan auditorias de seguridad de código, pentesting o pruebas de intrusión.

SQL es un lenguaje de programación utilizado ampliamente en este tipo de bases de datos y su conocimiento puede ayudar a encontrar fallas de seguridad en el código de una aplicación, las cuales en el peor de los casos pueden generar un acceso no autorizado en una aplicación o sistema, así como también exfiltrar información sensible de manera no autorizada.

Tanto administradores como desarrolladores escriben consultas en SQL con diversos objetivos: recuperación, actualización o eliminación de información almacenada en tablas de bases de datos, entre muchas otras.

A su vez, una inyección de SQL representa uno de los ataques más frecuentes en aplicaciones web, para los cuales es necesario hacer pruebas de penetración con el objetivo de identificar y corregir estas vulnerabilidades.

PowerShell

Recurrentemente, PowerShell es utilizado para la gestión de la configuración y la automatización de tareas, y representa una muy buena opción para quienes se desenvuelven en sistemas operativos Windows.

En lo que refiere al análisis forense, PowerShell puede ser de gran utilidad a la hora de recuperar información y conocer cómo los atacantes ingresaron a un sistema durante una brecha de seguridad.

Un sólido conocimiento de PowerShell también puede ser aprovechado en pruebas de PenTesting, en las diversas etapas que se involucran durante el proceso, como la ejecución de exploits, escaneo de servicios, y análisis de malware.

Por supuesto que existen otros lenguajes de programación que también son muy usados como C and C++, Java, Bash, Go y Ruby, pero eso será tema para otro posteo.

Quizás te interese: ¿Cómo es el trabajo de un malware researcher?