गंभीर सुरक्षा: कैसे dEliBeRaTe tYpO DNS सुरक्षा में सुधार कर सकते हैं

गंभीर सुरक्षा: कैसे dEliBeRaTe tYpO DNS सुरक्षा में सुधार कर सकते हैं

वर्षों से, हमने लिखा हुआ और बात DNS की जटिल समस्या के बारे में नेकेड सिक्योरिटी पर कई बार अपहरण.

DNS, जैसा कि आप शायद जानते हैं, इसका संक्षिप्त रूप है डॉमेन नाम सिस्टम, और आप अक्सर इसे इंटरनेट की "टेलीफोन निर्देशिका" या "गजेटियर" के रूप में वर्णित सुनेंगे।

यदि आप इस शब्द से परिचित नहीं हैं गजट, यह एटलस के पीछे के सूचकांक को संदर्भित करता है जहाँ आप देखते हैं, कहते हैं, मोन्रोविया, लाइबेरिया एक सुविधाजनक वर्णमाला सूची में, और यह कुछ ऐसा कहता है 184 - C4. यह आपको सीधे पृष्ठ 184 पर जाने और मानचित्र के शीर्ष पर अक्षर सी से नीचे और बाईं ओर संख्या 4 के पार ग्रिड लाइनों का अनुसरण करने के लिए कहता है। जहां रेखाएं मिलती हैं, वहां आपको मोनरोविया मिलेगा।

अधिकांश उपयोगकर्ताओं के लिए, अधिकांश DNS लुकअप एक सर्वर नाम के साथ जाते हैं, जो वापस आने के लिए एक उत्तर मांगता है जिसमें उसका A-रिकॉर्ड या उसका AAAA-रिकॉर्ड शामिल होता है।

(ए-रिकॉर्ड का उपयोग 32-बिट आईपीवी4 इंटरनेट नंबरों के लिए किया जाता है, जैसे 203.0.113.42; AAAA-रिकॉर्ड 128-बिट IPv6 पतों के लिए समतुल्य उत्तर हैं, जैसे 2001:db8:15a:d0c::42 - इस लेख में, हम केवल ए-रिकॉर्ड और आईपीवी4 नंबरों का उपयोग करेंगे, लेकिन दोनों मामलों में लुकअप प्रक्रिया पर समान सुरक्षा मुद्दे लागू होते हैं।)

यहां एक उदाहरण है, जहां हम काल्पनिक डोमेन नाम ढूंढ रहे हैं naksec.test एक DNS सर्वर के माध्यम से जो विशेष रूप से आपको DNS ट्रैफ़िक को ट्रैक करने और सिखाने के लिए बनाया गया था।

हमने पुराने स्कूल के लिनक्स टूल का उपयोग किया है dig, के लिए कम डोमेन इंटरनेट ग्रोपर, एक सरल DNS अनुरोध उत्पन्न करने के लिए (dig हम जो सर्वर चाहते हैं उसके लिए ए-रिकॉर्ड देखने में डिफ़ॉल्ट:

$ dig +noedns @127.42.42.254 naksec.test ;; प्रश्न अनुभाग: ;naksec.test. में एक ;; उत्तर अनुभाग: NAKSEC.TEST। 5 इन ए 203.0.113.42 ;; क्वेरी समय: 1 मिसे ;; सर्वर: 127.42.42.254#53(127.42.42.254) (यूडीपी) ;; कब: सोम जनवरी 23 14:38:42 जीएमटी 2023 ;; एमएसजी आकार आरसीवीडी: 56

यहां बताया गया है कि हमारा DNS सर्वर अनुरोध से कैसे निपटता है, आने वाले अनुरोध का हेक्स डंप दिखाता है, और सफल उत्तर जो वापस जाता है:

---> 127.0.0.1:57708 से 127.42.42.254:53 तक अनुरोध ---> 00000000 62 4ई 01 20 00 01 00 00 00 00 00 00 06 6 61ई 6 00000010बी |बीएन। .......नक| 73 65 63 04 74 65 73 74 00 00 01 00 01 203.0.113.42 |सेकंड.टेस्ट.... | DNS लुकअप: naksec.test के लिए A-रिकॉर्ड ==> A=127.42.42.254 <--- 53:127.0.0.1 से 57708:00000000 तक उत्तर दें <--- 62 4 84e 0 b00 01 00 01 00 00 00 00 06 6 61e 6 00000010b |bN...........nak| 73 65 63 04 74 65 73 74 00 00 01 00 01 06 4 41ई 00000020 |सेकंड.टेस्ट......एनए| 4 53बी 45 43 04 54 45 53 54 00 00 01 00 01 00 00 00000030 |केएसईसी.टेस्ट.......| 00 05 00 04 00 सीबी 71 2 XNUMXए |......क्यू* |

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

यह यूडीपी को उसके बड़े चचेरे भाई टीसीपी की तुलना में बहुत सरल और तेज़ बनाता है ट्रांसमिशन कंट्रोल प्रोटोकॉल, जैसा कि इसके नाम से पता चलता है, स्वचालित रूप से कई विवरणों का ध्यान रखता है जो यूडीपी नहीं करता है।

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

यूडीपी में "कनेक्शन" की अवधारणा नहीं है, इसलिए अनुरोध और उत्तर अनिवार्य रूप से स्वतंत्र रूप से यात्रा करते हैं:

  • DNS सर्वर पर एक DNS अनुरोध आता है स्वयं के एक यूडीपी पैकेट में।
  • DNS सर्वर एक रिकॉर्ड रखता है किस कंप्यूटर ने वह विशेष पैकेट भेजा है।
  • सर्वर वापस भेजने के लिए उत्तर ढूंढने में लग जाता है, या यह निर्णय लेना कि वहाँ कोई नहीं है।
  • सर्वर एक उत्तर भेजता है दूसरे यूडीपी पैकेट का उपयोग करके मूल प्रेषक को।

ऑपरेटिंग सिस्टम या नेटवर्क के स्तर से, उपरोक्त दो यूडीपी पैकेट स्वतंत्र, स्टैंडअलोन ट्रांसमिशन हैं - वे एक ही डिजिटल कनेक्शन के हिस्से के रूप में एक साथ बंधे नहीं हैं।

यह सर्वर पर निर्भर है कि वह यह याद रखे कि किस क्लाइंट को प्रत्येक उत्तर भेजना है; और यह ग्राहक पर निर्भर है कि वह यह पता लगाए कि कौन से उत्तर मूल रूप से भेजे गए अनुरोधों से संबंधित हैं।

आप इतने सुनिश्चित कैसे हो सकते हैं?

इस बिंदु पर, विशेष रूप से ऊपर दिए गए DNS अनुरोध और उत्तर के छोटे आकार को देखते हुए, आप शायद सोच रहे होंगे, "ग्राहक यह कैसे सुनिश्चित कर सकता है कि यह सही उत्तर से मेल खाता है, न कि ऐसा उत्तर जिसे ट्रांज़िट में विकृत किया गया हो, या गलत तरीके से निर्देशित किया गया हो गलती से, या तो दुर्घटना से या डिज़ाइन से?”

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

वास्तव में, डिफ़ॉल्ट रूप से, DNS अनुरोधों में एक एकल "पहचान टैग" शामिल होता है, जिसे DNS डेटा-प्रारूप दस्तावेज़ में बस के रूप में संदर्भित किया जाता है ID.

आश्चर्यजनक रूप से, पिछले कुछ वर्षों में कई अपडेट प्राप्त करने और सुधारों का सुझाव देने के बावजूद, आधिकारिक इंटरनेट आरएफसी (टिप्पणियों के लिए अनुरोध) दस्तावेज़ जो DNS विनिर्देशन के रूप में कार्य करता है वह अभी भी है RFC 1035 (वर्तमान में हम 9000 के दशक के मध्य में आरएफसी में हैं), लगभग 1987 साल पहले, नवंबर 35 तक का समय!

उस समय, बैंडविड्थ और प्रोसेसिंग पावर दोनों ही कम आपूर्ति में थे: सामान्य सीपीयू गति लगभग 10 मेगाहर्ट्ज थी; डेस्कटॉप कंप्यूटर में लगभग 1MByte RAM होती थी; उन संगठनों के लिए इंटरनेट एक्सेस स्पीड, जो बिल्कुल भी ऑनलाइन हो सकते थे, अक्सर 56kbit/sec या 64 kbit/sec होती थी, जो सभी के बीच साझा की जाती थी; और उस समय के डायलअप मॉडेम के माध्यम से व्यक्तिगत कनेक्टिविटी के लिए 1200 बिट/सेकंड किफायती विकल्प था।

यही कारण है कि DNS अनुरोध और उत्तर शीर्षलेखों को - और अभी भी - केवल 12 बाइट्स में विभाजित किया गया है, जिनमें से आईडी टैग पहले दो को लेता है, जैसा कि आरएफसी 1035 का प्यारा है ASCII कला स्पष्ट करता है:

 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+ --+--+--+--+--+--+--+ | आईडी | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QR| ओपकोड |एए|टीसी|आरडी|आरए| जेड | आरकोड | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | क्यूडीकाउंट | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | हिसाब | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | एनएसकाउंट | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | लेखा | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

आप ऊपर दिखाए गए हेक्स डंप में आईडी को क्रियाशील होते हुए देख सकते हैं, जहां अनुरोध और उत्तर पैकेट दोनों समान दो वर्णों से शुरू होते हैं bN, जो 16-बिट पहचानकर्ता के अनुरूप है 62 4e हेक्स में.

बहुत शिथिल रूप से कहें तो, ये 16 बिट उतने ही हैं जितने आधिकारिक DNS प्रोटोकॉल "प्रमाणीकरण" या "त्रुटि का पता लगाने" के माध्यम से प्रदान करते हैं।

अनुमान लगाकर हस्तक्षेप करना

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

इसमें ऐसे उत्तर भेजना शामिल है जो जानबूझकर आपको गलत जानकारी देते हैं, जैसे कि आपकी आईटी टीम आपको उन सर्वरों से दूर भेजती है जिनके बारे में उसे पता है कि वे मैलवेयर से भरे हुए हैं।

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

लेकिन, पहली नज़र में, यह अति-कमज़ोर प्रकार की DNS ID टैगिंग भी इसे तुच्छ बनाती प्रतीत होती है यहां तक ​​कि उन हमलावरों के लिए भी जिन्हें आपके नेटवर्क ट्रैफ़िक की बिल्कुल भी दृश्यता नहीं है अपने उपयोगकर्ताओं या अपने सर्वर पर नकली DNS उत्तर सक्रिय करने के लिए...

…सफलता की खतरनाक रूप से उच्च संभावना के साथ।

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

और यदि हमलावर हैक करने में सक्षम नहीं हैं naksec.test सर्वर स्वयं, क्या होगा यदि वे नियमित रूप से और बार-बार आपके DNS सर्वर पर यूडीपी पैकेट को फायर करते हैं, एक निर्मित आईडी टैग का उपयोग करते हुए, जो इस प्रश्न का उत्तर देने का दावा करता है, "ए-रिकॉर्ड किसके लिए है naksec.test"?

इस तरह, वे डीएनएस अनुरोध को हाईजैक करने में सक्षम हो सकते हैं, एक नकली उत्तर प्रदान कर सकते हैं, और इसलिए वेबसाइट पर आपकी अगली यात्रा को गलत दिशा दे सकते हैं - अनिवार्य रूप से साइट पर हमला करने की आवश्यकता के बिना ही इसे हाईजैक कर सकते हैं। naksec.test सर्वर बिल्कुल।

कुछ भाग्य की आवश्यकता है

बेशक, उन्हें थोड़ा भाग्यशाली होने की आवश्यकता होगी, हालांकि वे अपने समग्र अवसरों को बढ़ाने के लिए बार-बार प्रयास कर सकते हैं, यह देखते हुए कि उन्हें केवल एक बार सफल होने की आवश्यकता है, जबकि आपको हर बार एक ट्रुथ्युल डीएनएस उत्तर प्राप्त करने की आवश्यकता है।

सफल होने के लिए, उन्हें अपना दुष्ट DNS उत्तर भेजना होगा:

  • उस अवधि के दौरान जब आपके स्वयं के सर्वर को पहले से ही प्रश्न का उत्तर नहीं पता था। DNS उत्तरों में एक 32-बिट संख्या शामिल होती है जिसे TTL कहा जाता है जीने के लिए समय, जो बताता है कि दूसरा छोर कितने समय तक उत्तर का पुन: उपयोग कर सकता है। यदि आपने या ytour नेटवर्क पर किसी अन्य ने पूछा है naksec.test हाल ही में, आपके DNS सर्वर के कैश में उत्तर हो सकता है। किसी और खोज की आवश्यकता नहीं होगी, और हमलावरों को अपहरण करने के लिए कोई आउटगोइंग अनुरोध नहीं होगा।
  • आपके द्वारा अपना अनुरोध भेजने और आधिकारिक उत्तर बाहर से वापस आने के बीच। पुराने दिनों में भी, DNS लुकअप समय शायद ही कभी कुछ सेकंड से अधिक चलता था। आज, उन्हें मिलीसेकंड में सबसे अच्छा मापा जाता है।
  • इसके पहले 16 बिट्स में सही संख्या के साथ। आप 65536 फिट कर सकते हैं (216) 16 बिट्स में अलग-अलग मान, इसलिए हमलावरों को कुछ हद तक भाग्यशाली होना होगा। लेकिन आज के नेटवर्क बैंडविथ पर, एक बार में 65536 अलग-अलग नकली उत्तर भेजने में, इस प्रकार सभी संभावित आईडी नंबरों को कवर करने में एक सेकंड का एक छोटा सा अंश लगता है।

सौभाग्य से, अच्छे DNS सर्वर ने डिफ़ॉल्ट रूप से अपहरण को कठिन बनाने के लिए एक अतिरिक्त कदम उठाया है।

कम से कम, वे लगभग 2008 से यही कर रहे हैं, जब से स्वर्गीय डैन कमिंसकी बताया गया कि उस समय बहुत सारे DNS सर्वर न केवल एक निश्चित यूडीपी पोर्ट (लगभग लगभग हमेशा पोर्ट 53, आधिकारिक तौर पर DNS को सौंपा गया) पर आने वाले अनुरोधों को सुनने के लिए कॉन्फ़िगर किए गए थे...

...लेकिन एक निश्चित पोर्ट पर इनबाउंड उत्तर प्राप्त करने के लिए भी, अक्सर पोर्ट 53 भी, यदि केवल ट्रैफ़िक में एक सुखद समरूपता बनाने के लिए।

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

अतिरिक्त आईडी के रूप में पोर्ट नंबर का उपयोग करें

इन दिनों, लगभग सभी यूडीपी-आधारित डीएनएस सर्वर, हमेशा की तरह, पोर्ट 53 पर सुनते हैं, लेकिन वे डीएनएस अनुरोधकर्ता द्वारा उपयोग किए जाने वाले तथाकथित "स्रोत पोर्ट" का ट्रैक रखते हैं, जिसे वह यादृच्छिक रूप से चुने जाने की उम्मीद करता है।

यूडीपी स्रोत पोर्ट, जो एक पुराने-स्कूल कार्यालय टेलीफोन एक्सचेंज में "एक्सटेंशन नंबर" की तरह होते हैं, का उपयोग आपकी और नेटवर्क की मदद के लिए किया जाता है, ताकि अनुरोधों को एक दूसरे से अलग किया जा सके।

इंटरनेट प्रोटोकॉल पोर्ट (टीसीपी भी उनका उपयोग करता है) 1 से 65535 तक चल सकते हैं, हालांकि अधिकांश आउटबाउंड कनेक्शन केवल स्रोत पोर्ट 1024-65535 का उपयोग करते हैं, क्योंकि पोर्ट नंबर 1023 और उससे नीचे आमतौर पर सिस्टम विशेषाधिकार वाली प्रक्रियाओं के लिए आरक्षित होते हैं।

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

इससे अनुमान लगाने का एक अतिरिक्त स्तर जुड़ जाता है जिसे बदमाशों को अपनी उपरोक्त "हाइजैक लक" सूची में जोड़ना होता है, अर्थात् उन्हें एक नकली उत्तर भेजना होता है जो इन सभी बक्सों पर टिक करता है:

  • यह एक ऐसा प्रश्न होना चाहिए जो हाल ही में पूछा गया हो, आम तौर पर पिछले कुछ सेकंड के भीतर।
  • एक लुकअप होना चाहिए जो स्थानीय सर्वर के कैश में नहीं था, आम तौर पर इसका मतलब यह है कि पिछले कुछ मिनटों में किसी और ने इसके बारे में नहीं पूछा।
  • सही 16-बिट आईडी नंबर होना चाहिए डेटा पैकेट की शुरुआत में.
  • सही गंतव्य बंदरगाह पर भेजा जाना चाहिए संबंधित सर्वर के आईपी नंबर पर।

और दूसरी बात

वास्तव में, एक और चाल है जो DNS अनुरोधकर्ता अंतर्निहित DNS प्रोटोकॉल को बदले बिना, और इस प्रकार (अधिकांश भाग के लिए) कुछ भी तोड़े बिना कर सकते हैं।

यह चाल, आश्चर्यजनक रूप से, थी पहले प्रस्तावित 2008 में, गौरवशाली शीर्षक वाले एक पेपर में 0x20-बिट एन्कोडिंग के माध्यम से DNS जालसाजी प्रतिरोध में वृद्धि: LeET क्वेरीज़ के माध्यम से सुरक्षा।

यह विचार अजीब तरह से सरल है, और DNS प्रोटोकॉल में दो विवरणों पर निर्भर करता है:

  • सभी DNS उत्तरों में शुरुआत में मूल क्वेरी अनुभाग शामिल होना चाहिए। प्रश्नों में, जाहिर है, एक खाली उत्तर अनुभाग होता है, लेकिन उत्तरों में मूल प्रश्न को प्रतिबिंबित करना आवश्यक होता है, जो यह सुनिश्चित करने में मदद करता है कि अनुरोध और उत्तर गलती से मिश्रित न हो जाएं।
  • सभी DNS प्रश्न केस-असंवेदनशील हैं। चाहे तुम मांगो naksec.testया, NAKSEC.TESTया, nAksEc.tESt, आपको वही उत्तर मिलना चाहिए।

अब, प्रोटोकॉल में ऐसा कुछ भी नहीं है जो कहता हो कि आपको उत्तर के उस हिस्से में उसी स्पेलिंग का उपयोग करना चाहिए जहां आप मूल क्वेरी दोहराते हैं, क्योंकि DNS को मामले की परवाह नहीं है।

हालाँकि, RFC 1035 के लिए आपको केस-असंवेदनशील तुलना करने की आवश्यकता होती है, यह दृढ़ता से सुझाव देता है कि आप वास्तव में मामले को मत बदलो किसी भी पाठ के नाम जो आपको अनुरोधों में प्राप्त होते हैं या उत्तरों में उपयोग के लिए अपने स्वयं के डेटाबेस से पुनर्प्राप्त करते हैं।

दूसरे शब्दों में, यदि आपको इसके लिए अनुरोध प्राप्त होता है nAKsEC.tEST, और आपके डेटाबेस में इसे संग्रहीत किया गया है NAKSEC.TEST, तो फिर भी उन दो नामों को समान माना जाएगा और वे मेल खाएंगे।

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

इसलिए, यदि आप DNS अनुरोध भेजने से पहले उसमें अक्षरों के मामले को बेतरतीब ढंग से मिलाते हैं, तो अधिकांश DNS सर्वर ईमानदारी से अक्षरों के उस अजीब मैशअप को प्रतिबिंबित करेंगे, भले ही उनका अपना डेटाबेस सर्वर का नाम अलग तरीके से संग्रहीत करता हो, जैसा कि आप यहां देख सकते हैं :

$ dig +noedns @127.42.42.254 nAkSEc.tEsT ;; प्रश्न अनुभाग: ;nAkSec.tEsT. में एक ;; उत्तर अनुभाग: NAKSEC.TEST। 5 इन ए 203.0.113.42 ;; क्वेरी समय: 1 मिसे ;; सर्वर: 127.42.42.254#53(127.42.42.254) (यूडीपी) ;; कब: सोम जनवरी 23 14:40:34 जीएमटी 2023 ;; एमएसजी आकार आरसीवीडी: 56

हमारा DNS सर्वर नाम संग्रहीत करता है naksec.test सभी अपर केस में, और इसलिए उत्तर के उत्तर अनुभाग में फॉर्म में नाम शामिल है NAKSEC.TEST, इसके IPv4 नंबर (ए-रिकॉर्ड) के साथ 203.0.113.42.

लेकिन हमारे DNS सर्वर द्वारा वापस भेजे गए उत्तर के "क्रॉस-चेकिंग के लिए आपके पास लौटाया गया क्वेरी डेटा" भाग में, मूल रूप से DNS लुकअप में उपयोग किया जाने वाला कैरेक्टर-केस मैशअप संरक्षित है:

---> 127.0.0.1:55772 से 127.42.42.254:53 तक अनुरोध ---> 00000000 c0 55 01 20 00 01 00 00 00 00 00 00 06 6 41e 6 00000010बी |.यू. .......nAk| 53 45 63 04 74 45 73 54 00 00 01 00 01 203.0.113.42 |एसईसी.टीईएसटी... | DNS लुकअप: nAkSEc.tEsT के लिए A-रिकॉर्ड ==> A=127.42.42.254 <--- 53:127.0.0.1 से 55772:00000000 तक उत्तर दें <--- 0 c55 84 0 b00 01 00 01 00 00 00 00 06 6 41e 6 00000010b |.U...........nAk| 53 45 63 04 74 45 73 54 00 00 01 00 01 06 4 41e 00000020 |SEc.tEsT......NA| 4 53बी 45 43 04 54 45 53 54 00 00 01 00 01 00 00 00000030 |केएसईसी.टेस्ट.......| 00 05 00 04 00 सीबी 71 2 XNUMXए |......क्यू* |
गंभीर सुरक्षा: कैसे dEliBeRaTe tYpO DNS सुरक्षा प्लेटोब्लॉकचेन डेटा इंटेलिजेंस में सुधार कर सकता है। लंबवत खोज. ऐ.
ऊपर। वायरशार्क में डीएनएस अनुरोध।
मिक्सएड केस वाला प्रश्न अनुभाग दिखाया गया है।
गंभीर सुरक्षा: कैसे dEliBeRaTe tYpO DNS सुरक्षा प्लेटोब्लॉकचेन डेटा इंटेलिजेंस में सुधार कर सकता है। लंबवत खोज. ऐ.
ऊपर। वायरशार्क में डीएनएस उत्तर।
ध्यान दें कि क्वेरी डेटा बिल्कुल अनुरोध से कैसे कॉपी किया गया है, भले ही सर्वर के डेटाबेस ने ऑल-अपर नाम प्रदान किया हो।

अतिरिक्त सुरक्षा टैगिंग, नि:शुल्क

बिंगो!

कुछ और "पहचान टैगिंग" हैं जिन्हें एक DNS लुकअप जोड़ सकता है!

बेतरतीब ढंग से चुने गए स्रोत पोर्ट के 15-या-बिट मूल्य और बेतरतीब ढंग से चुने गए आईडी नंबर डेटा के 16 बिट्स के साथ, अनुरोधकर्ता को डोमेन नाम में प्रत्येक वर्णमाला वर्ण के लिए ऊपरी-बनाम-निचला केस चुनने को मिलता है।

तथा naksec.test इसमें 10 अक्षर हैं, जिनमें से प्रत्येक को यादृच्छिक "टैगिंग" के लिए अतिरिक्त 10 बिट्स के लिए ऊपरी या निचले मामले में लिखा जा सकता है।

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

वैसे, नाम 0x20-एन्कोडिंग ऊपर थोड़ा मज़ाक है: 0x20 हेडसीमल में है 00100000 बाइनरी में, और उस बाइट में एकान्त बिट ASCII एन्कोडिंग प्रणाली में अपर-केस और लोअर-केस अक्षरों को अलग करता है।

पत्र A सेवा मेरे Iउदाहरण के लिए, 0x41 से 0x49 के रूप में सामने आएं a सेवा मेरे i 0x61 से 0x69 के रूप में सामने आएं।

 ASCII पाठ के रूप में ASCII एन्कोडिंग चार्ट +------+------+------+------+------+------+- -----+------+ |00 ^@ |10 ^पी |20 |30 0 |40 @ |50 पी |60 ` |70 पी | |01 ^ए |11 ^क्यू |21 ! |31 1 |41 ए |51 क्यू |61 ए |71 क्यू | |02 ^बी |12 ^आर |22 " |32 2 |42 बी |52 आर |62 बी |72 आर | |03 ^सी |13 ^एस |23 # |33 3 |43 सी |53 एस |63 सी |73 एस | |04 ^डी |14 ^टी |24 $ |34 4 |44 डी |54 टी |64 डी |74 टी | |05 ^ई |15 ^यू |25 % |35 5 |45 ई |55 यू |65 ई |75 यू | |06 ^एफ |16 ^वी |26 और |36 6 |46 एफ |56 वी |66 एफ |76 वी | |07 ^जी |17 ^डब्ल्यू |27 ' |37 7 | 47 जी |57 डब्ल्यू |67 ग्राम |77 डब्ल्यू | |08 ^एच |18 ^एक्स |28 ( |38 8 |48 एच |58 एक्स |68 एच |78 एक्स | |09 ^आई |19 ^वाई |29 ) |39 9 |49 आई |59 वाई |69 आई |79 वाई | |0ए ^जे |1ए ^जेड |2ए * |3ए : |4ए जे |5ए जेड |6ए जे |7ए जेड | |0बी ^के |1बी ^ [ |2बी + |3बी ; |4बी के |5बी [ |6बी के |7बी { | |0सी ^एल |1सी ^ |2सी , |3सी < |4सी एल |5सी |6सी एल |7सी | | |0डी ^एम | 1डी ^] |2डी - |3डी = |4डी एम |5डी ] |6डी एम |7डी } | |0ई ^एन |1ई ^^ |2ई . |3ई > |4ई एन |5ई ^ |6ई एन |7ई ~ | | 0F ^O |1F ^_ |2F / |3F ? |4F O |5F _ |6F o |7F | +------+------+------+--- ---+------+------+------+------+

दूसरे शब्दों में, यदि आप 0x41 प्राप्त करने के लिए 0x20+0x61 जोड़ते हैं, तो आप बदल जाते हैं A में a; यदि आप 0x69 प्राप्त करने के लिए 0x20-0x49 घटाते हैं, तो आप बदल जाते हैं i में I.

अब क्यों?

अब तक आप सोच रहे होंगे, "अब क्यों, अगर यह विचार 15 साल पहले सामने आया था, और क्या यह वास्तव में कोई अच्छा काम करेगा?"

हमारी अचानक रुचि, जैसा कि होता है, एक से आती है हालिया सार्वजनिक ईमेल Google तकनीकी विशेषज्ञों ने स्वीकार किया कि इस पुराने स्कूल सुरक्षा ट्रिक के साथ उनके 2022 प्रयोगों को वास्तविक जीवन में लागू किया गया है:

जैसा कि हमने पहले घोषणा की थी, Google सार्वजनिक DNS आधिकारिक नेमसर्वर को भेजे गए DNS क्वेरी नामों के केस रैंडमाइजेशन को सक्षम करने की प्रक्रिया में है। हमने इसे उत्तरी अमेरिका, यूरोप और एशिया के कुछ क्षेत्रों में सफलतापूर्वक तैनात किया है, जो टीएलएस पर डीएनएस द्वारा कवर नहीं किए गए उन क्षेत्रों में अधिकांश डीएनएस प्रश्नों (90%) की रक्षा कर रहे हैं।

दिलचस्प बात यह है कि, Google का सुझाव है कि इस सरल और स्पष्ट रूप से गैर-विवादास्पद बदलाव के साथ मुख्य समस्या यह है कि अधिकांश DNS सर्वर या तो लगातार केस-असंवेदनशील होते हैं (इसलिए इस ट्रिक का उपयोग उनके साथ किया जा सकता है) या लगातार नहीं (इसलिए वे ब्लॉकलिस्टेड हैं), जैसा आप उम्मीद कर सकते हैं…

...कुछ मेनस्ट्रीम सर्वर कभी-कभी छोटी अवधि के लिए "केस-सेंसिव" मोड में चले जाते हैं, जो उस तरह की असंगति की तरह लगता है जिसकी आप उम्मीद करते हैं कि प्रमुख सेवा प्रदाता इससे बचेंगे।

क्या यह वास्तव में मदद करता है?

प्रश्न का उत्तर, "यह इसके लायक है?" अभी तक स्पष्ट नहीं है.

यदि आपके पास एक अच्छा दीर्घकालिक सेवा नाम है, तो पसंद करें nakedsecurity.sophos.com (22 वर्णमाला वर्ण), तो बहुत सारी अतिरिक्त सिग्नलिंग शक्ति है, क्योंकि 222 अलग-अलग बड़े अक्षरों का मतलब है कि बदमाशों के लिए 4 मिलियन संयोजन, जिन्हें 65536 अलग-अलग आईडी नंबरों से गुणा किया जाता है, अनुमान लगाने के लिए लगभग 32000 से 64000 अलग-अलग स्रोत पोर्ट से गुणा किया जाता है...

...लेकिन अगर आपने ट्विटर जैसे सुपरशॉर्ट डोमेन नाम के लिए बहुत कम रकम चुकाई है t.co, आपके हमलावरों के पास केवल पहले की तुलना में 2x2x2=8 गुना कठिन काम है।

फिर भी, मुझे लगता है कि हम इसे आज़माने के लिए Google को "Chapeau" कह सकते हैं।

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


समय टिकट:

से अधिक नग्न सुरक्षा