Protección de la aplicación web de Keylogger

21

Estoy tratando de mejorar la seguridad en una aplicación web. La aplicación tiene un sitio de administración y los keyloggers son una preocupación que estoy tratando de resolver. ¿Puede la aplicación hacer algo que evite que los keyloggers funcionen correctamente? He leído sobre el software de interferencia de pulsaciones de teclas (para cada pulsación de usuario, se agregan aleatoriamente más pulsaciones que no interfieren con la entrada del usuario), ¿se puede hacer algo así en javascript?

    
pregunta Schockey 30.03.2016 - 13:53
fuente

4 respuestas

56

Muchas aplicaciones hacen un intento inútil de frustrar keyloggers y spyware mediante el uso de métodos de entrada de contraseñas complicados (y engorrosos). Ninguno funciona contra los keyloggers y muchos en realidad hacen que los usuarios estén MENOS seguros porque dificultan el uso de los administradores de contraseñas.

La mejor manera de manejar ese tipo de cosas es usar contraseñas de un solo uso. Hay varias maneras de hacerlo, así que permítame sugerir dos: TOTP ( RFC 6238 ) funciona con muchos autenticadores de software (Google el autenticador, por ejemplo) es conveniente, barato de implementar y de uso gratuito. Sin embargo, sí requiere que el usuario configure las cosas y tenga un teléfono inteligente.

Otro enfoque es enviar una contraseña única a través de SMS. Esto es un poco más caro (porque tiene que enviar el mensaje) pero también es más fácil para el usuario (que solo necesita un teléfono móvil y no necesita configuración).

    
respondido por el Stephane 30.03.2016 - 14:01
fuente
16

Si estaba tratando con keyloggers de forma aislada, entonces podría ser posible mitigar el riesgo (por ejemplo, utilizando teclados en pantalla, 2FA o similar), sin embargo, si un atacante tiene la capacidad de instalar un registrador de pulsaciones de teclas en el sistema, es muy probable (aparte de los pulsadores de pulsaciones físicas) que tengan acceso privilegiado al sistema en cuestión y, como tal, podrían burlar cualquier otra protección que usted ponga en práctica (suponiendo que estén motivados para hacerlo)

Por ejemplo, dado que se trata de una aplicación web, supongamos que implementas 2FA, una vez que el usuario se ha autenticado, se emite un token de sesión y luego, en general, sigue siendo válido hasta que se produzca un tiempo de espera inactivo o el usuario cierre la sesión explícitamente. Si un atacante tiene acceso privilegiado al sistema, es posible que emita solicitudes de "mantenimiento" para evitar el bloqueo de inactividad y usar la inyección del navegador para anular el cierre de sesión.

Si le preocupa que los usuarios accedan a un sistema privilegiado de clientes comprometidos, la mejor solución es utilizar dispositivos dedicados / bloqueados y restringir el acceso solo a esos dispositivos.

    
respondido por el Rоry McCune 30.03.2016 - 21:39
fuente
5

JavaScript no puede controlar las llamadas bajas del sistema y cambiarlas para obtener esa interferencia de pulsación de tecla. Incluso las protecciones de software en modo usuario son derrotadas por el registro de teclas en modo kernel.

Puede protegerse contra los keyloggers de hardware si tiene un teclado en pantalla , que puede fácilmente implementado .

Los keyloggers de software son más potentes. Los troyanos bancarios inteligentes también capturan solicitudes HTTP y capturas de pantalla cuando se hace clic con el mouse en el sitio web bancario. Algunos también robar contraseñas de un solo uso o omitirlas .

    
respondido por el Cristian Dobre 30.03.2016 - 14:24
fuente
0

Si le preocupan los keyloggers que registran pulsaciones de teclas (entrada manual de contraseñas) o copiar / pegar (administrador de contraseñas), debe usar el mouse:

  1. Mostrar al usuario un teclado virtual para ingresar la contraseña. Esto realmente no es muy fácil de usar y es difícil de configurar para uso global (diferencias regionales en la distribución del teclado). Todavía permitiría a los usuarios "no tan paranoicos" ingresar su contraseña a la forma en que están acostumbrados.

u otro dispositivo (periférico):

  1. Autenticación de dos factores a través de una aplicación o SMS.
respondido por el S12eRw20O 30.03.2016 - 14:24
fuente

Lea otras preguntas en las etiquetas