
Linux कर्नेल के अंदर eBPF का उपयोग करके Sigma Rules Engine। रोकथाम क्षमताओं पर ध्यान केंद्रित करना।
🛡️ owLSM का लक्ष्य Linux के लिए रोकथाम और पहचान का स्वर्ण मानक बनना है 🛡️
owLSM एक eBPF LSM एजेंट है जो रोकथाम पर केंद्रित एक स्टेटफुल सिग्मा नियम इंजन (stateful Sigma rules engine) लागू करता है।
परियोजना क्या है: owLSM तीन मुख्य चीजों पर ध्यान केंद्रित करता है:
1) eBPF LSM के माध्यम से कार्यान्वित सिग्मा नियम इंजन (Sigma Rules Engine) का उपयोग करके रोकथाम क्षमताएँ।
2) स्टेटफुल रोकथाम क्षमताओं के लिए eBPF प्रोब के बीच डेटा सहसंबंध।
3) सुरक्षा-केंद्रित सिस्टम मॉनिटरिंग जहाँ प्रत्येक घटना में वह सभी संदर्भ होता है जिसकी एक सुरक्षा विशेषज्ञ को आवश्यकता होती है।
यह किसके लिए है: वे टीमें जो Linux सिस्टम की रक्षा करती हैं, कंपनियाँ जो Linux/क्लाउड सुरक्षा समाधान प्रदान करती हैं, और डेवलपर या एजेंट जो जटिल eBPF समाधानों के कार्यान्वयन के उदाहरण ढूंढ रहे हैं।
यह पहले से कहाँ उपयोग हो रहा है: सुरक्षा फर्मों Cybereason और LevelBlue के ग्राहक।
हमने यह परियोजना क्यों बनाई: Falco, Tetragon, और KubeArmor जैसी परियोजनाओं का वर्षों तक उपयोग करने के बाद, हम बार-बार उन्हीं कमियों का सामना करते रहे। ये समाधान रोकथाम (प्रवर्तन) क्षमताएँ बहुत कम या बिल्कुल नहीं प्रदान करते। जो प्रवर्तन नीतियाँ प्रदान करते हैं, उनमें सबस्ट्रिंग मिलान, रेगेक्स मिलान, पूर्ण प्रक्रिया cmd मिलान और दुर्भावनापूर्ण प्रक्रियाओं का पैरेंट टर्मिनेशन जैसी बुनियादी सुविधाओं का अभाव है।
हमने पूरी तरह से अलग दृष्टिकोण अपनाने का निर्णय लिया:
1) मानक सिग्मा नियम संरचना का उपयोग करें और जितना संभव हो उतनी सिग्मा नियम सुविधाओं का समर्थन करें (लगातार और अधिक जोड़ते रहें)।
2) वर्तमान eBPF LSM परियोजनाओं की मुख्य सीमा को हल करें: वे स्टेटलेस हैं। प्रवर्तन नियम में उपलब्ध लगभग सभी डेटा केवल वर्तमान हुक से आता है।
हमने स्टेटफुल eBPF प्रोग्राम बनाए जो लगातार कई हुक बिंदुओं का उपयोग करते हैं और उनके बीच डेटा को सहसंबद्ध करते हैं, ताकि रोकथाम निर्णय के बिंदु पर उपयोगकर्ताओं के पास सभी आवश्यक डेटा हो। हमने इस स्टेटफुल दृष्टिकोण को इतना आगे बढ़ाया है कि, उदाहरण के लिए, राइट इवेंट की निगरानी करते समय, आप उस शेल कमांड के आधार पर रोकथाम नियम निर्दिष्ट कर सकते हैं जिसने राइट शुरू किया था।
हमें ⭐ देकर दुनिया को बढ़ने और सुरक्षित करने में मदद करें
भविष्य में क्लाउड समर्थन आएगा
# Pull the Docker image
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Start the build container
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Build owlsm and rules_generator binaries
make -j$(nproc)
# Build unit tests
make test -j$(nproc)
# Exit container, can't run owlsm or the tests inside the docker
exit
इसे डॉकर के बाहर करें
cd build/owlsm/bin
# कॉन्फिग के बिना चलाएँ
sudo ./owlsm
# "-c" कॉन्फिग के साथ चलाएँ
sudo ./owlsm -c /config/path.json
# "-e" बहिष्कृत PID (आमतौर पर हम पैरेंट प्रक्रियाओं को बाहर करना चाहते हैं)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" संरक्षित PID। ये PID एंटी-टैम्परिंग द्वारा संरक्षित हैं।
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# कॉन्फिग को stdin के माध्यम से पास करते हुए owlsm चलाएँ (जब आप अपनी कॉन्फिग फ़ाइल को डिस्क पर सहेजना नहीं चाहते)
# owLSM कॉन्फिग को 10 सेकंड के भीतर प्राप्त करने की अपेक्षा करता है।
sudo ./owlsm --stdin
नोट: owLSM स्टार्टअप में सिस्टम के आधार पर 10–50 सेकंड लगते हैं। यह eBPF वेरिफायर सभी प्रोग्रामों को कर्नेल में लोड करने से पहले मान्य कर रहा होता है। एक बार पूरा होने पर, owLSM पूरी तरह से सक्रिय हो जाता है।
Rules/README.md देखें।
cd build/unit_tests/bin
# यूनिट टेस्ट चलाएँ
sudo ./unit_tests
owLSM चलाने से पहले, सुनिश्चित करें कि आपका सिस्टम आवश्यकताओं को पूरा करता है:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
ऑटोमेशन टेस्ट चलाने के लिए src/Tests/Automation/README.md देखें।
owLSM परियोजना में शामिल होने के लिए हमारे discord पर जाएँ। यदि आपके कोई प्रश्न हैं, तो कृपया उन्हें discord पर पूछें या संबंधित issue खोलें।
📖 दस्तावेज़ीकरण पर जाएँ — परियोजना का उपयोग कैसे करें, नियम कैसे लिखें, आर्किटेक्चर को समझें, और बहुत कुछ।
हमें खुशी है कि आप owLSM में योगदान देने में रुचि रखते हैं! नियमों, परंपराओं और बेहतरीन AI उपकरणों और एजेंटों के बारे में जानने के लिए कृपया CONTRIBUTING.md देखें जो आपकी बहुत मदद करेंगे!
owLSM GNU जनरल पब्लिक लाइसेंस v2.0 (GPL-2.0) के तहत लाइसेंस प्राप्त है।
इस परियोजना में कई तृतीय-पक्ष पुस्तकालय शामिल हैं जिनके अपने लाइसेंस हैं (सभी GPL-संगत)। विवरण के लिए THIRD_PARTY_LICENSES देखें।