2008-09-16 8 views
43

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

या .. क्या कोई तकनीकी लेख है जो इस टूल को विकसित करने में मेरी सहायता कर सकता है?

उत्तर

64

वेब अनुप्रयोगों के लिए स्वचालित परीक्षण टूल के साथ आप दो अलग-अलग दिशा-निर्देश प्राप्त कर सकते हैं।

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

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

अंत में, प्रवेश परीक्षण उपकरण हैं। सुरक्षा पेशेवरों के बीच अब तक का सबसे लोकप्रिय वेब ऐप प्रवेश परीक्षण उपकरण Burp Suite है, जिसे आप http://www.portswigger.net/proxy पर पा सकते हैं। अन्य में स्पाइक प्रॉक्सी और ओडब्ल्यूएएसपी वेबस्काब शामिल हैं। दोबारा, आप इसे एक आंतरिक विंडोज डेस्कटॉप पर स्थापित करेंगे। यह एक HTTP प्रॉक्सी के रूप में चलाएगा, और आप अपने ब्राउज़र को उस पर इंगित करेंगे। आप अपने अनुप्रयोगों को सामान्य उपयोगकर्ता के रूप में उपयोग करेंगे, जबकि यह आपके कार्यों को रिकॉर्ड करेगा। फिर आप प्रत्येक व्यक्तिगत पृष्ठ या HTTP कार्रवाई पर वापस जा सकते हैं और सुरक्षा समस्याओं के लिए इसकी जांच कर सकते हैं।

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

वाणिज्यिक वेब स्कैनर उत्कृष्ट रिपोर्टिंग के साथ-साथ "चौड़ाई" प्रदान करते हैं।हालांकि:

  • वे चीजों को याद करते हैं, क्योंकि प्रत्येक एप्लिकेशन अलग होता है।

  • वे महंगे हैं (वेब ​​इंस्पेक्ट 10 में से शुरू होता है)।

  • आप उन सामानों के लिए भुगतान कर रहे हैं जिनकी आपको आवश्यकता नहीं है (जैसे 90 के दशक से ज्ञात खराब CGI के डेटाबेस)।

  • उन्हें अनुकूलित करना मुश्किल है।

  • वे शोर परिणाम उत्पन्न कर सकते हैं।

स्रोत कोड स्कैनर वेब स्कैनर से अधिक व्यापक हैं। हालांकि:

  • वे वेब स्कैनर से भी अधिक महंगी हैं।

  • उन्हें संचालित करने के लिए स्रोत कोड की आवश्यकता होती है।

  • प्रभावी होने के लिए, उन्हें अक्सर आपके स्रोत कोड को एनोटेट करने की आवश्यकता होती है (उदाहरण के लिए, इनपुट मार्ग चुनने के लिए)।

  • उनके पास झूठी सकारात्मक उत्पन्न करने की प्रवृत्ति है।

दोनों वाणिज्यिक स्कैनर और स्रोत कोड स्कैनर के पास शेल्फवेयर बनने की एक बुरी आदत है। इससे भी बदतर, भले ही वे काम करते हैं, उनकी लागत परामर्श से ऑडिट किए गए 1 या 2 पूरे एप्लिकेशन प्राप्त करने के लिए तुलनीय है; यदि आप अपने सलाहकारों पर भरोसा करते हैं, तो आपको उपकरण से बेहतर परिणाम प्राप्त करने की गारंटी दी जाती है।

प्रवेश परीक्षण उपकरण कमियां भी है:

  • वे बहुत कठिन की तुलना में उपयोग करने के लिए वाणिज्यिक स्कैनर फायर-एंड-भूल कर रहे हैं।

  • वे वेब अनुप्रयोग भेद्यता में कुछ विशेषज्ञता मानते हैं --- आपको यह जानना होगा कि आप क्या खोज रहे हैं।

  • वे कम या कोई औपचारिक रिपोर्टिंग नहीं करते हैं।

दूसरी ओर:

  • वे बहुत, बहुत सस्ता बहुत कुछ, बर्प सुइट का सबसे अच्छा कर रहे हैं ---, लागत केवल 99EU, और एक मुक्त संस्करण है।

  • वे अनुकूलित करने और परीक्षण वर्कफ़्लो में जोड़ने के लिए आसान हैं।

  • वे आपके अनुप्रयोगों को अंदर से "जानना" में आपकी सहायता करने में बहुत बेहतर हैं।

यहाँ कुछ आप एक बुनियादी वेब अनुप्रयोग के लिए एक पेन-परीक्षण उपकरण के साथ क्या करेंगे: प्रॉक्सी

  • बनाएं के माध्यम से आवेदन में

    1. प्रवेश करें एक "हिट सूची" आवेदन के प्रमुख कार्यात्मक क्षेत्रों में से प्रत्येक बार व्यायाम करें।

    2. एप्लिकेशन में सभी पृष्ठों और कार्यों और हैंडलरों को खोजने के लिए अपने पेन-टेस्ट एप्लिकेशन में "स्पाइडर" टूल का उपयोग करें।

    3. प्रत्येक गतिशील पृष्ठ और प्रत्येक HTML फॉर्म के लिए स्पाइडर अनवरोधित करता है, अमान्य इनपुट वाले प्रत्येक पैरामीटर का उपयोग करने के लिए "fuzzer" टूल (Burp इसे "घुसपैठिया" कहते हैं) का उपयोग करें।/Javascript निकल जाता

      • एसक्यूएल अक्षरों से परे

      • HTML और अक्षरों से परे

      • इनमें से अंतर्राष्ट्रीय वेरिएंट इनपुट फिल्टर से बचने के लिए

      • अच्छी तरह से: अधिकांश fuzzers बुनियादी परीक्षण तार शामिल है कि के साथ आते हैं ज्ञात डिफ़ॉल्ट रूप फ़ील्ड नाम और मान

      • प्रसिद्ध निर्देशिका नाम, फ़ाइल नाम, और हैंडलर क्रियाओं

    4. कई घंटे खर्च करते हैं, जिसके परिणामस्वरूप त्रुटियों को छानने (एक रूप के लिए एक विशिष्ट फ़ज़्ज़ रन उन्हें 1000 उत्पन्न हो सकता है) संदिग्ध प्रतिक्रियाओं की तलाश में।

    यह एक श्रम-केंद्रित, "नंगे धातु" दृष्टिकोण है। लेकिन जब आपकी कंपनी के वास्तविक अनुप्रयोगों का मालिक होता है, तो नंगे धातु दृष्टिकोण का भुगतान होता है, क्योंकि आप इसे रीग्रेशन टेस्ट सूट बनाने के लिए उपयोग कर सकते हैं जो प्रत्येक ऐप के लिए प्रत्येक देव चक्र में घड़ी की तरह चलेंगे। यह एक कारण के एक समूह के लिए एक जीत है:

    • आपकी सुरक्षा परीक्षण आवेदन प्रति समय की एक उम्मीद के मुताबिक राशि और संसाधनों, जो आप बजट और ट्राइएज करने की अनुमति देता का समय लगेगा।

    • आपकी टीम को अधिकतम सटीक और गहन परिणाम मिलेगा, क्योंकि आपका परीक्षण आपके अनुप्रयोगों के अनुरूप होगा।

    • यह वाणिज्यिक स्कैनर से कम लागत और सलाहकारों से कम लागत जा रहा है।

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

  • +4

    उत्कृष्ट उत्तर। – xan

    +0

    अच्छा और यही वह है जो मैं उम्मीद कर रहा था, धन्यवाद –

    1

    मैं और अन्य खुले स्रोत उपकरण (एक नि: शुल्क समाधान के लिए) Nikto रूप SpiDynamics WebInspect के बारे में अच्छी बातें सुना है जहाँ तक भुगतान किया समाधान का सवाल है, के साथ-साथ। यदि आपको उस परत को भी जांचना है तो नैसेस बुनियादी ढांचे के लिए एक उत्कृष्ट उपकरण है। आप न्यूबंटू (ऑडिटर, हेलिक्स, या किसी भी अन्य सुरक्षा आधारित वितरण कार्यों) नामक कई टूल के साथ एक लाइव सीडी चुन सकते हैं और फिर Google को विशिष्ट टूल के लिए कुछ ट्यूटोरियल अप कर सकते हैं। हमेशा, हमेशा स्थानीय नेटवर्क से स्कैन करना सुनिश्चित करें। यदि आप प्राधिकरण के बिना WAN से एक बॉक्स स्कैन करते हैं तो आप डेटा केंद्र द्वारा स्वयं को अवरोधित करने का जोखिम चलाते हैं। सबक कठिन तरीके से सीखा। ;)

    0

    http://www.nessus.org/nessus/ - नेसस आपके सर्वर को बेहतर बनाने के तरीकों का सुझाव देने में मदद करेगा। यह वास्तव में कस्टम ऐप्स का परीक्षण नहीं कर सकता है, हालांकि मुझे लगता है कि प्लगइन्स स्वयं को बनाने के लिए अपेक्षाकृत आसान हैं।

    0

    Rational App Scan पर एक नज़र डालें (जिसे वॉचफायर कहा जाता है)। यह मुफ़्त नहीं है, लेकिन एक अच्छा यूआई है, मृत शक्तिशाली है, रिपोर्ट उत्पन्न करता है (bespoke और मानक अनुपालन ढांचे के खिलाफ बेसल 2) और मुझे विश्वास है कि आप इसे अपने सीआई निर्माण में स्क्रिप्ट कर सकते हैं।

    4

    मैं तुम्हें उपकरण pentesting के बारे में विशेष रूप से पूछा है, लेकिन क्योंकि वे पर्याप्त जवाब दिया गया है, मुझे लगता है कि यह करते रहे कि pentesting लिए एक ही रास्ता नहीं है महत्वपूर्ण है (मैं आमतौर पर AppScan का मिश्रण और प्रशिक्षित pentester साथ जाना) "सुरक्षा त्रुटियों की जांच करें", और अक्सर सबसे प्रभावी नहीं है।

    स्रोत कोड समीक्षा उपकरण आपको अपने कोडबेस में बहुत बेहतर दृश्यता प्रदान कर सकते हैं, और कई त्रुटियों को पेंटस्टिंग नहीं करेंगे।

    ये (VSTS के साथ मुक्त, सभ्य लेकिन महान नहीं, नेट और सी ++ के लिए) मज़बूत और OunceLabs (महंगा है और कई भाषाओं के लिए), VisualStudio.NET CodeAnalysis में शामिल हैं, जावा के लिए OWASP चूक (नि: शुल्क, सभ्य नहीं महान), चेकमैक्स (सस्ते नहीं, .NET और जावा के लिए fanTASTic उपकरण, लेकिन उच्च ओवरहेड), और कई और।

    एक महत्वपूर्ण बिंदु आपको ध्यान रखना चाहिए - (अधिकांश) स्वचालित उपकरण को सभी भेद्यताएं नहीं मिलती हैं, न कि करीब भी। आप उम्मीद कर सकते हैं कि स्वचालित उपकरण एक पेशेवर पेंटस्टर द्वारा पाए जाने वाले सेकबग के लगभग 35-40% को ढूंढें; स्वचालित बनाम मैनुअल स्रोत कोड समीक्षा के लिए भी यही है।

    और निश्चित रूप से एक उचित SDLC (सुरक्षा डेवलपमेंट लाइफ साइकल), खतरा मॉडलिंग, डिजाइन की समीक्षा, आदि सहित, और भी अधिक मदद मिलेगी ...

    -2
    +1

    SO पूरी तरह से और मामूली रूप से बाईपास करने योग्य। अपना समय बर्बाद मत करो। – AviD

    2

    मैक्एफ़ी ने सेक्योर एक समाधान नहीं है। वे जो सेवा प्रदान करते हैं वह एक मजाक है।

    नीचे देखें:

    http://blogs.zdnet.com/security/?p=1092&tag=rbxccnbzd1
    http://blogs.zdnet.com/security/?p=1068&tag=rbxccnbzd1
    http://blogs.zdnet.com/security/?p=1114&tag=rbxccnbzd1

    +0

    ये लेख अब डेढ़ साल पुराने हैं? क्या वे अभी भी वैध हैं? –

    0

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

    कुछ उच्च अंत पेशेवर सॉफ्टवेयर पैकेज हैं जो वेब ऐप परीक्षण और बहुत कुछ करेंगे। अधिक लोकप्रिय टूल में से एक CoreImpact

    यदि आप अपने आप पर पेन टेस्टिंग के साथ जाने की योजना बनाते हैं तो मैं अत्यधिक OWASP Project's documentation के माध्यम से पढ़ने की सलाह देता हूं। विशेष रूप से ओडब्ल्यूएएसपी आवेदन सुरक्षा सत्यापन और परीक्षण/विकास गाइड। आपके आवेदन की पूरी तरह से जांच करने के लिए आपको जिस मानसिकता की आवश्यकता है वह आपके सामान्य विकास मानसिकता से थोड़ा अलग है (यह नहीं कि यह अलग होना चाहिए, लेकिन यह आमतौर पर है)।

    0

    rat proxy के बारे में क्या?

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

    पता लगाता है और प्राथमिकता व्यापक वर्ग इस तरह के गतिशील क्रॉस साइट विश्वास मॉडल विचार के रूप में सुरक्षा की समस्याओं,, स्क्रिप्ट शामिल किए जाने के मुद्दे, सामग्री की सेवा की समस्याओं, अपर्याप्त XSRF और XSS गढ़, और भी बहुत कुछ

    Ratproxy की वर्तमान में लिनक्स, फ्रीबीएसडी, मैकोज़ एक्स, और विंडोज (सिगविन) वातावरण का समर्थन करने के लिए माना जाता है।

    0

    मैं तुम्हें उपकरण pentesting के बारे में विशेष रूप से पूछा है, लेकिन क्योंकि वे पर्याप्त जवाब दिया गया है, मुझे लगता है कि यह करते रहे कि pentesting एकमात्र तरीका नहीं है महत्वपूर्ण है (मैं आमतौर पर AppScan का मिश्रण और प्रशिक्षित pentester साथ जाना) "सुरक्षा की कमी के लिए जांच" करने के लिए, और अक्सर सबसे प्रभावी नहीं है।

    स्रोत कोड समीक्षा उपकरण आपको अपने कोडबेस में बेहतर दृश्यता प्रदान कर सकते हैं, और पेंटस्टिंग करने वाली कई त्रुटियां नहीं मिल सकती हैं।

    ये (VSTS के साथ मुक्त, सभ्य लेकिन महान नहीं, नेट और सी ++ के लिए) मज़बूत और OunceLabs (महंगा है और कई भाषाओं के लिए), VisualStudio.NET CodeAnalysis में शामिल हैं, जावा के लिए OWASP चूक (नि: शुल्क, सभ्य नहीं महान), चेकमैक्स (सस्ते नहीं, .NET और जावा के लिए fanTASTic उपकरण, लेकिन उच्च ओवरहेड), और कई और।

    एक महत्वपूर्ण बिंदु आपको ध्यान रखना चाहिए - (अधिकांश) स्वचालित उपकरण को सभी भेद्यताएं नहीं मिलती हैं, न कि करीब भी। आप उम्मीद कर सकते हैं कि स्वचालित उपकरण एक पेशेवर पेंटस्टर द्वारा पाए जाने वाले सेकबग के लगभग 35-40% को ढूंढें; स्वचालित बनाम मैनुअल स्रोत कोड समीक्षा के लिए भी यही है।

    और निश्चित रूप से एक उचित SDLC (सुरक्षा डेवलपमेंट लाइफ साइकल), खतरा मॉडलिंग सहित, डिजाइन की समीक्षा, आदि, और भी अधिक मदद मिलेगी ...

    1

    Skipfish, w3af, arachni, ratproxy, जैप, WebScarab: सभी नि: शुल्क और बहुत अच्छा आईएमओ