AuthentiCode Launcher ejecuta todo

2

Imagine que un proveedor utiliza AuthentiCode solo para deshacerse de las advertencias amarillas de UAC. Para evitar comprar nuevos certificados cada año, el proveedor podría crear un Launcher EXE que esté firmado, solicite privilegios de UAC e inicie el archivo EXE del proyecto.

Además del hecho de que el programa del proveedor se puede descifrar sin que nadie lo note, me pregunto sobre los siguientes 2 problemas:

  1. Si alguien escribe un programa malicioso, podría usar el programa de inicio del proveedor para hacer que la víctima se sienta bien cuando vea un cuadro de diálogo azul de UAC.

  2. Técnicamente, el proveedor no firmó un código malicioso (*), por lo que el proveedor no es "responsable" de las actividades maliciosas y la CA probablemente no revocará el certificado del proveedor.

Entonces, ¿cuáles son las consecuencias de este Lanzador (es decir, es el proveedor responsable, y revocaría su certificado el CA?), y es cierto que AuthentiCode puede ser fácilmente engañado usando lanzadores y / o importaciones de DLL sin marcar?

(*) el lanzador es un caso bastante extremo; sin embargo, casi todos los ejecutables firmados que ejecutan código desde una DLL podrían usarse para ejecutar código malicioso (en DLL sin firma / sin marcar). Afaik, la vinculación estática de los archivos DLL no contiene ninguna comprobación de AuthentiCode, por lo que estos ejecutables son tan malos como el Launcher EXE.

    
pregunta Daniel Marschall 24.10.2015 - 17:49
fuente

1 respuesta

1

De hecho, Windows no muestra ninguna advertencia de seguridad cuando un proceso elevado (es decir, uno que pasó el cuadro de diálogo de UAC) inicia otro proceso o carga un archivo DLL. Esto no es un problema con Authenticode, porque Authenticode solo aplica una firma. Esto podría considerarse un problema con el modelo de confianza en Windows.

Básicamente, cuando el usuario hace clic en Sí en el cuadro de diálogo de UAC, dicen que confían plenamente en el ejecutable que están a punto de ejecutarse y desean darle acceso completo a su PC. Esto incluye la capacidad de cargar cualquier DLL o iniciar cualquier EXE. Si el usuario cree que el iniciador del proveedor puede lanzar ejecutables malintencionados o puede ser vulnerable a ataques de inyección de DLL, debe hacer clic en No en el cuadro de diálogo UAC. Es posible que el proveedor no haya firmado un código malicioso, pero ciertamente ha firmado un código vulnerable y ciertamente es responsable de ello.

Si usted es el proveedor que contempla escribir dicho lanzador, puede hacer que su iniciador verifique la firma en el ejecutable antes de lanzarlo. Rehusarse a lanzar un ejecutable sin una firma adecuada ofrecería una protección más sólida que su sugerencia de que Windows muestre otro indicador de UAC en el que el usuario pueda hacer clic de forma irreflexiva para hacer clic.

En última instancia, una firma digital como la que utiliza Authenticode solo se puede usar para verificar el origen del código. No se puede usar para verificar si el código hará algo malicioso.

    
respondido por el Jan Goyvaerts 18.01.2016 - 05:20
fuente

Lea otras preguntas en las etiquetas