
ML-आधारित व्यवहारिक एंडपॉइंट डिटेक्शन सिस्टम लिनक्स मशीनों के लिए
मशीन लर्निंग संचालित व्यवहारिक विसंगति पता लगाना Linux के लिए eBPF + Isolation Forest का उपयोग करके
Guardd निम्न-स्तरीय सिस्टम घटनाओं (प्रक्रिया निष्पादन, नेटवर्क गतिविधि) को एकत्र करता है, उन्हें समय-विंडो वाले फीचर वेक्टर में एकत्रित करता है, और मशीन लर्निंग मॉडल का उपयोग करके असामान्य व्यवहार का पता लगाता है।
Guardd अज्ञात खतरों का पता लगाने पर केंद्रित है
[!WARNING] यह परियोजना अभी भी विकास में है
सुविधाओं और पता लगाने की सटीकता में सक्रिय रूप से सुधार किया जा रहा है
प्रतिक्रिया, सुझाव और योगदान का स्वागत है
guardd एक एकल systemd सेवा के रूप में चलता है जो डेटा संग्रह, प्रशिक्षण और पता लगाने के पूर्ण जीवनचक्र का प्रबंधन करता है।
स्टार्टअप पर:
यदि कोई मॉडल मौजूद नहीं है, तो guardd आधारभूत व्यवहार डेटा एकत्र करना शुरू करता है
यह प्रारंभिक प्रशिक्षण के लिए 1 दिन (डिफ़ॉल्ट) का डेटा एकत्र करता है
प्रशिक्षण सफल होने पर, यह स्वचालित रूप से डिटेक्शन मोड में आ जाता है
संचालन के दौरान:
सिस्टम गतिविधि को लगातार समय विंडो में एकत्रित किया जाता है और फीचर वेक्टर में परिवर्तित किया जाता है
प्रत्येक विंडो को प्रशिक्षित Isolation Forest मॉडल द्वारा स्कोर किया जाता है
विसंगतियाँ NDJSON के रूप में उत्सर्जित की जाती हैं
चालू:
मॉडल को स्वचालित रूप से सप्ताह में एक बार पुनः प्रशिक्षित किया जाता है
अद्यतन मॉडल के साथ पुनः प्रशिक्षण के तुरंत बाद पता लगाना फिर से शुरू हो जाता है
git clone https://github.com/benny-e/guardd.git
cd guardd
sudo bash install.sh
यह निम्नलिखित करेगा:
सिस्टम निर्भरताएँ स्थापित करें
प्रोजेक्ट को /opt/guardd में कॉपी करें
Python वर्चुअल एनवायरनमेंट बनाएँ
पैकेज स्थापित करें
eBPF घटकों का निर्माण करें
systemd सेवा स्थापित करें
sudo systemctl start guardd.service
systemctl status guardd.service
journalctl -u guardd.service -f
guardd में हाल की चेतावनियों को ब्राउज़ करने और विसंगतियों की खोज करने के लिए एक टर्मिनल UI शामिल है
लॉन्च करने के लिए: (guardd.service शुरू करने के बाद)
guardd tui
आप systemd सेवा स्थापित किए बिना सीधे कमांड लाइन से guardd चला सकते हैं। इसे अन्य init सिस्टम के साथ चलाने के लिए कॉन्फ़िगर किया जा सकता है
sudo guardd daemon
डेटा एकत्र करें:
sudo guardd collect
मॉडल प्रशिक्षित करें:
sudo guardd train
डिटेक्शन चलाएँ:
sudo guardd detect
guardd config.toml फ़ाइल के माध्यम से कॉन्फ़िगरेशन का समर्थन करता है।
डिफ़ॉल्ट रूप से, डेमॉन इस पथ पर खोज करता है:
/opt/guardd/config.toml
[daemon]
mode = "auto"
bootstrap_retry_seconds = 60
retrain_interval_seconds = 604800
[training]
min_training_rows = 1
contamination = 0.01
n_estimators = 200
threshold_percentile = 10.0
[paths]
db_path = "/opt/guardd/data/features.db"
model_path = "/opt/guardd/data/model.bundle"
guardd_path = "/opt/guardd/ebpf/guardd"
guardd के जीवनचक्र को नियंत्रित करता है।
mode
-- "auto" → पूर्ण पाइपलाइन (collect → train → detect)
-- "collect" → केवल डेटा एकत्र करें
-- "detect" → केवल डिटेक्शन चलाएँ (मॉडल आवश्यक)
bootstrap_retry_seconds
-- जब कोई मॉडल मौजूद नहीं है तो guardd कितनी बार प्रारंभिक प्रशिक्षण का प्रयास करता है
-- इस चरण के दौरान, guardd डेटा एकत्र करता है और प्रशिक्षण का प्रयास करने के लिए समय-समय पर रुकता है
retrain_interval_seconds
-- प्रारंभिक बूटस्ट्रैप के बाद मॉडल को कितनी बार पुनः प्रशिक्षित किया जाता है
-- डिफ़ॉल्ट: 7 दिन (डिफ़ॉल्ट)
मॉडल व्यवहार और आवश्यकताओं को नियंत्रित करता है।
min_training_rows
-- प्रशिक्षण के लिए आवश्यक फीचर विंडो की न्यूनतम संख्या
-- यदि पूरा नहीं होता है, तो प्रशिक्षण विफल हो जाता है और बाद में पुनः प्रयास करेगा
contamination
-- डेटा में विसंगतियों का अपेक्षित अनुपात
-- सीधे Isolation Forest को पास किया गया
-- सामान्य मान: 0.01–0.05
n_estimators
-- Isolation Forest में पेड़ों की संख्या
-- अधिक = अधिक सटीक, धीमा प्रशिक्षण
threshold_percentile
-- विसंगति कटऑफ स्कोर निर्धारित करता है
-- कम = अधिक आक्रामक पता लगाना
नियंत्रित करता है कि guardd डेटा कहाँ पढ़ता/लिखता है।
db_path
-- SQLite डेटाबेस जो फीचर वेक्टर और विसंगतियों को संग्रहीत करता है
model_path
-- डिटेक्शन के लिए उपयोग किया जाने वाला सीरियलाइज़्ड मॉडल बंडल
guardd_path
-- eBPF कलेक्टर बाइनरी का पथ
कॉन्फ़िग मान CLI डिफ़ॉल्ट को ओवरराइड करते हैं
CLI तर्क अभी भी कॉन्फ़िग को ओवरराइड कर सकते हैं यदि स्पष्ट रूप से प्रदान किए गए हों
मॉडल सटीकता अच्छे प्रशिक्षण डेटा पर बहुत अधिक निर्भर करती है। लंबे प्रशिक्षण समय के परिणामस्वरूप अधिक सटीक डिटेक्टर होगा
python3
python3-venv
python3-pip
clang
llvm
libbpf-dev
libelf-dev
bpftool
build-essential
pkg-config
sqlite3