¿Por qué mi rundll32.exe no tiene una firma verificada?

7

En el administrador de tareas, vi una instancia de rundll32.exe en ejecución, no es un gran problema. Solo por diversión, quería subir el archivo de origen a VirusTotal.

Dondenoté,elarchivorundll32.exenotienelamarcadefirmaverificadacomoelrestodelosarchivosdesystem32,escasicomounafalsificación.Loquemepreocupó,porqueesmuyfácilintercambiararchivossystem32enWindowsporcualquierprogramaquelehayasdadopermisodeadministrador(porejemplo,muchosarchivosdeconfiguración).

Tambiénencontrélaprimerafechadeenvíosospechosaparaunarchivotanantiguo.¿Windows10actualizaconstantementeestearchivo?

Esperabaquesevieracomolohaceparaotrosarchivosverificados:

¿Cómopuedoentenderqueelarchivonoestádañado?

Edit1:Aquíestáelenlacealanálisis. enlace

    
pregunta Rockybilly 11.05.2017 - 01:36
fuente

3 respuestas

5

Parece que esto es una cosa bastante simple. Los archivos incorporados de Windows no están firmados y almacenados individualmente en el binario, usan catálogos para almacenar sus firmas. Vea aquí: (es antiguo pero en su mayoría sigue siendo cierto: enlace )

Puede verificar esto usted mismo con una rápida comprobación de firma de los archivos relevantes:

También debería poder usar signtool para verificar el catálogo, que no estoy seguro de cuál se usa para rundll32.exe.

signtoolverify /c fileIdontknow.cat rundll32.exe

Eso debería decirte si el catálogo lo contiene, aunque supongo que debería.

    
respondido por el Ori 18.05.2017 - 02:04
fuente
2

Edición 1: Vea la excelente respuesta de @Ori sobre cómo Microsoft ha firmado un paquete de estos ejecutables. Dejo esta respuesta aquí porque creo que mi argumento sobre si los archivos no están firmados individualmente con Authenticode (sobre lo que informa VirusTotal) todavía es válido. Finalizar adición

No pude encontrar una respuesta oficial de Microsoft, pero tengo una teoría de por qué este programa (y otros similares) no están firmados directamente.

He revisado varias de mis computadoras y máquinas virtuales y encontré que este archivo no tiene un Autenticodo firmado, al menos no de cualquier forma que reconozca. Tengo varias versiones diferentes de este archivo (hace 8 años). Las copias limpias de Windows 10 (compilaciones diferentes) tienen diferentes versiones y sellos de tiempo, por lo que parece que Microsoft actualiza este archivo.

Bien, entonces ¿por qué Microsoft no firmará este archivo? Creo que la respuesta se encuentra en el propósito de rundll32.exe. Rundll32.exe se utiliza para ejecutar dlls que tienen la funcionalidad que se necesita pero no tienen ejes para ejecutarlos. Puedes ver algunos ejemplos en este artículo de How To Geek .

Las firmas de Authenticode imponen la identidad, determinan lo que aparece en una solicitud de UAC y ayudan a garantizar que no se manipule un archivo. Si una dll que forma parte de un proceso solicita una elevación, la firma del exe se usa para la solicitud del UAC, ya que ese es el proceso que se está ejecutando, no la dll.

Ahora, para algunas conjeturas, averigüe por qué el archivo no está firmado. Debido a que rundll32.exe ejecuta un código de terceros desconocido como parte de su propósito, una firma sería mala para la seguridad. El código de nivel de modo de usuario puede solicitar que rundll32.exe ejecute su dll. Si una dll solicitó una elevación, la ventana emergente mostraría rundll32.exe, que está firmado y verificado por Microsoft, y le solicita permisos de administrador. Esto haría que la gente sea mucho más probable que diga que sí si un programa de autor desconocido solicita permiso, que es su comportamiento actual. Debido a que Microsoft no puede garantizar razonablemente la función o la seguridad del código que ejecuta rundll32.exe, sería peligroso que lo firmen directamente.

Edición 1: @Ori ha descubierto cómo Windows valida estos archivos. Este último párrafo está aquí sólo para la historia. Finalizar adición

Ahora, esto no significa que el sistema operativo Windows no valide run32dll.exe. Podría (más trabajo de adivinar) comparar el hash del archivo para determinar si algo lo ha manipulado. Y luego ejecutarlo solo si es un archivo válido.

    
respondido por el AstroDan 17.05.2017 - 15:07
fuente
0

podría ser el caso en el que la herramienta que verificó las firmas digitales en el backend en VirusTotal no reconoce la firma debido a un formato, algoritmo o firma nuevos o alternativos. Solo intentaría analizar el binario utilizando otras herramientas que no sean VT solamente, preferiblemente herramientas nativas de Microsoft y Sysinternals para la validación de firmas. Vea estos artículos:

De lo contrario sería de hecho sospechoso ...

    
respondido por el kravietz 17.05.2017 - 14:49
fuente

Lea otras preguntas en las etiquetas