2010-08-25 13 views
6

Microsoft lanzó Security Advisory (2269637) Insecure Library Loading Could Allow Remote Code Execution.Impacto de Microsoft Security Advisory (2269637) en la codificación .NET

La nota se refiere a una herramienta que ayudará a detectar este problema y las pautas de programación en Dynamic-Link Library Security.

¿Cómo se traducen estas pautas al desarrollo de .NET? Supongo que esto solo afecta a Platform Invoke.

¿Sigue siendo esta la manera recomendada de importar bibliotecas del sistema?

DllImport("user32.dll")] 
+1

+1 gran pregunta. – rook

Respuesta

6

Las DLL de sistema como user32.dll son seguras porque they're in the KnownDLLs list in the registry. Si intenta cargar un archivo DLL llamado "user32", Windows está codificado para tomar la copia oficial del directorio system32.

+0

Correcto ... pero, ¿es la aplicación el manejador designado para extensiones de archivo específicas? ¿Como estás escribiendo un reproductor de películas? Porque si no es así, entonces no puede controlar el directorio de trabajo actual y no hay un ataque. Deberías leer un ataque antes de publicarlo, estoy 90% seguro de que su aplicación no se verá afectada y de que hay 1 y solo 1 forma de saberlo con certeza. – rook

4

Desde esa página:

Microsoft ha publicado una guía para los desarrolladores en el artículo de MSDN, Dynamic-Link Library Security, sobre cómo utilizar correctamente las interfaces de programación de aplicaciones disponibles para evitar esta clase de vulnerabilidad.

y

Este problema sólo afecta a las aplicaciones que no se cargan las bibliotecas externas de forma segura. Microsoft ha publicado previamente directrices para desarrolladores en el artículo de MSDN, Dynamic-Link Library Security, que recomiendan métodos alternativos para cargar bibliotecas que son seguras contra estos ataques.

Tiene un enlace a la misma página en su pregunta, por lo tanto, siempre que siga las pautas descritas en esa página, su aplicación debe ser segura. Las notas sobre el modo de búsqueda de procesos seguros y el orden de los directorios de búsqueda parecen ser particularmente relevantes.

+0

¿Pero cómo los aplica a su ejemplo de User32.dll? El modo de búsqueda segura no es por proceso, es por sesión y no es realmente tuyo para jugar. El sistema carga la DLL antes de obtener el control, por lo que la ruta de búsqueda tampoco está disponible. Como un manifiesto? ¿Realmente desea agregar todos los archivos DLL del sistema a su manifiesto? ¿Cuál es la forma portátil correcta de especificar el directorio del sistema en el manifiesto? – Rup

+0

@Rup - Vea la respuesta de @Tim Robinson. No creo que pueda agregar más que eso. – ChrisF

2

Instale su aplicación y ejecute H.D. Moore's tool. H.D. Moore descubrió este patrón de ataque.

Si su aplicación no es responsable de ejecutar automáticamente una extensión de archivo, entonces usted es no vulnerable. Apuesto a que si ejecuta esta herramienta, su aplicación no aparecerá en la lista de aplicaciones vulnerables.

+0

¡Gracias por esta útil recomendación! –

Cuestiones relacionadas