El hashing difuso , también conocido como hashing de similitud , [ 1 ] es una técnica para detectar datos que son similares , pero no exactamente iguales, a otros datos. Esto contrasta con las funciones hash criptográficas , que están diseñadas para tener hashes significativamente diferentes incluso para diferencias mínimas. El hashing difuso se ha utilizado para identificar malware [ 2 ] [ 3 ] y tiene potencial para otras aplicaciones, como la prevención de pérdida de datos y la detección de múltiples versiones de código. [ 4 ] [ 5 ]
Fondo
Una función hash es un algoritmo matemático que asigna datos de tamaño arbitrario a una salida de tamaño fijo. Muchas soluciones utilizan funciones hash criptográficas como SHA-256 para detectar duplicados o verificar archivos conocidos dentro de una gran colección de archivos. [ 4 ] Sin embargo, las funciones hash criptográficas no se pueden usar para determinar si un archivo es similar a un archivo conocido, porque uno de los requisitos de una función hash criptográfica es que un pequeño cambio en la entrada debería modificar el valor hash de forma tan extensa que el nuevo valor hash parezca no estar correlacionado con el valor hash anterior ( efecto avalancha ). [ 6 ]
El hashing difuso existe para resolver el problema de detectar datos similares, pero no idénticos, a otros datos. Los algoritmos de hashing difuso utilizan específicamente algoritmos en los que dos entradas similares generan dos valores hash similares. Esta propiedad es justo lo contrario del efecto avalancha deseado en las funciones hash criptográficas.
El hash difuso también se puede utilizar para detectar cuándo un objeto está contenido dentro de otro. [ 1 ]
Aproches
Hay algunos enfoques utilizados para construir algoritmos de hash difuso: [ 7 ] [ 5 ]
- El hash por partes activado por contexto (CTPH) construye un hash dividiendo la entrada en múltiples partes, calculando hashes tradicionales para cada parte y luego combinando esos hashes tradicionales en una sola cadena. [ 8 ]
- El hash sensible a la localidad coloca elementos de entrada similares en los mismos "cubos", que pueden utilizarse para la agrupación de datos y las búsquedas del vecino más cercano .
Herramientas y algoritmos destacados
- Spamsum es una herramienta creada por Andrew Tridgell que utiliza el hash difuso para determinar si un correo electrónico es similar a un correo no deseado conocido. Funciona generando un hash difuso para un correo electrónico y comparándolo con los hashes difusos de correos electrónicos no deseados conocidos para generar un resultado de coincidencia entre 0 (desajuste total) y 100 (coincidencia perfecta). Si el resultado de coincidencia es suficientemente alto, el correo electrónico se clasifica como spam. [ 9 ] [ 10 ]
- Nilsimsa Hash es unalgoritmo de hash sensible a la localidad , enfocado en la lucha contra el spam.
- ssdeep es una herramienta de hash difuso basada en hash por partes activado por contexto para comparar archivos. [ 4 ]
- sdhash es una herramienta de hash difuso basada en el uso de filtros de Bloom para determinar si un archivo está contenido dentro de otro o cuán similares son dos archivos entre sí. [ 11 ]
- TLSH es un esquema de hash sensible a la localidad para comparar si los archivos son similares entre sí. Se ha utilizado para la agrupación de malware. [ 12 ]
- Rspamd utiliza el hash difuso para detectar correos electrónicos no deseados, empleando el algoritmo shingles para este propósito. [ 13 ] [ 14 ]
Véase también
Referencias
- 1 2 Breitinger, Frank (mayo de 2014). "Publicación especial NIST 800-168" (PDF) . Publicaciones NIST . doi : 10.6028/NIST.SP.800-168 . Recuperado el 11 de enero de 2023 .
- ↑ Pagani, Fabio; Dell'Amico, Matteo; Balzarotti, Davide (13 de marzo de 2018). «Más allá de la precisión y la exhaustividad» (PDF) . Actas de la Octava Conferencia ACM sobre Seguridad y Privacidad de Datos y Aplicaciones . Nueva York, NY, EE. UU.: ACM. págs. 354–365 . doi : 10.1145/3176258.3176306 . ISBN 9781450356329. Consultado el 12 de diciembre de 2022 .
- ↑ Sarantinos, Nikolaos; Benzaïd, Chafika; Arabiat, Omar (2016). "Análisis forense de malware: el valor de los algoritmos de hash difuso para identificar similitudes" . 2016 IEEE Trustcom/BigDataSE/ISPA (PDF) . págs. 1782–1787 . doi : 10.1109/TrustCom.2016.0274 . ISBN 978-1-5090-3205-1. S2CID 32568938 . 10.1109/TrustCom.2016.0274.
- 1 2 3 Kornblum, Jesse (2006). "Identificación de archivos casi idénticos mediante hash por partes activado por contexto" . Investigación digital . 3, Suplemento (septiembre de 2006): 91–97 . doi : 10.1016/j.diin.2006.06.015 .
- 1 2 Oliver, Jonathan; Cheng, Chun; Chen, Yanggui (2013). "TLSH: un hash sensible a la localidad" (PDF) . Cuarto Taller sobre Ciberdelincuencia y Computación Confiable de 2013. IEEE. págs. 7–13 . doi : 10.1109/ctc.2013.9 . ISBN 978-1-4799-3076-0. Consultado el 12 de diciembre de 2022 .
- ↑ Al-Kuwari, Saif; Davenport, James H.; Bradford, Russell J. (2011). "Funciones hash criptográficas: tendencias de diseño recientes y nociones de seguridad" . Cryptology ePrint Archive . Informe 2011/565.
- ↑ Oliver, Jonathan; Hagen, Josiah (2021). "Diseño de los elementos de un esquema de hash difuso" (PDF) . 2021 IEEE 19.ª Conferencia Internacional sobre Computación Integrada y Ubicua (EUC) . IEEE. págs. 1–6 . doi : 10.1109/euc53437.2021.00028 . ISBN 978-1-6654-0036-7Archivado del original (PDF) el 14 de abril de 2021. Consultado el 14 de abril de 2021 .
- ↑ "Resumen de similitud de código abierto DFRWS agosto de 2016" (PDF) . tlsh.org . Consultado el 11 de diciembre de 2022 .
- ↑ "spamsum README" . samba.org . Consultado el 11 de diciembre de 2022 .
- ↑ "spamsum.c" . samba.org . Consultado el 11 de diciembre de 2022 .
- ↑ Roussev, Vassil (2010). "Data Fingerprinting with Similarity Digests" . Advances in Digital Forensics VI . IFIP Advances in Information and Communication Technology. Vol. 337. Berlín, Heidelberg: Springer Berlin Heidelberg. pp. 207–226 . doi : 10.1007/978-3-642-15506-2_15 . ISBN 978-3-642-15505-5ISSN 1868-4238
- ↑ "Agrupación rápida de datos de alta dimensión: Agrupación del conjunto de datos Malware Bazaar" (PDF) . tlsh.org . Consultado el 11 de diciembre de 2022 .
- ↑ "Uso de hashes difusos" . Rspamd . Consultado el 25 de septiembre de 2025 ."Módulo de verificación difusa" . Rspamd . Consultado el 25 de septiembre de 2025 .
- ↑ Broder, Andrei Z.; Glassman, Steven C.; Manasse, Mark S.; Zweig, Geoffrey G. "Agrupamiento sintáctico de la Web" (PDF) . Computer Networks and ISDN Systems . 29 (septiembre de 1997). Elsevier Science: 1157–1166 . doi : 10.1016/S0169-7552(97)00031-7 . Consultado el 25 de septiembre de 2025 .
- Antispam
- Seguridad informática
- Informática forense
- Hashing