Настройка защиты gnome-терминала от ведения журнала

Как насчет tickr?

Он находится в репозиториях и помещает прокручиваемый тикер новостей на вашем рабочем столе.

14
задан 24 March 2012 в 23:08

3 ответа

Это невозможно, так как любые нажатия клавиш, передаваемые X-серверу, будут доступны для xinput / любой произвольной программы. (На самом деле, это часть дизайна). Новые серверы отображения, такие как Wayland и Mir, устраняют такие проблемы безопасности в X. Единственное реальное решение - использовать Wayland или Mir вместо X. Этот блог опубликовал эту проблему.

11
ответ дан 25 May 2018 в 13:16

Не совсем. Даже если вы каким-то образом сумеете захватить клавиатуру внутри X (я не знаю, возможно ли это, возможно, это так), утилита keylogger, работающая под управлением root, всегда будет иметь доступ к клавиатуре.

-1
ответ дан 25 May 2018 в 13:16
  • 1
    Приведенная выше команда захватывает клавиатуру внутри X без привилегий root. Так что тривиально установить кейлоггер на рабочий стол ubuntu. Вопрос в том, как этого избежать. – yanychar 12 January 2013 в 21:45

Как сказано в других разделах, невозможно защитить только одну из таких программ, как gnome-terminal или другой терминал, от регистрации ключей, только если вы ограничиваете обычных пользователей исполнением любого регистратора ключей или остановите / приостановите любой процесс регистрации ключа. [ ! d0]

Далее я покажу вам, как вы можете сделать это в случае команды xinput, но те же методы могут использоваться для любого другого регистратора ключей. Если ключевой регистратор использует команду xinput, нет необходимости применять метод на нем до тех пор, пока вы применяете его к xinput.

1. Ограничить использование стандартными пользователями команды xinput

Вы можете запретить стандартным пользователям использовать команду xinput, используя следующую команду:

sudo chmod go-x /usr/bin/xinput

2. Ограничьте стандартных пользователей для использования команды xinput с test-xi2 аргументом

Вы можете ограничить стандартных пользователей использовать команду xinput , написав обертку для этой команды. Для этого зайдите в терминал и следуйте инструкциям ниже:

Получить привилегии root:
sudo -i
Перенести файл xinput в другой каталог, который не находится в PATH любого пользователя (например, /opt):
mv /usr/bin/xinput /new/path/to/xinput
Создайте свою обертку для команды xinput в /usr/bin:
gedit /usr/bin/xinput
Добавьте следующий скрипт внутри:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
    echo "`basename $0` $@: Permission denied"
else
    /new/path/to/xinput $@
fi
Сохраните файл и закройте его. Создайте новую исполняемую оболочку:
chmod +x /usr/bin/xinput

В то время как первый метод является безопасным, используя второй метод, пользователь может все же обойти его, вызвав оригинал xinput напрямую, если он знает свое новое местоположение. [!d19 ]

3. Остановить / приостановить любой процесс xinput

Вы можете остановить или приостановить любой процесс xinput до ввода пароля или чего-либо еще, что вы не хотите регистрировать. Для этого добавьте следующую функцию bash в конец вашего файла ~/.bashrc:

processof () {
    xinput_pids=" $(pidof $1) "
    if [ "$xinput_pids" = "  " ]; then
        echo "Nothing to stop/pause/continue. $1: no such process!"
        return
    fi
    for pid in $xinput_pids; do
        case $2 in
        "stop") 
            kill $pid
            echo "$1: stopped"
            ;;
        "pause")
            kill -stop $pid
            echo "$1: paused"   
            ;;
        "continue")
            kill -cont $pid
            echo "$1: continue"
            ;;
        *)
            echo "$1 is runnig"
            ;;
        esac
    done
}

Теперь, когда вы снова открываете терминал, в любое время, используя эту функцию, вы можете: [!d22 ] Получить привилегии root:

sudo -i

Получить привилегии root:

processof xinput pause
Перенести файл xinput в другой каталог, который не находится в PATH любого пользователя (например, /opt):
mv /usr/bin/xinput /new/path/to/xinput

приостановить все xinput процессы:

processof [process_name] [stop|pause|continue]

На самом деле, с помощью этой функции вы можете остановить / приостановить любой процесс, который вы хотите, прежде чем что-либо сделать (например, ввести пароль):

Получить привилегии root:

processof xinput pause

Если вы не знаете, как определить, как обнаружить активный кейлоггер в вашей системе, см.:

-3
ответ дан 25 May 2018 в 13:16
  • 1
    xinput - всего лишь пример кейлоггера. Речь идет о защите ввода от всех возможных клавиатурных шпионов. – yanychar 24 September 2013 в 23:13
  • 2
    Любая программа может подключаться к X-серверу через сокеты и keylog, даже не требуется, чтобы регистратор ключей использовал внешнюю программу. – Ramchandra Apte 25 September 2013 в 09:21
  • 3
    @ RaduRădeanu Ваше решение неэффективно и бесполезно. xinput даже не SUID (-rwxr-xr-x 1 корень root 48504 15 авг 2012 / usr / bin / xinput) – Ramchandra Apte 25 September 2013 в 09:32
  • 4
    @ RaduRădeanu Потому что вам не нужен xinput для keylog. (ему не нужна внешняя команда, и вредоносная программа не должна быть SUID), ваше решение просто позволит контролировать выполнение xinput – Ramchandra Apte 25 September 2013 в 09:34
  • 5
    Самый простой пример, чтобы доказать, что он неэффективен: скопируйте исходную версию (ubuntu) xinput с USB-накопителя, загрузите ее из Интернета или отправьте ее по электронной почте себе и запустите в своей домашней папке. Тот же эффект, что и при использовании неограниченного / usr / bin / xinput. – allo 17 April 2018 в 16:36

Другие вопросы по тегам:

Похожие вопросы: