0% encontró este documento útil (0 votos)
19 vistas5 páginas

Tema 3 A

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas5 páginas

Tema 3 A

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MALWARE

1 TIPOS

Podemos clasificar los distintos tipos de malware atendiendo a mecanismos de propagación, ocultación
o beneficio. En muchos casos, el malware pertenece a varias categorías simultáneamente.

1.1 PROPAGACIÓN

VIRUS
Un virus informático se inserta (infecta) en el código de un programa, reproduciéndose al infectar a otros
ficheros. Cada vez que arranca, intenta reproducirse o llevar a cabo una acción maliciosa y depende del
usuario para saltar de máquina.

Podemos tener virus de programa, que infectan ficheros ejecutables y se activan al ejecutar dicho
programa; virus de macro, que es una serie de instrucciones para la automatización de tareas repetitivas
que se almacenan en un fichero de datos y que se activan al abrir el documento; virus de arranque, que
infectan los sectores de inicio del disco duro y se activan al arrancar el ordenador (antes del sistema
operativo); y virus asociados, que suplantan a una herramienta legítima del sistema operativo.

GUSANOS
Un gusano es un tipo de malware que explota una vulnerabilidad de una aplicación o del sistema
operativo para entrar en una máquina. Una vez ha infectado una máquina, busca otros objetivos
potenciales y utiliza la red para enviar copias de sí mismo.

Uno de los más famosos es el de Robert T. Morris Jr., que afectó a 6000 máquinas en 1988 y tuvo mucha
repercusión.

1.2 OCULTACIÓN

TROYANOS
Un caballo de Troya (o troyano) informático es un programa que oficialmente hace una actividad, pero
tiene otra actividad oculta y maliciosa.

ROOTKIT
Un rootkit es un grupo de herramientas que sirve para esconder la actividad o presencia de otro malware.
Actúan escondiendo registros, logs y procesos asociados y modifican el sistema operativo para forzarle
a ignorar la actividad maliciosa. Con un rootkit, ni el usuario ni el sistema operativo conocen realmente
lo que está ocurriendo: todo aparenta ser normal.

BOMBAS LÓGICAS
Una bomba lógica es un programa que permanece dormido hasta que se satisface cierta condición.
Pueden producir cualquier tipo de actividad maliciosa y resultan muy difíciles de detectar antes de
activarse. No deben confundirse con los “huevos de pascua” (easter eggs) que son sorpresas a descubrir
por el usuario (como el famoso juego secreto en Excel 95).

PUERTAS TRASERAS
Una puerta trasera consiste en código que permite el acceso a un programa o servicio sin las restricciones
de seguridad normales. Es una práctica normal en el desarrollo de muchos programas para obtener un
acceso rápido o de depuración al mismo, aunque puede ocurrir que se olvide de eliminar antes del
lanzamiento. En algunos casos, el malware puede dejar una puerta trasera en el sistema o aplicación para
que el atacante pueda entrar después sin pasar por los sistemas de seguridad.

Una de las puertas traseras más populares es la de Ken Thompson y el compilador de C.

1.3 BENEFICIO

BOTNETS
Una de las cargas más habituales de troyanos, gusanos y virus es un programa que permita el control
remoto de la máquina infectada; esta máquina infectada se conoce como robot (o bot). Cuando cientos,
miles o cientos de miles de bots forman una red de ordenadores bajo control de un atacante, se la llama
botnet.

Dada la capacidad de cómputo y multitarea de las máquinas actuales, estas son capaces de actuar como
bots y llevar a cabo las tareas normales sin despertar sospechas en el usuario legítimo. Aunque algunas
puedan estar apagadas o inservibles, un gran porcentaje de máquinas se mantienen activo en todo
momento.

Las botnets originales usaban IRC para controlar las máquinas remotas; no obstante, en casi todos los
casos se ha sustituido IRC por HTTP u otros protocolos más modernos. Sirven principalmente para
realizar spam, distribuir malware, manipular encuestas o votaciones, realizar denegaciones de servicio,
etc. Además, resultan la plataforma ideal al proporcionar un mecanismo para realizar ataques
encubiertos y relativamente independientes del atacante.

SPYWARE
Software que espía a los usuarios obteniendo información sin su consentimiento y que puede ser vendida
a terceros o utilizada con otros propósitos negativos. Es un problema cada vez mayor con la cantidad de
dispositivos con cámara y localización que llevamos o tenemos en la actualidad.

ADWARE
Malware orientado a mostrar publicidad de manera inesperada e indeseada. Una vez instalado, tiene
efectos muy negativos como mostrar banners y pop-ups, abrir páginas web con contenido inapropiado,
afectar a la productividad o inutilizar la máquina.

En algunos casos se utiliza spyware para obtener el historial de navegación y realizar publicidad dirigida
mediante adware.

KEYLOGGER
Un keylogger es un dispositivo (hardware o software) que captura y almacena cada pulsación en el
teclado. Esta información puede ser recuperada posteriormente o transmitida a una localización remota,
conteniendo contraseñas, números de tarjetas de crédito, información personal, etc.

Este concepto se puede extender a la captura de movimientos del ratón o de pantalla.

RANSOMWARE
El ransomware bloquea el dispositivo bien mediante mecanismos de control de acceso o por cifrado del
almacenamiento para, posteriormente, solicitar un rescate a cambio de recuperar dicha información o
acceso. Algunos de los casos más destacables son Cryptolocker (2013) y WannaCry (2017). El uso de
criptografía de alto nivel en el malware se conoce como criptovirología.
2 ANÁLISIS DE MALWARE

El análisis de malware consiste en diseccionar malware para entender cómo funciona, cómo identificarlo
y cómo eliminarlo. Con millones de programas maliciosos en estado salvaje, y más cada día, el análisis
de malware es crítico para la respuesta a incidentes de seguridad informática y está en gran demanda.

La mayoría de las veces, al realizar análisis de malware, sólo se dispone del ejecutable de malware y no
del código fuente legible. Existen dos enfoques fundamentales para el análisis de malware: estático y
dinámico. El análisis estático consiste en examinar el malware sin ejecutarlo. El análisis dinámico implica
la ejecución del malware. Ambas técnicas se clasifican además como básicas o avanzadas.

ANÁLISIS ESTÁTICO BÁSICO


Consiste en examinar el archivo ejecutable sin ver las instrucciones reales. El análisis estático básico
puede confirmar si un archivo es malicioso y proporcionar información sobre su funcionalidad. El análisis
estático básico es sencillo y puede ser rápido, pero en gran medida es ineficaz contra el malware
sofisticado, ya que puede pasar por alto comportamientos importantes. Entre las estrategias más
comunes se encuentran:

• Uso de herramientas antivirus para confirmar el malware.


• Uso de hashes para identificar malware.
• Recopilación de información de las cadenas, funciones y cabeceras de un archivo.

ANÁLISIS DINÁMICO BÁSICO


Estas técnicas básicas consisten en ejecutar el malware y observar su comportamiento en el sistema para
eliminar la infección, producir firmas efectivas o ambas cosas. Sin embargo, antes de poder ejecutar
malware de forma segura, debe configurar un entorno que permita estudiar el malware en ejecución sin
riesgo de dañar el sistema o red propias. Al igual que las técnicas básicas de análisis estático, las técnicas
básicas de análisis dinámico pueden ser utilizadas por personas sin conocimientos profundos de
programación, pero no son efectivas con todo el malware, ya que pueden obviar aspectos importantes.

El análisis dinámico básico se realiza normalmente después de que el análisis estático básico haya llegado
a un callejón sin salida, ya sea por ofuscación o empaquetamiento de código o porque el analista haya
agotado las técnicas disponibles de análisis estático. Puede consistir en observar el malware mientras se
ejecuta o examinar el sistema después de que el malware se haya ejecutado.

ANÁLISIS ESTÁTICO AVANZADO


El análisis estático avanzado consiste en aplicar ingeniería inversa a los componentes internos del
malware cargando el ejecutable en un desensamblador y mirando las instrucciones del programa para
descubrir qué hace el programa. Las instrucciones son ejecutadas por la CPU, por lo que el análisis
estático avanzado le dice exactamente lo que hace el programa. Sin embargo, el análisis estático
avanzado tiene una curva de aprendizaje más pronunciada que el análisis estático básico y requiere
conocimientos especializados de ensamblador, construcciones de código y conceptos de sistemas
operativos.

Si bien se puede utilizar el análisis estático básico para sacar algunas conclusiones preliminares, se
requiere un análisis más profundo para obtener una visión completa. Por ejemplo, es posible que se
importe una función en particular, pero no se sabrá cómo se utiliza ni si se utiliza en absoluto hasta
desensamblar el código y realizar un análisis estático avanzado.
ANÁLISIS DINÁMICO AVANZADO
El análisis dinámico avanzado utiliza un depurador para examinar el estado interno de un ejecutable
malicioso en ejecución. Estas técnicas avanzadas proporcionan otra forma de extraer información
detallada de un ejecutable y resultan más útiles cuando se trata de obtener información que es difícil de
obtener con las técnicas anteriores.

Un depurador es una pieza de software o hardware utilizada para probar o examinar la ejecución de otro
programa. Los depuradores ayudan en el proceso de desarrollo de software, ya que los programas suelen
tener errores cuando se escriben por primera vez. A medida que se desarrolla, se proporciona la entrada
al programa y se ve la salida, pero no se ve cómo el programa produce la salida. Los depuradores dan una
idea de lo que está haciendo un programa mientras se está ejecutando y están diseñados para permitir a
los desarrolladores medir y controlar el estado interno y la ejecución de un programa.

Además, los depuradores proporcionan información sobre un programa que sería difícil, si no imposible,
obtener de un desensamblador. Los desensambladores ofrecen una instantánea de cómo es un
programa inmediatamente antes de la ejecución de la primera instrucción, mientras que los depuradores
proporcionan una vista dinámica de un programa mientras se ejecuta.

La capacidad de medir y controlar la ejecución de un programa proporciona una visión crítica durante el
análisis de malware. Los depuradores permiten ver el valor de cada dirección de memoria, registro y
argumento de cada función. También permiten cambiar cualquier cosa sobre la ejecución del programa
en cualquier momento, lo que puede resultar muy útil.

3 CONTRAMEDIDAS FRENTE A INGENIERÍA INVERSA

DESENSAMBLADOR
Los mecanismos contra desensambladores utilizan código o datos especiales diseñados para hacer que
las herramientas de análisis produzcan una lista de instrucciones en ensamblador incorrecta. Esta técnica
se realiza manualmente por los autores de malware, bien mediante una herramienta independiente en
el proceso de desarrollo e instalación o bien incorporándola directamente en el código fuente de su
malware.

Los autores de malware a menudo van más allá de la funcionalidad básica para implementar técnicas
específicas para ocultarse al usuario o al administrador del sistema, utilizando rootkits o inyección de
procesos, o para frustrar el análisis y la detección. Utilizan técnicas contra desensambladores para
retrasar o evitar el análisis de código malicioso.

Además de retrasar o impedir el análisis humano, los mecanismos contra desensamblador también son
eficaces para evitar ciertas técnicas de análisis automatizado. Muchos algoritmos de detección de
similitudes de malware y motores heurísticos antivirus emplean análisis con desensambladores para
identificar o clasificar el malware.

DEPURACIÓN
El anti-debugging (o contra depuración) es una técnica popular de contramedidas utilizada por el
malware para reconocer cuando está bajo el control de un depurador o para evitar a los depuradores.
Una vez que el malware se da cuenta de que se está ejecutando en un depurador, puede alterar su ruta
normal de ejecución de código o modificar el código para causar un fallo, interfiriendo así con los intentos
de los analistas por entenderlo, y añadiendo tiempo y costes adicionales.
MÁQUINAS VIRTUALES
Los autores de malware a veces utilizan técnicas contra máquinas virtuales (anti-VM) para frustrar los
intentos de análisis. Con estas técnicas, el malware intenta detectar si se está ejecutando dentro de una
máquina virtual y actuar de forma diferente o simplemente no ejecutarse. Esto puede, por supuesto,
causar problemas para el analista.

Las técnicas anti-VM se encuentran más comúnmente en el malware que tiene un impacto más amplio,
como botnets y spyware/adware (sobre todo porque los honeypots suelen utilizar máquinas virtuales y
porque este malware va dirigido normalmente a la máquina del usuario medio, que es poco probable que
esté ejecutando una máquina virtual). No obstante, la popularidad del malware anti-VM ha disminuido
recientemente, y esto puede atribuirse al gran aumento del uso de la virtualización, ya que los autores de
malware están empezando a asumir que el hecho de que una máquina sea virtual no significa
necesariamente que no sea una víctima valiosa o sea un analista. A medida que la virtualización siga
creciendo, las técnicas anti-VM probablemente serán menos frecuentes.

EMPAQUETAMIENTO
Los programas empaquetadores se han vuelto muy populares entre los creadores de malware porque
ayudan a que el malware se oculte del software antivirus, complican el análisis de malware y reducen el
tamaño de un ejecutable malicioso. Además, la mayoría de estas herramientas empaquetadoras son
fáciles de usar y están disponibles gratuitamente. El análisis estático básico no es útil en un programa
empaquetado; el malware empaquetado debe ser desempaquetado antes de que pueda ser analizado
estáticamente, lo que hace que el análisis sea más complicado.

Aunque hay una gran variedad de empaquetadores, todos siguen un patrón similar: transforman un
ejecutable para crear un nuevo ejecutable que almacena el ejecutable transformado como datos y
contiene un pequeño programa de descompresión que es llamado por el sistema operativo.

4 SEGUIMIENTO

Este material se corresponde con 3 clases. Los siguientes ejercicios se realizarán de forma individual y serán
originales1, ocupando aproximadamente una cara cada uno con un tamaño de letra razonable.

• Existen varias botnet escritas en Go, algunas incluso en desarrollo con código disponible en
GitHub; utilizan la relativa novedad de Go para intentar evitar la detección por parte de antivirus.
Investiga y describe, entre otros, a “GoBrut”, “HinataBot”, “Kraken” y “GoBruteforcer”.

• Describe cuál sería la mejor estrategia para defenderse de un ransomware con cifrado avanzado
mediante clave pública al estilo de cryptolocker. ¿Qué otras estrategias se pueden implementar
para defenderse de otros tipos de malware?

• Investiga y describe qué desensambladores y depuradores serían útiles para las técnicas de
análisis descritas (algunos ejemplos: IDA Pro, Radare2, Frida, Ghidra).

1
Se utilizarán herramientas de detección de plagio y de generación por IA.

También podría gustarte