
Gryffin एक बड़े पैमाने का वेब सुरक्षा स्कैनिंग प्लेटफॉर्म है।
Gryffin एक बड़े पैमाने का वेब सुरक्षा स्कैनिंग प्लेटफ़ॉर्म है। यह कोई और स्कैनर नहीं है। इसे मौजूदा स्कैनर्स की दो विशिष्ट समस्याओं को हल करने के लिए लिखा गया था: कवरेज (coverage) और स्केल (scale)।
बेहतर कवरेज का अर्थ है कम गलत-नकारात्मक (false negatives)। अंतर्निहित स्केलेबिलिटी का अर्थ है बड़ी संख्या में अनुप्रयोगों को स्कैन करने और एक लचीले बड़े अनुप्रयोग बुनियादी ढाँचे का समर्थन करने की क्षमता। सीधे शब्दों में कहें तो, सरल क्षैतिज स्केलिंग (horizontal scaling) द्वारा आज 1000 अनुप्रयोगों को स्कैन करने से कल 100,000 अनुप्रयोगों को स्कैन करने की क्षमता।
कवरेज के दो आयाम हैं - एक क्रॉल (crawl) के दौरान और दूसरा फ़ज़िंग (fuzzing) के दौरान। क्रॉल चरण में, कवरेज का अर्थ है अनुप्रयोग के जितना संभव हो उतना फ़ुटप्रिंट ढूँढना। स्कैन चरण में, या फ़ज़िंग करते समय, इसका अर्थ है अनुप्रयोग के प्रत्येक भाग का गहराई से लागू कमजोरियों के एक सेट के लिए परीक्षण करना।
आज बड़ी संख्या में वेब अनुप्रयोग टेम्पलेट-संचालित (template-driven) हैं, जिसका अर्थ है कि एक ही कोड या पथ लाखों URL उत्पन्न करता है। एक सुरक्षा स्कैनर के लिए, उसे एक ही कोड या पथ द्वारा उत्पन्न लाखों URL में से केवल एक की आवश्यकता होती है। Gryffin का क्रॉलर बिल्कुल यही करता है।
Gryffin के केंद्र में एक डीडुप्लीकेशन इंजन है जो एक नए पृष्ठ की तुलना पहले से देखे गए पृष्ठों से करता है। यदि नए पृष्ठ की HTML संरचना पहले से देखे गए पृष्ठों के समान है, तो इसे डुप्लिकेट के रूप में वर्गीकृत किया जाता है और आगे क्रॉल नहीं किया जाता है।
आज बड़ी संख्या में अनुप्रयोग समृद्ध अनुप्रयोग (rich applications) हैं। वे क्लाइंट-साइड JavaScript द्वारा भारी रूप से संचालित होते हैं। ऐसे अनुप्रयोगों में लिंक और कोड पथ खोजने के लिए, Gryffin का क्रॉलर DOM रेंडरिंग और नेविगेशन के लिए PhantomJS का उपयोग करता है।
चूँकि Gryffin एक स्कैनिंग प्लेटफ़ॉर्म है, न कि एक स्कैनर, इसलिए इसके पास अपने स्वयं के फ़ज़र मॉड्यूल नहीं हैं, यहाँ तक कि XSS और SQL इंजेक्शन जैसी सामान्य वेब कमजोरियों के फ़ज़िंग के लिए भी नहीं।
जहाँ आवश्यक न हो, वहाँ पहिये का पुनःआविष्कार करना बुद्धिमानी नहीं है। Yahoo पर उत्पादन स्तर पर Gryffin खुले स्रोत और कस्टम फ़ज़र्स का उपयोग करता है। इनमें से कुछ कस्टम फ़ज़र भविष्य में खुले स्रोत हो सकते हैं, और हो सकता है या न हो कि वे Gryffin रिपॉजिटरी का हिस्सा हों।
प्रदर्शन उद्देश्यों के लिए, Gryffin sqlmap और arachni के साथ एकीकृत आता है। यह उन या किसी अन्य विशेष स्कैनर का समर्थन नहीं करता है।
दर्शन यह है कि आप जिस चीज़ की आवश्यकता है उसके लिए ही फ़ज़ करके स्कैन कवरेज में सुधार करना है।
जबकि Gryffin एक स्टैंडअलोन पैकेज के रूप में उपलब्ध है, यह मुख्य रूप से स्केल के लिए बनाया गया है।
Gryffin प्रकाशक-सदस्य (publisher-subscriber) मॉडल पर बनाया गया है। प्रत्येक घटक या तो एक प्रकाशक है, या एक सदस्य, या दोनों। यह Gryffin को केवल अधिक सदस्य या प्रकाशक नोड जोड़कर क्षैतिज रूप से स्केल करने की अनुमति देता है।
go1.13 या उससे बाद का (या लेटर)--max-msg-size=5000000 के साथgo get -u github.com/yahoo/gryffin/...
(कार्य प्रगति पर है)
कोड BSD-शैली लाइसेंस के तहत लाइसेंस प्राप्त है। शर्तों के लिए LICENSE फ़ाइल देखें।