A lo largo de las investigaciones y reportes que realizamos desde el Laboratorio de Investigación de ESET Latinoamérica sobre las amenazas que se propagan en la región, hemos podido analizar una amplia variedad en los códigos maliciosos, en sus metodologías de propagación, infección y persistencia, principalmente utilizando lenguajes de scripting (JavaScript, Visual Basic Script y Python son algunos de los lenguajes más utilizados actualmente).
En este post describimos algunas características del malware scripting para llegar a entender por qué estos lenguajes de programación se han convertido en una herramienta utilizada por los cibercriminales, las posibilidades que ofrece sobre un sistema comprometido y cómo es posible protegerse de este tipo de códigos maliciosos.
¿Qué son los script y qué los diferencia de los archivos ejecutables (.EXE)?
Los scripts son programas generalmente pequeños y simples, utilizados para automatizar tareas específicas. Contienen un conjunto de instrucciones que deben de ser interpretadas línea a línea en tiempo real; esta es la diferencia que presentan con otros programas que deben estar compilados en un archivo binario ejecutable (.EXE) para poder correrlos.
Microsoft desarrolló su propio motor y entorno de ejecución de scripts llamado “Windows Script Host”, que permite el uso de varios lenguajes de scripting.
¿Por qué los cibercriminales utilizan este tipo lenguajes?
La respuesta es sencilla: los scripts tienen la capacidad de interactuar y hacer uso de las librerías o recursos del sistema operativo de una manera muy simple. Además, no tienen la necesidad de compilar el código para poder ser ejecutados.
Particularmente Javascript y Visual Basic Script son los lenguajes preferidos por los atacantes, porque además de estar enfocados en el desarrollo web, pueden ser utilizados en sistemas operativos Windows.
De esta manera, con unas pocas líneas de código, un atacante puede desarrollar un troyano que será interpretado por el proceso “Windows Script Host”, que al ser legítimo del sistema operativo, no va a ser considerado malicioso.
Algunos de los códigos maliciosos más vistos en Latinoamérica son VBS/TrojanDownloader, VBS/Agent.NDH y JS/Bondat. Estos dos últimos son scripts más elaborados y a su vez más robustos, y por las características que tienen, el hecho de que alguno se ejecute en un equipo significaría que forma parte de una botnet.
Para poder llegar al punto de infección mencionado, los atacantes -como en cualquier otro tipo de campaña maliciosa- hacen uso de técnicas de Ingeniería Social para que el usuario descargue y ejecute el script, y así se logre la infección. Un factor decisivo para lograr confundir al usuario desprevenido es la similitud visual que adoptan los scripts con los archivos del paquete Microsoft Office (Word, Excel, Power Point, etc.), como pudimos ver en el caso de aquellos que afectaban a Colombia y Venezuela.
¿Cómo evitar que este tipo de códigos se ejecute en un equipo?
Permitir o no la ejecución de scripts depende en gran medida del uso que le den los usuarios a este tipo de archivos, sea en tareas de desarrollo, trabajo cotidiano o una simple automatización.
La forma de impedir que los scripts logren ejecutarse es agregando dos llaves en el registro de Windows. Para esto, debemos:
- En la carpeta “C:\Windows” buscar el archivo “exe” y ejecutarlo
- Una vez allí, buscar las siguientes llaves de registro: “HKEY_CURRENT_USER\Software\Microsoft\Windows Script Host\Settings” y “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings”
- Hacer clic derecho en cada una de ellas, seleccionar la opción “Nuevo”, “Valor de cadena” y escribir el nombre “Enabled”
- Luego, hacer clic derecho nuevamente sobre el registro que creamos, seleccionar la opción “Modificar…” y asignar el valor 0 (cero)
Al finalizar los procedimientos anteriores, las llaves de registro deberían verse de la siguiente manera:
Al momento de intentar ejecutar un script, el sistema operativo abrirá una ventana indicando un error al ejecutar el intérprete “Windows Host Script”, como se ve en la siguiente imagen:
Recomendamos estar atentos a este tipo de archivos, dado que a pesar de parecer simples en términos de desarrollo, se valen de múltiples medios de propagación como dispositivos extraíbles o correos spam con diferentes engaños -dentro los más comunes aquellos que dicen ser documentos de ofimática.
Finalmente, es importante no olvidar verificar la extensión del archivo más allá de su ícono. De esta forma, si es por ejemplo .VBS o .JS, se puede verificar si se trata de un script, y de esta manera evitar su ejecución. En consecuencia, no se comprometerá severamente la seguridad del sistema ni la información del mismo, y el malware scripting no será una preocupación.