Pertanyaan Pengaturan untuk melindungi gnome-terminal dari logging kunci


Sepertinya mudah untuk mencatat keystroke semua proses dari pengguna yang sama. Keylogger dasar adalah 'xinput'.

xinput test-xi2

Perintah menghasilkan log dari semua penekanan tombol. Sayangnya, ini termasuk kata sandi di gnome-terminal. Googling menyarankan agar keyboard yang menarik dapat mencegah jendela lain menangkap goresan kunci.

Apakah ada cara untuk mencegah penebangan XI2 di gnome-terminal? Atau apakah ada terminal X yang memiliki fitur ini?


14
2018-03-24 17:08


asal


Aku s ini sebuah solusi? - Radu Rădeanu


Jawaban:


Itu tidak mungkin dilakukan apa saja keystrokes diteruskan ke server X, akan tersedia untuk xinput / program arbitrer apa pun. (Sebenarnya, itu bagian dari desain). Server tampilan baru seperti Wayland dan Mir memperbaiki masalah keamanan seperti itu di X. Satu-satunya solusi nyata adalah menggunakan Wayland atau Mir, bukan X. Ini posting blog detail masalah ini.


12
2017-09-23 15:40



Jadi masukan ke gksu untuk kata sandi juga masuk ke xinput? - yanychar
@yanychar yup, sebenarnya saya mengetahui tentang metode pencatatan kunci ini melalui entri blog ini: theinvisiblethings.blogspot.in/2011/04/… (Bahkan saya terkejut pertama kali saya membaca posting blog) - Ramchandra Apte
X11 sebenarnya memiliki mode tidak terpercaya yang dapat Anda gunakan untuk mencegah program mengakses ekstensi "buruk" - x.org/wiki/Development/Documentation/Security - Michał Zieliński


Tidak juga. Bahkan jika Anda entah bagaimana berhasil meraih keyboard dalam X (saya tidak tahu apakah ini mungkin, saya meragukan itu), utilitas keylogger yang berjalan sebagai root akan selalu memiliki akses ke keyboard.


-1
2017-09-18 08:27



Perintah di atas meraih keyboard dalam X tanpa hak root. Jadi itu sepele untuk menginstal keylogger ke desktop Ubuntu. Pertanyaannya adalah bagaimana cara menghindarinya. - yanychar


Seperti yang orang lain katakan di sini, tidak mungkin untuk melindungi hanya program seperti gnome-terminal atau terminal lain dari penebangan kunci, hanya jika Anda membatasi pengguna standar untuk melakukan logger kunci atau jika Anda menghentikan / menghentikan proses pencatatan kunci.

Selanjutnya saya akan menunjukkan kepada Anda bagaimana Anda dapat melakukan ini dalam hal xinput perintah, tetapi metode yang sama dapat digunakan untuk logger kunci lainnya. Jika menggunakan logger kunci xinput perintah, tidak perlu menerapkan metode di atasnya selama Anda menerapkannya xinput.

1. Batasi pengguna standar untuk digunakan xinput perintah

Kamu bisa batasi pengguna standar untuk digunakan xinput perintah menggunakan perintah berikut:

sudo chmod go-x /usr/bin/xinput

2. Batasi pengguna standar untuk digunakan xinput perintah dengan test-xi2 argumen

Kamu bisa batasi pengguna standar untuk digunakan xinput perintah dengan test-xi2 argumen dengan menulis pembungkus untuk perintah ini. Untuk melakukan ini, masuki terminal dan ikuti petunjuk di bawah ini:

  • Dapatkan hak akses root:

    sudo -i
    
  • Pindah xinput file di direktori lain yang tidak ada dalam PATH pengguna (misalnya /opt):

    mv /usr/bin/xinput /new/path/to/xinput
    
  • Buat pembungkus Anda untuk xinput perintah masuk /usr/bin:

    gedit /usr/bin/xinput
    

    Tambahkan skrip berikut di dalam:

    #!/bin/bash
    if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
        echo "`basename $0` $@: Permission denied"
    else
        /new/path/to/xinput $@
    fi
    

    Simpan file dan tutup.

  • Buat pembungkus baru dapat dieksekusi:

    chmod +x /usr/bin/xinput
    

Sementara metode pertama adalah keamanan, menggunakan metode kedua, pengguna mungkin masih mengelak dengan memanggil yang asli xinput langsung jika dia tahu lokasi barunya.

3. Hentikan / jeda xinput proses

Anda dapat menghentikan atau menjeda xinput proses sebelum memasukkan kata sandi atau apa pun yang tidak ingin Anda masuki. Untuk melakukan ini, tambahkan fungsi bash berikut di akhir Anda ~/.bashrc mengajukan:

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
}

Sekarang, setelah Anda membuka kembali terminal Anda, kapan pun Anda mau, menggunakan fungsi ini Anda dapat:

  • hentikan / bunuh semua xinput proses:

    processof xinput stop
    
  • jeda semua xinput proses:

    processof xinput pause
    
  • lanjutkan semuanya xinput proses:

    processof xinput continue
    

Bahkan, dengan fungsi ini Anda dapat menghentikan / menghentikan proses yang Anda inginkan sebelum melakukan sesuatu (seperti memasukkan kata sandi):

processof [nama proses] [berhenti|berhenti sebentar|terus]

Jika Anda tidak tahu cara mendeteksi cara mendeteksi keylogger aktif di sistem Anda, lihat:

Metode-metode ini mungkin bukan solusi terbaik, tetapi saya berharap dapat memberi Anda gambaran tentang apa yang dapat Anda lakukan ...


-3
2017-09-24 06:27



xinput hanyalah sebuah contoh dari keylogger. Pertanyaannya adalah tentang melindungi input dari setiap keylogger yang mungkin. - yanychar
Setiap program dapat terhubung ke server X melalui soket dan keylog, itu bahkan tidak diperlukan bahwa logger kunci menggunakan program eksternal. - Ramchandra Apte
@ RaduRădeanu solusi Anda tidak efektif dan tidak berguna. xinput bahkan tidak SUID (-rwxr-xr-x 1 root root 48504 15 Agustus 2012 / usr / bin / xinput) - Ramchandra Apte
@ RaduRădeanu Karena Anda tidak perlu xinput ke keylog. (tidak perlu perintah eksternal atau program jahat harus SUID) solusi Anda hanya akan memungkinkan satu untuk mengontrol eksekusi xinput - Ramchandra Apte
Contoh paling mendasar untuk membuktikannya tidak efektif: Salin versi stok (ubuntu) xinput dari stik usb, unduh dari web atau kirim e-mail ke diri Anda dan jalankan di folder rumah Anda. Efek yang sama seperti menggunakan unrestricted / usr / bin / xinput. - allo