सूक्ति-टर्मिनल को कुंजी लॉगिंग से बचाने के लिए सेटिंग


15

ऐसा लगता है कि एक ही उपयोगकर्ता की सभी प्रक्रियाओं के कीस्ट्रोक्स को लॉग करना आसान है। एक मूल keylogger 'xinput' है।

xinput test-xi2

कमांड सभी की-प्रेस का लॉग जनरेट करता है। दुर्भाग्य से, इसमें सूक्ति-टर्मिनल के पासवर्ड शामिल हैं। Googling ने सुझाव दिया कि कीबोर्ड को हथियाने से अन्य विंडो को कुंजी स्ट्रोक कैप्चर करने से रोका जा सकता है।

क्या ग्नोम-टर्मिनल में XI2 लॉगिंग को रोकने का कोई तरीका है? या क्या कोई X टर्मिनल है जिसमें यह सुविधा है?


क्या यह कोई समाधान है?
रादु राईडेनू

जवाबों:


13

यह संभव नहीं है क्योंकि एक्स सर्वर पर पारित किए गए किसी भी कीस्ट्रोक्स, xinput / किसी भी मनमाने कार्यक्रम के लिए उपलब्ध होगा। (वास्तव में, यह डिजाइन का हिस्सा है)। वायलैंड और मीर जैसे नए डिस्प्ले सर्वर एक्स में इस तरह की सुरक्षा समस्याओं को ठीक कर रहे हैं। एक्स के बजाय वायलैंड या मीर का उपयोग करने का एकमात्र वास्तविक समाधान होगा। इस ब्लॉग पोस्ट में इस मुद्दे का विवरण है।


तो पासवर्ड के लिए gksu का इनपुट xinput पर भी जाता है?
यानि

1
@yanychar yup, वास्तव में मुझे इस ब्लॉग पोस्ट के माध्यम से कुंजी लॉगिंग की इस विधि के बारे में पता चला: theinvanishthings.blogspot.in/2011/04/… (यहां तक ​​कि पहली बार जब मैंने ब्लॉग पोस्ट पढ़ी तो मुझे आश्चर्य हुआ)
रामचंद्र आप्टे

2
X11 में वास्तव में अविश्वसनीय मोड है जिसे आप प्रोग्राम को "खराब" एक्सटेंशन तक पहुंचने से रोकने के लिए उपयोग कर सकते हैं - x.org/wiki/Development/Documentation/Security
Michał Zieliński

-1

ज़रुरी नहीं। यहां तक ​​कि अगर आप किसी तरह कीबोर्ड को एक्स के भीतर ले जाने का प्रबंधन करते हैं (मुझे नहीं पता कि क्या यह भी संभव है, मुझे संदेह है), रूट के रूप में चलने वाली कीगलर उपयोगिता की हमेशा कीबोर्ड तक पहुंच होगी।


4
ऊपर का कमांड बिना रूट विशेषाधिकार के X के अंदर कीबोर्ड पकड़ लेता है। तो यह एक ubuntu डेस्कटॉप के लिए एक keylogger स्थापित करने के लिए तुच्छ है। सवाल यह है कि इससे कैसे बचा जाए।
यनिश्चर

-3

जैसा कि अन्य लोगों ने यहां कहा है, केवल कुंजी लॉगिंग से सूक्ति-टर्मिनल या अन्य टर्मिनल जैसे किसी प्रोग्राम की रक्षा करना संभव नहीं है, केवल अगर आप मानक उपयोगकर्ताओं को किसी भी कुंजी लकड़हारा को निष्पादित करने के लिए प्रतिबंधित करते हैं या यदि आप किसी भी कुंजी लकड़हारा प्रक्रिया को रोकते / रोकते हैं।

आगे मैं आपको दिखाऊंगा कि xinputकमांड के मामले में आप ये कैसे कर सकते हैं , लेकिन वही तरीके किसी और कुंजी लकड़हारे के लिए इस्तेमाल किए जा सकते हैं। यदि एक कुंजी लकड़हारा xinputकमांड का उपयोग करता है , तो जब तक आप इसे लागू नहीं करते तब तक इस पर विधि लागू करना आवश्यक नहीं है xinput

1. xinputआदेश का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करें

आप निम्न आदेश का उपयोग करके मानक उपयोगकर्ताओं को xinputकमांड का उपयोग करने के लिए प्रतिबंधित कर सकते हैं :

sudo chmod go-x /usr/bin/xinput

2. तर्क के xinputसाथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधित करेंtest-xi2

आप इस आदेश के लिए आवरण लिखकर तर्क के साथ कमांड का उपयोग करने के लिए मानक उपयोगकर्ताओं को प्रतिबंधितxinputtest-xi2 कर सकते हैं । ऐसा करने के लिए, टर्मिनल में जाएं और नीचे दिए गए निर्देशों का पालन करें:

  • रूट विशेषाधिकार प्राप्त करें:

    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सीधे इसे दरकिनार कर सकता है यदि वह अपना नया स्थान जानता है।

3. किसी भी xinputप्रक्रिया को रोकें / रोकें

आप xinputपासवर्ड या कुछ और दर्ज करने के लिए किसी भी प्रक्रिया को रोक सकते हैं या रोक सकते हैं जिसे आप लॉग इन नहीं करना चाहते हैं। ऐसा करने के लिए, अपनी ~/.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
}

अब, आप अपने टर्मिनल को फिर से खोलने के बाद, कभी भी आप चाहें तो इस फ़ंक्शन का उपयोग कर सकते हैं:

  • सभी xinputप्रक्रियाओं को रोकें / मारें :

    processof xinput stop
    
  • सभी xinputप्रक्रियाओं को रोकें :

    processof xinput pause
    
  • सभी xinputप्रक्रियाओं को फिर से शुरू करें :

    processof xinput continue
    

वास्तव में, इस फ़ंक्शन के साथ आप कुछ करने से पहले किसी भी प्रक्रिया को रोक सकते हैं / रोक सकते हैं (जैसे पासवर्ड दर्ज करना):

processof [process_name] [stop|pause|continue]

यदि आप नहीं जानते कि कैसे अपने सिस्टम पर सक्रिय कीलॉगर का पता लगाना है, तो देखें:

ये तरीके शायद सबसे अच्छा समाधान नहीं हैं, लेकिन मुझे आशा है कि आप इस बारे में एक विचार दे सकते हैं कि आप क्या कर सकते हैं ...


5
xinput केवल एक keylogger का एक उदाहरण है। सवाल हर संभव keylogger से इनपुट की सुरक्षा के बारे में है।
यानि

5
कोई भी प्रोग्राम सॉकेट और कीलॉग के माध्यम से एक्स सर्वर से जुड़ सकता है, यह भी आवश्यक नहीं है कि कुंजी लकड़हारा किसी बाहरी प्रोग्राम का उपयोग करता है।
रामचंद्र आप्टे

3
@ RaduRădeanu आपका समाधान अप्रभावी और बेकार है। xinputSUID (-rwxr-xr-x 1 रूट रूट 48504 अगस्त 15 2012 / usr / bin / xinput) भी नहीं है
रामचंद्र आप्टे

1
@ RaduRădeanu क्योंकि आपको केलॉग के लिए xinput की आवश्यकता नहीं है। (इसे बाहरी आदेश की आवश्यकता नहीं है और न ही दुर्भावनापूर्ण कार्यक्रम को SUID होने की आवश्यकता है) आपका समाधान बस एक को xinput के निष्पादन को नियंत्रित करने की अनुमति देगा
रामचंद्र आप्टे

3
इसे अप्रभावी साबित करने के लिए सबसे बुनियादी उदाहरण: एक यूबी स्टिक से (ubuntu) xinput के स्टॉक संस्करण को कॉपी करें, इसे वेब से डाउनलोड करें या इसे स्वयं ई-मेल करें और इसे अपने होम फ़ोल्डर में चलाएं। अप्रतिबंधित / usr / bin / xinput का उपयोग करने के समान प्रभाव।
एलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.