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