Entrada de contraseña en OS X y keyloggers

3

Hay varios lugares en mi 'infraestructura de seguridad personal' (¿hay una mejor frase para eso?) donde me encuentro escribiendo contraseñas muy importantes en los campos de texto en OS X (por ejemplo, descifrar y montar unidades de disco que contienen muy datos sensibles.)

Tengo (quizás sin razón) miedo a los keyloggers, ya que este es el único método que se me puede ocurrir sin tener en cuenta una vulnerabilidad del sistema o mirar físicamente (o grabar) mis actividades al ingresar la contraseña. En otros sistemas seguros que utilizo, hay una opción para ingresar una parte final de la contraseña con el mouse o similar, para ayudar a evitar que los keyloggers dificulten el trabajo de un atacante.

tl; dr : ¿Hay alguna forma de derrotar (parcialmente) los ataques del keylogger contra la entrada de contraseña a nivel del sistema en OS X?

Editar: Como no estoy aquí para hablar sobre la viabilidad de los keyloggers en OS X, supongamos que estoy hablando de defenderse contra un keylogger físico que se inyecta en la tubería de datos de mi teclado. (O un teclado reemplazado con el registrador oculto en el interior, o algo conectado a su 'cable USB').

    
pregunta ELLIOTTCABLE 04.01.2015 - 00:34
fuente

3 respuestas

2
  

¿Hay alguna forma de derrotar (parcialmente) los ataques del keylogger contra la entrada de contraseña a nivel del sistema en OS X?

Sí. El keylogger tradicional es un dispositivo de hardware que intercepta datos entre el teclado y la entrada de datos de caracteres en el controlador de teclado (en su mayoría, dispositivo USB, teclado HID). Los componentes físicos son pocos y se pueden usar varios sellos a prueba de manipulación para asegurar la integridad del sistema físico. Necesitaría una comprobación inicial para asegurarse de que no existe ningún registrador de teclado físico, luego adjunte o instale los sellos. Luego se deben realizar verificaciones frecuentes o periódicas de los sellos para verificar que la integridad del hardware esté intacta.

Sin embargo, la mayoría de los keyloggers modernos están basados en software o firmware y, por lo tanto, solo pueden ser defendidos por los métodos de seguridad del software. Esto incluye la cadena del firmware IC del controlador del teclado, el controlador del dispositivo del controlador del teclado, el subsistema USB a nivel del sistema operativo, el búfer del teclado y el software de shell.

Esto requerirá que encuentre el firmware o software para cada componente de la cadena y verifique que no haya sido manipulado. Esto se hace generalmente obteniendo del fabricante un hash criptográfico del firmware o software para el componente y calculando el hash criptográfico del software actualmente en uso en el sistema en cuestión. Si los valores de hash criptográficos coinciden, entonces el firmware o el software no están modificados.

Cuanto más software hay en la cadena, más difícil es proteger y verificar solo por la naturaleza de la creciente complejidad y más permutaciones de las secuencias de instrucciones.

  

Hay varios lugares en mi 'infraestructura de seguridad personal' (¿hay una mejor frase para eso?) donde me encuentro escribiendo contraseñas muy importantes en los campos de texto en OS X (por ejemplo, descifrar y montar unidades de disco que contienen muy datos sensibles.)

     

Tengo (quizás sin razón) miedo a los keyloggers

En los keyloggers de hardware sí, en los keyloggers de software no.

  

ya que estos [Keyloggers] son el único método que se me ocurre por debajo de una vulnerabilidad a nivel del sistema o al ver (o grabar) físicamente mis actividades al ingresar la contraseña.

No, hay muchas otras formas de determinar su contraseña. La más común es encontrar una contraseña o frase expuesta de otro sistema e intentar usarla en el sistema en cuestión. Esto suele ser exitoso ya que la mayoría de las personas reutilizan contraseñas.

Otro ejemplo trivial es intentar encontrar teclas de uso frecuente en su teclado, ya sea de dirt o ware, y probar las combinaciones limitadas de esas teclas de uso frecuente para encontrar la contraseña;

Además, hay varias formas de ingeniería social y phishing que son bastante efectivas.

  

En otros sistemas seguros que uso, hay una opción para ingresar una parte final de la contraseña con el mouse o similar, para evitar que los keyloggers dificulten demasiado el trabajo de un atacante.

Hay dos posibilidades aquí. Estas claves se dividen, lo que significa que parte de la clave se almacena en un contenedor en el sistema y parte de la clave se almacena en su mente. O la clave completa se almacena en un contenedor y el sistema solo necesita unos pocos caracteres para determinar qué clave necesita.

También hay dos tipos generales de división de teclas: una a la que llamo seccionada y la otra a la que se denomina división de longitud de la clave completa. El seccionado toma una clave con n bits y la divide en dos o más partes.

Por ejemplo: tome una clave 0xA55AC33C y divídala en 0xA55A y 0xC33C.

La división completa de longitud de clave toma una clave de n bits y la divide en dos o más partes de longitud n.

Por ejemplo: tome una clave 0xA55AC33C y divídala en 0x42244224 y 0xE77E8118.

La división en secciones es una mala elección por varias razones, incluida la exposición a ataques de fuerza bruta y los problemas que combinan la clave en el orden y la endianess correctos.

Puede parecer que una división dividida en secciones afecta a un keylogger, pero no si la introducción de la misma división permite que un atacante acceda a los datos confidenciales. Por ejemplo: si solo necesita ingresar 0xC33C y el keylogger registra esto, entonces un atacante puede ingresar 0xC33C y obtener el mismo acceso.

Generalmente, los comandos de nivel de shell que no envían datos confidenciales de caracteres a la pantalla o al búfer de registro de shell son más seguros que los componentes gráficos.

    
respondido por el this.josh 07.04.2015 - 08:04
fuente
0

en mac os X no es tan fácil (como en todos los * NIX) "capturar" el teclado sin que el usuario pueda averiguarlo. Necesitarías un módulo del kernel para eso y no es tan fácil engañar a OS X para que lo cargue por ti (Apple tiene algunas características desagradables para cuando se actualiza). solo puede preguntar al sistema qué teclados sabe, e incluso hay algunas características (como para el cuadro de contraseña) que REQUIEREN una interacción directa de la aplicación del teclado 2 (llamada funcionalidad de teclado seguro) Con secure-keyboard, ningún otro programa puede interferir con su entrada (impuesta por el kernel), por lo que simplemente conectar un dispositivo HUD no generaría la entrada (un dispositivo MITM Capture lo haría, al igual que un firmware de teclado modificado, como el programa en el propio teclado).

Habilitar un teclado en pantalla pasaría por alto las medidas de seguridad de OS X (se puede hacer, pero requiere que el sistema se ponga en un modo de ejecución no seguro que desactive el teclado seguro) En OS X, cada teclado funciona de manera independiente (verifique el bloqueo de mayúsculas, por ejemplo) para que pueda obtener la misma ventaja al teclear su tecla con 2 teclados.

    
respondido por el LvB 05.01.2015 - 16:17
fuente
0

Puedes derrotar parcialmente a los keyloggers, puedes actualizar a OS X 10.11 que agregó la función SIP sin raíz . Los keyloggers como Aobo keylogger para Mac no funcionarán si SIP está habilitado. También revise las preferencias del sistema - seguridad y privacidad ~ dispositivos de asistencia para detener cualquier acceso al registrador de teclas. Sin embargo, algunos programas de monitoreo de lugares de trabajo como el monitor de empleados Easemon para Mac no se verán afectados por SIP, por lo que esta es solo una solución parcial.

    
respondido por el user900179 23.10.2015 - 03:25
fuente

Lea otras preguntas en las etiquetas