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)


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:

Más información:

Laboratorio Hispasec

28 comentarios:

  1. Que maravilla. Hace unos dias pensaba en un tipo de software que hiciera algo asi. Como si me hubierais leido la mente.

    Genial!

    ResponderEliminar
  2. Está disponible el código fuente?

    saludos,

    ResponderEliminar
  3. ¡Fantástico!
    Varias de las entradas del Registry las tenía yo bloqueadas 'a mano', con el trabajo que ello conlleva.
    Maravillosa aportación, una vez más.
    ¡Gracias!

    ResponderEliminar
  4. ¿Sirve para windows xp?

    ResponderEliminar
  5. Por las pruebas que he hecho funciona también en Windows XP, aunque desconozco si esa era la intención del autor, requiriendo igualmente .NET Framework 4 (si todavía hay algún Windows 2000 por ahí, se siente, no es compatible). Como en Windows XP no existe la noción de elevación, el programa ya se ejecuta directamente con permisos totales en cuentas de administrador, aunque no hay inconveniente en usarlo con cuentas limitadas. La opción "Elevar privilegios" da lugar a una ventana "Ejecutar como" convencional.

    Si se me permite además una sugerencia, la aplicación debería observar si ya está abierta y activar entonces la ventana existente, pero sin impedir que dos usuarios distintos puedan usar el programa al mismo tiempo. Actualmente, cada vez que se ejecuta el programa se abre una ventana nueva con su propio icono de notificación, lo que no parece muy deseable.

    "Herramientillas" como esta me parecen una iniciativa excelente.

    ResponderEliminar
  6. Que buen trabajo me alegro de haberme suscrito a estte boletin muchas gracias por el apoyo, a descargar e instalar.

    de nuevo graxxxxxx

    ResponderEliminar
  7. Es Open Source ? Tenemos el código fuente disponible ?

    ResponderEliminar
  8. No se distribuirá el código por ahora.

    ResponderEliminar
  9. lo ideal es marcar las casillas que pone en la foto o todas??
    Alguien me puede responder, por favor

    ResponderEliminar
  10. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. vale, el .exe ya lo tengo, pero no puedo ejecutarlo en la cuenta que ha sido infectada. qué me recomendáis hacer para eliminarlo?

      Eliminar
    2. WinLockLess es preventivo. Una vez infectado, no sirve para eliminar el troyano.

      Eliminar
    3. ok, qué solución tendría entonces? gracias.

      Eliminar
    4. por favor, me sería de gran ayuda si ya tienen la respuesta a mi problema :)

      Eliminar
  11. gracias, ya me las he apañado :/

    ResponderEliminar
  12. y cual fue tu solucion ? , ya que a mi me pasa lo mismo

    ResponderEliminar
  13. Buenos días.
    Ejecuto el winlockless para modificar los clicks que tengo marcados (el segundo y el quinto) y al activar cambios me dice acceso denegado al HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run, con lo cual no puedo desclickar esa opción. ¿por qué no puedo si tengo entendido que este programa permite poner y quitar los permisos cuantas veces quieras y de forma sencilla?
    Gracias.

    ResponderEliminar
  14. Esa rama es especial. No suele existir por defecto. Sin embargo, WinlockLess la crea para poder protegerla. Quizás en su caso tampoco ha podido crearla (en cuyo caso hubiese avisado en el error).

    En teoría debería haberla creado y protegido normalmente.

    ResponderEliminar
  15. Aunque no he llegado a probar esta protección (me refiero usándola ya que solamente la he ejecutado para ver como es), pero por lo que he visto con respecto al menú "Inicio" no es capaz de protegerlo y con ello bloquearlo, en cambio el resto de las funciones sí las bloquea.

    ResponderEliminar
  16. Agradecido por vida de que alguien se tome la molestia en crear esta fantastica herramienta. Me salvo el sistema.

    ResponderEliminar
  17. No puedo descargarlo, Error 404 Not Found :(

    ResponderEliminar
  18. Hola, quisiera saber cómo desinstalar o que no se ejecute más este programa, ya que me da algunos problemas con el arranque. Gracias

    ResponderEliminar
  19. Buenos dias..
    Desgacargue Winlockless. Tengo windows 7 con el framenetwork 4 Client Profile y constantemente al querer instalarlo me da el error CRL 80004005, que segun he podido ir averiguando en foros es algo relacionado con el framenetwork.
    Podrias decirme que debo hacer?
    gracias

    ResponderEliminar
  20. Alfonso, inicia la aplicación desmarca las casillas y dale activar. Una vez realizado solo con borrar el exe te vale, no necesita instalación y por lo tanto tampoco desinstalación.

    ResponderEliminar
  21. Hola muy buena aplicación aunque en mi caso me trae un dolor de cabeza. Mi pc tiene windows xp sp3 32bits, ejecute WinLockless, aparentemente todo bien sin embargo no me deja instalar PatriotNG que también es una aplicación gratuita muy buena. me sale un mensaje de error que "patriot.exe" no se puede crear en la carpeta "Inicio". Cuando ejecuto WinLockless para quitar la protección pues no lo hace porque intento instalar nuevamente PatriotNG y me da el mismo error. Cómo lo puedo solucionar?

    ResponderEliminar
  22. ¿Cómo se puede quitar Winlockless para restaurar sistema?. Quiero restaurar sistema y aunque desmarco todas las casillas no me deja restaurarlo.

    ResponderEliminar
  23. active todas las casillas pero al volverlo a ejecutar para desactivar la protección en algunos puntos como proteger run de la maquina o proteger carpeta de inicio. no me deja desmarcar dice algo como error al desproteger puede que no tenga los permisos o acceso al archivo lo cual no significa un problema. aun cuando le doy acceso de administrador. y al parecer también bloqueo algo al inicio ya que al iniciar el sistema aparece que se esta instalando el controlador de dispositivo, y al final dice que no se pudo instalar, pero no he instalado ningún dispositivo nuevo.

    ResponderEliminar