क्या कंप्यूटर में चल रहे सभी प्रोग्राम टास्क मैनेजर में प्रोसेस टैब में दिखाई देते हैं? [डुप्लिकेट]


34

इस सवाल का पहले से ही यहाँ एक जवाब है:

मैं यह इसलिए पूछ रहा हूं क्योंकि मैं उत्सुक हूं कि क्या कंप्यूटर में कोई वायरस मौजूद हो सकता है, मेरे बिना कभी भी यह पता नहीं चल पाएगा कि यह मौजूद है। अधिक विशिष्ट होने के लिए, एक वायरस जो किसी भी प्रकार का कोई संकेत नहीं उत्सर्जित करता है।

जवाबों:


48

मैलवेयर का एक वर्ग है जो खुद को ऑपरेटिंग सिस्टम से पूरी तरह से छिपा सकता है जिसे रूटकिट के रूप में जाना जाता है ।

रूटकिट्स का उपयोग काम पर अन्य मैलवेयर के साक्ष्य को छिपाने के लिए किया जाता है और ऑपरेटिंग सिस्टम में बहुत गहराई से एम्बेडेड होता है। उनकी गहरी एम्बेडिंग के कारण वे प्रक्रिया सूचियों, फाइल सिस्टम तालिकाओं और अन्य महत्वपूर्ण संरचनाओं में हेर-फेर करने में सक्षम हैं।

स्मृति में फाइलसिस्टम संरचनाओं में हेरफेर करके वे निर्देशिकाओं के लिए गलत या भ्रामक परिणाम लौटा सकते हैं, विशेष रूप से मुख्य मैलवेयर से संबंधित फाइलें ही नहीं दिखा रहे हैं। फाइलें वहां मौजूद हैं, और एक लिनक्स ऑपरेटिंग सिस्टम जैसे कि अनइंफेक्टेड ऑपरेटिंग सिस्टम में बूट करना फाइलों को दिखाएगा, क्योंकि उन्हें कहीं स्टोर किया जाना है।

इसी तरह, रूटकिट्स कुछ प्रक्रियाओं को टास्क मैनेजर जैसे कार्यक्रमों की सूचना देने से छोड़ सकते हैं। ऑपरेटिंग सिस्टम कोर उनके बारे में जानता है, क्योंकि उन्हें शेड्यूल करने के लिए इसकी आवश्यकता है, यह सिर्फ बाहरी दुनिया को उनके बारे में बताने से रोक दिया गया है।


1
मैं उत्सुक हूँ, वे उस उपलब्धि को कैसे हासिल करते हैं? ऐसा लगता है कि विंडोज को पहली जगह की अनुमति नहीं देनी चाहिए। मेरा मतलब है, यहां तक ​​कि "सभी उपयोगकर्ताओं से शो प्रक्रिया" कम 'छुपाने' और अधिक 'वर्गीकृत' कर रहे हैं
Raestloz

2
@ रेस्टलूज: वे रूट एक्सेस प्राप्त करके और फिर विंडोज को फिर से लिखने वाले बिट्स को हटाने के लिए करतब हासिल करते हैं। मैंने सुना है कि उनमें से कुछ एक बूट के रूप में रूटकिट में "बूटिंग" करके ऐसा करते हैं, विंडोज को बदल देते हैं, और फिर वे विंडोज चलाते हैं, इसलिए न तो उपयोगकर्ता और न ही विंडोज को कुछ भी पता नहीं है कि कुछ भी असामान्य है।
मूविंग डक

3
अच्छी तरह से खतरे, शायद किसी को एंटी-वायरस का आविष्कार करना चाहिए जो कि BIOS lol पर चलता है
Raestloz

1
@zyboxenterprise रियल विंडोज अपडेट पर हस्ताक्षर किए जाते हैं और उन्हें जाली नहीं बनाया जा सकता है, लेकिन आप किसी भी अन्य तरीके से पुनः आरंभ करने के लिए केवल रिक्वेस्ट रिक्वेस्ट डायलॉग, या ट्रिक यूजर को फोर्ज कर सकते हैं, या रिस्टार्ट ( shutdown -r -t 0, कोई विशेषाधिकारी की आवश्यकता नहीं) को बाध्य करते हैं , या केवल उपयोगकर्ता रिबूट होने तक प्रतीक्षा करें।
ग्रोनोस्तज

4
@zyboxenterprise शायद, शायद नहीं;) एक प्रमाण पत्र बनाकर ज्वाला ने अपने स्वयं के प्रयोजनों के लिए विंडोज अपडेट का दोहन किया, लेकिन यह भेद्यता पहले से ही पैच हो गई है। कोई सार्वजनिक रूप से ज्ञात डब्ल्यूयू कारनामे नहीं हैं, लेकिन इसका मतलब यह नहीं है कि कोई भी मौजूद नहीं है। फ्लेम द्वारा उपयोग किया जाने वाला भी इससे पहले ज्ञात नहीं था। (देखें 0-दिन का हमला
gronostaj

16

सभी सामान्य कार्यक्रम वहां दिखाई देंगे, लेकिन ...

  • एक प्रशासक खाते के बिना आप केवल अपनी प्रक्रिया देख पाएंगे (व्यवस्थापक खाते सभी की प्रक्रियाओं को देखने के लिए चुन सकते हैं)
  • rootkits सूची से अपनी प्रक्रिया को छिपाकर, अपने कार्य को छिपाने की कोशिश करेगा, कार्य प्रबंधक से समझौता करेगा (इसलिए यह उसे नहीं दिखाता है), किसी अन्य प्रक्रिया पता स्थान के अंदर छिपा हुआ ...
  • सेवाएं एक svchostप्रक्रिया के तहत थ्रेड्स के रूप में चलेंगी (ज्यादातर मामलों में), इसलिए कोई आसान बिंदु नहीं है जिस पर सेवा किसी दिए गए svostost उदाहरण के तहत चल रही है।

रूटकिट्स का पता लगाने के लिए कुछ कार्यक्रम तैयार किए गए हैं। वे उदाहरण के लिए निष्पादन के लिए प्रोग्राम किए गए थ्रेड्स की सूची और सिस्टम में प्रक्रियाओं की सूची की जाँच करके करते हैं (किसी प्रक्रिया से संबंधित थ्रेड किसी छिपी हुई प्रक्रिया का संकेत नहीं है), या उच्च-स्तर पर देखी गई फ़ाइलों की सूची और इसे फाइलों के साथ तुलना करते हुए इसे डिस्क विभाजन से मैन्युअल रूप से पढ़ता है।

बहरहाल, एक बार जब आप संक्रमित हो जाते हैं, तो वायरस के लिए अपनी उपस्थिति को छिपाना इतना अच्छा होता है कि इसका पता लगाना लगभग असंभव है। जिन्हें आमतौर पर एपीटी (उन्नत लगातार खतरा) कहा जाता है ।


2
इन बिंदुओं में से कुछ Sysinternals Process Explorer द्वारा कुछ अमान्य हैं - सीमित उपयोगकर्ता किसी अन्य उपयोगकर्ता द्वारा चलाए जाने वाली प्रक्रियाओं के फ़ाइल नाम देख सकते हैं, और svchosts के टूलटिप्स सूचीबद्ध करते हैं कि वे क्या होस्ट कर रहे हैं।
किर्ब

क्या आपको "खतरा" लिखने का मतलब था या आपका मतलब "धागा" था? यह वास्तव में वहां काम करता है;)
कोनरक

एक रूटकिट डिटेक्टर थ्रेड्स या प्रक्रियाओं को कैसे गणना करता है? यदि यह एक विशिष्ट तरीका / WinAPI है, तो एक रूटकिट एन्यूमरेशन में हेरफेर नहीं कर सकता है और रूटकिट डिटेक्टर इसकी सूचना नहीं देगा?
रे

1
@DebugErr, वे उच्च-स्तरीय और निम्न-स्तर को देखते हैं, फिर अंतरों की रिपोर्ट करते हैं (कभी-कभी झूठी सकारात्मकता पैदा करते हैं, जैसे कि जब फ़ाइल को बीच-बीच में बदला गया हो)। निष्पादन के लिए प्रोग्राम किए गए थ्रेड्स की सूची की जांच करके मैं ओएस अनुसूचक द्वारा उपयोग की जाने वाली डबल-लिंक्ड सूची का उल्लेख कर रहा था। पूरी तरह से निम्न-स्तर: यदि यह वहां नहीं है, तो इसे टाइम-स्लाइस नहीं मिलती है (इसके अलावा जांच के लिए और भी स्थान हैं, जैसे ISR)।
.ngel

5

पृष्ठभूमि

ऑपरेटिंग सिस्टम में एक घटक होता है जिसे कर्नेल के रूप में जाना जाता है। कर्नेल की (कई) जिम्मेदारियों में से एक सिस्टम मेमोरी (भौतिक और आभासी दोनों) का प्रबंधन करना है।

ऐसा करने के भाग के रूप में, कर्नेल उपलब्ध मेमोरी को उपयोगकर्ता मोड और कर्नेल मोड के रूप में ज्ञात दो अलग-अलग क्षेत्रों में विभाजित करता है। कर्नेल और ड्राइवर कर्नेल मोड मेमोरी साझा करते हैं, और उपयोगकर्ता प्रोग्राम और कम महत्वपूर्ण सिस्टम घटक उपयोगकर्ता मोड मेमोरी क्षेत्र में रहते हैं।

उपयोगकर्ता मोड में प्रक्रियाएं विशेष रूप से नामित और नियंत्रित चैनलों को छोड़कर, आमतौर पर कर्नेल मोड में उन लोगों के साथ संवाद नहीं कर सकती हैं।

पूर्णता के लिए यह उल्लेख किया जाना चाहिए कि उपयोगकर्ता मोड में चलने वाली प्रक्रियाएं भी एक-दूसरे से अलग-थलग हैं, लेकिन ऑपरेटिंग सिस्टम द्वारा प्रदान की गई सुविधाओं का उपयोग करके एक-दूसरे के साथ अधिक स्वतंत्र रूप से संवाद कर सकती हैं बशर्ते कि कार्यक्रम ऐसा करने के लिए डिज़ाइन किए गए हों।

प्रक्रियाओं

कर्नेल उपयोगकर्ता मोड में प्रक्रियाओं को लॉन्च करने की क्षमता प्रदान करता है। जब एक प्रक्रिया बनाई जाती है, तो यह उन प्रक्रियाओं की आंतरिक सूची में जोड़ा जाता है जो वर्तमान में मौजूद हैं। जब टास्क मैनेजर जैसे कोई प्रोग्राम प्रक्रियाओं की एक सूची के लिए पूछता है, तो उसे इस सूची में सूचनाओं का एक सबसेट प्राप्त होता है, जिसे उपयोगकर्ता की अनुमति के अनुसार फ़िल्टर किया जाता है।

अपने अस्तित्व को छिपाने के लिए एक रूटकिट जैसे मैलवेयर का मतलब है कि इस तालिका से सीधे खुद को हटाना। ऐसा करने के बाद भी यह निष्पादित हो सकता है, लेकिन अब सामान्य साधनों द्वारा प्राप्त प्रक्रिया सूची में दिखाई नहीं देगा।

चूंकि ये प्रक्रियाएं वास्तव में मौजूद हैं और निष्पादित होती हैं, उन्हें अन्य कर्नेल डेटा संरचनाओं के निरीक्षण से पाया जा सकता है, जैसे कि हैंडल टेबल, जो संसाधनों के बारे में जानकारी रखते हैं, जो एक प्रक्रिया खुली है (उदाहरण के लिए फ़ाइलें), या स्मृति आवंटन की जांच करना जिसमें से यह अधिक है सॉफ्टवेयर के कार्य करने की क्षमता में बाधा डाले बिना छिपाना मुश्किल है।

कर्नेल मोड ड्राइवर

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

कर्नेल मोड में कोड चलाने में सक्षम होना एक महत्वपूर्ण कदम है जो प्रभावी रूप से कोड निष्पादित करने के अस्तित्व को छिपाने में सक्षम है। सामान्य परिस्थितियों में विंडोज को चलाने के लिए कोड कर्नेल मोड में कोड की आवश्यकता होती है, इसलिए मालवेयर को ऑपरेटिंग सिस्टम, अन्य सॉफ्टवेयर, या यहां तक ​​कि सोशल इंजीनियरिंग के शोषण का उपयोग करने की आवश्यकता हो सकती है, लेकिन एक बार कोड कर्नेल मोड में काम कर रहा है, छुपा रहा है आसान हो जाता है।

सारांश

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


3

वायरस आजकल बहुत परिष्कृत हैं। वहाँ कर सकते हैं एक होना आपके कंप्यूटर पर वायरस लेकिन कार्य प्रबंधक में नहीं दिख रहा । टास्क मैनेजर (और ऑपरेटिंग सिस्टम के अन्य हिस्सों) के लिए खुद से समझौता करना संभव है, इस प्रकार वायरस को छिपाया जाता है। उदाहरण के लिए, एक रूटकिट।

यदि आप वायरस की जांच के लिए टास्क मैनेजर पर भरोसा करने की योजना बना रहे हैं, तो आपको अभी रुक जाना चाहिए। एक एंटीवायरस स्थापित करें, और यहां तक ​​कि एक एंटीवायरस कभी-कभी आपके पीसी पर वायरस का पता लगाने में विफल हो जाएगा।


0

"वायरस को छिपाने" का एक और सरल तरीका है, इसके अलावा दूसरों को पहले से ही अन्य उत्तरों में अच्छी तरह से समझाया गया है:

एक समझौता किया गया DLL (गतिशील रूप से जुड़ा पुस्तकालय)

कार्यक्रमों का एक बड़ा सौदा - लगभग सभी अछूतों के लिए - चलाने के लिए एक या अधिक DLL की आवश्यकता होती है। कुछ खुद ओएस से संबंधित हैं (उदाहरण के लिए, जो विंडोज के लिए हार्डवेयर एक्सेस को रोक देता है), कुछ को केवल एक प्रोग्राम द्वारा उपयोग किया जाता है, जो अधिक छोटे टुकड़ों (एक .exe फ़ाइल और कोर कार्यक्षमता के साथ अधिक। Dll फ़ाइलों) तक टूट जाता है। प्लगइन्स आदि) आपको एक सामान्य प्रक्रिया या सेवा की तरह हर समय चलाने के लिए आपका वायरस नहीं मिलता है, लेकिन आपका वायरस वास्तव में खोजना बहुत कठिन होगा, क्योंकि यह पूरी तरह से निर्दोष प्रोग्राम या प्रोग्राम घटक की तरह दिखेगा।

आगे पढ़े: http://msitpros.com/?p=2012


और इस तरह के वायरस बनाने के बारे में बहुत ही आकर्षक बात है: dll की मुफ्त (कोई भुगतान की आवश्यकता) डाउनलोड करने वाली वेबसाइटें हैं जो इस या उस कारण से आपके कंप्यूटर पर गायब हो सकती हैं। चूंकि मूल और नई .dll फ़ाइल के चेकसम की तुलना करने की संभावना बहुत सीमित है और लगभग कोई भी परवाह नहीं करता है, इसलिए dll-वायरस सिस्टम में लंबे समय तक किसी का ध्यान नहीं रख सकते हैं और प्रवेश कर सकते हैं (जब तक कि, निश्चित रूप से, एंटीवायरस प्रोग्राम की संभावना नहीं है उन्हें और उपयोगकर्ता हटाए जाने से सहमत हैं - आप पहले से ही पैटर्न देखते हैं)।

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


0

TL; DR: विंडोज का टास्क मैनेजर बहुत सीमित है जो यह कर सकता है, और यह आपके सिस्टम पर चलने वाली हर प्रक्रिया को कभी नहीं दिखाएगा। प्रमाण चाहिए? गणना (लगभग) रैम की मात्रा टास्क मैनेजर में दिखाई गई प्रक्रियाओं का उपयोग कर रही है, और इसकी तुलना सिस्टम के रैम उपयोग से करती है; आपके पास कम से कम 100MB RAM होना चाहिए, और कभी-कभी यह 1GB तक बढ़ जाता है, यह इस बात पर निर्भर करता है कि आप किस सिस्टम के लिए उपयोग कर रहे हैं। ग्राफिक्स कार्ड अपने स्वयं के GDDR RAM के साथ रैम से कुछ मेमोरी भी ले सकते हैं। *

पावेल पेटमैन के जवाब पर विस्तार करने के लिए, मैं जोड़ सकता हूं कि खेलों के लिए कई परिष्कृत चीट इंजन गेम DLL में कोड को इंजेक्ट करने पर भरोसा करते हैं जो उनकी धोखा देती है।

इस प्रकार के समझौते का पता लगाना बहुत कठिन है, और इस प्रश्न में एक ही तकनीक को लागू किया जा सकता है। यदि, कहते हैं, एक वायरस अनिर्धारित जाना चाहता है, तो यह उस प्रकार के विंडोज अपडेट के रूप में हो सकता है जो सिस्टम निर्देशिकाओं में खुद को अर्क करता है, वायरस एक महत्वपूर्ण सिस्टम फ़ाइल को अधिलेखित कर सकता है। अधिकांश एंटीवायरस प्रोग्राम इस प्रकार के वायरस का पता नहीं लगाएंगे, जिसका अर्थ है कि वायरस वायरस के कोड को महत्वपूर्ण विंडोज DLL (और भी .exes) में इंजेक्ट करने से आगे बढ़ सकता है।

जब मेरा एक ग्राहक असामान्य व्यवहार के बारे में बताता है, तो मैं किसी भी वायरस को चलाने के लिए हमेशा प्रोसेस एक्सप्लोरर (माइक्रोसॉफ्ट से डाउनलोड) चलाता हूं। प्रोसेस एक्सप्लोरर आपको बता सकता है कि कौन से प्रोसेस चल रहे हैं (यहां तक ​​कि जो टास्क मैनेजर में नहीं हैं), और यह भी कि वे किस DLL मॉड्यूल का उपयोग कर रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.