यहाँ अपने रहस्य को हल करने का तरीका बताया गया है। लक्ष्य अपने सिस्टम पर किसी भी प्रक्रिया के विवरण में खुदाई करने के लिए मानक Ubuntu उपयोगिताओं का उपयोग करके उपयोगकर्ताओं को "मछली कैसे करें" सिखाने के लिए अधिक है।
चरण # 1 (ज्यादातर जिज्ञासा के लिए): पहचानें कि कौन सा कार्यक्रम आपको यह त्रुटि दे रहा है:
# -- You may need to search under more dirs, YMMV
# List files (incl. binaries) which contain the warning string
$ sudo grep -ral 'malicious client may be eavesdropping' /usr /bin /lib
/usr/lib/openssh/gnome-ssh-askpass
मेरे एनवी में एकमात्र प्रोग्राम है जिसमें इस चेतावनी स्ट्रिंग में बाइनरी है gnome-ssh-askpass
। मैं खोज सकता हूं कि क्या इस विशेष कार्यक्रम पर कोई बग दर्ज किया गया है, और यहां तक कि इसके स्रोत को भी डाउनलोड करें apt-get source ssh-askpass-gnome
(ध्यान दें कि पैकेज का नाम आगे के निरीक्षण के लिए प्रोग्राम के नाम से अलग है)।
हालाँकि, मुझे संदेह है कि मूल कारण कोई समस्या नहीं है gnome-ssh-askpass
। चूंकि gnome-ssh-askpass
आप अपने पासफ़्रेज़ के लिए पूछ रहे हैं, इसलिए इसके डेवलपर्स ने कीबोर्ड को हड़पने में विफल होने पर सबसे खराब स्थिति का अनुमान लगाते हुए, और संदेश को uber-paranoid बनाते समय सावधानी बरतने के लिए चुना। लेकिन ध्यान दें कि दुर्घटना द्वारा अपने पासफ़्रेज़ या पासवर्ड को कुछ यादृच्छिक वेब-साइट डायलॉग बॉक्स में लिखना शायद एक अच्छा विचार नहीं है, इसलिए उस अर्थ में gnome-ssh-askpass
डेवलपर्स ने सही कॉल किया है।
हाल ही में अधिक से अधिक वेब साइटों ने पॉपअप प्रदर्शित करने के अभ्यास में संलग्न करना शुरू कर दिया है, पॉपअप संवाद के बाहर बाकी सब कुछ लुप्त हो रहा है, और आक्रामक रूप से ध्यान आकर्षित कर रहा है। यह gnome-ssh-askpass
कीबोर्ड को हथियाने में विफल होने का मूल कारण हो सकता है । यदि आपका ब्राउज़र ऐसी साइट पर खुला है, तो ब्राउज़र को बंद करना या आक्रामक वेब साइट से दूर नेविगेट करने में मदद मिल सकती है। यदि यह कारण है, तो आपको एक डेस्कटॉप सेटिंग में रुचि हो सकती है जो व्यक्तिगत प्रक्रियाओं को पूर्ण (पूर्ण डेस्कटॉप) फोकस को हथियाने से रोकती है। उदाहरण के लिए केडीई में, यह सेटिंग ( सिस्टम-सेटिंग्स -> विंडो-व्यवहार -> फोकस -> फोकस चोरी रोकथाम ) के तहत पाई जा सकती है । क्या तुम सच में पागल लगता है, मैं करने के लिए इसे स्थापित करने की सिफारिश करेंगे High
या Extreme
। बेशक, इससे बचाव भी हो सकता हैgnome-ssh-askpass
कीबोर्ड को हथियाने से, या उससे अधिक सटीक: X
फोकस हथियाने से ।
चरण # 2: संदिग्ध प्रक्रियाओं को पहचानें:
यह जानते हुए कि यूनिक्स में, डिवाइस फाइल uder की तरह दिखाई देते हैं /dev
, अगला सवाल यह है कि फ़ाइल-सिस्टम पदानुक्रम में डिवाइस "कीबोर्ड" का प्रतिनिधित्व करता है। हम इसके लिए lsof
(सूची ओपन फाइल्स) उपयोगिता का उपयोग कर सकते हैं ।
# look for processes holding devices open, filter out some common ones:
$ sudo lsof | grep /dev | grep -vE '/(null|urandom|zero)'
ध्यान दें कि एक विशिष्ट डेस्कटॉप एनवी में खुले उपकरणों को रखने वाली अधिकांश प्रक्रियाएं /dev/pts/<N>
(एक छद्म ट्टी ) खुली रहती हैं। ये ब्याज के "उपकरण" हैं।
यहाँ क्या हो रहा है पर कुछ पृष्ठभूमि:
एक विशिष्ट लिनक्स ग्राफिकल डेस्कटॉप में, प्रक्रियाएं सीधे कीबोर्ड से बात नहीं करती हैं। इसके बजाय X
प्रोग्राम (Xorg) एक डिवाइस के माध्यम से सभी कीबोर्ड घटनाओं को नियंत्रित करता है /dev/input/event<N>
। X
एक ईवेंट हैंडलर (एवदेव) का उपयोग करता है, जो अन्य चीजों के बीच, कीबोर्ड ईवेंट को संभालता है। आप X
लॉग को देखकर भी यह सत्यापित कर सकते हैं : /var/log/Xorg.0.log
जहां keyboard
उल्लेख किया गया है।
कीबोर्ड घटनाओं को X
इवेंट हैंडलर से उस प्रक्रिया में भेजा जाता है जिसमें प्रक्रिया मानक-इनपुट के माध्यम से किसी भी समय माउस पॉइंटर फोकस होता है जो कि खुला रहता है /dev/pts/<N>
। सख्ती से बोलना: एक प्रक्रिया वास्तव में "कीबोर्ड को पकड़ना" नहीं है, कीबोर्ड द्वारा आयोजित किया जाता है X
, इस प्रक्रिया में केवल (या पकड़) "फोकस" है या X
इतने पर ध्यान X
एक खुली स्टड फ़ाइल डिस्क्रिप्टर के माध्यम से इसे कीबोर्ड घटनाओं को अग्रेषित कर सकता है। /dev/pts/<N>
।
चरण # 3: किस प्रक्रिया में किसी विशेष समय पर Xorg फोकस होता है?
किसी विशेष समय में किस प्रक्रिया पर ध्यान केंद्रित करना है? यहाँ एक उत्तर देने वाला प्रश्न पूछा गया है:
माउस के तहत आवेदन का पता लगाएं
उत्तर का सारांश माउस के साथ नेविगेट करते समय एक स्क्रिप्ट को टर्मिनल में निम्नलिखित की तरह चलाना है:
#!/bin/bash
# Print the process tree of the window currently in focus.
# prereqs:
# sudo apt-get install xdotool psmisc
while true; do
pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
sleep 2
done
चरण # 4: प्रक्रिया गतिविधि में गहरी खुदाई करें
एक बार जब आप एक संदिग्ध प्रक्रिया की पहचान कर लेते हैं, तो अंतिम चरण इस व्यक्तिगत प्रक्रिया की जांच करना है। उसके लिए आप लिनक्स /proc
फाइल सिस्टम ( man 5 proc
) में बदल सकते हैं ।
लगभग किसी भी चीज के बारे में जानना चाह सकते हैं जो एक प्रक्रिया के तहत उपलब्ध है /proc
। वास्तव में, प्रोग्राम्स lsof
(सूची खुली फाइलें), डिबगर्स जो प्रक्रिया स्थिति की जांच करते हैं, और प्रक्रिया-लिस्टिंग उपयोगिताओं जैसे ps
या top
, सभी भरोसा करते हैं, /proc
जो डेटा के लिए कर्नेल द्वारा पॉपुलेटेड है।
उपयोग करने से proc
आप यह जान सकते हैं कि डिस्क पर निष्पादन योग्य प्रोग्राम कहां है (उदाहरण के लिए मानक सिस्टम निर्देशिकाओं के बाहर का कोई प्रोग्राम, विशेषकर यदि यह "मुझ पर ध्यान न दें" नाम के तहत छिपाने की कोशिश कर रहा है, तो इस तरह का नाम संदिग्ध हो सकता है) और उपयोग करना डिबगर या सिस्टम कॉल ट्रेसर आप यह जांच सकते हैं कि वे सिस्टम कॉल स्तर पर क्या कर रहे हैं (भले ही आपके पास उनका स्रोत कोड न हो)।
चरण # 2 और # 3 आपको सभी प्रक्रिया-आईडी ( PID
ओं) को देना चाहिए जो संभवतः आपके कीबोर्ड को पढ़ सकते हैं। इन PIDS में से प्रत्येक के लिए ( $pid
आप के रूप में हर एक निरूपित ) आप कर सकते हैं:
$ $ इसकी पूरी कमांड लाइन के लिए नक्शा:
cat /proc/$pid/cmdline
डिस्क निष्पादन योग्य पर $ pid का नक्शा:
ls -l /proc/$pid/exe
अपनी वर्तमान कार्यशील निर्देशिका के लिए $ pid का नक्शा:
ls -l /proc/$pid/cwd
अपने मूल वातावरण में $ pid का नक्शा बनाएं
cat /proc/$pid/environ | tr '\000' '\012'
वास्तविक समय में $ pid (और उसके बच्चे-समर्थक) सिस्टम-कॉल गतिविधि ट्रेस करें:
strace -f -p $pid
(और भी है: देखें man 5 proc
)
यदि आपको कोई अपरिचित प्रक्रिया दिखाई देती है, जो हर की-प्रेस को एक फाइल (स्टोर write
) में संग्रहीत करके या नेटवर्क के माध्यम से भेजने पर प्रतिक्रिया करती है sendto
, तो आपको एक कीबोर्ड स्निफर मिल सकता है।
आप यह भी देख सकते हैं कि कौन सी प्रक्रियाएँ हैं (tcp + udp) नेटवर्क समापन बिंदु खुले हैं:
# See 'man netstat' for details on all options used below
$ sudo netstat -tunapee
जमीनी स्तर:
त्रुटि का सबसे संभावित कारण मैलवेयर नहीं है, लेकिन कई प्रक्रियाएं एक ही समय में कीबोर्ड नियंत्रण प्राप्त करने की कोशिश कर रही हैं। दोनों में gnome-ssh-askpass
से एक है (एक मुद्रण त्रुटि)। अन्य साइट पर एक खुला ब्राउज़र हो सकता है जिसमें आक्रामक फ़ोकस-प्राप्त करने वाला डायलॉग बॉक्स हो।
यहां तक कि दूरस्थ अवसर में जो आपने वास्तव में कुछ मैलवेयर स्थापित किए हैं, अच्छी खबर यह है कि चूंकि आप लिनक्स पर हैं, इसलिए आपके लिए अनुसंधान और निरीक्षण करने के लिए सभी प्रक्रियाएं पारदर्शी हैं। मैलवेयर के लिए वास्तव में आपसे छिपाना, या आपको उपरोक्त तकनीकों का उपयोग करके इसे आसानी से पता लगाने से रोकना, इसकी प्रक्रियाओं को मारना और इसकी सभी फ़ाइलों को निकालना बहुत कठिन होगा।