2012-04-01 9 views
26

आईआईएस/एएसपी.नेट डंप फ़ाइलों में एएसपी.नेट वेब पृष्ठों से सबमिट और प्राप्त किए गए पासवर्ड और अन्य संवेदनशील डेटा को कैसे रोकता है?कोई एएसपी.NET डंप में दिखाई देने से पासवर्ड और अन्य संवेदनशील जानकारी को कैसे रोकता है?

कदम पुन: पेश करने

  1. दृश्य स्टूडियो 2010 का उपयोग करना, एक ASP.NET MVC 3 इंट्रानेट आवेदन पैदा करते हैं।
  2. आईआईएस 7.5 का उपयोग करने के लिए इसे कॉन्फ़िगर करें।
  3. इसे फायर करें और एक खाता पंजीकृत करें (उपयोगकर्ता के रूप में bob123 और पासवर्ड के रूप में Pa $$ w0Rd कहें। मुझे लगता है कि SQL एक्सप्रेस डेटाबेस बनाया गया है और साइट पूरी तरह कार्यात्मक है।
  4. कार्य प्रबंधक का उपयोग करना, सही w3wp प्रक्रिया पर क्लिक करें और एक डंप पैदा करते हैं।
  5. खोलें SlickEdit के रूप में हेक्स के रूप में इसकी सामग्री, प्रदर्शित करने में सक्षम एक संपादक में डंप। "पा $$ 0Rd" और "पा% 24% 24w0Rd के लिए
  6. खोजें "हेक्स डंप में। आपको एएससीआईआई, यूनिकोड, या एन्कोडेड के रूप में संग्रहीत कई प्रतियां प्राप्त करने में सक्षम होना चाहिए।

ध्यान दें कि इससे कोई फर्क नहीं पड़ता कि आप HTTPS का उपयोग करते हैं क्योंकि यह केवल संचार को एन्क्रिप्ट करता है। ASP.NET उस डेटा को स्मृति या डिस्क में स्पष्ट रूप से संग्रहीत करता है।

समस्या

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

इससे उन्हें जोखिम में डाल दिया जाता है क्योंकि उनके पास पहुंच है। डंप को कभी-कभी भागीदारों (जैसे कि माइक्रोसॉफ्ट) के साथ साझा किया जाता है ताकि वे अपने कोड में मुद्दों का निदान करने में मदद कर सकें। यह किसी के आवेदन में कुछ जटिल समस्याओं का निदान करने का एक आवश्यक हिस्सा है।

थिंग्स आई पासवर्ड और अन्य संवेदनशील डेटा के लिए

  1. उपयोग SecureString को देखा। हालांकि, एएसपी.NET सदस्यता प्रदाता, डब्ल्यूसीएफ जैसे अन्य ढांचे के साथ अक्सर पासवर्ड को सिस्टम.स्टिंग के रूप में स्वीकार करता है, जिसका अर्थ है कि ये प्रतियां अभी भी डंप में होंगी।
  2. यह देखने के लिए देखा गया कि सिस्टम की एक प्रति को साफ़ करने के लिए ढांचे में कुछ भी है या नहीं। स्ट्रिंग जब इसका उपयोग नहीं किया जा रहा है। मुझे कुछ नहीं मिला।
  3. जांच की गई कि आईआईएस के साथ किए जाने के बाद अनुरोध और प्रतिक्रियाओं के लिए इस्तेमाल की गई स्मृति को शून्य से बाहर कर दिया जा सकता है, लेकिन मैं कुछ भी नहीं ढूंढ पाया।
  4. मैंने गीलेर की जांच की है कि आईआईएस फ़ाइलों को एन्क्रिप्ट कर सकता है (एचटीपीपोस्टफाइल के रूप में) ताकि वे स्पष्ट रूप से संग्रहीत न हों। हम दस्तावेज प्राप्त कर सकते हैं जो बेहद गोपनीय हैं और सर्वर पर उन्हें एन्क्रिप्ट करने और उनकी रक्षा करने के लिए हर कदम बनाया जाता है। हालांकि, कोई आईआईएस डंप से स्पष्ट रूप से उन्हें निकाल सकता है।

मैं आईआईएस/एएसपी.नेट को यह बताने की उम्मीद कर रहा था कि एक विशिष्ट अनुरोध/प्रतिक्रिया में संवेदनशील डेटा होता है और आईआईएस/एएसपी.नेट इसका उपयोग करते समय स्मृति को साफ़ कर देगा।

+0

+1 बहुत ही रोचक सवाल। मैं अब तक इस बारे में अनजान था। एक प्रश्न मैं आपसे पूछना चाहता था, क्या आप सदस्यता का उपयोग करते समय पासवर्ड को परेशान कर रहे हैं या आप उन्हें सादे पाठ में संग्रहीत कर रहे हैं? – Seany84

+0

दो लवण के साथ हैशिंग। लेकिन इससे कोई फर्क नहीं पड़ता क्योंकि पासवर्ड ASP.NET के अनुरोध में स्पष्ट पाठ में दिखाई देता है और इस प्रकार डंप में। साथ ही, सदस्यता प्रदाता प्राप्तकर्ता की प्रतिलिपि स्पष्ट रूप से दिखाई दे रही है। और फिर आपके हैंश किए गए पासवर्ड की एक प्रति भी है। – bloudraak

+1

यदि आप व्यवस्थापक नहीं हैं, तो आपको चरण 4 में डंप नहीं मिल सकता है। यदि आपके पास कोई डंप नहीं है, तो आप निम्न चरणों का पालन कैसे कर सकते हैं? यदि आप निम्न चरणों का पालन नहीं कर सकते हैं, तो आपकी चिंता कहां से आती है? –

उत्तर

0

मैं जानता हूँ कि यह सीधे सवाल का जवाब नहीं है, लेकिन क्यों इस समस्या पर अलग तरह से नहीं लग रही।

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

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

+0

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

+0

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

+0

दुर्भाग्यवश मेरी वेब सेवाओं का उपयोग सभी प्रकार के ग्राहकों द्वारा किया जा रहा है, इसलिए यह अव्यवहारिक हो जाएगा। – bloudraak

1

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

आप किसी तीसरे पक्ष को अपने डेटाबेस/विन्यास सेटिंग्स से अधिक आरामदायक सौंपने होगा? यदि नहीं तो आपको शायद डंपफाइल पर सौंपना नहीं चाहिए। (imho)

+0

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

+0

मेरे अनुभव (एएसपीनेट विकास के 8 साल) में, मुझे वास्तव में कभी भी "डंप लेना" नहीं था जैसा कि यह था। मैं हमेशा कुछ लॉगर (log4net/nlog) के माध्यम से सभी अनचाहे अपवादों को कस्टम लॉग करता हूं या एल्मा जैसे कुछ का उपयोग करता हूं जहां त्रुटियां आ रही हैं। एक डंप फ़ाइल आपका अंतिम उपाय होना चाहिए, न कि आपका पहला ... – AndreasKnudsen

+0

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

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