PATROCINADORES
INSTITUCIONES
Junta castilla
jcm

Archiletras

02 Nov 2021
Compartir

Detrás de cada palabra hay un rastro lingüístico que puede delatarte

Sheila Queralt

Perito en lingüística forense. Con mis análisis científicos de la lengua contribuyo a cazar delincuentes.

Detrás del código malicioso

¿Sabes que también se puede pillar a un ciberdelincuente por el código de su virus?

Sí, aunque parezca asombroso, el código que hay detrás de un código malicioso puede revelar pistas sobre el perfil lingüístico de su autor. Y es que el código informático no deja de estar compuesto por palabras, palabras que pueden delatar a su autor. Y por mucho cuidado que tenga de no dejar un rastro informático, está dejando un rastro lingüístico.

El código malicioso es un conjunto de funciones y variables que permiten ejecutar distintas instrucciones, como hacer una copia de todos tus ficheros o permitir la grabación de tu cámara web. Y como sucede con la escritura en contextos más habituales, cada ciberdelincuente expresa esas instrucciones con un estilo único. Por ejemplo, tiene cierto grado de libertad para utilizar un nombre concreto para cada función o para cada fichero, dejar comentarios en el código, formular un código claro y legible o incluir un número de funciones basura o residuales que nunca se utilizan.

Al igual que estructuramos nuestros escritos, el lenguaje de programación también se estructura. Por ejemplo, hay códigos que permiten hacer los comandos en una sola línea o hacerlo en bloques utilizando llaves (como si hiciéramos un párrafo para cada parte de la función). Te muestro dos formas equivalentes de escribir una función para que te hagas una idea. En este caso, lo que quiero es mostrar (función printf) la frase «A es mayor que 10 y B menor que 8)» si se da la condición (en inglés, if) de que A sea mayor que 10 y B menor que 8. Para hacer esto se podrían usar estas líneas:

if (A>10 && B<8) {

    printf(«A es mayor que 10 y B menor que 8\n»);

    }

O esta otra, igual de funcional que las anteriores:

if (A>10 && B<8) printf(«A es mayor que 10 y B menor que 8\n»);

Como se puede comprobar, en este caso tendríamos pistas tanto por la estructura del código como por el lenguaje natural expresado. Por ejemplo, el hacker podría haber dicho «es más grande» o «es más pequeño» en lugar de «es mayor que» o «menor que», respectivamente. Sí, sí: el mundo del código es un mundo muy interesante… y todavía hay mucho por explorar desde el punto de vista lingüístico.