Saya menjalankan instalasi Ubuntu 14.04 yang saya setup lebih dari 6 bulan. Sekitar seminggu yang lalu, saya mulai menerima pesan kesalahan:
Could not grab keyboard. A malicious client may be eavesdropping on your session.
Saya hanya pernah melihatnya ketika kembali ke komputer saya setelah pergi cukup lama (biasanya semalam). Beberapa kali itu mencegah layar untuk mengunci setelah batas waktu yang ditetapkan (saya sudah mulai secara aktif menguncinya sebelum pergi).
Saya menggunakan keyboard usb (Kinesis Advantage) yang terhubung langsung ke port usb pada motherboard. Saya menggunakan mouse ELECOM nirkabel .
Saya akan mencoba melepaskan dongle mouse sebelum pergi. Bagaimana lagi saya bisa mengidentifikasi jika ada klien jahat yang melacak penekanan tombol saya atau jika ini adalah masalah konektivitas?
Jawaban:
Inilah cara mengatasi misteri Anda. Tujuannya lebih untuk mengajari pengguna "cara memancing" dengan menggunakan utilitas standar Ubuntu untuk menggali rincian setiap proses pada sistem mereka.
Langkah # 1 (untuk rasa ingin tahu kebanyakan): mengidentifikasi program mana yang memberi Anda kesalahan ini:
Dalam env saya satu-satunya program yang berisi string peringatan ini dalam binernya adalah
gnome-ssh-askpass
. Saya dapat mencari jika ada bug yang diajukan pada program khusus ini, dan bahkan mengunduh sumbernyaapt-get source ssh-askpass-gnome
(perhatikan bahwa nama paket berbeda dari nama program) untuk pemeriksaan lebih lanjut.Namun, saya menduga penyebab utama tidak menjadi masalah di
gnome-ssh-askpass
. Karenagnome-ssh-askpass
meminta frasa sandi Anda, pengembangnya hanya memilih untuk berhati-hati ketika gagal mengambil keyboard, menganggap skenario terburuk, dan membuat pesan tersebut terdengar uber-paranoid. Tetapi perhatikan bahwa mengetik frasa sandi atau kata sandi Anda ke dalam kotak dialog situs web acak secara kebetulan mungkin bukan ide yang baik, jadi dalam hal inignome-ssh-askpass
pengembang telah melakukan panggilan yang benar.Baru-baru ini semakin banyak situs web yang mulai terlibat dalam praktik menampilkan sembulan, memudar segala hal lain di luar dialog sembulan, dan secara agresif meraih fokus. Ini mungkin penyebab utama
gnome-ssh-askpass
gagal mengambil keyboard. Jika browser Anda terbuka di situs tersebut, menutup browser atau menavigasi dari situs web yang agresif dapat membantu. Jika ini penyebabnya, Anda mungkin tertarik pada pengaturan desktop yang mencegah proses individual dari meraih fokus (desktop penuh) lengkap. Dalam KDE misalnya, pengaturan ini dapat ditemukan di bawah ( Pengaturan Sistem -> Perilaku-jendela -> Fokus -> Fokus mencuri pencegahan ). Jika Anda merasa sangat paranoid, saya sarankan untuk mengaturHigh
atauExtreme
. Tentu saja, ini juga dapat mencegahgnome-ssh-askpass
sendiri dari menyambar keyboard, atau lebih tepatnya: meraihX
fokus.Langkah # 2: Identifikasi proses mencurigakan:
Mengetahui bahwa di Unix, perangkat muncul seperti file uder
/dev
, pertanyaan berikutnya adalah perangkat apa yang mewakili "keyboard" dalam hierarki sistem file. Kita dapat menggunakanlsof
utilitas (daftar file yang terbuka) untuk ini.Perhatikan bahwa sebagian besar proses memegang perangkat terbuka di desktop khas sedang menahan
Beberapa latar belakang tentang apa yang terjadi di sini:/dev/pts/<N>
( pseudo tty ) terbuka. Ini adalah "perangkat" yang menarik.Pada desktop grafis khas Linux, proses tidak berbicara langsung dengan keyboard. Sebaliknya
X
program (Xorg) mengontrol semua acara keyboard melalui perangkat/dev/input/event<N>
.X
menggunakan event handler (evdev) yang antara lain menangani acara keyboard. Anda juga dapat memverifikasi ini dengan melihatX
log: di/var/log/Xorg.0.log
manakeyboard
disebutkan.Acara keyboard diteruskan dari
X
pengendali acara ke proses yang memiliki fokus penunjuk tetikus kapan saja melalui input-standar proses yang terbuka/dev/pts/<N>
. Tegasnya: suatu proses tidak benar-benar "ambil keyboard", keyboard dipegang olehX
, proses hanya memiliki (atau meraih) "fokus" atau perhatianX
sehinggaX
dapat meneruskan acara keyboard ke sana melalui deskriptor file stdin terbuka di/dev/pts/<N>
.Langkah # 3: proses mana yang memiliki fokus Xorg pada waktu tertentu?
Bagaimana mengetahui proses mana yang memiliki fokus pada waktu tertentu? Inilah pertanyaan askubuntu yang menjawab ini:
Ringkasan jawabannya adalah menjalankan skrip seperti yang berikut di terminal saat menavigasi berkeliling dengan mouse:
Langkah # 4: gali lebih dalam ke dalam aktivitas proses
Setelah Anda mengidentifikasi proses yang dicurigai, langkah terakhir adalah menyelidiki proses individu ini. Untuk itu Anda dapat beralih ke sistem
/proc
file Linux (man 5 proc
).Hampir semua yang ingin Anda ketahui tentang suatu proses tersedia di bawah
/proc
. Bahkan, program-program sepertilsof
(daftar file terbuka), debugger yang memeriksa keadaan proses, dan utilitas proses daftar sukaps
atautop
, semua bergantung pada/proc
yang diisi oleh kernel, untuk data.Menggunakan
proc
Anda dapat menemukan di mana program proses yang dapat dijalankan pada disk (mis. Program apa pun di luar direktori sistem standar, terutama jika ia mencoba bersembunyi di bawah jenis nama "jangan perhatikan saya" , mungkin dicurigai) dan menggunakan debugger atau pelacak panggilan sistem Anda dapat memeriksa apa yang sebenarnya mereka lakukan pada tingkat panggilan sistem (bahkan jika Anda tidak memiliki kode sumbernya).Langkah # 2 dan # 3 akan memberi Anda semua ID proses
PID
yang berpotensi membaca papan ketik Anda. Untuk masing-masing PID ini (mari kita tunjukkan masing-masing sebagai$pid
) Anda dapat:Petakan $ pid ke baris perintah lengkapnya:
Map $ pid ke disk yang dapat dieksekusi:
Map $ pid ke direktori kerjanya saat ini:
Petakan $ pid ke lingkungan aslinya
Lacak aktivitas panggilan sistem $ pid (dan anak-anaknya) secara langsung:
(Masih ada lagi: lihat
man 5 proc
)Jika Anda melihat proses asing yang bereaksi terhadap setiap penekanan tombol dengan menyimpannya ke dalam file (via
write
) atau mengirimkannya melalui jaringansendto
, Anda mungkin menemukan sniffer keyboard.Anda juga dapat memeriksa proses mana yang memiliki titik akhir jaringan (tcp + udp) terbuka:
Intinya:
Penyebab kesalahan yang paling mungkin bukan malware, tetapi banyak proses yang mencoba untuk mendapatkan kontrol keyboard secara bersamaan. Salah satunya adalah
gnome-ssh-askpass
(yang mencetak kesalahan). Yang lain mungkin browser terbuka di situs dengan kotak dialog memperoleh fokus yang agresif.Bahkan jika Anda memiliki beberapa malware yang terinstal, kabar baiknya adalah karena Anda menggunakan Linux, semua proses bersifat transparan untuk Anda teliti dan periksa. Akan sangat sulit bagi malware untuk benar-benar bersembunyi dari Anda, atau untuk mencegah Anda dengan mudah menemukan itu menggunakan teknik di atas, mematikan prosesnya, dan menghapus semua file-nya.
sumber
/dev/pts/7
(hanya 3 nilai pid unik). Menggulir hasil, tampaknya perangkat yang paling membantu/dev/pts/15
meskipun ada yang memegang1, 3, 12, 16, 17, 21, 22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34
. Apakah keyboard selalu7
? Bagaimana saya mengidentifikasi yang mana dari ini adalah keyboard saya?/usr/bin/X
) sebagai/dev/input/eventN
mana Anda dapat menemukan AndaN
dengan melihat stringevdev
di/var/log/Xorg.0.log
. Xorg lalu "maju" setiap keyboard klik ke proses individu yang memiliki pointer mouse "fokus" pada saat itu juga. Ketika saya menjalankan,ssh-askpass
saya melihatnya/dev/pts/3
terbuka tetapi dalam env apa pun itu bisa berupa perangkat pseudo tty. Jadi, salah satu dari Anda/dev/pts/N
mungkin relevan di sini.{firefox}
saat saya mengklik firefox, beralih lagi ke{thunderbird}
ketika saya memilih thunderbird. Tidak ada yang menonjol sebagai tak terduga. Mungkin ini masuk ke Intinya Anda : masalah tidak datang dari sesuatu yang meraih keyboard. Saya berharap pemberitahuan ini tidak ada artinya atau bisa menghilangkannya.firefox
) saat mengunjungi situs web dengan pop-up yang fokus. Kecuali Anda secara teratur mengunduh dan menginstal perangkat lunak dari sumber yang meragukan (non-kanonik), saya sangat ragu Anda secara tidak sengaja menginstal sniffer keyboard di Ubuntu. Adalah baik untuk menjadi sedikit paranoid, tetapi tidak perlu terlalu banyak berkeringat.Masalah saya adalah karena dua
gnome-ssh-askpass
jendela bersamaan . Saya memiliki dua pekerjaan rsync ke server yang sama melalui SSH, dan keduanya mencoba untuk meminta kata sandi sertifikat SSH. Pengelompokan (dan rantai) mereka bersama-sama diselesaikan untukku!sumber