
रीयल-टाइम ट्रैफ़िक निरीक्षण, घुसपैठ का पता लगाने और रोकथाम, प्रोटोकॉल विश्लेषण, और नियम-आधारित खतरे की खोज के लिए ओपन-सोर्स नेटवर्क IDS/IPS/NSM इंजन।
Suricata एक नेटवर्क IDS, IPS और NSM इंजन है जिसे OISF और Suricata समुदाय द्वारा विकसित किया गया है।
हम खुशी-खुशी पैच और अन्य योगदान स्वीकार करते हैं। आरंभ करने के तरीके के लिए कृपया हमारी योगदान प्रक्रिया देखें।
Suricata एक जटिल सॉफ़्टवेयर है जो अधिकतर अविश्वसनीय इनपुट से निपटता है। इस इनपुट का गलत प्रबंधन गंभीर परिणाम दे सकता है:
दूसरे शब्दों में, हमें लगता है कि दांव काफी ऊँचे हैं, खासकर क्योंकि कई सामान्य मामलों में IDS/IPS सीधे किसी हमलावर की पहुँच में होगा।
इस कारण से, हमने एक काफी व्यापक QA प्रक्रिया विकसित की है। इसका परिणाम यह है कि Suricata में योगदान देना कुछ लंबी प्रक्रिया हो सकती है।
उच्च स्तर पर, चरण इस प्रकार हैं:
OISF टीम के सदस्य हमारे निजी QA सेटअप में बिल्ड सबमिट कर सकते हैं। यह बिल्ड परीक्षणों की एक श्रृंखला और एक रिग्रेशन सूट चलाएगा ताकि यह पुष्टि हो सके कि कोई मौजूदा सुविधा न टूटे।
अंतिम QA रन में न्यूनतम कुछ घंटे लगते हैं, और आम तौर पर रात भर चलता है। यह वर्तमान में निम्नलिखित चलाता है:
इन परीक्षणों के अलावा, कोड परिवर्तन के प्रकार के आधार पर आगे के परीक्षण मैन्युअल रूप से चलाए जा सकते हैं:
यह समझना महत्वपूर्ण है कि उपरोक्त लगभग सभी परीक्षण स्वीकृति परीक्षणों के रूप में उपयोग किए जाते हैं। यदि कुछ विफल होता है, तो इसे अपने कोड में संबोधित करना आप पर निर्भर है।
QA का एक चरण वर्तमान में मर्ज के बाद चलाया जाता है। हम Coverity Scan प्रोग्राम में बिल्ड सबमिट करते हैं। इस (मुफ़्त) सेवा की सीमाओं के कारण, हम अधिकतम दिन में एक बार सबमिट कर सकते हैं। निश्चित रूप से ऐसा हो सकता है कि मर्ज के बाद समुदाय को समस्याएँ मिलें। दोनों ही मामलों में, हम आपसे अनुरोध करते हैं कि जैसे-जैसे समस्याएँ सामने आएँ, उन्हें हल करने में सहायता करें।
Q: क्या आप मेरा PR स्वीकार करेंगे?
A: यह कई चीजों पर निर्भर करता है, जिसमें कोड की गुणवत्ता भी शामिल है। नई सुविधाओं के साथ यह इस बात पर भी निर्भर करता है कि टीम और/या समुदाय सुविधा को उपयोगी मानते हैं या नहीं, यह अन्य कोड और सुविधाओं को कितना प्रभावित करती है, प्रदर्शन रिग्रेशन का जोखिम आदि।
Q: मेरा PR कब मर्ज किया जाएगा?
A: यह निर्भर करता है। यदि यह एक प्रमुख सुविधा है या उच्च जोखिम वाला परिवर्तन माना जाता है, तो यह संभवतः अगले प्रमुख संस्करण में शामिल होगा।
Q: मेरा PR क्यों बंद किया गया?
A: जैसा कि Suricata GitHub workflow में प्रलेखित है, हम हर परिवर्तन के लिए एक नए pull request की अपेक्षा करते हैं।
आम तौर पर, टीम (या समुदाय) एक pull request पर प्रतिक्रिया देगी, जिसके बाद इसे बेहतर PR द्वारा प्रतिस्थापित किए जाने की अपेक्षा की जाती है। इसलिए टिप्पणियों को देखें। यदि आप टिप्पणियों से असहमत हैं, तो हम बंद PR में उन पर चर्चा कर सकते हैं।
यदि PR बिना टिप्पणियों के बंद किया गया था, तो यह संभवतः QA विफलता के कारण है। यदि GitHub-CI जाँचें विफल रहीं, तो PR को तुरंत ठीक किया जाना चाहिए। इसके बारे में चर्चा करने की आवश्यकता नहीं है, जब तक कि आपको न लगे कि QA विफलता गलत है।
Q: कंपाइलर/कोड विश्लेषक/टूल गलत है, अब क्या?
A: QA के स्वचालन में सहायता के लिए, हम चेतावनियों या त्रुटियों को बने रहने की अनुमति नहीं देते। कुछ मामलों में इसका मतलब यह हो सकता है कि यदि टूल उसका समर्थन करता है (जैसे valgrind, DrMemory) तो हम एक सप्रेशन जोड़ दें। कुछ चेतावनियों को अक्षम किया जा सकता है। कुछ असाधारण मामलों में एकमात्र 'समाधान' कोड को रीफैक्टर करना है ताकि स्टैटिक कोड चेकर की सीमा (false positive) के आसपास काम किया जा सके। निराशाजनक होते हुए भी, हम आउटपुट में चेतावनियाँ छोड़ने की तुलना में इसे प्राथमिकता देते हैं। चेतावनियों को अनदेखा किए जाने की प्रवृत्ति होती है और फिर अन्य चेतावनियों को छिपाने का जोखिम बढ़ जाता है।
Q: मुझे लगता है कि आपका QA परीक्षण गलत है
A: यदि आप वास्तव में ऐसा सोचते हैं, तो हम इसे बेहतर बनाने के तरीके पर चर्चा कर सकते हैं। लेकिन इस निष्कर्ष पर बहुत जल्दी न पहुँचें, अक्सर कोड ही गलत निकलता है।
Q: क्या आपको योगदानकर्ता लाइसेंस समझौते पर हस्ताक्षर करने की आवश्यकता है?
A: हाँ, हम Suricata के स्वामित्व को एक ही हाथ में रखने के लिए ऐसा करते हैं: Open Information Security Foundation। देखें http://suricata.io/about/open-source/ और http://suricata.io/about/contribution-agreement/