Buscar este blog

miércoles, 11 de abril de 2012

Hispasec presenta WinLockLess: Herramienta para prevenir el arranque de programas en el inicio de Windows (y su potencial bloqueo)

Hispasec presenta WinLockLess: Herramienta para prevenir el arranque de programas en el inicio de Windows (y su potencial bloqueo)


Hemos creado una pequeña herramienta para prevenir (en lo posible) que el malware se ejecute de nuevo en el inicio del sistema (y así pueda bloquearlo). Esperamos que sea útil contra el malware en general.


¿Qué hace el programa?

Evita que los programas modifiquen ciertos puntos del sistema para que se lancen de forma automática en el inicio de Windows. Se ha intentado que sea bastante sencillo: niega con un solo click el permiso de crear subclaves y establecer el valor (y en algunos casos, de borrar) sobre estas ramas implicadas en el arranque de Windows:

HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinLogon
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

Además protege la carpeta de inicio del usuario, y la rama:

SYSTEM\CurrentControlSet\Control\SafeBoot

Evitando no solo crear sublclaves y establecer valores, sino también que se borre. Con esto nos aseguramos de que siempre podremos entrar en el modo seguro.

Las claves son protegidas tanto en su versión "nativa" de 64 bits como en las virtualizadas de 32 bits (bajo Wow6432node). Esto quiere decir que protegería tanto de programas nativos compilados en 64 bits como los de 32. Por ahora existe poco malware compilado de forma nativa para 64 bits, pero será común en el futuro.

Si las ramas no existen, las crea y establece los permisos para proteger así al usuario.

¿Por qué esas claves?

Estas son las claves más conocidas que suelen modificar los troyanos para iniciarse con el sistema y bloquearlo. Hay muchos otros puntos de inicio, pero que no son utilizados por la mayoría del malware. Por ejemplo, el malware de la policía, SpyEye, zbot... todos usan normalmente alguna de esas ramas para arrancarse al inicio. En última instancia, al proteger el modo seguro, el usuario se asegura de que siempre podrá entrar en ese modo sin alteraciones.

Siempre se aplicarán las reglas para el usuario bajo cuyo contexto se lanza el programa. Esto quiere decir que si se usan varios usuarios en el sistema, se debe lanzar para cada uno de ellos. Eso sí, el programa requerirá privilegios de administrador para modificar algunos permisos.

El programa permite tanto aplicar los cambios como revertirlos. Así, si el usuario necesita modificar esas ramas legítimamente, solo debe revertir temporalmente el bloqueo.

¿Qué no hace el programa?

El programa no es un antivirus ni evitará ninguna infección. Sólo evitará que, buena parte del malware conocido, bloquee el acceso al sistema al arrancarse con él. Por supuesto, no están contemplados todos puntos de arranque de Windows usados por el malware, pero sí las más relevantes.

El programa queda residente, pero no es necesario que lo haga. De hecho, no se recomienda. Si queda residente es para recordar al usuario que ha aplicado los permisos y, dado el caso, revertirlos cómodamente.

No se instala. Tan solo es una interfaz cómoda para aplicar ciertos permisos en el registro, que pueden ayudar a evitar que algunas variantes de malware se arranquen con el sistema y no permitan su uso ni su arranque en modo seguro. Esto quiere decir que, si el usuario queda infectado, el troyano podrá hacer lo que quiera y necesite en el sistema durante la primera ejecución. Aplicar WinLockLess impedirá (en algunos casos) que se arranque en el siguiente reinicio, pero el usuario deberá todavía desinfectar su máquina.

El programa tampoco detiene la ejecución actual del troyano (antes de un reinicio) ni lo borra de su ubicación en el disco duro. Solo impide que se copie en los puntos de inicio de Windows.

Por supuesto, un malware en un momento dado puede modificar los permisos aplicados por el programa, eliminar la protección, y establecerse en las ramas del registro. Incluso ejecutarse como SYSTEM... Pero no es habitual que el malware actúe de esa manera actualmente, ni se preocupe demasiado por los permisos (excepto cuando no es administrador, en cuyo caso busca la configuración del usuario).

¿Cómo debo usarlo?

Simplemente se ejecuta, se aplican los cambios en las ramas deseadas, y poco más. El usuario no debe notar ninguna incidencia en su sistema. Es cierto que ciertos programas legítimos querrán escribir en el registro, especialmente en

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

Para arrancarse con Windows. Si los cambios fueron aplicados, WinLockLess se lo impedirá. En ese caso, el usuario deberá revertir las modificaciones en el registro (pulsando sobre el botón correspondiente), instalar el programa deseado, y volver a aplicar las modificaciones.

El programa también sirve para evitar que los programas en general se arranquen al inicio (algo que suele ser molesto para usuarios iniciados).

¿Qué necesito para ejecutarlo?

Se necesita como mínimo la versión 4 de .NET (disponible en http://www.microsoft.com/download/en/details.aspx?id=31 o a través de actualizaciones automáticas). Los usuarios de Vista y 7 probablemente ya dispongan de ella a través de las actualizaciones automáticas. La razón de usar esta versión del framework (entre otras) es el trato nativo a ramas de 64 bits en el registro. WinLockLess. Ha sido programado por Sergio de los Santos en C#, y el diseño es de Jose Mesa. Por supuesto, no se ofrece ninguna garantía de que bloquee la activación en el arranque de futuras versiones de ningún tipo de troyano.

Ejecuté WinLockLess y aun así el troyano se ha lanzado en el arranque.
¿Qué ha pasado?

Es posible. Los troyanos que bloquean el ordenador pueden usar decenas de técnicas para lanzarse en el inicio. WinLockLess solo cubre las más comunes. También es posible que se haya lanzado con un usuario diferente al infectado. También, hipotéticamente pero no probable, el troyano ha podido eliminar primero los permisos y luego escribirse en la rama.

En cualquier caso, por supuesto, es una capa más que no debe crear una falsa sensación de seguridad. Se deben seguir usados los métodos de prevención tanto reactivos como preventivos habituales.

¡Windows me advierte al ejecutarlo de que puede ser peligroso!

Esto es porque ha sido descargado de Internet, es un ejecutable, y no está firmado.

Se puede descargar desde:


Laboratorio Hispasec

No hay comentarios.:

Publicar un comentario