हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!
falco — लिनक्स के लिए रियल-टाइम क्लाउड-नेटिव रनटाइम सुरक्षा एजेंट जो असामान्य व्यवहार और खतरों का पता लगाने के लिए सिस्कॉल और कंटेनर/कुबरनेट्स मेटाडेटा की निगरानी करता है। | Kitploit
लिनक्स के लिए रियल-टाइम क्लाउड-नेटिव रनटाइम सुरक्षा एजेंट जो असामान्य व्यवहार और खतरों का पता लगाने के लिए सिस्कॉल और कंटेनर/कुबरनेट्स मेटाडेटा की निगरानी करता है।
Falco लिनक्स ऑपरेटिंग सिस्टम के लिए एक क्लाउड नेटिव रनटाइम सुरक्षा उपकरण है। इसे वास्तविक समय में असामान्य व्यवहार और संभावित सुरक्षा खतरों का पता लगाने और अलर्ट करने के लिए डिज़ाइन किया गया है।
इसके मूल में, Falco एक कर्नेल निगरानी और पहचान एजेंट है जो कस्टम नियमों के आधार पर सिस्कॉल जैसी घटनाओं का अवलोकन करता है। Falco कंटेनर रनटाइम और कुबरनेट्स से मेटाडेटा एकीकृत करके इन घटनाओं को बेहतर बना सकता है। एकत्रित घटनाओं का विश्लेषण SIEM या डेटा लेक सिस्टम में होस्ट से बाहर किया जा सकता है।
विस्तृत तकनीकी जानकारी और उन साइबर खतरों के बारे में जानकारी के लिए, जिन्हें Falco पहचान सकता है, आधिकारिक Falco वेबसाइट देखें।
परियोजना में नवीनतम अपडेट और परिवर्तनों की व्यापक जानकारी के लिए, कृपया परिवर्तन लॉग देखें।
The Falco Project
The Falco Project कोडबेस falcosecurity GitHub संगठन के अंतर्गत बनाए रखा गया है। प्राथमिक रिपॉजिटरी, falcosecurity/falco, Falco बाइनरी के लिए स्रोत कोड रखती है, जबकि अन्य उप-परियोजनाएँ समर्पित रिपॉजिटरी में होस्ट की जाती हैं। घटकों को विशेष रिपॉजिटरी में अलग करने का यह दृष्टिकोण मॉड्यूलरिटी और केंद्रित विकास को बढ़ाता है। उल्लेखनीय कोर रिपॉजिटरी में शामिल हैं:
falcosecurity/libs: यह रिपॉजिटरी Falco की कोर लाइब्रेरीज़ होस्ट करती है, जो बाइनरी के अधिकांश स्रोत कोड का निर्माण करती हैं और कर्नेल ड्राइवर जैसी आवश्यक सुविधाएँ प्रदान करती हैं।
falcosecurity/rules: इसमें Falco के लिए आधिकारिक नियम सेट शामिल है, जो विभिन्न सुरक्षा खतरों और असामान्य व्यवहारों के लिए पूर्व-परिभाषित पहचान नियम प्रदान करता है।
falcosecurity/plugins: यह रिपॉजिटरी प्लगइन्स के माध्यम से बाहरी सेवाओं के साथ एकीकरण का समर्थन करती है, जो सिस्कॉल और कंटेनर इवेंट्स से परे Falco की क्षमताओं का विस्तार करते हैं, भविष्य के रिलीज़ में विशेष कार्यक्षमताओं को विकसित करने की योजना के साथ।
falcosecurity/falcoctl: Falco को प्रबंधित करने और उसके साथ बातचीत करने के लिए डिज़ाइन की गई एक कमांड-लाइन उपयोगिता।
falcosecurity/charts: यह रिपॉजिटरी Falco और उसके पारिस्थितिकी तंत्र को तैनात करने के लिए Helm चार्ट प्रकाशित करती है। Falco चार्ट स्रोत chart/falco में रहता है।
हमारे रिपॉजिटरी के बारे में और अधिक जानकारी और हमारे गवर्नेंस मॉडल के अतिरिक्त विवरण के लिए, कृपया The Falco Project का आधिकारिक केंद्र देखें: falcosecurity/evolution।
Falco के साथ शुरुआत करना
यदि आप Falco में नए हैं, तो अपनी यात्रा हमारे आरंभ करना गाइड से शुरू करें। उत्पादन परिनियोजन के लिए, कृपया हमारे व्यापक सेटअप दस्तावेज़ देखें।
Falco को परिनियोजित करने से पहले अंतिम अनुशंसाओं के रूप में, पर्यावरण अनुकूलता सत्यापित करें, अपने पहचान लक्ष्य निर्धारित करें, प्रदर्शन अनुकूलित करें, उचित बिल्ड चुनें, और प्रभावी घटना प्रतिक्रिया सुनिश्चित करने के लिए SIEM या डेटा लेक एकीकरण की योजना बनाएं।
डेमो वातावरण
एक डेमो वातावरण एक docker-compose फ़ाइल के माध्यम से प्रदान किया जाता है जिसे एक docker होस्ट पर शुरू किया जा सकता है जिसमें falco, falcosidekick, falcosidekick-ui और इसकी आवश्यक redis डेटाबेस शामिल है। अधिक जानकारी के लिए docker-compose अनुभाग देखें।
समुदाय से जुड़ें
Falco Project से जुड़ने के लिए कृपया समुदाय रिपॉजिटरी देखें और अधिक जानकारी तथा जुड़ने के तरीकों को खोजें।
यदि आपके पास Falco या योगदान के बारे में कोई प्रश्न है, तो बेझिझक एक issue दर्ज करें या सहायता के लिए Falco अनुरक्षकों और समुदाय के सदस्यों से संपर्क करें।
विभिन्न सुरक्षा ऑडिट की पूरी रिपोर्टें यहाँ पाई जा सकती हैं।
इसके अलावा, आप सुरक्षा सलाहकार और नीतियों पर विस्तृत अपडेट के लिए falco और libs सुरक्षा अनुभाग देख सकते हैं।
सुरक्षा कमजोरियों की रिपोर्ट करने के लिए, कृपया यहाँ दिए गए दस्तावेज़ में उल्लिखित सामुदायिक प्रक्रिया का पालन करें।
निर्माण (Building)
स्रोत से Falco बनाने के लिए व्यापक, चरण-दर-चरण निर्देशों हेतु, कृपया आधिकारिक दस्तावेज़ देखें।
परीक्षण
परीक्षण निर्देशों का विस्तार करें
Falco का Build Falco from source स्रोत से Falco बनाने के तरीके को समझने के लिए प्रमुख संसाधन है। इसके अलावा, falcosecurity/libs रिपॉजिटरी Falco की अंतर्निहित लाइब्रेरी और कर्नेल ड्राइवरों के परीक्षण और डिबगिंग के बारे में अतिरिक्त मूल्यवान जानकारी प्रदान करती है।
यहाँ एक cmake कमांड का उदाहरण है जो इस रिपॉजिटरी के सभी यूनिट परीक्षणों के लिए आवश्यक सब कुछ सक्षम करेगा:
nproc=$(grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}');
make -j$(($nproc-1)) falco_unit_tests;
# Run the tests
sudo ./unit_tests/falco_unit_tests;
वैकल्पिक रूप से, अपनी पसंद का ड्राइवर बनाएं और मैन्युअल परीक्षण करने के लिए Falco बाइनरी का परीक्षण चलाएं।
अंत में, Falco परियोजना ने अपने Falco रिग्रेशन परीक्षणों को falcosecurity/testing में स्थानांतरित कर दिया है।
योगदान कैसे करें
योगदान कैसे करें, इसकी अधिक जानकारी के लिए कृपया योगदान गाइड और आचार संहिता देखें।
अक्सर पूछे जाने वाले प्रश्न
Falco Go या {language} के बजाय C++ में क्यों है?
जानकारी का विस्तार करें
Falco के आधार पर पहली पंक्तियाँ कुछ समय पहले लिखी गई थीं, जब Go में आज जैसी परिपक्वता और स्वीकार्यता नहीं थी।
Falco का निष्पादन मॉडल उपकरण की स्टेटफुलनेस आवश्यकताओं के कारण अनुक्रमिक और मोनो-थ्रेड है, और इसलिए Go रनटाइम के अधिकांश समवर्ती-संबंधित लाभों का उपयोग बिल्कुल नहीं किया जा सकेगा।
Falco कोड कई स्थानों पर बहुत निम्न-स्तरीय प्रोग्रामिंग से संबंधित है, और हम सभी जानते हैं कि Go को C के साथ इंटरफ़ेस करना संभव है, लेकिन यह बहुत अधिक जटिलता और समझौते लाता है।
प्रति सेकंड घटनाओं की अत्यधिक उच्च थ्रूपुट खपत के लिए एक सुरक्षा उपकरण के रूप में, Falco को रनटाइम पर सभी हॉट पाथ में प्रदर्शन निचोड़ने की आवश्यकता होती है और मेमोरी आवंटन पर गहरा नियंत्रण चाहिए, जो Go रनटाइम प्रदान नहीं कर सकता (इसमें गार्बेज कलेक्शन भी शामिल है)।
हालाँकि Go Falco के कोर की इंजीनियरिंग आवश्यकताओं के अनुरूप नहीं था, फिर भी हमने सोचा कि यह प्लगइन सिस्टम के माध्यम से Falco एक्सटेंशन लिखने के लिए एक अच्छा उम्मीदवार हो सकता है। यह मुख्य कारण है कि हमने plugin-sdk-go के विकास पर विशेष ध्यान और उच्च प्राथमिकता दी।
स्टैटिकली-लिंक्ड बाइनरी रखने के लिए Go आवश्यक नहीं है। वास्तव में, हम कुछ वर्षों से पूरी तरह से स्टैटिक Falco बिल्ड प्रदान करते हैं। उनके साथ एकमात्र समस्या यह है कि प्लगइन सिस्टम को वर्तमान डायनामिक लाइब्रेरी मॉडल के साथ समर्थित नहीं किया जा सकता है।
प्लगइन सिस्टम की कल्पना कई भाषाओं का समर्थन करने के लिए की गई है, इसलिए हमारी ओर से C-संगत कोडबेस बनाए रखना अधिकतम क्रॉस-लैंग्वेज संगतता सुनिश्चित करने की सबसे अच्छी रणनीति है।
सामान्य तौर पर, प्लगइन्स में GLIBC आवश्यकताएँ/निर्भरताएँ होती हैं क्योंकि उनमें डायनामिक लोडिंग के लिए आवश्यक निम्न-स्तरीय C बाइंडिंग होती हैं। भविष्य के लिए एक संभावित समाधान यह हो सकता है कि प्लगइन को संकलन समय पर स्टैटिकली-लिंक किए जाने का समर्थन भी किया जाए और इस प्रकार Falco बाइनरी में बंडल करके जारी किया जाए। हालाँकि इस दिशा में अभी कोई काम शुरू नहीं हुआ है, यह आपके द्वारा रिपोर्ट की गई अधिकांश समस्याओं का समाधान करेगा और पूरी तरह से स्टैटिक बाइनरी भी प्रदान करेगा। बेशक, यह अब डायनामिक लोडिंग के साथ संगत नहीं होगा, लेकिन यह Falco के हमारे स्टैटिक-बिल्ड संस्करण के लिए एक व्यवहार्य समाधान हो सकता है।
मेमोरी सुरक्षा निश्चित रूप से एक चिंता का विषय है और हम उच्च स्तर की गुणवत्ता बनाए रखने के लिए अपनी पूरी कोशिश करते हैं, भले ही C++ काफी त्रुटि-प्रवण है। उदाहरण के लिए, हम जब भी संभव हो स्मार्ट पॉइंटर्स का उपयोग करने का प्रयास करते हैं, हम अपने CI में एड्रेस सैनिटाइज़र के साथ लाइब्रेरी बनाते हैं, प्रत्येक रिलीज़ से पहले Falco को Valgrind के माध्यम से चलाते हैं, और प्रदर्शन प्रतिगमन या अजीब मेमोरी उपयोग का पता लगाने के लिए इसे स्ट्रेस-टेस्ट करने के तरीके रखते हैं (उदाहरण के लिए https://github.com/falcosecurity/event-generator)। इसके अलावा, हमारे पास समय-समय पर कोडबेस का ऑडिट करने वाले तृतीय पक्ष भी हैं। निश्चित रूप से इनमें से कोई भी पूर्ण सुरक्षा दृष्टिकोण नहीं बनाता, लेकिन हम अपनी संभावनाओं को अधिकतम करने का प्रयास करते हैं। इस दृष्टिकोण से Go निश्चित रूप से हमारा जीवन आसान बना देगा, हालाँकि उपरोक्त बिंदुओं के कारण अब तक समझौते इसे सार्थक नहीं बना पाए हैं।
Falco के कोर में स्थित falcosecurity/libs का C++ कोडबेस काफी बड़ा और जटिल है। उस सभी कोड को किसी अन्य भाषा में पोर्ट करना एक बड़ा प्रयास होगा जिसके लिए बहुत अधिक विकास संसाधनों की आवश्यकता होगी और विफलता और प्रतिगमन की उच्च संभावना होगी। इसलिए, अब तक हमारा दृष्टिकोण इस कोड के उस हिस्से पर स्थिरता, गुणवत्ता और मॉड्यूलरिटी के इष्टतम स्तर तक पहुँचने तक रीफैक्टर और कोड पॉलिशिंग का चयन करना रहा है। यह भविष्य में आगे के विकास को सुचारू और अधिक व्यवहार्य बनाने की अनुमति देगा।
Falco के लिए आगे क्या है?
Falco की विकसित होती क्षमताओं के साथ अद्यतन रहें, Falco Roadmap का अन्वेषण करें, जो वर्तमान में विकास के तहत और भविष्य के रिलीज़ के लिए नियोजित सुविधाओं की जानकारी प्रदान करता है।
लाइसेंस
Falco को आपको Apache 2.0 ओपन सोर्स लाइसेंस के तहत लाइसेंस प्रदान किया गया है।