volvervolver
Inteligencia artificial en Ciberseguridad

POR:
Mauro Börner
(Security Automation Engineering)

COMPARTIR




Transformando Datos en Identificadores Únicos

El "hashing" es un proceso utilizado para transformar datos en identificadores únicos de longitud fija, conocidos como "hashes". Este proceso se basa en una función que toma una entrada y devuelve una cadena de caracteres de longitud fija, que suele ser una combinación aparentemente aleatoria de letras y números.


Aquí hay una breve descripción de cómo funciona el hashing:

1. Entrada de Datos:

- Se toma un conjunto de datos, que puede ser de cualquier longitud o tipo.

2. Función Hash:

- Se aplica un algoritmo de hashing a los datos. Esta función toma la entrada y produce una cadena de longitud fija.

3. Identificador Único:

- La cadena resultante es el "hash" o identificador único asociado a los datos originales.

Propiedades Importantes:

- Dos conjuntos de datos diferentes no deberían generar el mismo hash (propiedad de "no colisión").

- Cambios mínimos en los datos deberían resultar en cambios significativos en el hash (propiedad de "avalancha").

Uso Común:

- Estos algoritmos se utilizan comúnmente en la indexación de bases de datos, verificación de integridad de archivos, criptografía, entre otros.

Algunos algoritmos de hash comunes incluyen MD5, SHA-1, y SHA-256. Sin embargo, es importante tener en cuenta que algunos de estos algoritmos han demostrado ser vulnerables y se consideran obsoletos para ciertos propósitos. En aplicaciones de seguridad, se recomienda utilizar algoritmos modernos y seguros.


¿Qué es Fuzzy Hashing?

El hashing difuso se utiliza comúnmente en software de antimalware y en análisis de malware para detectar variantes de archivos maliciosos o sospechosos. Al dividir un archivo en fragmentos más pequeños y calcular los hashes de esos fragmentos, se pueden identificar similitudes estructurales entre archivos, incluso si han sufrido modificaciones mínimas.

Esta capacidad es especialmente útil en la detección de “malware polimórfico”, que es un tipo de malware que tiene la capacidad de cambiar su “apariencia” sin cambiar su funcionalidad subyacente.

Al utilizar técnicas de hashing difuso, los software antimalware pueden identificar familias específicas de malware y variantes que comparten características comunes, lo que permite una detección más efectiva. La técnica de hashing difuso no solo se aplica a archivos, sino que también puede extenderse a otros tipos de datos, como cadenas de texto. Su aplicación no se limita únicamente a la ciberseguridad, sino que también se utiliza en la gestión de versiones de documentos, la detección de duplicados en bases de datos, y en general, en cualquier escenario donde se necesite comparar datos similares, pero no idénticos.


Escenario de Phishing

En un escenario de phishing que emplea "fuzzy hashing", la técnica se utilizaría para comparar archivos o datos similares, especialmente en el contexto de identificar sitios web falsos o páginas de phishing que imitan visualmente a sitios legítimos.

1. Creación de un Sitio Web Falso:

- Un atacante crea un sitio web falso que imita visualmente a un sitio legítimo, como el de un banco. El objetivo es hacer que el sitio falso sea lo más parecido posible al original para engañar a las víctimas.

2. Generación de Variantes:

- El atacante utiliza técnicas para crear variantes del sitio web falso. Esto implica realizar cambios leves en el código fuente, las imágenes, el texto u otros elementos del sitio para crear versiones que sean similares, pero no idénticas.

3. Envío de Correos Electrónicos de Phishing:

- Se envían correos electrónicos de phishing a un grupo de destinatarios, haciéndoles creer que necesitan realizar alguna acción urgente, como verificar su cuenta bancaria. El correo incluye enlaces que apuntan a diferentes variantes del sitio falso.

4. Fuzzy Hashing para Detección:

- Los sistemas de seguridad, como soluciones antivirus o herramientas de detección de phishing, utilizan algoritmos de "fuzzy hashing" para calcular hashes de las páginas web y compararlos con bases de datos de hashes conocidos. Si las variantes del sitio falso tienen suficientes similitudes, se pueden detectar como posibles páginas de phishing.

5. Prevención y Alerta:

- Si se detecta que una página web tiene un hash similar a una conocida por ser maliciosa, se pueden tomar medidas preventivas, como bloquear el acceso al sitio, alertar al usuario o notificar al proveedor de servicios.

El uso de "fuzzy hashing" en este contexto ayuda a detectar sitios web maliciosos que han sido diseñados para ser visualmente similares a los sitios legítimos, pero que han sufrido modificaciones leves para eludir la detección convencional basada en hashes estáticos.

Herramientas

1. ssdeep:

- ssdeep es una herramienta (y una biblioteca) que implementa el algoritmo de hashing difuso llamado "context-triggered piecewise hashes" (CTPH). Es ampliamente utilizado en la detección de malware y en la identificación de archivos similares.


2. sdhash:

- sdhash es otra herramienta que se basa en la técnica de hashing difuso para identificar similitudes entre conjuntos de datos. Puede ser útil en análisis forense y en la detección de duplicados.


3. spamsum:

- spamsum es una herramienta que utiliza técnicas de hashing difuso para identificar similitudes entre conjuntos de datos. Aunque fue diseñado originalmente para la detección de spam, puede aplicarse en diversos contextos.


4. TLSH (Trend Micro Locality Sensitive Hash):

- TLSH es un algoritmo de hashing difuso desarrollado por Trend Micro. Está diseñado para ser rápido y eficiente en la detección de similitudes entre datos.


5. md5deep y hashdeep:

- md5deep y hashdeep son herramientas que permiten la creación y verificación de hashes para grandes conjuntos de datos. Aunque no son específicamente para fuzzy hashing, permiten la creación de hashes para comparar similitudes entre archivos.


Conclusión

El hashing difuso emerge como una herramienta esencial en la detección de amenazas y la gestión de datos, permitiendo la identificación de similitudes entre conjuntos de información, incluso ante modificaciones mínimas. Con herramientas como ssdeep, sdhash, y otras, se logra una mayor eficacia en la detección de malware, la gestión de versiones y el análisis forense. A pesar de su utilidad, se destaca la importancia de un enfoque integral de seguridad, que incluya concienciación, educación y actualización constante de las medidas de protección.