¿El hash MDA o SHA1 basado en el motor antivirus?

2

Estoy intentando entender más sobre los algoritmos de hash MD5 y SHA1 y su comportamiento en software de seguridad serio ( encontré esto pero no me ayudó más ).

¿Por qué ClamAV utiliza técnicas de escaneo adicionales ( MD5 para una sección específica en un archivo de PE, comodines, firmas de iconos para archivos de PE .... ) en lugar de simplemente comparar MD5 de un malware existente?

¿Por qué no solo se calcula el hash MD5 de todo el archivo? (Como sé, las funciones de hashes MD5 y SHA1 son extremadamente precisas)

No estoy hablando de detección heurística, ya que esto se puede hacer conectando la llamada a la API del ejecutable.

    
pregunta Marwen Trabelsi 05.12.2012 - 23:47
fuente

4 respuestas

4

Los virus se injertarán en archivos ejecutables existentes. Por lo tanto, no hay un archivo arquetípico un para un virus con todas las copias bit a bit idénticas a ese archivo. Además, incluso una pieza de malware es un archivo independiente, los autores de malware se encargan de transformar automáticamente su código en miles de millones de variantes (los bits de cambio que están en el archivo pero no afectan su funcionalidad), precisamente para que Tarea de detección más difícil para el software anti-malware. El antimalware antiguo funcionó como usted sugiere (hash del archivo, búsqueda en la base de datos de "hash mal conocido"), pero los autores de malware se han adaptado hace mucho tiempo, lo que obliga a que el antimalware sea más inteligente en su detección.

    
respondido por el Thomas Pornin 24.02.2013 - 21:14
fuente
4

Porque el malware puede cambiar partes de sí mismo con datos aleatorios y, por lo tanto, cambiar el hash del archivo o los archivos que ha infectado. Además, la mayoría del malware avanzado en estos días está repleto de lo que se denomina "criptógrafo FUD", lo que dificulta mucho el trabajo de los proveedores de AV.

Lea más en enlace

Si desea una mejor seguridad que la que proporciona AV, adopte un enfoque de lista blanca para los ejecutables, que le permita ejecutar solo los archivos .exe que usted específicamente permite. Un ejemplo de ello es Windows AppLocker.

    
respondido por el Matrix 06.12.2012 - 00:13
fuente
2

Las otras respuestas son buenas, pero otra razón es que con los hash (sin incluir los sistemas de hash a trozos como ssdeep), si el archivo cambia incluso en el más mínimo, el hash será drásticamente diferente. Así que el autor del malware puede simplemente escribir:

echo 1 >> malware.exe

Y el archivo tendrá un hash diferente.

    
respondido por el Anorov 24.02.2013 - 23:27
fuente
1

Como se ha mencionado, el hashing de todo el archivo no es efectivo por varias razones.

  1. Es (un poco) computacionalmente más intensivo, entonces ¿por qué hacerlo si puedes evitarlo?

  2. Algunos virus son polimórficos, por lo tanto, cualquier cambio leve puede hacerlos indetectables a través de este método de "archivo completo".

  3. En realidad, es relativamente raro obtener un ejecutable de malware individualmente. La gran mayoría de las veces estará vinculado con otro ejecutable, lo que significa que nuevamente pasamos de un virus específico a miles de variantes dependiendo de a qué archivo está vinculado, volviéndolo más bien inútil.

  4. Una salida final que describiré es realmente el punto de dificultar (al menos un poco más) a los autores de malware. Si tuviera un archivo con un montón de basura al principio, un montón de basura al final, pero una parte central muy específica y maliciosa en el centro que hace las cosas malas y es difícil de volver a escribir de otra manera, quiero identificar que en cada archivo Entonces, no importa qué basura haya puesto antes / después, todavía tienen que encontrar una nueva forma de volver a escribir esta sección clave, que puede ser mucho más difícil que transformar un poco de basura.

Piénselo de esta manera, si quisiera encontrar una frase clave como "Security StackExchange" en una página web, ¿debería buscar esa frase específicamente? ¿O encuentra una página que la contenga y solo busque copias de esa página? Esa es esencialmente la diferencia entre la búsqueda de una firma de virus específica (frase) frente al hashing del programa (página completa).

Vale la pena señalar que muchas de estas cosas se han simplificado enormemente para facilitar la explicación.

    
respondido por el Peleus 25.02.2013 - 03:25
fuente

Lea otras preguntas en las etiquetas