DLL son las siglas de Dynamic Link Libraries y son partes externas de aplicaciones que se ejecutan en Windows o cualquier otro sistema operativo. La mayoría de las aplicaciones no están completas en sí mismas y almacenan el código en diferentes archivos. Si es necesario el código, el archivo relacionado se carga en la memoria y se utiliza. Esto reduce el tamaño del archivo de la aplicación mientras optimiza el uso de RAM. Este artículo explica qué es Secuestro de DLL y cómo detectarlo y prevenirlo.

¿Qué son los archivos DLL o las bibliotecas de vínculos dinámicos?

Secuestro de DLL

Secuestro de DLL

Los archivos DLL son Bibliotecas de vínculos dinámicos y, como lo demuestra el nombre, son extensiones de diferentes aplicaciones. Cualquier aplicación que usemos puede o no usar ciertos códigos. Dichos códigos se almacenan en diferentes archivos y se invocan o cargan en la RAM solo cuando se requiere el código relacionado. Por lo tanto, evita que un archivo de aplicación se vuelva demasiado grande y evita que la aplicación acapare los recursos.

La ruta de los archivos DLL la establece el sistema operativo Windows. La ruta se establece mediante variables ambientales globales. De forma predeterminada, si una aplicación solicita un archivo DLL, el sistema operativo busca en la misma carpeta en la que está almacenada la aplicación. Si no se encuentra allí, va a otras carpetas según lo establecido por las variables globales. Hay prioridades asociadas a las rutas y ayuda a Windows a determinar qué carpetas buscar las DLL. Aquí es donde entra en juego el secuestro de DLL.

¿Qué es el secuestro de DLL?

Dado que las DLL son extensiones y necesarias para usar casi todas las aplicaciones en sus máquinas, están presentes en la computadora en diferentes carpetas como se explica. Si el archivo DLL original se reemplaza con un archivo DLL falso que contiene código malicioso, se conoce como Secuestro de DLL.

Como se mencionó anteriormente, existen prioridades en cuanto a dónde busca el sistema operativo los archivos DLL. Primero, busca en la misma carpeta que la carpeta de la aplicación y luego busca, en función de las prioridades establecidas por las variables de entorno del sistema operativo. Por lo tanto, si un archivo good.dll está en la carpeta SysWOW64 y alguien coloca un bad.dll en una carpeta que tiene mayor prioridad en comparación con la carpeta SysWOW64, el sistema operativo usará el archivo bad.dll, ya que tiene el mismo nombre que la DLL. solicitado por la aplicación. Una vez en la RAM, puede ejecutar el código malicioso contenido en el archivo y puede comprometer su computadora o redes.

Cómo detectar el secuestro de DLL

El método más sencillo para detectar y prevenir el secuestro de DLL es utilizar herramientas de terceros. Hay algunas buenas herramientas gratuitas disponibles en el mercado que ayudan a detectar un intento de pirateo de DLL y prevenirlo.<!– –>

Uno de esos programas es Auditor de secuestro de DLL pero solo admite aplicaciones de 32 bits. Puede instalarlo en su computadora y escanear todas sus aplicaciones de Windows para ver qué aplicaciones son vulnerables al secuestro de DLL. La interfaz es simple y autoexplicativa. El único inconveniente de esta aplicación es que no puede escanear aplicaciones de 64 bits.

Otro programa, para detectar el secuestro de DLL, DLL_HIJACK_DETECT, está disponible a través de GitHub. Este programa comprueba las aplicaciones para ver si alguna de ellas es vulnerable al secuestro de DLL. Si es así, el programa informa al usuario. La aplicación tiene dos versiones: x86 y x64, por lo que puede usar cada una para escanear aplicaciones de 32 y 64 bits respectivamente.

Cabe señalar que los programas anteriores solo escanean las aplicaciones en la plataforma Windows en busca de vulnerabilidades y en realidad no evitan el secuestro de archivos DLL.

Cómo prevenir el secuestro de DLL

El problema debe ser abordado por los programadores en primer lugar, ya que no hay mucho que pueda hacer excepto reforzar sus sistemas de seguridad. Si en lugar de una ruta relativa, los programadores comienzan a utilizar una ruta absoluta, la vulnerabilidad se reducirá. Al leer la ruta absoluta, Windows o cualquier otro sistema operativo no dependerá de las variables del sistema para la ruta y se dirigirá directamente a la DLL deseada, descartando así las posibilidades de cargar la DLL del mismo nombre en una ruta de mayor prioridad. Este método tampoco es a prueba de fallas porque si el sistema se ve comprometido y los ciberdelincuentes conocen la ruta exacta de la DLL, reemplazarán la DLL original con la DLL falsa. Eso sería sobrescribir el archivo para que la DLL original se convierta en código malicioso. Pero nuevamente, el ciberdelincuente necesitará conocer la ruta absoluta exacta mencionada en la aplicación que solicita la DLL. El proceso es difícil para los ciberdelincuentes y, por lo tanto, se puede contar con él.<!– –>

Volviendo a lo que puede hacer, solo intente ampliar sus sistemas de seguridad para proteger mejor su sistema Windows. Utilice un buen cortafuegos. Si es posible, use un firewall de hardware o encienda el firewall del enrutador. Utilice buenos sistemas de detección de intrusos para saber si alguien está intentando jugar con su computadora.

Si está interesado en solucionar problemas con las computadoras, también puede realizar lo siguiente para aumentar su seguridad:

  1. Deshabilitar la carga de DLL desde recursos compartidos de red remota
  2. Deshabilitar la carga de archivos DLL desde WebDAV
  3. Deshabilite el servicio WebClient por completo o configúrelo en manual
  4. Bloquee los puertos TCP 445 y 139, ya que se usan más para comprometer computadoras
  5. Instale las últimas actualizaciones del sistema operativo y el software de seguridad.

Microsoft ha lanzado una herramienta para bloquear ataques de secuestro de carga de DLL. Esta herramienta mitiga el riesgo de ataques de secuestro de DLL al evitar que las aplicaciones carguen código de manera insegura desde archivos DLL.

Si desea agregar algo al artículo, comente a continuación.

Secuestro de DLLSecuestro de DLL

  • Etiquetas: Malware, vulnerabilidad

Por Jason