Parece que es fácil registrar pulsaciones de teclas de todos los procesos del mismo usuario. Un keylogger básico es 'xinput'.
xinput test-xi2
El comando genera un registro de todas las pulsaciones de teclas. Desafortunadamente, esto incluye contraseñas en gnome-terminal. Google sugirió que agarrar el teclado puede evitar que otras ventanas capturen las teclas presionadas.
¿Hay alguna manera de evitar el registro XI2 en gnome-terminal? ¿O hay un terminal X que tiene esta característica?
Respuestas:
No es posible ya que cualquier pulsación de tecla que se pase al servidor X estará disponible para xinput / cualquier programa arbitrario. (De hecho, es parte del diseño). Los nuevos servidores de visualización como Wayland y Mir están solucionando tales problemas de seguridad en X. La única solución real sería usar Wayland o Mir en lugar de X. Esta publicación de blog detalla este problema.
fuente
Realmente no. Incluso si de alguna manera logras agarrar el teclado dentro de X (no sé si esto es posible, lo dudo), una utilidad keylogger que se ejecuta como root siempre tendrá acceso al teclado.
fuente
Como otros dijeron aquí, no es posible proteger solo un programa como gnome-terminal u otro terminal del registro de claves, solo si restringe a los usuarios estándar para ejecutar cualquier registrador de claves o si detiene / pausa cualquier proceso del registrador de claves.
A continuación, le mostraré cómo puede hacer esto en caso de
xinput
comando, pero se pueden usar los mismos métodos para cualquier otro registrador de teclas. Si un registrador de teclas usa elxinput
comando, no es necesario aplicar el método sobre él siempre y cuando lo apliquexinput
.1. Restrinja a los usuarios estándar para usar el
xinput
comandoPuede restringir a los usuarios estándar para que usen el
xinput
comando con el siguiente comando:2. Restrinja a los usuarios estándar para que usen el
xinput
comando contest-xi2
argumentoPuede restringir el uso de usuarios estándar
xinput
comandos contest-xi2
argumentos escribiendo un contenedor para este comando. Para hacer esto, vaya a la terminal y siga las instrucciones a continuación:Obtenga privilegios de root:
Mueva el
xinput
archivo en otro directorio que no esté en la RUTA de ningún usuario (por ejemplo/opt
):Crea tu envoltura para
xinput
comando en/usr/bin
:Agregue el siguiente script dentro:
Guarde el archivo y ciérrelo.
Haga que el nuevo contenedor sea ejecutable:
Si bien el primer método es la seguridad, con el segundo método, el usuario aún puede eludirlo llamando al original
xinput
directamente si conoce su nueva ubicación.3. Detener / pausar cualquier
xinput
procesoPuede detener o pausar cualquier
xinput
proceso antes de ingresar una contraseña o cualquier otra cosa que no desee que se registre. Para hacer esto, agregue la siguiente función bash al final de su~/.bashrc
archivo:Ahora, después de volver a abrir su terminal, en cualquier momento que desee, con esta función puede:
detener / matar todos los
xinput
procesos:pausa todos los
xinput
procesos:reanudar todos los
xinput
procesos:De hecho, con esta función puede detener / pausar cualquier proceso que desee antes de hacer algo (como ingresar la contraseña):
Si no sabe cómo detectar cómo detectar un keylogger activo en su sistema, consulte:
Quizás estos métodos no sean las mejores soluciones, pero espero darle una idea de lo que puede hacer ...
fuente
xinput
ni siquiera es SUID (-rwxr-xr-x 1 root root 48504 15 de agosto de 2012 / usr / bin / xinput)