खुले बंदरगाहों का होना बुरा क्यों है?


36

यहाँ कुछ ऐसा है जो मुझे हमेशा चकित करता है। आपके कंप्यूटर पर खुले पोर्ट होना बुरा क्यों है? यह मानते हुए कि आपके कंप्यूटर पर कोई वायरस नहीं है या कोई अन्य प्रोग्राम पोर्ट को सुन रहा है जो वास्तव में कुछ कर सकता है तो पोर्ट के खुले होने से क्या फर्क पड़ता है? यदि कोई दुर्भावनापूर्ण व्यक्ति पोर्ट में पैकेट भेजना शुरू कर देता है, लेकिन डेटा प्राप्त करने और इसके साथ कुछ करने के लिए कुछ भी नहीं है तो यह क्यों मायने रखता है? एक कंप्यूटर किसी भी डेटा को मनमाने ढंग से निष्पादित नहीं करता है। मैं समझता हूं कि पैकेट के साथ एक कंप्यूटर को बाढ़ करना दुर्घटना का कारण बन सकता है क्योंकि यह सिर्फ डेटा की मात्रा से नहीं निपट सकता है, लेकिन मैं केवल सुरक्षा मुद्दों पर विचार कर रहा हूं जो वास्तव में कंप्यूटर पर फ़ाइलों को बदलते हैं।

अद्यतन करें

अब तक के उत्तर के लिए धन्यवाद। मैं अब समझता हूं, कि एक बंदरगाह खुला होने का मतलब वास्तव में एक कार्यक्रम है जिसका उस बंदरगाह पर सुनने का फायदा उठाया जा सकता है। लेकिन ऐसे सॉफ्टवेयर को लिखना इतना कठिन क्यों है जिसका शोषण नहीं किया जा सकता है? कंप्यूटर को कोई वास्तविक नुकसान पहुंचाने के लिए प्रोग्राम को एक या एक से अधिक फाइलें अपलोड करने की अनुमति नहीं होगी, और फिर उन फाइलों में से एक को निष्पादित करने की आवश्यकता होगी। ऐसा लगता है कि गलती से अनुमति देने के लिए अविश्वसनीय रूप से कठिन होगा।

जवाबों:


36

अगर कुछ इस पर कनेक्शन के लिए नहीं सुन रहा है तो एक पोर्ट नहीं खुला है।

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


संपादित करें

अपने प्रश्न को संबोधित करने के लिए कि लोग सिर्फ ऐसे सॉफ्टवेयर क्यों नहीं लिख सकते जो शोषक नहीं है:

साधारण कार्यक्रमों के लिए यह काफी आसान है, लेकिन कई कार्यक्रमों के लिए एक सॉकेट की आवश्यकता होती है। जैसे, उनके पास कई घटक हैं, जिनमें से कई डेवलपर द्वारा सबसे अधिक संभावना (पुस्तकालयों सहित) भी नहीं लिखे गए हैं। आप अपने नेटवर्क को सुरक्षित रखने के लिए अन्य लोगों पर भरोसा नहीं कर सकते हैं जब सख्त तरीके हैं जो आप खुद का उपयोग कर सकते हैं, जैसे कि फायरवॉल।

मनमाना / दूरस्थ कोड निष्पादन एक बहुत बड़ा जोखिम है, जैसा कि आपने बताया है। दुर्भाग्य से बफर ओवरफ्लो और अन्य सुरक्षा खामियां हैं जो इसे अनुमति देते हैं। किसी भी Microsoft सुरक्षा अद्यतन को देखें और मैं शर्त लगाता हूँ कि यह रिमोट कोड निष्पादन या विशेषाधिकारों को बढ़ाएगा, और MS एक बहुत बड़ी कंपनी है जिसमें सैकड़ों डेवलपर्स और अरबों डॉलर हैं।


4
बस जोड़ना: यदि आप उदाहरण के लिए जानते हैं कि एक सेवा में एक बग है, जिसका उपयोग कोड को घुसपैठ करने के लिए किया जा सकता है या जो कुछ भी और आप वास्तव में देखते हैं कि यह सेवा चल रही है, यह एक खुला निमंत्रण है;)
फेलिक्स

9

आपके द्वारा लिखे गए अपडेट के बारे में:

अब तक के उत्तर के लिए धन्यवाद। मैं अब समझता हूं, कि एक बंदरगाह खुला होने का मतलब वास्तव में एक कार्यक्रम है जिसका उस बंदरगाह पर सुनने का फायदा उठाया जा सकता है। लेकिन ऐसे सॉफ्टवेयर को लिखना इतना कठिन क्यों है जिसका शोषण नहीं किया जा सकता है? कंप्यूटर को कोई वास्तविक नुकसान पहुंचाने के लिए प्रोग्राम को एक या एक से अधिक फाइलें अपलोड करने की अनुमति नहीं होगी, और फिर उन फाइलों में से एक को निष्पादित करने की आवश्यकता होगी। ऐसा लगता है कि गलती से अनुमति देने के लिए अविश्वसनीय रूप से कठिन होगा।

ऐसे सॉफ्टवेयर को लिखना बहुत मुश्किल है जिनका शोषण नहीं किया जा सकता है!

मैंने किताब बिल्डिंग सिक्योर सॉफ्टवेयर को पढ़ा है और इस पर चर्चा की गई एक चीज स्टैक ओवरफ्लो का शोषण कर रही थी। वहाँ दो बहुत डरावने तथ्य थे:

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

इसलिए यदि कोई हैकर एक प्रोग्राम पा सकता है कि (a) में स्टैक ओवरफ्लो बग है जो (b) किसी नेटवर्क पर शोषक है और (c) उसके बफ़र में कुछ 100 बाइट्स बचे हैं, तो आपका कंप्यूटर pwned है। सौभाग्य से स्टैक ओवरफ्लो बग के बारे में ज्ञान अब काफी सामान्य ज्ञान है, लेकिन वे अभी भी पॉप अप करते हैं। 5 साल पहले और अब यह एक बहुत अधिक लगातार समस्या थी।

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


2
IIRC, डोनाल्ड नुथ (?) ने गणितीय रूप से यह साबित कर दिया कि उनके द्वारा लिखे गए छोटे कार्यक्रमों में से एक बग-मुक्त था, और इसमें कई साल लगे
RCIX

7
  • ओपन पोर्ट: जब कोई पूछता है, तो कंप्यूटर जवाब देता है कि इस पोर्ट पर एक सर्विस है। इसका मतलब है कि इस पोर्ट पर आने वाली कोई भी चीज उस कंप्यूटर पर चलने वाले प्रोग्राम (एक सेवा) द्वारा संसाधित हो जाएगी।
  • बंद पोर्ट: जब कोई पूछता है, तो कंप्यूटर जवाब देता है कि उस पोर्ट पर कोई सेवाएं नहीं हैं। Akser को पता होगा कि पते पर एक कंप्यूटर प्रतिक्रिया है।
  • चुपके पोर्ट: जब कोई पूछता है, तो उन्हें कोई जवाब नहीं मिलता है। यदि किसी पते पर कंप्यूटर है, तो उसे छिपाने के लिए बिंदु है। यह बहुत प्रभावी नहीं हो सकता है, हालांकि, जैसा कि जोशी ने टिप्पणियों में किया है।

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

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

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


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

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

joschi: सभी राउटर ऐसा नहीं करते हैं। कई राउटर केवल आईपी पते पर नेत्रहीन रूप से अग्रेषित करते हैं जहां कोई सिस्टम नहीं है। कनेक्शन केवल इसलिए बाहर का प्रयास करता है क्योंकि ग्राहक तीन तरह से काम करने की कोशिश से ऊब गया है।
बेन डिक

6

वास्तव में जहां तक ​​मुझे पता है, एक खुले बंदरगाह का मतलब है कि एक कार्यक्रम इसे सुन रहा है। तो डेटा को संसाधित करने वाली किसी प्रकार की सेवा है।


3

यह मानते हुए कि आपके कंप्यूटर पर कोई वायरस नहीं है या कोई अन्य प्रोग्राम पोर्ट को सुन रहा है जो वास्तव में कुछ कर सकता है तो पोर्ट के खुले होने से क्या फर्क पड़ता है? यदि कोई दुर्भावनापूर्ण व्यक्ति पोर्ट में पैकेट भेजना शुरू कर देता है, लेकिन डेटा प्राप्त करने और इसके साथ कुछ करने के लिए कुछ भी नहीं है तो यह क्यों मायने रखता है?

संयोग सभी अप-अप की माँ है :)

बल्कि खेद से सुरक्षित ... यहाँ आप के लिए अच्छा है makeuseof.com पढ़ें:

प्रौद्योगिकी समझाया: ओपन राउटर पोर्ट और उनकी सुरक्षा निहितार्थ


एक अच्छा, कम पढ़ा।
डेवपैरिलो

1

मैं कोई सुरक्षा निर्यात नहीं कर रहा हूं, लेकिन मैंने थोड़ा शोध किया है ... एक "ओपन" पोर्ट एक पोर्ट है जो एक आने वाले टीसीपी कनेक्शन को स्वीकार करने के लिए स्थापित किया गया है।

यदि आपके पास केवल 9, 21 और 80 पोर्ट्स पर सुनने वाले ऐप्स हैं, और आपका फ़ायरवॉल उन तीन पोर्ट्स तक पहुँच को ब्लॉक कर देता है, तो आप तकनीकी रूप से अन्य पोर्ट्स खोल सकते हैं। उदाहरण के लिए, IOW, पोर्ट 25, खुला नहीं है क्योंकि इस पर कुछ भी नहीं सुना जा रहा है।

आपके प्रश्न का उत्तर देने के लिए: आपके कंप्यूटर पर खुले पोर्ट होने का कारण खराब है क्योंकि ये पोर्ट आसानी से खोजे जा सकते हैं, और एक बार पता लगने के बाद ये पोर्ट अब सुनने वाले अनुप्रयोगों की कमजोरियों के लिए अतिसंवेदनशील होते हैं।


पोर्ट क्या है, आपकी परिभाषा गलत है। पोर्ट किसी भी तरह से टीसीपी तक सीमित नहीं है।
एमडीएमरा

1
मुझे लगता है कि किसी को भी विश्वास नहीं करना चाहिए कि वे शीर्ष 6 Google परिणामों में 'नेट :) 5' पर पढ़ते हैं, उनकी परिभाषा में स्पष्ट रूप से "टीसीपी" है। google.com/…
Shoeless

नहीं, वे कहते हैं कि टीसीपी / आईपी। बड़ा अंतर। TCP / IP में UDP
MDMarra

1
ICMP एक पोर्ट का उपयोग नहीं करता है, यह एक लेयर 3 प्रोटोकॉल है जो प्रोटोकॉल के आईपी सूट में शामिल है।
एमडीएमरा

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

0

उसी कारण से कि आप घर पर अपने दरवाजे और खिड़कियां बंद और बंद करते हैं।


3
मैं अपने दरवाजे और खिड़कियां बंद कर देता हूं क्योंकि यह बाहर ठंड है। इस प्रश्न का इन्सुलेशन से क्या लेना-देना है?
क्वैक डिक्टिक्स

2
क्या आपके दरवाजे और खिड़कियां इंसुलेट नहीं होती हैं यदि वे केवल बंद हैं? क्या अतिरिक्त बोल्ट वास्तव में बहुत अधिक इन्सुलेशन प्रदान करता है।
दन्त्रसी

अच्छी बात है, लेकिन यह ध्यान देने योग्य है कि हर कोई घर पर अपने दरवाजे और खिड़कियां बंद नहीं करता है। यह आपके दृष्टिकोण के आधार पर "हर कोई अपनी संपत्ति की रक्षा नहीं करना चाहता है" या "हर कोई डर की संस्कृति में रहना पसंद नहीं करता है"
इलारी काजस्ट

-2

मान लें कि खुले बंदरगाह खुली खिड़की और खुले दरवाजे की तरह हैं, लेकिन जब आपकी खिड़कियां एक डाकू या चूहा खुली होती हैं और एक मकड़ी #please में मिल सकती है, तो मुझे बताएं कि क्या मैं गूंगा हूं या असिनिन संपादित किया गया है कोई असिन ओपन पोर्ट विंडो की तरह नहीं हैं लेकिन इंटरनेट में एक खुला पोर्ट है जो मुझे लगता है कि बंद पोर्ट भी बंद खिड़कियां हैं इसके बिना हम कनेक्ट नहीं कर सकते हैं या ब्राउज़ कर सकते हैं मैं अनुमान लगाता हूं जैसे HTTP और एसएसएच या एफ़टीपी इसके बिना हम कनेक्ट नहीं कर सकते क्योंकि यह सिर्फ टीसीपी कनेक्शन है।

Im कोई सुरक्षा विशेषज्ञ नहीं


सेवाओं की पेशकश करने के लिए खुले बंदरगाहों की आवश्यकता होती है। ज़िप के संभावित उदाहरणों में से केवल एक: जीमेल एक खुला पोर्ट (एचटीटीपीएस का उपयोग करके अपनी वेबसाइट के लिए 443) का उपयोग करता है। लेकिन यह आपको कुछ भी दिखाने से पहले लॉग इन करने के लिए कहता है।
अर्जन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.