2010-02-11 9 views
19

मैं एक "वेब एप्लिकेशन सुरक्षा" कंपनी से एक रिपोर्ट पढ़ रहा हूं, जो कंपनी के कुछ वेबसाइटों को स्कैन कर रहा है, जिसके लिए मैं काम कर रहा हूं। जो किसी भी मानव की भागीदारी के बिना लिखा लगता है - - यह रिपोर्ट से लगता है कि कई प्रयास किए गए, जहां इस तरह के अनुरोधों का उपयोग कर हमारी साइटों तोड़ने के लिए:एएसपी.NET/IIS में उपयोग किए जाने वाले गैर मानक HTTP क्रिया "DEBUG" क्या है?

DEBUG /some_path/some_unexisting_file.aspx 
Accept: */* 
More-Headers: ... 

हमारे सर्वर से परिणाम मुझे तो हैरानी:

HTTP/1.1 200 OK 
Headers: ... 

DEBUGHTTP 1.1 specification में कहीं भी उल्लेख नहीं किया गया है, तो मुझे परिणाम 400 Bad Request या 405 Method Not Allowed होने की उम्मीद होगी।

earlier question on SO से, मैंने सीखा है कि DEBUG क्रिया का उपयोग एएसपी.NET अनुप्रयोगों के किसी प्रकार के रिमोट डीबगिंग में किया जाता है, लेकिन उस प्रश्न या उसके उत्तरों में कई विवरण उपलब्ध नहीं हैं।

वास्तव में DEBUG क्रिया का उपयोग करने के लिए क्या उपयोग किया जाता है? इस क्रिया का उपयोग करते समय अमान्य URL के लिए एप्लिकेशन 200 OK का उत्तर क्यों देता है? क्या यह एक सुरक्षा समस्या है? क्या DEBUG क्रिया के आस-पास कोई संभावित सुरक्षा समस्या है, कि एएसपी.नेट डेवलपर्स/सिस्टम प्रशासकों को अवगत होना चाहिए?

कोई अंतर्दृष्टि/सलाह/संदर्भों की सराहना की जाएगी।

+0

क्या आपने इसे हल करने का प्रबंधन किया था? मुझे लगता है कि आपने एक जवाब स्वीकार कर लिया है, लेकिन यह आपको केवल नेटवर्क स्नफ़फर का उपयोग करने के लिए बताता है। यहां तक ​​कि जब यह 6 साल बाद की तरह है। – Rob

उत्तर

9

http://support.microsoft.com/kb/937523

क्लाइंट को अपने आप एक ASP.NET 2.0 आवेदन में डिबगर अनुलग्न करने के लिए कोशिश करता है, ग्राहक है कि डीबग क्रिया में शामिल एक HTTP अनुरोध भेजता है। यह HTTP अनुरोध यह सत्यापित करने के लिए प्रयोग किया जाता है कि एप्लिकेशन की प्रक्रिया चल रही है और संलग्न करने के लिए सही प्रक्रिया का चयन करने के लिए।

यह Windows प्रमाणीकरण का उपयोग करता है, और DCOM वास्तव में हालांकि डिबगिंग करने के लिए - तो मैं नहीं डीबग क्रिया ही किया जा रहा है एक बड़ा सुरक्षा जोखिम (के बारे में पता स्पष्ट रूप से आप RPC यातायात की अनुमति दे रहे है, तो आप कर रहा हूँ,, फिर ' हमें बड़ी समस्याएं मिली हैं) या किसी भी शोषण के लिए। हालांकि, UrlScan इसे डिफ़ॉल्ट रूप से अवरुद्ध करता है।

मैं शायद यह जांचने के लिए एक नेटवर्क स्निफर डाल दूंगा कि क्या जानकारी लीक होती है।

17

मार्क द्वारा संकेत के रूप में, DEBUG क्रिया का उपयोग रिमोट डीबगिंग सत्र प्रारंभ/बंद करने के लिए किया जाता है। अधिक विशेष रूप से, DEBUG अनुरोध में Command हेडर start-debug और stop-debug के साथ शीर्षलेख हो सकता है, लेकिन वास्तविक डीबगिंग एक आरपीसी प्रोटोकॉल के माध्यम से किया जाता है।

तो, सुरक्षा स्कैनर ऐसा अनुरोध क्यों करता है? ऐसा लगता है कि DEBUG अनुरोधों के साथ एक एएसपी.NET वेबसाइट को पोक करने के लिए उपयोग किया जा सकता है यह पता लगाने के लिए कि web.config में <compilation debug="true"> है या नहीं। परीक्षण, टेलनेट, WFetch या इसी तरह के साथ किया जा सकता इस तरह के अनुरोध भेजकर:

 
DEBUG /foo.aspx HTTP/1.0 
Accept: */* 
Host: www.example.com 
Command: stop-debug 

पर डिबगिंग सक्षम है या नहीं निर्भर करता है या न मानो, तो आप या तो 200 OK या 403 Forbidden मिल जाएगा।

यह generallyaccepted है कि आपके पास उत्पादन वातावरण में <compilation debug="true"/> कभी नहीं होना चाहिए, क्योंकि इसकी वेबसाइट के प्रदर्शन पर गंभीर प्रभाव पड़ता है। मुझे यकीन नहीं है कि डिबगिंग सक्षम होने पर कोई भी नया हमला वैक्टर खुलता है, जब तक आरपीसी यातायात सक्षम न हो, तब भी आपको किसी भी तरह की गंभीर समस्याएं होती हैं (सीएफ मार्क का जवाब)। सुरक्षा परिप्रेक्ष्य पर कोई अतिरिक्त अंतर्दृष्टि की सराहना की जाएगी।

उत्पादन वेबसाइटों में गलती से <compilation debug="true"/> प्राप्त करने से बचने का एक आसान तरीका है। बस, <deployment retail="true"/> को अपने machine.config पर जोड़ें।

जाहिर है, machine.config में <deployment retail="true"/> होने नहीं इस विशेष मामले में <compilation debug="false"/> स्थापित करने के बराबर है। वेब अनुप्रयोग के खिलाफ DEBUG अनुरोधों को फेंकने का नतीजा केवल बाद वाले के साथ बदला जा सकता है। मन- boggling!

+3

एफवाईआई इसका परीक्षण करते समय "कमांड: स्टॉप-डीबग" हेडर महत्वपूर्ण है। यदि आप इसे छोड़ देते हैं तो सर्वर 500 वापस आ जाएगा। – TonyB

5

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

+0

+1 आपके इनपुट के लिए धन्यवाद :) –

संबंधित मुद्दे

 संबंधित मुद्दे