Descripción General |
En Windows, una vulnerabilidad de seguridad denominada "secuestro de DLL" puede ocurrir cuando una aplicación carga una DLL (Biblioteca de Vínculos Dinámicos) maliciosa en lugar de la deseada. Este riesgo surge cuando el sistema busca DLLs dependientes de la aplicación en directorios con permisos de escritura o controlados por usuarios no autorizados, lo que permite reemplazar una DLL legítima por una maliciosa con el mismo nombre. Para mitigar este riesgo en su aplicación Java, el Wrapper le permite configurar dónde el sistema buscará las DLLs cargadas por bibliotecas nativas. Restringir la búsqueda a directorios de confianza ayuda a evitar la carga de bibliotecas no confiables. Las siguientes propiedades se pueden utilizar para configurar las rutas de búsqueda para DLLs: NOTAEl alcance de esta configuración se limita al proceso de la aplicación Java, lo que significa que las rutas de búsqueda configuradas no se heredan en los procesos secundarios.
Además, estas configuraciones sólo afectan a las bibliotecas cargadas por código nativo, no a aquellas cargadas explícitamente por Java mediante métodos como system. |
Propiedad wrapper.java.windows.dll.search.mode |
||||||||
Esta propiedad permite configurar dos modos: uno que deja la búsqueda de DLL al comportamiento predeterminado del sistema y el otro que restringe la búsqueda sólo a las rutas especificadas por las propiedades wrapper.java.windows.dll.search.path.<n>. Los dos modos están representados por los siguientes tokens:
El valor predeterminado es LEGACY.
NOTAAl utilizar el modo LEGACY, el Wrapper permite que el sistema utilice su mecanismo predeterminado para cargar las DLLs. A partir del Service Pack 2 de Windows XP, Windows sigue un orden de búsqueda de DLLs más seguro que excluye el directorio de trabajo de la aplicación. Este cambio ayuda a reducir el riesgo de cargar DLLs maliciosas desde ubicaciones inseguras. Sin embargo, es importante tener en cuenta que el orden de búsqueda aún incluye los directorios especificados en la variable de entorno PATH. Dado que PATH suele compartirse en todo el sistema, puede incluir directorios desde los que la aplicación no puede cargar bibliotecas de forma segura. Se pueden agregar directorios específicos al comienzo de la RUTA utilizando las propiedades wrapper.system.library.path.<n>. Por el contrario, al usar el modo RESTRICTED, el sistema no busca las DLLs en los directorios listados en la variable de entorno PATH. Aunque PATH siempre se rellena con los valores de wrapper.java.windows.dll.search.path.<n>, el sistema no utiliza los directorios especificados por estas propiedades al buscar archivos DLL. Por lo tanto, el modo RESTRICTED se limita a la ruta system32, el directorio que contiene el comando Java y las rutas especificadas con wrapper.java.windows.dll.search.path.<n>. ADVERTENCIAAl utilizar el modo RESTRICTED, tenga cuidado, ya que las configuraciones demasiado restrictivas que no permiten directorios esperados por la JVM o la aplicación pueden provocar fallas en la carga de DLLs y errores de tiempo de ejecución. |
Propiedades wrapper.java.windows.dll.search.path.<n> |
||||||||
Este conjunto de propiedades permite configurar las rutas de búsqueda al cargar DLLs desde bibliotecas nativas. Estas propiedades solo se aplican cuando wrapper.java.windows.dll.search.mode está configurada como RESTRICTED y se ignoran cuando se usa el modo LEGACY.
Componente <n>:
|
Referencia: Librería |
|