Una de las técnicas más utilizadas para descubrir malware oculto en un archivo es analizando su hack o comprobando su firma digital. De esta manera, si el desarrollador ha firmado su archivo o ha puesto el hash del fichero original y, tras descargarlo, comprobamos que no coincide, es que probablemente o esté mal descargado o puede haber sido modificado por una tercera persona, en cuyo caso lo mejor es no ejecutarlo, eliminarlo y reportarlo lo antes posible para que el responsable proceda a su revisión.
Cuando descargamos y ejecutamos un archivo, Windows realiza tres tareas antes de cargar el proceso en la memoria: analiza las cabeceras PE, valida el certificado y comprueba el hash del archivo. De esta manera, en el momento se cambia un solo bit de un archivo o de la firma digital, el hash del archivo cambia por completo, haciendo que Windows detecte algo raro en él y bloquee su ejecución.
Por ello, esta técnica es la mejor forma de comprobar si un archivo mantiene su integridad o ha sido modificado, por ejemplo, para ocultar malware en él, o al menos era la mejor técnica hasta ahora. Recientemente, un grupo de investigadores de seguridad de Deep Instinct ha descubierto una técnica a través de la cual es posible inyectar malware dentro de un archivo firmado digitalmente sin que esto afecte al hash del mismo.
Tras realizar ingeniería inversa al proceso mediante el cual Windows comprueba los archivos, estos investigadores han descubierto que el sistema no incluye 3 cabeceras de PE en el proceso de validación del hash, por lo que estas entradas se pueden modificar libremente sin que ello altere el resultado del cálculo de integridad.
Las diferencias entre el primer archivo, el original, y el segundo, que oculta el malware, son obvias en cuanto a tamaño, pero el hash de ambos sigue siendo el mismo y la firma digital sigue siendo válida.
Una técnica que hace el malware totalmente imposible de detectar
Los expertos de seguridad han demostrado que es posible hacerlo en una prueba de concepto, pero, por motivos obvios, no han dado la más mínima pista del proceso. Además, ocultando malware mediante esta técnica se evita que los motores antivirus puedan detectar este código malicioso en un archivo, incluso sin la necesidad de ocultarlo con los típicos ofuscadores utilizados por los piratas informáticos.
Los expertos de seguridad también demostraron cómo es posible ejecutar el código malicioso incluso verificando la firma digital del archivo, aunque, en este caso, el proceso es un poco más complicado. De caer en malas manos, esta técnica supone un serio problema para la seguridad de usuarios y empresas ya que permitiría a los piratas informáticos distribuir malware de forma totalmente indetectable. Por suerte, de momento, esta técnica no funciona en arquitecturas de 64 bits, aunque con un poco más de ingeniería inversa podría llegar a conseguirse.
Fuente: Blackhat 2016