Evaluación de algoritmos de fuzzy hashing para similitud...

Post on 19-Oct-2018

234 views 0 download

Transcript of Evaluación de algoritmos de fuzzy hashing para similitud...

Trabajo Fin de Grado – Grado en Ingeniería InformáticaEscuela de Ingeniería y Arquitectura

Universidad de Zaragoza

Evaluación de algoritmos de fuzzy hashing para similitud entre procesos

Director: Ricardo J. Rodríguez

Septiembre de 2017

Curso 16/17

Iñaki Abadía Osta

Ponente: José Merseguer Hernáiz

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

Situación actual malware

Funciones de hash criptográfico

Funciones de fuzzy hash

Contribución

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Ejecutables Windows

Procesos Windows

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Arquitectura

Ejecución

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Entorno de pruebas

Resultados

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Herramientas

Publicaciones

Contenidos

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 2 / 29

1 Introducción

2 Ejecutables y procesos Windows

4 Herramienta ProcessFuzzyHash

5 Experimentación

6 Trabajo relacionado

7 Conclusiones y líneas futuras

Conclusiones

Trabajo futuro

Situación actual software malicioso (malware)

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 3 / 29

Introducción

Malware nuevo2008-2017

* Imágenes tomadas de [AT17]

Situación actual software malicioso (malware)

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 3 / 29

Introducción

Malware nuevo2008-2017

Malware en circulación2008-2017

* Imágenes tomadas de [AT17]

Situación actual software malicioso (malware)

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 3 / 29

Introducción

Malware nuevo2008-2017

Malware en circulación2008-2017

* Imágenes tomadas de [AT17]

85% Windows

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Curso habitual de los eventos

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometida

Curso habitual de los eventos

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alerta

Curso habitual de los eventos

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alertaNecesidad de averiguar si la máquina está realmente comprometida

Curso habitual de los eventos

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alertaNecesidad de averiguar si la máquina está realmente comprometidaAnálisis de la máquina

Curso habitual de los eventos

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alertaNecesidad de averiguar si la máquina está realmente comprometidaAnálisis de la máquina

Curso habitual de los eventos

Análisis de la máquina

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alertaNecesidad de averiguar si la máquina está realmente comprometidaAnálisis de la máquina

Curso habitual de los eventos

Extracción del volcado de memoria

Análisis de la máquina

Respuesta a incidentes

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 4 / 29

Introducción

* Imágenes tomadas de [AT17]

Alguien se da cuenta de que hay una máquina comprometidaSe da la alertaNecesidad de averiguar si la máquina está realmente comprometidaAnálisis de la máquina

Curso habitual de los eventos

Extracción del volcado de memoriaAnálisis del volcado

Cálculo de hashes

Análisis de la máquina

Funciones de hash criptográfico

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 5 / 29

Introducción

Funciones de hash criptográfico

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 5 / 29

Introducción

Contraseñas

Integridad

Uso

IrreversibleEvitar colisionesEfecto cascada

Propiedades

Funciones de hash criptográfico

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 5 / 29

Introducción

MD5 2ae4f65fc262c0120b037438d05883f8SHA1 fcbab2d91923161bc46022a2b16ce50e8420fdecTiger df81bf2a909edc6e76f0118a372a19f3f89233f4a5c5a3f6RipeMD128 b259ecc284326e3773c596e14bff2d0675d4320a

Ejemplos

Contraseñas

Integridad

Uso

IrreversibleEvitar colisionesEfecto cascada

Propiedades

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

MD5

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8

MD5

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8Alterado: faf3e0b7e3008463714c7bf779a014a8

MD5

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8Alterado: faf3e0b7e3008463714c7bf779a014a8

MD5

ssdeep

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8Alterado: faf3e0b7e3008463714c7bf779a014a8

MD5

Original:49152:oKPDou/1fcThWebCqvWb/zIEqqG1H8ATR0qeuZEqv8eGYWb/zIEJGd8A90KZE2vJKl

ssdeep

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8Alterado: faf3e0b7e3008463714c7bf779a014a8

MD5

Original:49152:oKPDou/1fcThWebCqvWb/zIEqqG1H8ATR0qeuZEqv8eGYWb/zIEJGd8A90KZE2vJKlAlterado:49152:gKPDou/1fcThWebCqvWb/zIEqqG1H8ATR0qeuZEqv8eGYWb/zIEJGd8A90KZE2vJKo

ssdeep

Funciones de fuzzy hash

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 6 / 29

Introducción

Evitan efecto cascadaEvitan efecto cascadaEquivalencia = colisiones

Propiedades

Detección de spamCopyright

Uso

ssdeepnilsimsa

Ejemplos

Original: 2ae4f65fc262c0120b037438d05883f8Alterado: faf3e0b7e3008463714c7bf779a014a8

MD5

Original:49152:oKPDou/1fcThWebCqvWb/zIEqqG1H8ATR0qeuZEqv8eGYWb/zIEJGd8A90KZE2vJKlAlterado:49152:gKPDou/1fcThWebCqvWb/zIEqqG1H8ATR0qeuZEqv8eGYWb/zIEJGd8A90KZE2vJKo

ssdeep

98%

Contribución

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 7 / 29

Introducción

Contribución

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 7 / 29

Introducción

Herramienta ProcessFuzzyHash

Calcular fuzzy hashes de procesos

Comparar fuzzy hashes de procesos

Contribución

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 7 / 29

Introducción

Herramienta ProcessFuzzyHash

Calcular fuzzy hashes de procesos

Comparar fuzzy hashes de procesos

Estudio y evaluación de algoritmos de

fuzzy hashing

Centrado en Windows

Ejecutables Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 8 / 29

Ejecutables y procesos Windows

Ejecutables Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 8 / 29

Ejecutables y procesos Windows

Formato PE

Estándar de cabeceras de ficheros

ejecutables (EXE, OBJ, SCR, etc.)

Ejecutables Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 8 / 29

Ejecutables y procesos Windows

Formato PE

Estándar de cabeceras de ficheros

ejecutables (EXE, OBJ, SCR, etc.)

Estructura

CabecerasTabla de seccionesEspacio de secciones

Ejecutables Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 8 / 29

Ejecutables y procesos Windows

Formato PE

Estándar de cabeceras de ficheros

ejecutables (EXE, OBJ, SCR, etc.)

Estructura

CabecerasTabla de seccionesEspacio de secciones

Secciones

Código (R)Datos (R)Datos (R/W)Recursos (R)…

Procesos Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 9 / 29

Ejecutables y procesos Windows

Procesos Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 9 / 29

Ejecutables y procesos Windows

Contenedor de hilos

Procesos Windows

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 9 / 29

Ejecutables y procesos Windows

Contenedor de hilos

Ejecutable disco ≠ memoria Carga en memoriaAddress Space Layout Randomization

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2

Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2Framework para análisis de memoria volátil

The Volatility FoundationComunidad

Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2Framework para análisis de memoria volátil

The Volatility FoundationComunidad

Volatility

Algunos plugins de Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2Framework para análisis de memoria volátil

The Volatility FoundationComunidad

Volatility

pslist: Muestra el listado de procesos en ejecución

Algunos plugins de Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2Framework para análisis de memoria volátil

The Volatility FoundationComunidad

Volatility

pslist: Muestra el listado de procesos en ejecucióndumpregistry: Extrae un volcado del registro Windows

Algunos plugins de Volatility

Plugin de Volatility

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 10 / 29

Herramienta ProcessFuzzyHash

Python 2Framework para análisis de memoria volátil

The Volatility FoundationComunidad

Volatility

pslist: Muestra el listado de procesos en ejecucióndumpregistry: Extrae un volcado del registro Windowsvboxinfo: Muestra información de un volcado de una VM VBox

Algunos plugins de Volatility

Arquitectura – diagrama de clases

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 11 / 29

Herramienta ProcessFuzzyHash

Arquitectura – diagrama de clases

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 11 / 29

Herramienta ProcessFuzzyHash

Dcfldd (BBH)Sdhash (SIF)TLSH (LSH)Ssdeep (CTPH)

Facade

Arquitectura – diagrama de clases

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 11 / 29

Herramienta ProcessFuzzyHash

Dcfldd (BBH)Sdhash (SIF)TLSH (LSH)Ssdeep (CTPH)

Facade

Mayor diversidadImplementación en Python

Criterio

Arquitectura – diagrama de sistema

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 12 / 29

Herramienta ProcessFuzzyHash

Arquitectura – diagrama de sistema

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 12 / 29

Herramienta ProcessFuzzyHash

Apoyo en plugins:procdump: Extrae procesos de memoriamemdump: Extrae todas las páginas de memoria en uso

Extracción de procesos

Arquitectura – flujo generación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 13 / 29

Herramienta ProcessFuzzyHash

Arquitectura – flujo comparación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 14 / 29

Herramienta ProcessFuzzyHash

Ejecución – salida de generación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 15 / 29

Herramienta ProcessFuzzyHash

Ejecución – salida de generación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 15 / 29

Herramienta ProcessFuzzyHash

$ python vol.py --plugins=ProcessFuzzyHash/ -f vmcore.elf \> --profile=Win10x86_15063 processfuzzyhash -A ssdeep -S pe\> -N VBoxService,winlogon,services

Ejecución

Ejecución – salida de generación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 15 / 29

Herramienta ProcessFuzzyHash

$ python vol.py --plugins=ProcessFuzzyHash/ -f vmcore.elf \> --profile=Win10x86_15063 processfuzzyhash -A ssdeep -S pe\> -N VBoxService,winlogon,services

Ejecución

Volatility Foundation Volatility Framework 2.6

Name PID Create Time Section Algorithm Hashwinlogon.exe 500 131483892000 pe SSDeep 6144:pzP/qv...8ciJQdsyJqjservices.exe 544 131483892003 pe SSDeep 6144:Q/6kXE...jXd5VBoxService 1060 131483892039 pe SSDeep 12288:K/oDR...CxuexSQ

Salida

Ejecución – salida de comparación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 16 / 29

Herramienta ProcessFuzzyHash

Ejecución – salida de comparación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 16 / 29

Herramienta ProcessFuzzyHash

$ python vol.py --plugins=ProcessFuzzyHash/ -f vmcore.elf \> --profile=Win10x86_15063 processfuzzyhash -A ssdeep -S pe -N svchost \> -c '768:9n3SsSfvrOtOHW4CO5LTiMRMxVKPhPDjRWWm:d3BGrOtO2NO5LTiqUVKP5/zm'

Ejecución

Ejecución – salida de comparación

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 16 / 29

Herramienta ProcessFuzzyHash

$ python vol.py --plugins=ProcessFuzzyHash/ -f vmcore.elf \> --profile=Win10x86_15063 processfuzzyhash -A ssdeep -S pe -N svchost \> -c '768:9n3SsSfvrOtOHW4CO5LTiMRMxVKPhPDjRWWm:d3BGrOtO2NO5LTiqUVKP5/zm'

Ejecución

Volatility Foundation Volatility Framework 2.6Hash A Hash B Algorithm Score768:9n3Ss...qUVKP5/zm 768:9n3SsS...qDVKP5/0m ssdeep 94768:9n3Ss...qUVKP5/zm 768:9n3SsS...q5VKP5/0m ssdeep 94768:9n3Ss...qUVKP5/zm 768:9n3SsS...qUVKP5/zm ssdeep 100768:9n3Ss...qUVKP5/zm 768:9n3SsS...qFVKP5/zm ssdeep 97768:9n3Ss...qUVKP5/zm 768:9n3SsS...qMVKP5/zm ssdeep 100768:9n3Ss...qUVKP5/zm 768:9n3SsS...qAVKP5/zm ssdeep 97...

Salida

Entorno de pruebas

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 17 / 29

Experimentación

Entorno de pruebas

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 17 / 29

Experimentación

Ubuntu 16.04 x64Intel Core i7-4720HQ @ 2.60GHz12GiB RAMSSD SATA3HDD @ 5400 RPM USB 3.0

Máquina host

Entorno de pruebas

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 17 / 29

Experimentación

Ubuntu 16.04 x64Intel Core i7-4720HQ @ 2.60GHz12GiB RAMSSD SATA3HDD @ 5400 RPM USB 3.0

Máquina host

Windows 7 32 (x86) y 64 bits (x64)Windows 10 32 (x86) y 64 bits (x64)

Máquinas Virtuales

Entorno de pruebas

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 17 / 29

Experimentación

Ubuntu 16.04 x64Intel Core i7-4720HQ @ 2.60GHz12GiB RAMSSD SATA3HDD @ 5400 RPM USB 3.0

Máquina host

Windows 7 32 (x86) y 64 bits (x64)Windows 10 32 (x86) y 64 bits (x64)

Máquinas Virtuales

Sistema operativo (winlogon, svchost, explorer)Software adicional:

Navegador Web (IE, Edge, Chrome, Firefox)Lector de PDF (Acrobat Reader)

Malware:POS RAM Scrapper (ALINA)

Procesos

Entorno de pruebas

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 17 / 29

Experimentación

Ubuntu 16.04 x64Intel Core i7-4720HQ @ 2.60GHz12GiB RAMSSD SATA3HDD @ 5400 RPM USB 3.0

Máquina host

Windows 7 32 (x86) y 64 bits (x64)Windows 10 32 (x86) y 64 bits (x64)

Máquinas Virtuales

Sistema operativo (winlogon, svchost, explorer)Software adicional:

Navegador Web (IE, Edge, Chrome, Firefox)Lector de PDF (Acrobat Reader)

Malware:POS RAM Scrapper (ALINA)

Procesos

Se van a considerar 4 casos

Resultados – caso A

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 18 / 29

Experimentación

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

Win7-x86-.text

Win7-x64-.text Win7-x64-pe

Win7-x86-pe

Win7-x86-.rsrc

Misma máquina, mismo ejecutable, distinta ejecución

Resultados – caso B

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 19 / 29

Experimentación

x86-.text

x64-.text x64-pe

x86-pe

x86-.rsrc

Mismo programa y arquitectura, distinto SO

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

win7-.text win7-pe

win10-.text

ALIN

A

Acr

oRd3

2

Mic

roso

ftEdg

e

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

win7-.rsrc

ALIN

A

Acr

oRd3

2

Mic

roso

ftEdg

e

chro

me

expl

orer

firef

ox

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itud

Resultados – caso C

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 20 / 29

Experimentación

win10-pe

Mismo programa y SO, distinta arquitectura

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

ALIN

A

Acr

oRd3

2

chro

me

expl

orer

firef

ox

iexp

lore

svch

ost

win

logo

n0

50

100

Rat

io d

e si

mil

itu

d

Resultados – caso D

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 21 / 29

Experimentación

Win7-x86-.text

Win7-x64-.text Win7-x64-pe

Win7-x86-pe

Win7-x86-.rsrc

Mismo programa y misma máquina, distinta versión

chrom e firefox0

50

100

Rat

io d

e si

mil

itud

chrom e firefox0

50

100

Rat

io d

e si

mil

itud

chrom e firefox0

50

100

Rat

io d

e si

mil

itud

chrom e firefox0

50

100

Rat

io d

e si

mil

itud

chrom e firefox0

50

100

Rat

io d

e si

mil

itud

Herramientas y publicaciones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 22 / 29

Trabajo relacionado

Herramientas y publicaciones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 22 / 29

Trabajo relacionado

Malfunction: Análisis de funcionesBinwally: Detección de cambios entre versiones de software

Herramientas

Herramientas y publicaciones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 22 / 29

Trabajo relacionado

Malfunction: Análisis de funcionesBinwally: Detección de cambios entre versiones de software

Herramientas

[SBAAN16] Evaluación de algoritmos fuzzy hash[NMAM+16] Análisis estático de ejecutables[AS15] Malware → JPEG. Clusterización.

Publicaciones

Conclusiones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 23 / 29

Conclusiones y líneas futuras

Conclusiones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 23 / 29

Conclusiones y líneas futuras

Mejor algoritmo: dcfldd (BBH)TLSH (LSH) irregularSdhash (SIF) y ssdeep (CTPH) similar (ssdeep más ceros)

Conclusiones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 23 / 29

Conclusiones y líneas futuras

Mejor algoritmo: dcfldd (BBH)TLSH (LSH) irregularSdhash (SIF) y ssdeep (CTPH) similar (ssdeep más ceros)

Mejor sección: datos sólo lecturaSección de código en segundo lugar, ejecutable completo últimoSección de código en x64 casi como datos lecturaVariaciones en código muy dependiente del programa

Conclusiones

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 23 / 29

Conclusiones y líneas futuras

Mejor algoritmo: dcfldd (BBH)TLSH (LSH) irregularSdhash (SIF) y ssdeep (CTPH) similar (ssdeep más ceros)

Mejor sección: datos sólo lecturaSección de código en segundo lugar, ejecutable completo últimoSección de código en x64 casi como datos lecturaVariaciones en código muy dependiente del programa

ProgramasALINA no supera el 50%Procesos de sistema dan resultados excelentescaso AVersiones del mismo software varían mucho salvo en datos de lectura

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Implementación de más algoritmos

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Implementación de más algoritmos

Extender herramienta para hash de otras

partes de la cabecera

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Implementación de más algoritmos

Extender herramienta para hash de otras

partes de la cabecera

Estudiar otras partes de un proceso

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Implementación de más algoritmos

Extender herramienta para hash de otras

partes de la cabecera

Estudiar otras partes de un proceso

Evaluación de rendimiento de algoritmos

Líneas futuras

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 24 / 29

Conclusiones y líneas futuras

Independencia de otros plugins

Paralelización completa

Implementación de más algoritmos

Extender herramienta para hash de otras

partes de la cabecera

Estudiar otras partes de un proceso

Evaluación de rendimiento de algoritmos

Ampliar a más tipos de malware

Trabajo Fin de Grado – Grado en Ingeniería InformáticaEscuela de Ingeniería y Arquitectura

Universidad de Zaragoza

Evaluación de algoritmos de fuzzy hashing para similitud entre procesos

Director: Ricardo J. Rodríguez

Septiembre de 2017

Curso 16/17

Iñaki Abadía Osta

Ponente: José Merseguer Hernáiz

Horas de trabajo

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 26 / 29

Anexos

w. 06 w. 07 w. 08 w. 09 w. 10 w. 11 w. 12 w. 13 w. 14 w. 15 w. 16 w. 17 w. 18 w. 19 w. 20 w. 21 w. 22 w. 23 w. 24 w. 25 w. 26 w. 27 w. 28 w. 29 w. 30 w. 31 w. 32 w. 33 w. 34

Lanzamiento

Planificación del diseño

Planificación de implementación

Planificación de memoria

Reunión final

Estado del Arte

Algoritmos de Fuzzy Hash

Volatility

Plugins de Volatility

Arquitectura de alto nivel

Arquitectura de implementación

Plugin de Volatility

Algoritmos de Fuzzy Hash

Preparación de entorno

Extracción de hashes

Comparación de hashes

LaTeX setup

Redacción

Figuras

Reuniones

Investigación

Aprendizaje

Diseño

Implementación

Experimentación

Memoria

Horas de trabajo

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 27 / 29

Anexos

Aprendizaje

Diseño e Implemen tación

Experimentación

Investigación

Memoria

Reuniones

Tare

as

0 10 20 30 40 50 60 70 80 90 100

Horas

15

30.5

55

72.5

90.5

37.5

Horas de trabajo

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 27 / 29

Anexos

Aprendizaje

Diseño e Implemen tación

Experimentación

Investigación

Memoria

Reuniones

Tare

as

0 10 20 30 40 50 60 70 80 90 100

Horas

15

30.5

55

72.5

90.5

37.5

Total: 301 horas

Bibliografía I

I. Abadía Osta Evaluación de algoritmos de fuzzy hashing para similitud entre processos 28 / 29

Anexos

[AT17] AV-TEST. Malware statistics. https://www.av-test.org/en/statistics/malware/, 2017. [Online; accedido 26 de Julio de 2017].

[SBAAN16] N. Sarantinos, C. Benzaïd, O. Arabiat, and A. Al-Nemrat. ForensicMalware Analysis: The Value of Fuzzy Hashing Algorithms in IdentifyingSimilarities. In 2016 IEEE Trustcom/BigDataSE/ISPA, pages 1782-1787, Aug2016.

[NMAM+16] A. P. Namanya, Q. K. A. Mirza, H. Al-Mohannadi, I. U. Awan, and J. F. P. Disso. Detection of Malicious Portable Executables Using EvidenceCombinational Theory with Fuzzy Hashing. In 2016 IEEE 4th International Conference on Future Internet of Things and Cloud (FiCloud), pages 91-98, Aug2016.

[AS15] M. Arefkhani and M. Soryani. Malware clustering using image processing hashes. In 2015 9th Iranian Conference on Machine Vision and Image Processing (MVIP), pages 214-218, Nov 2015.

Trabajo Fin de Grado – Grado en Ingeniería InformáticaEscuela de Ingeniería y Arquitectura

Universidad de Zaragoza

Evaluación de algoritmos de fuzzy hashing para similitud entre procesos

Director: Ricardo J. Rodríguez

Septiembre de 2017

Curso 16/17

Iñaki Abadía Osta

Ponente: José Merseguer Hernáiz