
Linux kernel अखंडता मॉनिटर syscall hooking का पता लगाने के लिए
ksentinel महत्वपूर्ण कर्नेल फंक्शन्स और सिस्कॉल टेबल की अनधिकृत संशोधनों के लिए निगरानी करता है। यह उन सामान्य सिस्कॉल्स का पता लगाता है जो अधिकांश रूटकिट्स द्वारा लक्षित होते हैं, जिनमें ftrace हुक, kprobes और syscall टेबल हाईजैकिंग शामिल हैं।
नोट: ksentinel अपने प्रारंभिक संस्करण में है; भविष्य के कमिट्स में और अधिक सुधार आएंगे।
VFS लेयर:
नेटवर्क स्टैक:
क्रेडेंशियल्स:
मॉड्यूल सिस्टम:
ट्रेसिंग इंफ्रास्ट्रक्चर:
उपसर्ग मिलान के माध्यम से 500+ अतिरिक्त syscall रैपर्स।
make
संकलन के दौरान, एक यादृच्छिक 32-वर्ण अनलॉक कुंजी उत्पन्न और प्रदर्शित की जाती है। इसे तुरंत लिख लें। यह कुंजी संकलित मॉड्यूल में एम्बेड की जाती है और बाहरी रूप से संगृहीत नहीं की जाती है।
यदि अनलॉड सुरक्षा सक्षम है तो इसे सुरक्षित रखें।
sudo make install
मॉड्यूल lsmod से छिपा हुआ लोड होता है और डिफ़ॉल्ट रूप से अनलॉड सुरक्षा सक्षम होती है।
sudo insmod ksentinel.ko
sudo ./ksentinel-manager.sh load # मॉड्यूल लोड करें
sudo ./ksentinel-manager.sh status # स्थिति जांचें
sudo ./ksentinel-manager.sh watch # लाइव निगरानी
sudo ./ksentinel-manager.sh violations # अलर्ट देखें
dmesg -wT | grep ksentinel
जब अनलॉड सक्षम है, तो मॉड्यूल को हटाने से पहले अनलॉक किया जाना चाहिए:
echo "your_32char_key" > /proc/.ksctl
या मैनेजर का उपयोग करें:
sudo ./ksentinel-manager.sh unlock
sudo rmmod ksentinel
कस्टम पैरामीटर्स के साथ उदाहरण:
sudo insmod ksentinel.ko period_ms=5000 anti_unload=false
ksentinel period_ms पैरामीटर के आधार पर आवधिक इंटीग्रिटी जाँच करता है।
कम अंतराल तेजी से पता लगाने में सहायक होते हैं लेकिन CPU उपयोग बढ़ाते हैं। डिफ़ॉल्ट अंतराल (2000ms) का आधुनिक सिस्टम पर न्यूनतम प्रभाव पड़ता है।
ksentinel: [CHANGE - HOOK PATTERN] sys_getdents64 @ 0xffffffff81234567
baseline=1234567890abcdef current=fedcba0987654321
bytes: e9 ab cd ef 12 90 90 90 ...
flags: JMP/CALL_DETECTED ENDBR64_PREFIX
ksentinel: [SCT HOOK] syscall[78] expected=0xffffffff81111111 got=0xffffffffa0222222 (fake_getdents+0x0)
ksentinel: [LSTAR TAMPERED] baseline=0xffffffff81800000 now=0xffffffffa0300000 (evil_syscall_entry+0x0)
ksentinel निम्नलिखित द्वारा किए गए संशोधनों का पता लगा सकता है:
पता लगाना रूटकिट से पहले ksentinel लोड करने पर निर्भर करता है।
कर्नेल कॉन्फ़िगरेशन:
समर्थित कर्नेल:
कर्नेल कॉन्फ़िगरेशन जांचें:
grep -E "KALLSYMS|KPROBES" /boot/config-$(uname -r)
मॉड्यूल अनलॉड सुरक्षा के साथ छिपा हुआ है। पहले अनलॉक करें:
sudo ./ksentinel-manager.sh unlock
make clean # बिल्ड आर्टिफैक्ट साफ करें
make # मॉड्यूल संकलित करें
make install # मॉड्यूल लोड करें
make uninstall # मॉड्यूल अनलोड करें
योगदान का स्वागत है। कोड शैली बनाए रखें और नई सुविधाओं के लिए परीक्षण जोड़ें।
GPL-2.0-only
यह प्रोग्राम GPL संस्करण 2.0 के तहत लाइसेंस प्राप्त मुफ्त सॉफ्टवेयर है। किसी भी संशोधन को मूल लेखक का श्रेय बनाए रखना होगा और उसी लाइसेंस के तहत वितरित किया जाना चाहिए।
पूर्ण शर्तों के लिए LICENSE फ़ाइल देखें।
MatheuZSecurity
Rootkit Researchers community: https://discord.gg/66N5ZQppU7
यह उपकरण सुरक्षा अनुसंधान और सिस्टम प्रशासन के लिए है। जिम्मेदारी से उपयोग करें। लेखक इस सॉफ्टवेयर के दुरुपयोग या क्षति के लिए जिम्मेदार नहीं है।
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|---|
| period_ms | uint | 2000 | मिलीसेकंड में इंटीग्रिटी जाँच अंतराल |
| sym_prefixes | string | "sys_,x64_sys,do_sys,ksys_" | निगरानी करने के लिए अल्पविराम-पृथक प्रतीक उपसर्ग |
| extra_syms | string | "" | देखने के लिए अतिरिक्त विशिष्ट प्रतीक |
| anti_unload | bool | true | अनलॉड सुरक्षा सक्षम करें |