Похоже, легко регистрировать нажатия клавиш всех процессов одного и того же пользователя. Основной кейлоггер - «xinput».
xinput test-xi2
Команда генерирует журнал всех нажатий клавиш. К сожалению, сюда входят пароли в gnome-терминале. Google предположил, что захват клавиатуры может помешать другим окнам захватывать нажатия клавиш.
Есть ли способ предотвратить вход XI2 в gnome-терминал? Или есть X-терминал, который имеет эту функцию?
Ответы:
Это невозможно, поскольку любые нажатия клавиш, передаваемые на X-сервер, будут доступны для xinput / любой произвольной программы. (На самом деле это часть дизайна). Новые серверы отображения, такие как Wayland и Mir, исправляют такие проблемы безопасности в X. Единственным реальным решением было бы использование Wayland или Mir вместо X. Этот пост подробно описывает эту проблему.
источник
На самом деле, нет. Даже если вам как-то удастся захватить клавиатуру в X (я не знаю, возможно ли это вообще, я сомневаюсь в этом), утилита кейлоггера, работающая от имени пользователя root, всегда будет иметь доступ к клавиатуре.
источник
Как здесь говорили другие, невозможно защитить только программу наподобие gnome-Terminal или другого терминала от регистрации ключей, только если вы ограничиваете обычных пользователей в выполнении любого средства регистрации ключей или если вы останавливаете / приостанавливаете какой-либо процесс регистрации ключей.
Далее я покажу вам, как вы можете сделать это в случае
xinput
команды, но те же методы можно использовать для любого другого ключевого регистратора. Если регистратор ключей используетxinput
команду, нет необходимости применять метод к нему, пока вы применяете егоxinput
.1. Ограничить использование стандартных
xinput
командВы можете ограничить использование обычными пользователями
xinput
команды, используя следующую команду:2. Ограничить использование стандартных пользователей
xinput
команду сtest-xi2
аргументомВы можете ограничить стандартных пользователей использовать
xinput
команду сtest-xi2
аргументом , написав оболочку для этой команды. Для этого зайдите в терминал и следуйте инструкциям ниже:Получить права root:
Переместите
xinput
файл в другой каталог, которого нет в PATH любого пользователя (например/opt
):Создайте свою обертку для
xinput
команды в/usr/bin
:Добавьте следующий скрипт внутри:
Сохраните файл и закройте его.
Сделайте новый исполняемый файл оболочки:
В то время как первый метод является безопасным, используя второй метод, пользователь все равно может обойти его, вызвав оригинал
xinput
напрямую если он знает его новое местоположение.3. Стоп / пауза любой
xinput
процессВы можете остановить или приостановить любой
xinput
процесс, прежде чем вводить пароль или что-либо еще, что вы не хотите регистрировать. Для этого добавьте следующую функцию bash в конец вашего~/.bashrc
файла:Теперь, когда вы снова откроете свой терминал, в любое время, используя эту функцию, вы можете:
остановить / убить все
xinput
процессы:приостановить все
xinput
процессы:возобновить все
xinput
процессы:Фактически, с помощью этой функции вы можете остановить / приостановить любой процесс, который вы хотите, прежде чем что-то сделать (например, ввести пароль):
Если вы не знаете, как обнаружить активный кейлоггер в вашей системе, см .:
Эти методы, возможно, не лучшие решения, но я надеюсь дать вам представление о том, что вы можете сделать ...
источник
xinput
даже не SUID (-rwxr-xr-x 1 корневой корень 48504 15 августа 2012 г. / usr / bin / xinput)